From a4634ed7779f0905e3bfeb781e58d40a5bdf9bb7 Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Mon, 4 Jan 2021 17:20:55 -0500 Subject: [PATCH 01/10] Import ACPICA 20201217. --- changes.txt | 35 ++++++++++++++++++++++++ source/compiler/aslanalyze.c | 2 +- source/compiler/aslcompiler.l | 4 +-- source/compiler/aslerror.c | 2 +- source/compiler/aslmethod.c | 1 + source/compiler/aslparseop.c | 4 +-- source/compiler/aslwalks.c | 2 +- source/compiler/dtfield.c | 2 +- source/compiler/dttemplate.c | 3 +- source/components/debugger/dbinput.c | 4 +-- source/components/debugger/dbobject.c | 2 +- source/components/disassembler/dmwalk.c | 8 +++--- source/components/dispatcher/dscontrol.c | 2 +- source/components/dispatcher/dsdebug.c | 2 +- source/components/dispatcher/dswexec.c | 3 +- source/components/dispatcher/dswload.c | 2 +- source/components/dispatcher/dswload2.c | 2 +- source/components/executer/exfldio.c | 2 +- source/components/executer/exresop.c | 4 +-- source/components/executer/exstore.c | 4 +-- source/components/hardware/hwgpe.c | 2 +- source/components/parser/psloop.c | 3 +- source/components/parser/psparse.c | 2 +- source/components/utilities/utdelete.c | 2 +- source/components/utilities/utstrsuppt.c | 4 +-- source/include/acexcep.h | 10 +++---- source/include/acpixf.h | 2 +- source/include/actypes.h | 5 ++++ source/include/platform/acgcc.h | 15 ++++++++++ source/tools/acpibin/abmain.c | 2 +- source/tools/acpihelp/ahaml.c | 4 +-- source/tools/acpihelp/ahdecode.c | 8 +++--- 32 files changed, 102 insertions(+), 47 deletions(-) diff --git a/changes.txt b/changes.txt index e7cc572a0cc3..d27547d31b76 100644 --- a/changes.txt +++ b/changes.txt @@ -1,5 +1,40 @@ ---------------------------------------- +17 December 2020. Summary of changes for version 20201217: +This release is available at https://acpica.org/downloads + + +1) ACPICA kernel-resident subsystem: + +Note: The implementation of ACPI 6.4 is underway, and is expected to be +mostly finished next month, when ACPI 6.4 is released. + +From qzed:- fixed-ae-class-macros. Fix exception code class checks. Added +several new macros, such as ACPI_CNTL_EXCEPTION(Status) in order to +enable this. + +AcpiExec/iASL/AcpiHelp: Added a few changes for support of GCC 10.2.0. +These included a few casts, as well as a null pointer check. + +Fix -Wfallthrough: GCC 7.1 gained -Wimplicit-fallthrough to warn on +implicit fallthrough, as well as __attribute__((__fallthrough__)) and +comments to explicitly denote that cases of fallthrough were intentional. +Clang also supports this warning and statement attribute, but not the +comment form. Added a new macro, ACPI_FALLTHROUGH to support this feature +of GCC. With assistance from @nickdesaulniers. + +2) iASL Compiler/Disassembler and ACPICA tools: + +Added improvement to method call analysis by saving the return type and +relaxing certain cases of type checking. + +iASL Table Compiler: Improved info messages. Added a message to the -T +option for when the default template (DSDT) is used. +Also added a note for when multiple SSDTs are created with a DSDT that +the SSDTs are created in the same file as the DSDT. + + +---------------------------------------- 13 November 2020. Summary of changes for version 20201113: diff --git a/source/compiler/aslanalyze.c b/source/compiler/aslanalyze.c index 63feba2b127b..d2c40eababb5 100644 --- a/source/compiler/aslanalyze.c +++ b/source/compiler/aslanalyze.c @@ -470,7 +470,7 @@ AnCheckMethodReturnValue ( "Method returns [%s], %s operator requires [%s]", AslGbl_StringBuffer, OpInfo->Name, AslGbl_StringBuffer2); - AslError (ASL_ERROR, ASL_MSG_INVALID_TYPE, ArgOp, AslGbl_MsgBuffer); + AslError (ASL_WARNING, ASL_MSG_INVALID_TYPE, ArgOp, AslGbl_MsgBuffer); } } diff --git a/source/compiler/aslcompiler.l b/source/compiler/aslcompiler.l index 8e448fb76ead..f77dfc0d7242 100644 --- a/source/compiler/aslcompiler.l +++ b/source/compiler/aslcompiler.l @@ -812,9 +812,9 @@ NamePathTail [.]{NameSeg} "__PATH__" { count (0); return (PARSEOP___PATH__); } "__METHOD__" { count (0); return (PARSEOP___METHOD__); } "__EXPECT__"{ErrorCode} { char *s; - int index = 0; + unsigned int index = 0; count (0); - while (!isdigit (AslCompilertext[index])) + while (!isdigit ((int) AslCompilertext[index])) { index++; } diff --git a/source/compiler/aslerror.c b/source/compiler/aslerror.c index 150983429b3b..51c8c9b2ba89 100644 --- a/source/compiler/aslerror.c +++ b/source/compiler/aslerror.c @@ -1456,7 +1456,7 @@ AslIsExceptionDisabled ( { return (TRUE); } - /* Fall through */ + ACPI_FALLTHROUGH; case ASL_WARNING: case ASL_REMARK: diff --git a/source/compiler/aslmethod.c b/source/compiler/aslmethod.c index 32b4b123f02e..9f5b753b2d17 100644 --- a/source/compiler/aslmethod.c +++ b/source/compiler/aslmethod.c @@ -288,6 +288,7 @@ MtMethodAnalysisWalkBegin ( NextType = Next->Asl.Child; MethodInfo->ValidReturnTypes = MtProcessTypeOp (NextType); + Op->Asl.AcpiBtype |= MethodInfo->ValidReturnTypes; /* Get the ParameterType node */ diff --git a/source/compiler/aslparseop.c b/source/compiler/aslparseop.c index 51ef9b8c413c..6b17689d2e68 100644 --- a/source/compiler/aslparseop.c +++ b/source/compiler/aslparseop.c @@ -414,7 +414,7 @@ TrCreateValuedLeafOp ( for (i = 0; i < ACPI_NAMESEG_SIZE; i++) { - if (islower (Op->Asl.Value.Name[i])) + if (islower ((int) Op->Asl.Value.Name[i])) { AcpiUtStrupr (&Op->Asl.Value.Name[i]); AslError (ASL_REMARK, ASL_MSG_LOWER_CASE_NAMESEG, Op, Op->Asl.Value.Name); @@ -431,7 +431,7 @@ TrCreateValuedLeafOp ( StringPtr = Op->Asl.Value.Name; for (i = 0; *StringPtr; i++) { - if (islower (*StringPtr)) + if (islower ((int) *StringPtr)) { AcpiUtStrupr (&Op->Asl.Value.Name[i]); AslError (ASL_REMARK, ASL_MSG_LOWER_CASE_NAMEPATH, Op, Op->Asl.Value.Name); diff --git a/source/compiler/aslwalks.c b/source/compiler/aslwalks.c index 215544f6a527..66e702640da2 100644 --- a/source/compiler/aslwalks.c +++ b/source/compiler/aslwalks.c @@ -516,7 +516,7 @@ AnOperandTypecheckWalkEnd ( break; } - /* Fallthrough */ + ACPI_FALLTHROUGH; case ARGI_STORE_TARGET: diff --git a/source/compiler/dtfield.c b/source/compiler/dtfield.c index f976bba5255a..9a5729cfe95e 100644 --- a/source/compiler/dtfield.c +++ b/source/compiler/dtfield.c @@ -227,7 +227,7 @@ DtCompileOneField ( break; } - /* Fall through. */ + ACPI_FALLTHROUGH; case DT_FIELD_TYPE_BUFFER: diff --git a/source/compiler/dttemplate.c b/source/compiler/dttemplate.c index 5129138fd904..2262c745147d 100644 --- a/source/compiler/dttemplate.c +++ b/source/compiler/dttemplate.c @@ -255,6 +255,7 @@ DtCreateTemplates ( if (AcpiGbl_Optind < 3) { + fprintf (stderr, "Creating default template: [DSDT]\n"); Status = DtCreateOneTemplateFile (ACPI_SIG_DSDT, 0); goto Exit; } @@ -640,7 +641,7 @@ DtCreateOneTemplate ( { fprintf (stderr, "Created ACPI table templates for [%4.4s] " - "and %u [SSDT], written to \"%s\"\n", + "and %u [SSDT] in same file, written to \"%s\"\n", Signature, TableCount, DisasmFilename); } diff --git a/source/components/debugger/dbinput.c b/source/components/debugger/dbinput.c index 0cc97310fa10..15e9f351b122 100644 --- a/source/components/debugger/dbinput.c +++ b/source/components/debugger/dbinput.c @@ -642,7 +642,7 @@ AcpiDbGetNextToken ( /* Remove any spaces at the beginning, ignore blank lines */ - while (*String && isspace (*String)) + while (*String && isspace ((int) *String)) { String++; } @@ -754,7 +754,7 @@ AcpiDbGetNextToken ( /* Find end of token */ - while (*String && !isspace (*String)) + while (*String && !isspace ((int) *String)) { String++; } diff --git a/source/components/debugger/dbobject.c b/source/components/debugger/dbobject.c index 01d885d03df7..a5af85d6beab 100644 --- a/source/components/debugger/dbobject.c +++ b/source/components/debugger/dbobject.c @@ -201,7 +201,7 @@ AcpiDbDumpMethodInfo ( /* Ignore control codes, they are not errors */ - if ((Status & AE_CODE_MASK) == AE_CODE_CONTROL) + if (ACPI_CNTL_EXCEPTION (Status)) { return; } diff --git a/source/components/disassembler/dmwalk.c b/source/components/disassembler/dmwalk.c index 76ef0aacb66c..2359468f142d 100644 --- a/source/components/disassembler/dmwalk.c +++ b/source/components/disassembler/dmwalk.c @@ -400,7 +400,7 @@ AcpiDmBlockType ( return (BLOCK_NONE); } - /*lint -fallthrough */ + ACPI_FALLTHROUGH; case AML_PACKAGE_OP: case AML_VARIABLE_PACKAGE_OP: @@ -422,7 +422,7 @@ AcpiDmBlockType ( return (BLOCK_NONE); } - /*lint -fallthrough */ + ACPI_FALLTHROUGH; default: @@ -688,7 +688,7 @@ AcpiDmDescendingOp ( return (AE_OK); } - /* Fallthrough */ + ACPI_FALLTHROUGH; default: @@ -772,7 +772,7 @@ AcpiDmDescendingOp ( AcpiDmNamestring (NextOp->Common.Value.Name); AcpiOsPrintf (", "); - /*lint -fallthrough */ + ACPI_FALLTHROUGH; default: diff --git a/source/components/dispatcher/dscontrol.c b/source/components/dispatcher/dscontrol.c index 4ff0b3823a5d..32632c547e22 100644 --- a/source/components/dispatcher/dscontrol.c +++ b/source/components/dispatcher/dscontrol.c @@ -210,7 +210,7 @@ AcpiDsExecBeginControlOp ( } } - /*lint -fallthrough */ + ACPI_FALLTHROUGH; case AML_IF_OP: /* diff --git a/source/components/dispatcher/dsdebug.c b/source/components/dispatcher/dsdebug.c index a7ece9b013bd..68d3fc2fb07a 100644 --- a/source/components/dispatcher/dsdebug.c +++ b/source/components/dispatcher/dsdebug.c @@ -254,7 +254,7 @@ AcpiDsDumpMethodStack ( /* Ignore control codes, they are not errors */ - if ((Status & AE_CODE_MASK) == AE_CODE_CONTROL) + if (ACPI_CNTL_EXCEPTION (Status)) { return_VOID; } diff --git a/source/components/dispatcher/dswexec.c b/source/components/dispatcher/dswexec.c index 3fa7b95bba8e..87e692a0634a 100644 --- a/source/components/dispatcher/dswexec.c +++ b/source/components/dispatcher/dswexec.c @@ -772,8 +772,7 @@ AcpiDsExecEndOp ( break; } - /* Fall through */ - /*lint -fallthrough */ + ACPI_FALLTHROUGH; case AML_INT_EVAL_SUBTREE_OP: diff --git a/source/components/dispatcher/dswload.c b/source/components/dispatcher/dswload.c index 62a4fdca417b..be2f4a2beef8 100644 --- a/source/components/dispatcher/dswload.c +++ b/source/components/dispatcher/dswload.c @@ -375,7 +375,7 @@ AcpiDsLoad1BeginOp ( break; } - /*lint -fallthrough */ + ACPI_FALLTHROUGH; default: diff --git a/source/components/dispatcher/dswload2.c b/source/components/dispatcher/dswload2.c index 0ab715cd139b..76148af324bd 100644 --- a/source/components/dispatcher/dswload2.c +++ b/source/components/dispatcher/dswload2.c @@ -366,7 +366,7 @@ AcpiDsLoad2BeginOp ( break; } - /*lint -fallthrough */ + ACPI_FALLTHROUGH; default: diff --git a/source/components/executer/exfldio.c b/source/components/executer/exfldio.c index 69f9e1a6c5fe..64be8bf1da9f 100644 --- a/source/components/executer/exfldio.c +++ b/source/components/executer/exfldio.c @@ -616,7 +616,7 @@ AcpiExFieldDatumIo ( * RegionField case and write the datum to the Operation Region */ - /*lint -fallthrough */ + ACPI_FALLTHROUGH; case ACPI_TYPE_LOCAL_REGION_FIELD: /* diff --git a/source/components/executer/exresop.c b/source/components/executer/exresop.c index bf43d5d28d7c..b0d1c7409e60 100644 --- a/source/components/executer/exresop.c +++ b/source/components/executer/exresop.c @@ -358,7 +358,7 @@ AcpiExResolveOperands ( TargetOp = AML_DEBUG_OP; - /*lint -fallthrough */ + ACPI_FALLTHROUGH; case ACPI_REFCLASS_ARG: case ACPI_REFCLASS_LOCAL: @@ -422,7 +422,7 @@ AcpiExResolveOperands ( * Else not a string - fall through to the normal Reference * case below */ - /*lint -fallthrough */ + ACPI_FALLTHROUGH; case ARGI_REFERENCE: /* References: */ case ARGI_INTEGER_REF: diff --git a/source/components/executer/exstore.c b/source/components/executer/exstore.c index b374d6faa1e0..d6b9143bbbf9 100644 --- a/source/components/executer/exstore.c +++ b/source/components/executer/exstore.c @@ -248,7 +248,7 @@ AcpiExStore ( return_ACPI_STATUS (AE_OK); } - /*lint -fallthrough */ + ACPI_FALLTHROUGH; default: @@ -585,7 +585,7 @@ AcpiExStoreObjectToNode ( break; } - /* Fallthrough */ + ACPI_FALLTHROUGH; case ACPI_TYPE_DEVICE: case ACPI_TYPE_EVENT: diff --git a/source/components/hardware/hwgpe.c b/source/components/hardware/hwgpe.c index e8ad8926ce11..c7b7a4696794 100644 --- a/source/components/hardware/hwgpe.c +++ b/source/components/hardware/hwgpe.c @@ -254,7 +254,7 @@ AcpiHwLowSetGpe ( return (AE_BAD_PARAMETER); } - /*lint -fallthrough */ + ACPI_FALLTHROUGH; case ACPI_GPE_ENABLE: diff --git a/source/components/parser/psloop.c b/source/components/parser/psloop.c index 5b4b0d989bdd..6ccac91012b5 100644 --- a/source/components/parser/psloop.c +++ b/source/components/parser/psloop.c @@ -410,8 +410,7 @@ AcpiPsParseLoop ( */ WalkState->Op = NULL; Status = AcpiDsGetPredicateValue (WalkState, ACPI_TO_POINTER (TRUE)); - if (ACPI_FAILURE (Status) && - ((Status & AE_CODE_MASK) != AE_CODE_CONTROL)) + if (ACPI_FAILURE (Status) && !ACPI_CNTL_EXCEPTION (Status)) { if (Status == AE_AML_NO_RETURN_VALUE) { diff --git a/source/components/parser/psparse.c b/source/components/parser/psparse.c index d935ebc2df76..16458bc3e9d5 100644 --- a/source/components/parser/psparse.c +++ b/source/components/parser/psparse.c @@ -533,7 +533,7 @@ AcpiPsNextParseState ( default: Status = CallbackStatus; - if ((CallbackStatus & AE_CODE_MASK) == AE_CODE_CONTROL) + if (ACPI_CNTL_EXCEPTION (CallbackStatus)) { Status = AE_OK; } diff --git a/source/components/utilities/utdelete.c b/source/components/utilities/utdelete.c index aafd52959379..0e0500a0d20b 100644 --- a/source/components/utilities/utdelete.c +++ b/source/components/utilities/utdelete.c @@ -266,7 +266,7 @@ AcpiUtDeleteInternalObj ( (void) AcpiEvDeleteGpeBlock (Object->Device.GpeBlock); } - /*lint -fallthrough */ + ACPI_FALLTHROUGH; case ACPI_TYPE_PROCESSOR: case ACPI_TYPE_THERMAL: diff --git a/source/components/utilities/utstrsuppt.c b/source/components/utilities/utstrsuppt.c index 153b56e85cff..c0ea049558d8 100644 --- a/source/components/utilities/utstrsuppt.c +++ b/source/components/utilities/utstrsuppt.c @@ -274,7 +274,7 @@ AcpiUtConvertDecimalString ( * 1) Runtime: terminate with no error, per the ACPI spec * 2) Compiler: return an error */ - if (!isdigit (*String)) + if (!isdigit ((int) *String)) { #ifdef ACPI_ASL_COMPILER Status = AE_BAD_DECIMAL_CONSTANT; @@ -336,7 +336,7 @@ AcpiUtConvertHexString ( * 1) Runtime: terminate with no error, per the ACPI spec * 2) Compiler: return an error */ - if (!isxdigit (*String)) + if (!isxdigit ((int) *String)) { #ifdef ACPI_ASL_COMPILER Status = AE_BAD_HEX_CONSTANT; diff --git a/source/include/acexcep.h b/source/include/acexcep.h index 11c81398e915..8cbd75498642 100644 --- a/source/include/acexcep.h +++ b/source/include/acexcep.h @@ -204,11 +204,11 @@ typedef struct acpi_exception_info #define AE_OK (ACPI_STATUS) 0x0000 -#define ACPI_ENV_EXCEPTION(Status) (Status & AE_CODE_ENVIRONMENTAL) -#define ACPI_AML_EXCEPTION(Status) (Status & AE_CODE_AML) -#define ACPI_PROG_EXCEPTION(Status) (Status & AE_CODE_PROGRAMMER) -#define ACPI_TABLE_EXCEPTION(Status) (Status & AE_CODE_ACPI_TABLES) -#define ACPI_CNTL_EXCEPTION(Status) (Status & AE_CODE_CONTROL) +#define ACPI_ENV_EXCEPTION(Status) (((Status) & AE_CODE_MASK) == AE_CODE_ENVIRONMENTAL) +#define ACPI_AML_EXCEPTION(Status) (((Status) & AE_CODE_MASK) == AE_CODE_AML) +#define ACPI_PROG_EXCEPTION(Status) (((Status) & AE_CODE_MASK) == AE_CODE_PROGRAMMER) +#define ACPI_TABLE_EXCEPTION(Status) (((Status) & AE_CODE_MASK) == AE_CODE_ACPI_TABLES) +#define ACPI_CNTL_EXCEPTION(Status) (((Status) & AE_CODE_MASK) == AE_CODE_CONTROL) /* diff --git a/source/include/acpixf.h b/source/include/acpixf.h index df45d2dc3ca8..866f22f9d78c 100644 --- a/source/include/acpixf.h +++ b/source/include/acpixf.h @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20201113 +#define ACPI_CA_VERSION 0x20201217 #include "acconfig.h" #include "actypes.h" diff --git a/source/include/actypes.h b/source/include/actypes.h index 48388c2198ed..1f0a189ab4ba 100644 --- a/source/include/actypes.h +++ b/source/include/actypes.h @@ -1537,5 +1537,10 @@ typedef enum #define ACPI_OPT_END -1 +/* Definitions for explicit fallthrough */ + +#ifndef ACPI_FALLTHROUGH +#define ACPI_FALLTHROUGH do {} while(0) +#endif #endif /* __ACTYPES_H__ */ diff --git a/source/include/platform/acgcc.h b/source/include/platform/acgcc.h index 797fde3386cd..8743332561aa 100644 --- a/source/include/platform/acgcc.h +++ b/source/include/platform/acgcc.h @@ -196,4 +196,19 @@ typedef __builtin_va_list va_list; #define ACPI_USE_NATIVE_MATH64 +/* GCC did not support __has_attribute until 5.1. */ + +#ifndef __has_attribute +#define __has_attribute(x) 0 +#endif + +/* + * Explictly mark intentional explicit fallthrough to silence + * -Wimplicit-fallthrough in GCC 7.1+. + */ + +#if __has_attribute(__fallthrough__) +#define ACPI_FALLTHROUGH __attribute__((__fallthrough__)) +#endif + #endif /* __ACGCC_H__ */ diff --git a/source/tools/acpibin/abmain.c b/source/tools/acpibin/abmain.c index 613408143bb9..c928a1af9333 100644 --- a/source/tools/acpibin/abmain.c +++ b/source/tools/acpibin/abmain.c @@ -234,7 +234,7 @@ main ( AbGbl_DisplayAllMiscompares = TRUE; - /* Fallthrough */ + ACPI_FALLTHROUGH; case 'c': /* Compare Files */ diff --git a/source/tools/acpihelp/ahaml.c b/source/tools/acpihelp/ahaml.c index 83cd86bd900a..f3d1428c2498 100644 --- a/source/tools/acpihelp/ahaml.c +++ b/source/tools/acpihelp/ahaml.c @@ -215,9 +215,9 @@ AhFindAmlOpcode ( } } - if (!Found) + if (!Found && Name) { - printf ("%s, no matching AML operators\n", Name); + printf ("%s, no matching AML opcodes\n", Name); } } diff --git a/source/tools/acpihelp/ahdecode.c b/source/tools/acpihelp/ahdecode.c index b72db2a800d2..d573ac06ed68 100644 --- a/source/tools/acpihelp/ahdecode.c +++ b/source/tools/acpihelp/ahdecode.c @@ -377,7 +377,7 @@ AhDoSpecialNames ( case 'E': if (Name[2] == 'J') { - if (isdigit (Name[3]) || (Name[3] == 'X')) + if (isdigit ((int) Name[3]) || (Name[3] == 'X')) { /* _EJx */ @@ -386,12 +386,12 @@ AhDoSpecialNames ( } } - /* Fallthrough */ + ACPI_FALLTHROUGH; case 'L': case 'Q': case 'W': - if ((isxdigit (Name[2]) && isxdigit (Name[3])) + if ((isxdigit ((int) Name[2]) && isxdigit ((int) Name[3])) || ((Name[2] == 'X') && (Name[3] == 'X'))) { @@ -405,7 +405,7 @@ AhDoSpecialNames ( case 'A': if ((Name[2] == 'C') || (Name[2] == 'L')) { - if (isdigit (Name[3]) || (Name[3] == 'X')) + if (isdigit ((int) Name[3]) || (Name[3] == 'X')) { /* _ACx or _ALx */ From a61ec1492c58c40bd0d968794c380668c157e2ef Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Tue, 5 Jan 2021 22:13:30 -0500 Subject: [PATCH 02/10] Import ACPICA 20210105. --- changes.txt | 21 +++++++ source/common/acfileio.c | 2 +- source/common/acgetline.c | 2 +- source/common/adfile.c | 2 +- source/common/adisasm.c | 2 +- source/common/adwalk.c | 2 +- source/common/ahids.c | 2 +- source/common/ahpredef.c | 2 +- source/common/ahtable.c | 4 +- source/common/ahuuids.c | 2 +- source/common/cmfsize.c | 2 +- source/common/dmextern.c | 2 +- source/common/dmrestag.c | 2 +- source/common/dmswitch.c | 2 +- source/common/dmtable.c | 4 +- source/common/dmtables.c | 2 +- source/common/dmtbdump.c | 2 +- source/common/dmtbdump1.c | 2 +- source/common/dmtbdump2.c | 55 +------------------ source/common/dmtbdump3.c | 55 +------------------ source/common/dmtbinfo.c | 2 +- source/common/dmtbinfo1.c | 2 +- source/common/dmtbinfo2.c | 24 +------- source/common/dmtbinfo3.c | 23 +------- source/common/getopt.c | 2 +- source/compiler/aslallocate.c | 2 +- source/compiler/aslanalyze.c | 2 +- source/compiler/aslascii.c | 2 +- source/compiler/aslbtypes.c | 2 +- source/compiler/aslcache.c | 2 +- source/compiler/aslcodegen.c | 2 +- source/compiler/aslcompile.c | 2 +- source/compiler/aslcompiler.h | 2 +- source/compiler/aslcompiler.l | 2 +- source/compiler/aslcstyle.y | 2 +- source/compiler/asldebug.c | 2 +- source/compiler/asldefine.h | 2 +- source/compiler/aslerror.c | 2 +- source/compiler/aslexternal.c | 2 +- source/compiler/aslfileio.c | 2 +- source/compiler/aslfiles.c | 2 +- source/compiler/aslfold.c | 2 +- source/compiler/aslglobal.h | 2 +- source/compiler/aslhelp.c | 2 +- source/compiler/aslhelpers.y | 2 +- source/compiler/aslhex.c | 2 +- source/compiler/aslkeywords.y | 2 +- source/compiler/asllength.c | 2 +- source/compiler/asllisting.c | 2 +- source/compiler/asllistsup.c | 2 +- source/compiler/aslload.c | 2 +- source/compiler/asllookup.c | 2 +- source/compiler/aslmain.c | 2 +- source/compiler/aslmap.c | 2 +- source/compiler/aslmapenter.c | 2 +- source/compiler/aslmapoutput.c | 2 +- source/compiler/aslmaputils.c | 2 +- source/compiler/aslmessages.c | 2 +- source/compiler/aslmessages.h | 2 +- source/compiler/aslmethod.c | 2 +- source/compiler/aslnamesp.c | 2 +- source/compiler/asloffset.c | 2 +- source/compiler/aslopcodes.c | 2 +- source/compiler/asloperands.c | 2 +- source/compiler/aslopt.c | 2 +- source/compiler/asloptions.c | 2 +- source/compiler/aslparseop.c | 2 +- source/compiler/aslparser.y | 2 +- source/compiler/aslpld.c | 2 +- source/compiler/aslpredef.c | 2 +- source/compiler/aslprepkg.c | 2 +- source/compiler/aslprimaries.y | 2 +- source/compiler/aslprintf.c | 2 +- source/compiler/aslprune.c | 2 +- source/compiler/aslresource.c | 2 +- source/compiler/aslresources.y | 2 +- source/compiler/aslrestype1.c | 2 +- source/compiler/aslrestype1i.c | 2 +- source/compiler/aslrestype2.c | 2 +- source/compiler/aslrestype2d.c | 2 +- source/compiler/aslrestype2e.c | 2 +- source/compiler/aslrestype2q.c | 2 +- source/compiler/aslrestype2s.c | 2 +- source/compiler/aslrestype2w.c | 2 +- source/compiler/aslrules.y | 2 +- source/compiler/aslstartup.c | 2 +- source/compiler/aslstubs.c | 2 +- source/compiler/aslsupport.l | 2 +- source/compiler/aslsupport.y | 2 +- source/compiler/asltokens.y | 2 +- source/compiler/asltransform.c | 2 +- source/compiler/asltree.c | 2 +- source/compiler/asltypes.h | 2 +- source/compiler/asltypes.y | 2 +- source/compiler/aslutils.c | 2 +- source/compiler/asluuid.c | 2 +- source/compiler/aslwalks.c | 2 +- source/compiler/aslxref.c | 2 +- source/compiler/aslxrefout.c | 2 +- source/compiler/cvcompiler.c | 2 +- source/compiler/cvdisasm.c | 2 +- source/compiler/cvparser.c | 2 +- source/compiler/dtcompile.c | 2 +- source/compiler/dtcompiler.h | 12 +--- source/compiler/dtcompilerparser.l | 2 +- source/compiler/dtcompilerparser.y | 2 +- source/compiler/dtexpress.c | 2 +- source/compiler/dtfield.c | 2 +- source/compiler/dtio.c | 2 +- source/compiler/dtparser.l | 2 +- source/compiler/dtparser.y | 2 +- source/compiler/dtsubtable.c | 2 +- source/compiler/dttable.c | 2 +- source/compiler/dttable1.c | 2 +- source/compiler/dttable2.c | 52 +----------------- source/compiler/dttemplate.c | 2 +- source/compiler/dttemplate.h | 29 +--------- source/compiler/dtutils.c | 2 +- source/compiler/preprocess.h | 2 +- source/compiler/prexpress.c | 2 +- source/compiler/prmacros.c | 2 +- source/compiler/prparser.l | 2 +- source/compiler/prparser.y | 2 +- source/compiler/prscan.c | 2 +- source/compiler/prutils.c | 2 +- source/components/debugger/dbcmds.c | 2 +- source/components/debugger/dbconvert.c | 2 +- source/components/debugger/dbdisply.c | 2 +- source/components/debugger/dbexec.c | 2 +- source/components/debugger/dbfileio.c | 2 +- source/components/debugger/dbhistry.c | 2 +- source/components/debugger/dbinput.c | 2 +- source/components/debugger/dbmethod.c | 2 +- source/components/debugger/dbnames.c | 2 +- source/components/debugger/dbobject.c | 2 +- source/components/debugger/dbstats.c | 2 +- source/components/debugger/dbtest.c | 2 +- source/components/debugger/dbutils.c | 2 +- source/components/debugger/dbxface.c | 2 +- source/components/disassembler/dmbuffer.c | 2 +- source/components/disassembler/dmcstyle.c | 2 +- source/components/disassembler/dmdeferred.c | 2 +- source/components/disassembler/dmnames.c | 2 +- source/components/disassembler/dmopcode.c | 2 +- source/components/disassembler/dmresrc.c | 2 +- source/components/disassembler/dmresrcl.c | 2 +- source/components/disassembler/dmresrcl2.c | 2 +- source/components/disassembler/dmresrcs.c | 2 +- source/components/disassembler/dmutils.c | 2 +- source/components/disassembler/dmwalk.c | 2 +- source/components/dispatcher/dsargs.c | 2 +- source/components/dispatcher/dscontrol.c | 2 +- source/components/dispatcher/dsdebug.c | 2 +- source/components/dispatcher/dsfield.c | 2 +- source/components/dispatcher/dsinit.c | 2 +- source/components/dispatcher/dsmethod.c | 2 +- source/components/dispatcher/dsmthdat.c | 2 +- source/components/dispatcher/dsobject.c | 2 +- source/components/dispatcher/dsopcode.c | 2 +- source/components/dispatcher/dspkginit.c | 2 +- source/components/dispatcher/dsutils.c | 2 +- source/components/dispatcher/dswexec.c | 2 +- source/components/dispatcher/dswload.c | 2 +- source/components/dispatcher/dswload2.c | 2 +- source/components/dispatcher/dswscope.c | 2 +- source/components/dispatcher/dswstate.c | 2 +- source/components/events/evevent.c | 2 +- source/components/events/evglock.c | 2 +- source/components/events/evgpe.c | 2 +- source/components/events/evgpeblk.c | 2 +- source/components/events/evgpeinit.c | 2 +- source/components/events/evgpeutil.c | 2 +- source/components/events/evhandler.c | 2 +- source/components/events/evmisc.c | 2 +- source/components/events/evregion.c | 2 +- source/components/events/evrgnini.c | 2 +- source/components/events/evsci.c | 2 +- source/components/events/evxface.c | 2 +- source/components/events/evxfevnt.c | 2 +- source/components/events/evxfgpe.c | 2 +- source/components/events/evxfregn.c | 2 +- source/components/executer/exconcat.c | 2 +- source/components/executer/exconfig.c | 2 +- source/components/executer/exconvrt.c | 2 +- source/components/executer/excreate.c | 2 +- source/components/executer/exdebug.c | 2 +- source/components/executer/exdump.c | 2 +- source/components/executer/exfield.c | 2 +- source/components/executer/exfldio.c | 2 +- source/components/executer/exmisc.c | 2 +- source/components/executer/exmutex.c | 2 +- source/components/executer/exnames.c | 2 +- source/components/executer/exoparg1.c | 2 +- source/components/executer/exoparg2.c | 2 +- source/components/executer/exoparg3.c | 2 +- source/components/executer/exoparg6.c | 2 +- source/components/executer/exprep.c | 2 +- source/components/executer/exregion.c | 2 +- source/components/executer/exresnte.c | 2 +- source/components/executer/exresolv.c | 2 +- source/components/executer/exresop.c | 2 +- source/components/executer/exserial.c | 2 +- source/components/executer/exstore.c | 2 +- source/components/executer/exstoren.c | 2 +- source/components/executer/exstorob.c | 2 +- source/components/executer/exsystem.c | 2 +- source/components/executer/extrace.c | 2 +- source/components/executer/exutils.c | 2 +- source/components/hardware/hwacpi.c | 2 +- source/components/hardware/hwesleep.c | 2 +- source/components/hardware/hwgpe.c | 2 +- source/components/hardware/hwpci.c | 2 +- source/components/hardware/hwregs.c | 2 +- source/components/hardware/hwsleep.c | 2 +- source/components/hardware/hwtimer.c | 2 +- source/components/hardware/hwvalid.c | 2 +- source/components/hardware/hwxface.c | 2 +- source/components/hardware/hwxfsleep.c | 2 +- source/components/namespace/nsaccess.c | 2 +- source/components/namespace/nsalloc.c | 2 +- source/components/namespace/nsarguments.c | 2 +- source/components/namespace/nsconvert.c | 2 +- source/components/namespace/nsdump.c | 2 +- source/components/namespace/nsdumpdv.c | 2 +- source/components/namespace/nseval.c | 2 +- source/components/namespace/nsinit.c | 2 +- source/components/namespace/nsload.c | 2 +- source/components/namespace/nsnames.c | 2 +- source/components/namespace/nsobject.c | 2 +- source/components/namespace/nsparse.c | 2 +- source/components/namespace/nspredef.c | 2 +- source/components/namespace/nsprepkg.c | 2 +- source/components/namespace/nsrepair.c | 2 +- source/components/namespace/nsrepair2.c | 2 +- source/components/namespace/nssearch.c | 2 +- source/components/namespace/nsutils.c | 2 +- source/components/namespace/nswalk.c | 2 +- source/components/namespace/nsxfeval.c | 2 +- source/components/namespace/nsxfname.c | 2 +- source/components/namespace/nsxfobj.c | 2 +- source/components/parser/psargs.c | 2 +- source/components/parser/psloop.c | 2 +- source/components/parser/psobject.c | 2 +- source/components/parser/psopcode.c | 2 +- source/components/parser/psopinfo.c | 2 +- source/components/parser/psparse.c | 2 +- source/components/parser/psscope.c | 2 +- source/components/parser/pstree.c | 2 +- source/components/parser/psutils.c | 2 +- source/components/parser/pswalk.c | 2 +- source/components/parser/psxface.c | 2 +- source/components/resources/rsaddr.c | 2 +- source/components/resources/rscalc.c | 2 +- source/components/resources/rscreate.c | 2 +- source/components/resources/rsdump.c | 2 +- source/components/resources/rsdumpinfo.c | 2 +- source/components/resources/rsinfo.c | 2 +- source/components/resources/rsio.c | 2 +- source/components/resources/rsirq.c | 2 +- source/components/resources/rslist.c | 2 +- source/components/resources/rsmemory.c | 2 +- source/components/resources/rsmisc.c | 2 +- source/components/resources/rsserial.c | 2 +- source/components/resources/rsutils.c | 2 +- source/components/resources/rsxface.c | 2 +- source/components/tables/tbdata.c | 2 +- source/components/tables/tbfadt.c | 2 +- source/components/tables/tbfind.c | 2 +- source/components/tables/tbinstal.c | 2 +- source/components/tables/tbprint.c | 2 +- source/components/tables/tbutils.c | 2 +- source/components/tables/tbxface.c | 2 +- source/components/tables/tbxfload.c | 2 +- source/components/tables/tbxfroot.c | 2 +- source/components/utilities/utaddress.c | 2 +- source/components/utilities/utalloc.c | 2 +- source/components/utilities/utascii.c | 2 +- source/components/utilities/utbuffer.c | 2 +- source/components/utilities/utcache.c | 2 +- source/components/utilities/utclib.c | 2 +- source/components/utilities/utcopy.c | 2 +- source/components/utilities/utdebug.c | 2 +- source/components/utilities/utdecode.c | 2 +- source/components/utilities/utdelete.c | 2 +- source/components/utilities/uterror.c | 2 +- source/components/utilities/uteval.c | 2 +- source/components/utilities/utexcep.c | 2 +- source/components/utilities/utglobal.c | 2 +- source/components/utilities/uthex.c | 2 +- source/components/utilities/utids.c | 2 +- source/components/utilities/utinit.c | 2 +- source/components/utilities/utlock.c | 2 +- source/components/utilities/utmath.c | 2 +- source/components/utilities/utmisc.c | 2 +- source/components/utilities/utmutex.c | 2 +- source/components/utilities/utnonansi.c | 2 +- source/components/utilities/utobject.c | 2 +- source/components/utilities/utosi.c | 2 +- source/components/utilities/utownerid.c | 2 +- source/components/utilities/utpredef.c | 2 +- source/components/utilities/utprint.c | 2 +- source/components/utilities/utresdecode.c | 2 +- source/components/utilities/utresrc.c | 2 +- source/components/utilities/utstate.c | 2 +- source/components/utilities/utstring.c | 2 +- source/components/utilities/utstrsuppt.c | 2 +- source/components/utilities/utstrtoul64.c | 2 +- source/components/utilities/uttrack.c | 2 +- source/components/utilities/utuuid.c | 2 +- source/components/utilities/utxface.c | 2 +- source/components/utilities/utxferror.c | 2 +- source/components/utilities/utxfinit.c | 2 +- source/components/utilities/utxfmutex.c | 2 +- source/include/acapps.h | 4 +- source/include/acbuffer.h | 2 +- source/include/acclib.h | 2 +- source/include/accommon.h | 2 +- source/include/acconfig.h | 2 +- source/include/acconvert.h | 2 +- source/include/acdebug.h | 2 +- source/include/acdisasm.h | 14 +---- source/include/acdispat.h | 2 +- source/include/acevents.h | 2 +- source/include/acexcep.h | 2 +- source/include/acglobal.h | 2 +- source/include/achware.h | 2 +- source/include/acinterp.h | 2 +- source/include/aclocal.h | 2 +- source/include/acmacros.h | 2 +- source/include/acnames.h | 2 +- source/include/acnamesp.h | 2 +- source/include/acobject.h | 2 +- source/include/acopcode.h | 2 +- source/include/acoutput.h | 2 +- source/include/acparser.h | 2 +- source/include/acpi.h | 2 +- source/include/acpiosxf.h | 2 +- source/include/acpixf.h | 4 +- source/include/acpredef.h | 2 +- source/include/acresrc.h | 2 +- source/include/acrestyp.h | 2 +- source/include/acstruct.h | 2 +- source/include/actables.h | 2 +- source/include/actbinfo.h | 4 +- source/include/actbl.h | 2 +- source/include/actbl1.h | 2 +- source/include/actbl2.h | 31 +---------- source/include/actbl3.h | 30 +--------- source/include/actypes.h | 2 +- source/include/acutils.h | 2 +- source/include/acuuid.h | 2 +- source/include/amlcode.h | 2 +- source/include/amlresrc.h | 2 +- source/include/platform/accygwin.h | 2 +- source/include/platform/acdragonflyex.h | 2 +- source/include/platform/acefi.h | 2 +- source/include/platform/acefiex.h | 2 +- source/include/platform/acenv.h | 2 +- source/include/platform/acenvex.h | 2 +- source/include/platform/acfreebsd.h | 2 +- source/include/platform/acgcc.h | 2 +- source/include/platform/acgccex.h | 2 +- source/include/platform/achaiku.h | 2 +- source/include/platform/acintel.h | 2 +- source/include/platform/aclinux.h | 2 +- source/include/platform/aclinuxex.h | 2 +- source/include/platform/acmacosx.h | 2 +- source/include/platform/acmsvc.h | 2 +- source/include/platform/acmsvcex.h | 2 +- source/include/platform/acnetbsd.h | 2 +- source/include/platform/acos2.h | 2 +- source/include/platform/acqnx.h | 2 +- source/include/platform/acwin.h | 2 +- source/include/platform/acwin64.h | 2 +- source/os_specific/service_layers/osbsdtbl.c | 2 +- .../os_specific/service_layers/oslinuxtbl.c | 2 +- source/os_specific/service_layers/osunixdir.c | 2 +- source/os_specific/service_layers/osunixmap.c | 2 +- source/os_specific/service_layers/osunixxf.c | 2 +- source/os_specific/service_layers/oswindir.c | 2 +- source/os_specific/service_layers/oswintbl.c | 2 +- source/os_specific/service_layers/oswinxf.c | 2 +- source/tools/acpibin/abcompare.c | 2 +- source/tools/acpibin/abmain.c | 2 +- source/tools/acpibin/acpibin.h | 2 +- source/tools/acpidump/acpidump.h | 2 +- source/tools/acpidump/apdump.c | 2 +- source/tools/acpidump/apfiles.c | 2 +- source/tools/acpidump/apmain.c | 2 +- source/tools/acpiexec/aecommon.h | 2 +- source/tools/acpiexec/aeexception.c | 2 +- source/tools/acpiexec/aeexec.c | 2 +- source/tools/acpiexec/aehandlers.c | 2 +- source/tools/acpiexec/aeinitfile.c | 2 +- source/tools/acpiexec/aeinstall.c | 2 +- source/tools/acpiexec/aemain.c | 2 +- source/tools/acpiexec/aeregion.c | 2 +- source/tools/acpiexec/aetables.c | 2 +- source/tools/acpiexec/aetables.h | 2 +- source/tools/acpiexec/aetests.c | 2 +- source/tools/acpihelp/acpihelp.h | 2 +- source/tools/acpihelp/ahaml.c | 2 +- source/tools/acpihelp/ahamlops.c | 2 +- source/tools/acpihelp/ahasl.c | 2 +- source/tools/acpihelp/ahaslkey.c | 2 +- source/tools/acpihelp/ahaslops.c | 2 +- source/tools/acpihelp/ahdecode.c | 2 +- source/tools/acpihelp/ahgrammar.c | 2 +- source/tools/acpihelp/ahmain.c | 2 +- source/tools/acpisrc/acpisrc.h | 2 +- source/tools/acpisrc/ascase.c | 2 +- source/tools/acpisrc/asconvrt.c | 4 +- source/tools/acpisrc/asfile.c | 2 +- source/tools/acpisrc/asmain.c | 2 +- source/tools/acpisrc/asremove.c | 2 +- source/tools/acpisrc/astable.c | 12 ++-- source/tools/acpisrc/asutils.c | 2 +- source/tools/acpixtract/acpixtract.c | 2 +- source/tools/acpixtract/acpixtract.h | 2 +- source/tools/acpixtract/axmain.c | 2 +- source/tools/acpixtract/axutils.c | 2 +- source/tools/efihello/efihello.c | 2 +- source/tools/examples/examples.c | 2 +- source/tools/examples/examples.h | 2 +- source/tools/examples/exstubs.c | 2 +- source/tools/examples/extables.c | 2 +- 426 files changed, 452 insertions(+), 746 deletions(-) diff --git a/changes.txt b/changes.txt index d27547d31b76..e58f906382b5 100644 --- a/changes.txt +++ b/changes.txt @@ -1,3 +1,24 @@ +---------------------------------------- +05 January 2021. Summary of changes for version 20210105: + +This release is available at https://acpica.org/downloads + + +1) ACPICA kernel-resident subsystem: + +Updated all copyrights to 2021. This affects all ACPICA source code +modules. + +2) 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. + + ---------------------------------------- 17 December 2020. Summary of changes for version 20201217: diff --git a/source/common/acfileio.c b/source/common/acfileio.c index 64339c6e5153..628cf7a41b25 100644 --- a/source/common/acfileio.c +++ b/source/common/acfileio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/acgetline.c b/source/common/acgetline.c index e1ddaa69c703..88479d619a64 100644 --- a/source/common/acgetline.c +++ b/source/common/acgetline.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/adfile.c b/source/common/adfile.c index f5063a3fcc72..db6bcabc1efa 100644 --- a/source/common/adfile.c +++ b/source/common/adfile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/adisasm.c b/source/common/adisasm.c index 015765ff5820..27a175a626b0 100644 --- a/source/common/adisasm.c +++ b/source/common/adisasm.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/adwalk.c b/source/common/adwalk.c index 008c95c22188..c4d149e3d4d6 100644 --- a/source/common/adwalk.c +++ b/source/common/adwalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/ahids.c b/source/common/ahids.c index 38515a012834..1e6edaf711c1 100644 --- a/source/common/ahids.c +++ b/source/common/ahids.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/ahpredef.c b/source/common/ahpredef.c index 182a83ad4967..e6e2ffc75aa3 100644 --- a/source/common/ahpredef.c +++ b/source/common/ahpredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/ahtable.c b/source/common/ahtable.c index 32d5dedb96f1..ac3c416bb392 100644 --- a/source/common/ahtable.c +++ b/source/common/ahtable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License @@ -229,7 +229,6 @@ const AH_TABLE AcpiGbl_SupportedTables[] = {ACPI_SIG_MPST, "Memory Power State Table"}, {ACPI_SIG_MSCT, "Maximum System Characteristics Table"}, {ACPI_SIG_MSDM, "Microsoft Data Management table"}, - {ACPI_SIG_MTMR, "MID Timer Table"}, {ACPI_SIG_NFIT, "NVDIMM Firmware Interface Table"}, {ACPI_SIG_PCCT, "Platform Communications Channel Table"}, {ACPI_SIG_PDTT, "Platform Debug Trigger Table"}, @@ -252,7 +251,6 @@ const AH_TABLE AcpiGbl_SupportedTables[] = {ACPI_SIG_TCPA, "Trusted Computing Platform Alliance table"}, {ACPI_SIG_TPM2, "Trusted Platform Module hardware interface table"}, {ACPI_SIG_UEFI, "UEFI Boot Optimization Table"}, - {ACPI_SIG_VRTC, "Virtual Real-Time Clock Table"}, {ACPI_SIG_WAET, "Windows ACPI Emulated Devices Table"}, {ACPI_SIG_WDAT, "Watchdog Action Table"}, {ACPI_SIG_WDDT, "Watchdog Description Table"}, diff --git a/source/common/ahuuids.c b/source/common/ahuuids.c index 326ea3b355ac..427f91694233 100644 --- a/source/common/ahuuids.c +++ b/source/common/ahuuids.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/cmfsize.c b/source/common/cmfsize.c index 553e9a9ebd35..e0c66e31d780 100644 --- a/source/common/cmfsize.c +++ b/source/common/cmfsize.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmextern.c b/source/common/dmextern.c index e9d81b630791..36d586008cb6 100644 --- a/source/common/dmextern.c +++ b/source/common/dmextern.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmrestag.c b/source/common/dmrestag.c index fe6e74146d38..d8a044069c93 100644 --- a/source/common/dmrestag.c +++ b/source/common/dmrestag.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmswitch.c b/source/common/dmswitch.c index 5c49de102faa..2b894c65dcd5 100644 --- a/source/common/dmswitch.c +++ b/source/common/dmswitch.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtable.c b/source/common/dmtable.c index 5896b2f257af..3e4c6c34153c 100644 --- a/source/common/dmtable.c +++ b/source/common/dmtable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License @@ -509,7 +509,6 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = {ACPI_SIG_MPST, AcpiDmTableInfoMpst, AcpiDmDumpMpst, DtCompileMpst, TemplateMpst}, {ACPI_SIG_MSCT, NULL, AcpiDmDumpMsct, DtCompileMsct, TemplateMsct}, {ACPI_SIG_MSDM, NULL, AcpiDmDumpSlic, DtCompileSlic, TemplateMsdm}, - {ACPI_SIG_MTMR, NULL, AcpiDmDumpMtmr, DtCompileMtmr, TemplateMtmr}, {ACPI_SIG_NFIT, AcpiDmTableInfoNfit, AcpiDmDumpNfit, DtCompileNfit, TemplateNfit}, {ACPI_SIG_PCCT, AcpiDmTableInfoPcct, AcpiDmDumpPcct, DtCompilePcct, TemplatePcct}, {ACPI_SIG_PDTT, AcpiDmTableInfoPdtt, AcpiDmDumpPdtt, DtCompilePdtt, TemplatePdtt}, @@ -530,7 +529,6 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = {ACPI_SIG_TCPA, NULL, AcpiDmDumpTcpa, DtCompileTcpa, TemplateTcpa}, {ACPI_SIG_TPM2, AcpiDmTableInfoTpm2, AcpiDmDumpTpm2, DtCompileTpm2, TemplateTpm2}, {ACPI_SIG_UEFI, AcpiDmTableInfoUefi, NULL, DtCompileUefi, TemplateUefi}, - {ACPI_SIG_VRTC, AcpiDmTableInfoVrtc, AcpiDmDumpVrtc, DtCompileVrtc, TemplateVrtc}, {ACPI_SIG_WAET, AcpiDmTableInfoWaet, NULL, NULL, TemplateWaet}, {ACPI_SIG_WDAT, NULL, AcpiDmDumpWdat, DtCompileWdat, TemplateWdat}, {ACPI_SIG_WDDT, AcpiDmTableInfoWddt, NULL, NULL, TemplateWddt}, diff --git a/source/common/dmtables.c b/source/common/dmtables.c index ee18d26c9657..fa04e0c88979 100644 --- a/source/common/dmtables.c +++ b/source/common/dmtables.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbdump.c b/source/common/dmtbdump.c index d62cfdbd39f5..abeb06fa5c38 100644 --- a/source/common/dmtbdump.c +++ b/source/common/dmtbdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbdump1.c b/source/common/dmtbdump1.c index 0219dd2d3c79..72d667e9759a 100644 --- a/source/common/dmtbdump1.c +++ b/source/common/dmtbdump1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbdump2.c b/source/common/dmtbdump2.c index 45484825a1da..b8ece375a4f2 100644 --- a/source/common/dmtbdump2.c +++ b/source/common/dmtbdump2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License @@ -1114,59 +1114,6 @@ AcpiDmDumpMsct ( } -/******************************************************************************* - * - * FUNCTION: AcpiDmDumpMtmr - * - * PARAMETERS: Table - A MTMR table - * - * RETURN: None - * - * DESCRIPTION: Format the contents of a MTMR - * - ******************************************************************************/ - -void -AcpiDmDumpMtmr ( - ACPI_TABLE_HEADER *Table) -{ - ACPI_STATUS Status; - UINT32 Offset = sizeof (ACPI_TABLE_MTMR); - ACPI_MTMR_ENTRY *Subtable; - - - /* Main table */ - - Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMtmr); - if (ACPI_FAILURE (Status)) - { - return; - } - - /* Subtables */ - - Subtable = ACPI_ADD_PTR (ACPI_MTMR_ENTRY, Table, Offset); - while (Offset < Table->Length) - { - /* Common subtable header */ - - AcpiOsPrintf ("\n"); - Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, - sizeof (ACPI_MTMR_ENTRY), AcpiDmTableInfoMtmr0); - if (ACPI_FAILURE (Status)) - { - return; - } - - /* Point to next subtable */ - - Offset += sizeof (ACPI_MTMR_ENTRY); - Subtable = ACPI_ADD_PTR (ACPI_MTMR_ENTRY, Subtable, - sizeof (ACPI_MTMR_ENTRY)); - } -} - - /******************************************************************************* * * FUNCTION: AcpiDmDumpNfit diff --git a/source/common/dmtbdump3.c b/source/common/dmtbdump3.c index 7c6d2848ee74..fde8f7a884ab 100644 --- a/source/common/dmtbdump3.c +++ b/source/common/dmtbdump3.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License @@ -601,59 +601,6 @@ AcpiDmDumpTpm2 ( } -/******************************************************************************* - * - * FUNCTION: AcpiDmDumpVrtc - * - * PARAMETERS: Table - A VRTC table - * - * RETURN: None - * - * DESCRIPTION: Format the contents of a VRTC - * - ******************************************************************************/ - -void -AcpiDmDumpVrtc ( - ACPI_TABLE_HEADER *Table) -{ - ACPI_STATUS Status; - UINT32 Offset = sizeof (ACPI_TABLE_VRTC); - ACPI_VRTC_ENTRY *Subtable; - - - /* Main table */ - - Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoVrtc); - if (ACPI_FAILURE (Status)) - { - return; - } - - /* Subtables */ - - Subtable = ACPI_ADD_PTR (ACPI_VRTC_ENTRY, Table, Offset); - while (Offset < Table->Length) - { - /* Common subtable header */ - - AcpiOsPrintf ("\n"); - Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, - sizeof (ACPI_VRTC_ENTRY), AcpiDmTableInfoVrtc0); - if (ACPI_FAILURE (Status)) - { - return; - } - - /* Point to next subtable */ - - Offset += sizeof (ACPI_VRTC_ENTRY); - Subtable = ACPI_ADD_PTR (ACPI_VRTC_ENTRY, Subtable, - sizeof (ACPI_VRTC_ENTRY)); - } -} - - /******************************************************************************* * * FUNCTION: AcpiDmDumpWdat diff --git a/source/common/dmtbinfo.c b/source/common/dmtbinfo.c index ed9dd1bcff31..347f9d367b17 100644 --- a/source/common/dmtbinfo.c +++ b/source/common/dmtbinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbinfo1.c b/source/common/dmtbinfo1.c index 750e29d54c6f..5931c01e81d1 100644 --- a/source/common/dmtbinfo1.c +++ b/source/common/dmtbinfo1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbinfo2.c b/source/common/dmtbinfo2.c index c000a921ca68..0d61cb7a3231 100644 --- a/source/common/dmtbinfo2.c +++ b/source/common/dmtbinfo2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License @@ -909,28 +909,6 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[] = }; -/******************************************************************************* - * - * MTMR - MID Timer Table - * - ******************************************************************************/ - -ACPI_DMTABLE_INFO AcpiDmTableInfoMtmr[] = -{ - ACPI_DMT_TERMINATOR -}; - -/* MTMR Subtables - MTMR Entry */ - -ACPI_DMTABLE_INFO AcpiDmTableInfoMtmr0[] = -{ - {ACPI_DMT_GAS, ACPI_MTMR0_OFFSET (PhysicalAddress), "PhysicalAddress", 0}, - {ACPI_DMT_UINT32, ACPI_MTMR0_OFFSET (Frequency), "Frequency", 0}, - {ACPI_DMT_UINT32, ACPI_MTMR0_OFFSET (Irq), "IRQ", 0}, - ACPI_DMT_TERMINATOR -}; - - /******************************************************************************* * * NFIT - NVDIMM Firmware Interface Table and Subtables - (ACPI 6.0) diff --git a/source/common/dmtbinfo3.c b/source/common/dmtbinfo3.c index f4092c240171..99661d06a3e4 100644 --- a/source/common/dmtbinfo3.c +++ b/source/common/dmtbinfo3.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License @@ -526,27 +526,6 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[] = }; -/******************************************************************************* - * - * VRTC - Virtual Real Time Clock Table - * - ******************************************************************************/ - -ACPI_DMTABLE_INFO AcpiDmTableInfoVrtc[] = -{ - ACPI_DMT_TERMINATOR -}; - -/* VRTC Subtables - VRTC Entry */ - -ACPI_DMTABLE_INFO AcpiDmTableInfoVrtc0[] = -{ - {ACPI_DMT_GAS, ACPI_VRTC0_OFFSET (PhysicalAddress), "PhysicalAddress", 0}, - {ACPI_DMT_UINT32, ACPI_VRTC0_OFFSET (Irq), "IRQ", 0}, - ACPI_DMT_TERMINATOR -}; - - /******************************************************************************* * * WAET - Windows ACPI Emulated devices Table diff --git a/source/common/getopt.c b/source/common/getopt.c index ca8e04a10adf..766ab8e35448 100644 --- a/source/common/getopt.c +++ b/source/common/getopt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslallocate.c b/source/compiler/aslallocate.c index e0187bfc488b..4007687b2326 100644 --- a/source/compiler/aslallocate.c +++ b/source/compiler/aslallocate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslanalyze.c b/source/compiler/aslanalyze.c index d2c40eababb5..c54ff8a215e4 100644 --- a/source/compiler/aslanalyze.c +++ b/source/compiler/aslanalyze.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslascii.c b/source/compiler/aslascii.c index c4d250eda9d3..d02ca80cb815 100644 --- a/source/compiler/aslascii.c +++ b/source/compiler/aslascii.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslbtypes.c b/source/compiler/aslbtypes.c index 4e579c7eaf73..ebb798a7d8b5 100644 --- a/source/compiler/aslbtypes.c +++ b/source/compiler/aslbtypes.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcache.c b/source/compiler/aslcache.c index 3de3bbf532f6..51e6f4c46f86 100644 --- a/source/compiler/aslcache.c +++ b/source/compiler/aslcache.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcodegen.c b/source/compiler/aslcodegen.c index ba0384e8452b..757886893b42 100644 --- a/source/compiler/aslcodegen.c +++ b/source/compiler/aslcodegen.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcompile.c b/source/compiler/aslcompile.c index 787a54444475..ffb7496dd6fe 100644 --- a/source/compiler/aslcompile.c +++ b/source/compiler/aslcompile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcompiler.h b/source/compiler/aslcompiler.h index 82d777d843b9..3cd56d1f36b8 100644 --- a/source/compiler/aslcompiler.h +++ b/source/compiler/aslcompiler.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcompiler.l b/source/compiler/aslcompiler.l index f77dfc0d7242..629b99727366 100644 --- a/source/compiler/aslcompiler.l +++ b/source/compiler/aslcompiler.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcstyle.y b/source/compiler/aslcstyle.y index 6e73c7033f40..2f032fac9d2f 100644 --- a/source/compiler/aslcstyle.y +++ b/source/compiler/aslcstyle.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asldebug.c b/source/compiler/asldebug.c index 9c02257e3fc4..636fe0518209 100644 --- a/source/compiler/asldebug.c +++ b/source/compiler/asldebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asldefine.h b/source/compiler/asldefine.h index 2627a58a06cf..9149ff60377b 100644 --- a/source/compiler/asldefine.h +++ b/source/compiler/asldefine.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslerror.c b/source/compiler/aslerror.c index 51c8c9b2ba89..6c684f2f2b53 100644 --- a/source/compiler/aslerror.c +++ b/source/compiler/aslerror.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslexternal.c b/source/compiler/aslexternal.c index a05ba118df0d..80edfd2bf9fd 100644 --- a/source/compiler/aslexternal.c +++ b/source/compiler/aslexternal.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslfileio.c b/source/compiler/aslfileio.c index 60b911b2d297..a55b2dbc293a 100644 --- a/source/compiler/aslfileio.c +++ b/source/compiler/aslfileio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslfiles.c b/source/compiler/aslfiles.c index 097aa71a3fe1..a93417c6de5b 100644 --- a/source/compiler/aslfiles.c +++ b/source/compiler/aslfiles.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslfold.c b/source/compiler/aslfold.c index 6bb4cde8724a..d9cc88035efb 100644 --- a/source/compiler/aslfold.c +++ b/source/compiler/aslfold.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslglobal.h b/source/compiler/aslglobal.h index 231ed87677bd..540d7dd9d361 100644 --- a/source/compiler/aslglobal.h +++ b/source/compiler/aslglobal.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslhelp.c b/source/compiler/aslhelp.c index 97a2ab05b733..3131b9db037d 100644 --- a/source/compiler/aslhelp.c +++ b/source/compiler/aslhelp.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslhelpers.y b/source/compiler/aslhelpers.y index fbee34c507a1..0b3029046931 100644 --- a/source/compiler/aslhelpers.y +++ b/source/compiler/aslhelpers.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslhex.c b/source/compiler/aslhex.c index af0c8d941aaf..95b364ff2268 100644 --- a/source/compiler/aslhex.c +++ b/source/compiler/aslhex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslkeywords.y b/source/compiler/aslkeywords.y index 8b45622946f2..54314e64504e 100644 --- a/source/compiler/aslkeywords.y +++ b/source/compiler/aslkeywords.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asllength.c b/source/compiler/asllength.c index 6cd714a9157e..a2a550949e3b 100644 --- a/source/compiler/asllength.c +++ b/source/compiler/asllength.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asllisting.c b/source/compiler/asllisting.c index 0fa4047a7fb4..6ed161390c43 100644 --- a/source/compiler/asllisting.c +++ b/source/compiler/asllisting.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asllistsup.c b/source/compiler/asllistsup.c index dcd04cd0ce45..60d304230596 100644 --- a/source/compiler/asllistsup.c +++ b/source/compiler/asllistsup.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslload.c b/source/compiler/aslload.c index c9fae99a9dd6..f73135f336b0 100644 --- a/source/compiler/aslload.c +++ b/source/compiler/aslload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asllookup.c b/source/compiler/asllookup.c index b74d80496866..50f087d705ed 100644 --- a/source/compiler/asllookup.c +++ b/source/compiler/asllookup.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmain.c b/source/compiler/aslmain.c index 7db26d125286..1df36a2b312d 100644 --- a/source/compiler/aslmain.c +++ b/source/compiler/aslmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmap.c b/source/compiler/aslmap.c index 9a3ea588ba91..ed27a155c809 100644 --- a/source/compiler/aslmap.c +++ b/source/compiler/aslmap.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmapenter.c b/source/compiler/aslmapenter.c index 36b76566b1be..7ade1a31dbba 100644 --- a/source/compiler/aslmapenter.c +++ b/source/compiler/aslmapenter.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmapoutput.c b/source/compiler/aslmapoutput.c index 7cde08c2866a..0fe7b1173dc9 100644 --- a/source/compiler/aslmapoutput.c +++ b/source/compiler/aslmapoutput.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmaputils.c b/source/compiler/aslmaputils.c index 49cff797f747..c376bc0a2888 100644 --- a/source/compiler/aslmaputils.c +++ b/source/compiler/aslmaputils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmessages.c b/source/compiler/aslmessages.c index d883bc581d77..87ebc48e4394 100644 --- a/source/compiler/aslmessages.c +++ b/source/compiler/aslmessages.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmessages.h b/source/compiler/aslmessages.h index 2313d212a4ef..a4842cdf2166 100644 --- a/source/compiler/aslmessages.h +++ b/source/compiler/aslmessages.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmethod.c b/source/compiler/aslmethod.c index 9f5b753b2d17..e9aa7f2dd0c2 100644 --- a/source/compiler/aslmethod.c +++ b/source/compiler/aslmethod.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslnamesp.c b/source/compiler/aslnamesp.c index 0a099a0b9b1e..7dc9ed7e5152 100644 --- a/source/compiler/aslnamesp.c +++ b/source/compiler/aslnamesp.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asloffset.c b/source/compiler/asloffset.c index 65cdffc87d47..5f2661e42107 100644 --- a/source/compiler/asloffset.c +++ b/source/compiler/asloffset.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslopcodes.c b/source/compiler/aslopcodes.c index b2a0236503d7..f5cb02146066 100644 --- a/source/compiler/aslopcodes.c +++ b/source/compiler/aslopcodes.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asloperands.c b/source/compiler/asloperands.c index ac2ea1fb1e59..bd4a4d8579fd 100644 --- a/source/compiler/asloperands.c +++ b/source/compiler/asloperands.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslopt.c b/source/compiler/aslopt.c index 88f9a2919f5a..0246b312a9f6 100644 --- a/source/compiler/aslopt.c +++ b/source/compiler/aslopt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asloptions.c b/source/compiler/asloptions.c index 4bf9465ba5b7..ab9daa4046d4 100644 --- a/source/compiler/asloptions.c +++ b/source/compiler/asloptions.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslparseop.c b/source/compiler/aslparseop.c index 6b17689d2e68..92eeb0fb6260 100644 --- a/source/compiler/aslparseop.c +++ b/source/compiler/aslparseop.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslparser.y b/source/compiler/aslparser.y index 5faccae38ce2..c91acedf9f38 100644 --- a/source/compiler/aslparser.y +++ b/source/compiler/aslparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslpld.c b/source/compiler/aslpld.c index 730976bdce20..0939c5c62d8c 100644 --- a/source/compiler/aslpld.c +++ b/source/compiler/aslpld.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslpredef.c b/source/compiler/aslpredef.c index 1ee4fd495e5b..aa1a95704dfe 100644 --- a/source/compiler/aslpredef.c +++ b/source/compiler/aslpredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprepkg.c b/source/compiler/aslprepkg.c index 35b947c84bdf..380c48b01ab0 100644 --- a/source/compiler/aslprepkg.c +++ b/source/compiler/aslprepkg.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprimaries.y b/source/compiler/aslprimaries.y index 68fdbe840de9..dd1310b07469 100644 --- a/source/compiler/aslprimaries.y +++ b/source/compiler/aslprimaries.y @@ -11,7 +11,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprintf.c b/source/compiler/aslprintf.c index a7859f43ec43..62d411e16c59 100644 --- a/source/compiler/aslprintf.c +++ b/source/compiler/aslprintf.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprune.c b/source/compiler/aslprune.c index 580a6ada1141..78b2e34f5c61 100644 --- a/source/compiler/aslprune.c +++ b/source/compiler/aslprune.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslresource.c b/source/compiler/aslresource.c index d1936a5b7de7..434a74c68843 100644 --- a/source/compiler/aslresource.c +++ b/source/compiler/aslresource.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslresources.y b/source/compiler/aslresources.y index 4faba90b5ab1..00a0958b3a93 100644 --- a/source/compiler/aslresources.y +++ b/source/compiler/aslresources.y @@ -11,7 +11,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype1.c b/source/compiler/aslrestype1.c index 4dff4607d073..6751444a2afc 100644 --- a/source/compiler/aslrestype1.c +++ b/source/compiler/aslrestype1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype1i.c b/source/compiler/aslrestype1i.c index 9e9bc20968cb..c880a7400221 100644 --- a/source/compiler/aslrestype1i.c +++ b/source/compiler/aslrestype1i.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2.c b/source/compiler/aslrestype2.c index 93236853a668..4c308aaacf4f 100644 --- a/source/compiler/aslrestype2.c +++ b/source/compiler/aslrestype2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2d.c b/source/compiler/aslrestype2d.c index 394530ae3083..c1cafe207d73 100644 --- a/source/compiler/aslrestype2d.c +++ b/source/compiler/aslrestype2d.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2e.c b/source/compiler/aslrestype2e.c index b188994d321c..63db785270e2 100644 --- a/source/compiler/aslrestype2e.c +++ b/source/compiler/aslrestype2e.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2q.c b/source/compiler/aslrestype2q.c index 02db0ab3452f..ec64da2b3616 100644 --- a/source/compiler/aslrestype2q.c +++ b/source/compiler/aslrestype2q.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2s.c b/source/compiler/aslrestype2s.c index c075c89c97ae..8539edea8c9e 100644 --- a/source/compiler/aslrestype2s.c +++ b/source/compiler/aslrestype2s.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2w.c b/source/compiler/aslrestype2w.c index b2113f4c950c..3c3fed7b06a7 100644 --- a/source/compiler/aslrestype2w.c +++ b/source/compiler/aslrestype2w.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrules.y b/source/compiler/aslrules.y index e7e678d2058e..a944308e39c2 100644 --- a/source/compiler/aslrules.y +++ b/source/compiler/aslrules.y @@ -11,7 +11,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslstartup.c b/source/compiler/aslstartup.c index 522bca570f5a..97881e14d288 100644 --- a/source/compiler/aslstartup.c +++ b/source/compiler/aslstartup.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslstubs.c b/source/compiler/aslstubs.c index b4d609bff898..be3337ab8a99 100644 --- a/source/compiler/aslstubs.c +++ b/source/compiler/aslstubs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslsupport.l b/source/compiler/aslsupport.l index 282e4fbe7c37..a507e99b3327 100644 --- a/source/compiler/aslsupport.l +++ b/source/compiler/aslsupport.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslsupport.y b/source/compiler/aslsupport.y index 84aec3a3d74c..dfc427a9d796 100644 --- a/source/compiler/aslsupport.y +++ b/source/compiler/aslsupport.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltokens.y b/source/compiler/asltokens.y index 49c060a51738..788f4b8ca084 100644 --- a/source/compiler/asltokens.y +++ b/source/compiler/asltokens.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltransform.c b/source/compiler/asltransform.c index 67adf82ee287..dcab8b39c40a 100644 --- a/source/compiler/asltransform.c +++ b/source/compiler/asltransform.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltree.c b/source/compiler/asltree.c index 2e9bc086d21e..91db420f949a 100644 --- a/source/compiler/asltree.c +++ b/source/compiler/asltree.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltypes.h b/source/compiler/asltypes.h index 33c547e4e5e8..760995f59fea 100644 --- a/source/compiler/asltypes.h +++ b/source/compiler/asltypes.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltypes.y b/source/compiler/asltypes.y index 5c07c5df8e35..b68ca665b38b 100644 --- a/source/compiler/asltypes.y +++ b/source/compiler/asltypes.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslutils.c b/source/compiler/aslutils.c index 16fad62733f4..5dee45d91e04 100644 --- a/source/compiler/aslutils.c +++ b/source/compiler/aslutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asluuid.c b/source/compiler/asluuid.c index bbfaa549af42..c8dd4a464aa9 100644 --- a/source/compiler/asluuid.c +++ b/source/compiler/asluuid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslwalks.c b/source/compiler/aslwalks.c index 66e702640da2..8ee5122c21f1 100644 --- a/source/compiler/aslwalks.c +++ b/source/compiler/aslwalks.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslxref.c b/source/compiler/aslxref.c index 163799a8beea..ef99a971de5b 100644 --- a/source/compiler/aslxref.c +++ b/source/compiler/aslxref.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslxrefout.c b/source/compiler/aslxrefout.c index 64ccabf85145..843504a02543 100644 --- a/source/compiler/aslxrefout.c +++ b/source/compiler/aslxrefout.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/cvcompiler.c b/source/compiler/cvcompiler.c index 4102a6a7be33..633a31d893ff 100644 --- a/source/compiler/cvcompiler.c +++ b/source/compiler/cvcompiler.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/cvdisasm.c b/source/compiler/cvdisasm.c index db17867df9bc..be3378ba9ae4 100644 --- a/source/compiler/cvdisasm.c +++ b/source/compiler/cvdisasm.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/cvparser.c b/source/compiler/cvparser.c index 370b80361ce9..62d981fbdd1f 100644 --- a/source/compiler/cvparser.c +++ b/source/compiler/cvparser.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtcompile.c b/source/compiler/dtcompile.c index 7f47e062da03..84d8e5c1b629 100644 --- a/source/compiler/dtcompile.c +++ b/source/compiler/dtcompile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtcompiler.h b/source/compiler/dtcompiler.h index 18de92ff648c..7bc403ebb4b9 100644 --- a/source/compiler/dtcompiler.h +++ b/source/compiler/dtcompiler.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License @@ -645,10 +645,6 @@ ACPI_STATUS DtCompileMsct ( void **PFieldList); -ACPI_STATUS -DtCompileMtmr ( - void **PFieldList); - ACPI_STATUS DtCompileNfit ( void **PFieldList); @@ -709,10 +705,6 @@ ACPI_STATUS DtCompileUefi ( void **PFieldList); -ACPI_STATUS -DtCompileVrtc ( - void **PFieldList); - ACPI_STATUS DtCompileWdat ( void **PFieldList); @@ -765,7 +757,6 @@ extern const unsigned char TemplateMchi[]; extern const unsigned char TemplateMpst[]; extern const unsigned char TemplateMsct[]; extern const unsigned char TemplateMsdm[]; -extern const unsigned char TemplateMtmr[]; extern const unsigned char TemplateNfit[]; extern const unsigned char TemplatePcct[]; extern const unsigned char TemplatePdtt[]; @@ -786,7 +777,6 @@ extern const unsigned char TemplateStao[]; extern const unsigned char TemplateTcpa[]; extern const unsigned char TemplateTpm2[]; extern const unsigned char TemplateUefi[]; -extern const unsigned char TemplateVrtc[]; extern const unsigned char TemplateWaet[]; extern const unsigned char TemplateWdat[]; extern const unsigned char TemplateWddt[]; diff --git a/source/compiler/dtcompilerparser.l b/source/compiler/dtcompilerparser.l index ecc07c4847ed..bd128bed71ad 100644 --- a/source/compiler/dtcompilerparser.l +++ b/source/compiler/dtcompilerparser.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2018, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtcompilerparser.y b/source/compiler/dtcompilerparser.y index e97e2a90e1d7..3b1a67a0707a 100644 --- a/source/compiler/dtcompilerparser.y +++ b/source/compiler/dtcompilerparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2018, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtexpress.c b/source/compiler/dtexpress.c index 026bf7aa028a..c9705c9d0f7e 100644 --- a/source/compiler/dtexpress.c +++ b/source/compiler/dtexpress.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtfield.c b/source/compiler/dtfield.c index 9a5729cfe95e..ee7788e3b8a5 100644 --- a/source/compiler/dtfield.c +++ b/source/compiler/dtfield.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtio.c b/source/compiler/dtio.c index 3a509b296f49..781b2b8abc40 100644 --- a/source/compiler/dtio.c +++ b/source/compiler/dtio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtparser.l b/source/compiler/dtparser.l index 631921df8d2c..9d2e3afe4283 100644 --- a/source/compiler/dtparser.l +++ b/source/compiler/dtparser.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtparser.y b/source/compiler/dtparser.y index 55c5b821e7c6..1b6f6df6138f 100644 --- a/source/compiler/dtparser.y +++ b/source/compiler/dtparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtsubtable.c b/source/compiler/dtsubtable.c index 8d4a2e45eca5..6ea538e6c66b 100644 --- a/source/compiler/dtsubtable.c +++ b/source/compiler/dtsubtable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dttable.c b/source/compiler/dttable.c index 78393b0193a7..702c83ee2196 100644 --- a/source/compiler/dttable.c +++ b/source/compiler/dttable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dttable1.c b/source/compiler/dttable1.c index 33df4dc2c982..286ecaa7fee8 100644 --- a/source/compiler/dttable1.c +++ b/source/compiler/dttable1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dttable2.c b/source/compiler/dttable2.c index 48b05edd74be..732635bf4751 100644 --- a/source/compiler/dttable2.c +++ b/source/compiler/dttable2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License @@ -574,31 +574,6 @@ DtCompileMsct ( } -/****************************************************************************** - * - * FUNCTION: DtCompileMtmr - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile MTMR. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileMtmr ( - void **List) -{ - ACPI_STATUS Status; - - - Status = DtCompileTwoSubtables (List, - AcpiDmTableInfoMtmr, AcpiDmTableInfoMtmr0); - return (Status); -} - - /****************************************************************************** * * FUNCTION: DtCompileNfit @@ -2162,31 +2137,6 @@ DtCompileUefi ( } -/****************************************************************************** - * - * FUNCTION: DtCompileVrtc - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile VRTC. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileVrtc ( - void **List) -{ - ACPI_STATUS Status; - - - Status = DtCompileTwoSubtables (List, - AcpiDmTableInfoVrtc, AcpiDmTableInfoVrtc0); - return (Status); -} - - /****************************************************************************** * * FUNCTION: DtCompileWdat diff --git a/source/compiler/dttemplate.c b/source/compiler/dttemplate.c index 2262c745147d..8154abb58ec3 100644 --- a/source/compiler/dttemplate.c +++ b/source/compiler/dttemplate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dttemplate.h b/source/compiler/dttemplate.h index 4849adf464a9..ddbcce8ae066 100644 --- a/source/compiler/dttemplate.h +++ b/source/compiler/dttemplate.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License @@ -1006,20 +1006,6 @@ const unsigned char TemplateNfit[] = 0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* 00000178 "........" */ }; -const unsigned char TemplateMtmr[] = -{ - 0x4D,0x54,0x4D,0x52,0x4C,0x00,0x00,0x00, /* 00000000 "MTMRL..." */ - 0x01,0xB0,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ - 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */ - 0x03,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ - 0x17,0x01,0x13,0x20,0x00,0x20,0x00,0x03, /* 00000020 "... . .." */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000028 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000030 "........" */ - 0x00,0x20,0x00,0x03,0x00,0x00,0x00,0x00, /* 00000038 ". ......" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000040 "........" */ - 0x00,0x00,0x00,0x00 /* 00000048 "...." */ -}; - const unsigned char TemplatePcct[] = { 0x50,0x43,0x43,0x54,0x4e,0x02,0x00,0x00, /* 00000000 "PCCTN..." */ @@ -1464,19 +1450,6 @@ const unsigned char TemplateUefi[] = 0x0C,0x0D,0x0E,0x0F,0x00,0x00 /* 00000030 "......" */ }; -const unsigned char TemplateVrtc[] = -{ - 0x56,0x52,0x54,0x43,0x44,0x00,0x00,0x00, /* 00000000 "VRTCD..." */ - 0x01,0xEF,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ - 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */ - 0x03,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ - 0x17,0x01,0x13,0x20,0x00,0x08,0x00,0x00, /* 00000020 "... ...." */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000028 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00, /* 00000030 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */ - 0x00,0x00,0x00,0x00 /* 00000040 "...." */ -}; - const unsigned char TemplateWaet[] = { 0x57,0x41,0x45,0x54,0x28,0x00,0x00,0x00, /* 00000000 "WAET(..." */ diff --git a/source/compiler/dtutils.c b/source/compiler/dtutils.c index 55093a7676a6..a508b51c947b 100644 --- a/source/compiler/dtutils.c +++ b/source/compiler/dtutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/preprocess.h b/source/compiler/preprocess.h index e625b0761bf9..6343a49c1ff2 100644 --- a/source/compiler/preprocess.h +++ b/source/compiler/preprocess.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prexpress.c b/source/compiler/prexpress.c index e3a101eb4af6..db2e76ec87f9 100644 --- a/source/compiler/prexpress.c +++ b/source/compiler/prexpress.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prmacros.c b/source/compiler/prmacros.c index 2ded5d566228..ab1255f665eb 100644 --- a/source/compiler/prmacros.c +++ b/source/compiler/prmacros.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prparser.l b/source/compiler/prparser.l index 8752d3fcf59a..febcc3192541 100644 --- a/source/compiler/prparser.l +++ b/source/compiler/prparser.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prparser.y b/source/compiler/prparser.y index f01137516f8d..f7e052d910ee 100644 --- a/source/compiler/prparser.y +++ b/source/compiler/prparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prscan.c b/source/compiler/prscan.c index 346ee70c1cf4..7672ef895ef2 100644 --- a/source/compiler/prscan.c +++ b/source/compiler/prscan.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prutils.c b/source/compiler/prutils.c index ab6eeba59549..e793b4c470e7 100644 --- a/source/compiler/prutils.c +++ b/source/compiler/prutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbcmds.c b/source/components/debugger/dbcmds.c index 1272dbd65cd4..1b10f161ac0b 100644 --- a/source/components/debugger/dbcmds.c +++ b/source/components/debugger/dbcmds.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbconvert.c b/source/components/debugger/dbconvert.c index 87a937d88911..55307d0871d9 100644 --- a/source/components/debugger/dbconvert.c +++ b/source/components/debugger/dbconvert.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbdisply.c b/source/components/debugger/dbdisply.c index 75e3e6f8a09f..b434cdc6b834 100644 --- a/source/components/debugger/dbdisply.c +++ b/source/components/debugger/dbdisply.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbexec.c b/source/components/debugger/dbexec.c index 5fd05f5adae8..26cc73f98e32 100644 --- a/source/components/debugger/dbexec.c +++ b/source/components/debugger/dbexec.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbfileio.c b/source/components/debugger/dbfileio.c index 5a51ac777c9b..70b9650ac9ba 100644 --- a/source/components/debugger/dbfileio.c +++ b/source/components/debugger/dbfileio.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbhistry.c b/source/components/debugger/dbhistry.c index b9b2ed8727ea..d5ae07f9edac 100644 --- a/source/components/debugger/dbhistry.c +++ b/source/components/debugger/dbhistry.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbinput.c b/source/components/debugger/dbinput.c index 15e9f351b122..d0b77e7729a2 100644 --- a/source/components/debugger/dbinput.c +++ b/source/components/debugger/dbinput.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbmethod.c b/source/components/debugger/dbmethod.c index d259a3efa6bf..4e9a8b53c924 100644 --- a/source/components/debugger/dbmethod.c +++ b/source/components/debugger/dbmethod.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbnames.c b/source/components/debugger/dbnames.c index f680e1e708ea..b7b45ecf37f1 100644 --- a/source/components/debugger/dbnames.c +++ b/source/components/debugger/dbnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbobject.c b/source/components/debugger/dbobject.c index a5af85d6beab..5b98319a505a 100644 --- a/source/components/debugger/dbobject.c +++ b/source/components/debugger/dbobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbstats.c b/source/components/debugger/dbstats.c index 258e2ebc400f..7cca32f76f0f 100644 --- a/source/components/debugger/dbstats.c +++ b/source/components/debugger/dbstats.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbtest.c b/source/components/debugger/dbtest.c index 56d3cd74a93c..cb9c721419e6 100644 --- a/source/components/debugger/dbtest.c +++ b/source/components/debugger/dbtest.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbutils.c b/source/components/debugger/dbutils.c index 128304e93fc8..338d1fc28b5a 100644 --- a/source/components/debugger/dbutils.c +++ b/source/components/debugger/dbutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbxface.c b/source/components/debugger/dbxface.c index f84db8c9e9a9..472e30df0285 100644 --- a/source/components/debugger/dbxface.c +++ b/source/components/debugger/dbxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmbuffer.c b/source/components/disassembler/dmbuffer.c index 810f727fa8fa..208fb84f84ae 100644 --- a/source/components/disassembler/dmbuffer.c +++ b/source/components/disassembler/dmbuffer.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmcstyle.c b/source/components/disassembler/dmcstyle.c index c8541aaf4d7a..991b87141435 100644 --- a/source/components/disassembler/dmcstyle.c +++ b/source/components/disassembler/dmcstyle.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmdeferred.c b/source/components/disassembler/dmdeferred.c index d947d01190c9..23e1c58fa3d9 100644 --- a/source/components/disassembler/dmdeferred.c +++ b/source/components/disassembler/dmdeferred.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmnames.c b/source/components/disassembler/dmnames.c index c596ab4225f5..85da99645186 100644 --- a/source/components/disassembler/dmnames.c +++ b/source/components/disassembler/dmnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmopcode.c b/source/components/disassembler/dmopcode.c index 1372a0f25e0f..80cf72f904d4 100644 --- a/source/components/disassembler/dmopcode.c +++ b/source/components/disassembler/dmopcode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmresrc.c b/source/components/disassembler/dmresrc.c index a3403322b2db..12cf5e6bcb01 100644 --- a/source/components/disassembler/dmresrc.c +++ b/source/components/disassembler/dmresrc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmresrcl.c b/source/components/disassembler/dmresrcl.c index e9d391df36be..b30316b8b603 100644 --- a/source/components/disassembler/dmresrcl.c +++ b/source/components/disassembler/dmresrcl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmresrcl2.c b/source/components/disassembler/dmresrcl2.c index a2a85dfdc34c..e98a15dbe26a 100644 --- a/source/components/disassembler/dmresrcl2.c +++ b/source/components/disassembler/dmresrcl2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmresrcs.c b/source/components/disassembler/dmresrcs.c index 5f5c7edaff70..f323329f4dd9 100644 --- a/source/components/disassembler/dmresrcs.c +++ b/source/components/disassembler/dmresrcs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmutils.c b/source/components/disassembler/dmutils.c index 22c201a81cd9..1c1e400e32c8 100644 --- a/source/components/disassembler/dmutils.c +++ b/source/components/disassembler/dmutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmwalk.c b/source/components/disassembler/dmwalk.c index 2359468f142d..75d75eab3d75 100644 --- a/source/components/disassembler/dmwalk.c +++ b/source/components/disassembler/dmwalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsargs.c b/source/components/dispatcher/dsargs.c index 22823d7f3a34..4a24160c596a 100644 --- a/source/components/dispatcher/dsargs.c +++ b/source/components/dispatcher/dsargs.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dscontrol.c b/source/components/dispatcher/dscontrol.c index 32632c547e22..8b860a553fe2 100644 --- a/source/components/dispatcher/dscontrol.c +++ b/source/components/dispatcher/dscontrol.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsdebug.c b/source/components/dispatcher/dsdebug.c index 68d3fc2fb07a..26504c5a9cf5 100644 --- a/source/components/dispatcher/dsdebug.c +++ b/source/components/dispatcher/dsdebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsfield.c b/source/components/dispatcher/dsfield.c index f4199078006b..90f895b759e4 100644 --- a/source/components/dispatcher/dsfield.c +++ b/source/components/dispatcher/dsfield.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsinit.c b/source/components/dispatcher/dsinit.c index 45f861c80db9..82857cb68ecb 100644 --- a/source/components/dispatcher/dsinit.c +++ b/source/components/dispatcher/dsinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsmethod.c b/source/components/dispatcher/dsmethod.c index 43d6ee1a19fc..fd56bd509ef7 100644 --- a/source/components/dispatcher/dsmethod.c +++ b/source/components/dispatcher/dsmethod.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsmthdat.c b/source/components/dispatcher/dsmthdat.c index 5f06cb9032d9..ab0a9d118fc0 100644 --- a/source/components/dispatcher/dsmthdat.c +++ b/source/components/dispatcher/dsmthdat.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsobject.c b/source/components/dispatcher/dsobject.c index 0bd9c39ed788..20dd20c11a12 100644 --- a/source/components/dispatcher/dsobject.c +++ b/source/components/dispatcher/dsobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsopcode.c b/source/components/dispatcher/dsopcode.c index a4e97b2c77bc..153cd89adfd1 100644 --- a/source/components/dispatcher/dsopcode.c +++ b/source/components/dispatcher/dsopcode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dspkginit.c b/source/components/dispatcher/dspkginit.c index 6e2ede0204fc..06c0341458f1 100644 --- a/source/components/dispatcher/dspkginit.c +++ b/source/components/dispatcher/dspkginit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsutils.c b/source/components/dispatcher/dsutils.c index 3334c0a60c99..0bb4fb2d330d 100644 --- a/source/components/dispatcher/dsutils.c +++ b/source/components/dispatcher/dsutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswexec.c b/source/components/dispatcher/dswexec.c index 87e692a0634a..addc06e13136 100644 --- a/source/components/dispatcher/dswexec.c +++ b/source/components/dispatcher/dswexec.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswload.c b/source/components/dispatcher/dswload.c index be2f4a2beef8..a9b22dd15acc 100644 --- a/source/components/dispatcher/dswload.c +++ b/source/components/dispatcher/dswload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswload2.c b/source/components/dispatcher/dswload2.c index 76148af324bd..0311d0d991f8 100644 --- a/source/components/dispatcher/dswload2.c +++ b/source/components/dispatcher/dswload2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswscope.c b/source/components/dispatcher/dswscope.c index b1bc7de875f5..bc360b66ec6e 100644 --- a/source/components/dispatcher/dswscope.c +++ b/source/components/dispatcher/dswscope.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswstate.c b/source/components/dispatcher/dswstate.c index a523e5486279..9f79601fa1ae 100644 --- a/source/components/dispatcher/dswstate.c +++ b/source/components/dispatcher/dswstate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evevent.c b/source/components/events/evevent.c index 0afc7473d765..b935960835f6 100644 --- a/source/components/events/evevent.c +++ b/source/components/events/evevent.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evglock.c b/source/components/events/evglock.c index c4704fb1efbf..1eb740d94fb3 100644 --- a/source/components/events/evglock.c +++ b/source/components/events/evglock.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpe.c b/source/components/events/evgpe.c index c9906f926dd9..45c506ab7560 100644 --- a/source/components/events/evgpe.c +++ b/source/components/events/evgpe.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpeblk.c b/source/components/events/evgpeblk.c index 5a601df55123..03bb0b053f9f 100644 --- a/source/components/events/evgpeblk.c +++ b/source/components/events/evgpeblk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpeinit.c b/source/components/events/evgpeinit.c index 46df5c59659f..7a41fae0e969 100644 --- a/source/components/events/evgpeinit.c +++ b/source/components/events/evgpeinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpeutil.c b/source/components/events/evgpeutil.c index d38c0ae5f060..679ca6986291 100644 --- a/source/components/events/evgpeutil.c +++ b/source/components/events/evgpeutil.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evhandler.c b/source/components/events/evhandler.c index 4140aaba78de..9faccba3783e 100644 --- a/source/components/events/evhandler.c +++ b/source/components/events/evhandler.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evmisc.c b/source/components/events/evmisc.c index 85fa57b08a79..5052a1fdce65 100644 --- a/source/components/events/evmisc.c +++ b/source/components/events/evmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evregion.c b/source/components/events/evregion.c index a62d1c2671b9..4f5bb7e0b5df 100644 --- a/source/components/events/evregion.c +++ b/source/components/events/evregion.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evrgnini.c b/source/components/events/evrgnini.c index a58765e3669b..9327d8f7ff81 100644 --- a/source/components/events/evrgnini.c +++ b/source/components/events/evrgnini.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evsci.c b/source/components/events/evsci.c index 37cf3fd0a20f..47ac23f81608 100644 --- a/source/components/events/evsci.c +++ b/source/components/events/evsci.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxface.c b/source/components/events/evxface.c index a66aba662216..01d5f00fbe72 100644 --- a/source/components/events/evxface.c +++ b/source/components/events/evxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxfevnt.c b/source/components/events/evxfevnt.c index 5c53aa8ae2c4..a34547117092 100644 --- a/source/components/events/evxfevnt.c +++ b/source/components/events/evxfevnt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxfgpe.c b/source/components/events/evxfgpe.c index d652c29fb8e5..1fe27e759322 100644 --- a/source/components/events/evxfgpe.c +++ b/source/components/events/evxfgpe.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxfregn.c b/source/components/events/evxfregn.c index 17e0c4926df5..9113d8a26e68 100644 --- a/source/components/events/evxfregn.c +++ b/source/components/events/evxfregn.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exconcat.c b/source/components/executer/exconcat.c index 14abc6906d05..bd7374e88769 100644 --- a/source/components/executer/exconcat.c +++ b/source/components/executer/exconcat.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exconfig.c b/source/components/executer/exconfig.c index a46b7d21f45d..301e883072e6 100644 --- a/source/components/executer/exconfig.c +++ b/source/components/executer/exconfig.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exconvrt.c b/source/components/executer/exconvrt.c index 95d273909bd6..4f6077ff0665 100644 --- a/source/components/executer/exconvrt.c +++ b/source/components/executer/exconvrt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/excreate.c b/source/components/executer/excreate.c index 5a98d4a64bb0..8afae43c7cd7 100644 --- a/source/components/executer/excreate.c +++ b/source/components/executer/excreate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exdebug.c b/source/components/executer/exdebug.c index 308487264971..39fc73521c12 100644 --- a/source/components/executer/exdebug.c +++ b/source/components/executer/exdebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exdump.c b/source/components/executer/exdump.c index fc7c992ad5bb..b14cfe8443f6 100644 --- a/source/components/executer/exdump.c +++ b/source/components/executer/exdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exfield.c b/source/components/executer/exfield.c index 897c2d47d5d0..585d21cc92cc 100644 --- a/source/components/executer/exfield.c +++ b/source/components/executer/exfield.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exfldio.c b/source/components/executer/exfldio.c index 64be8bf1da9f..6a5a5fe1b8b3 100644 --- a/source/components/executer/exfldio.c +++ b/source/components/executer/exfldio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exmisc.c b/source/components/executer/exmisc.c index cec395df215a..220417b99348 100644 --- a/source/components/executer/exmisc.c +++ b/source/components/executer/exmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exmutex.c b/source/components/executer/exmutex.c index 4673b10cb90d..010f5bdd66d3 100644 --- a/source/components/executer/exmutex.c +++ b/source/components/executer/exmutex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exnames.c b/source/components/executer/exnames.c index 20c8efae6bf7..025907281978 100644 --- a/source/components/executer/exnames.c +++ b/source/components/executer/exnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exoparg1.c b/source/components/executer/exoparg1.c index fa1f8ede6ab2..bf40b69770c6 100644 --- a/source/components/executer/exoparg1.c +++ b/source/components/executer/exoparg1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exoparg2.c b/source/components/executer/exoparg2.c index 5f46f80360b8..d1fc7c1160eb 100644 --- a/source/components/executer/exoparg2.c +++ b/source/components/executer/exoparg2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exoparg3.c b/source/components/executer/exoparg3.c index d4b1dff98fc6..02e73bd4de0e 100644 --- a/source/components/executer/exoparg3.c +++ b/source/components/executer/exoparg3.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exoparg6.c b/source/components/executer/exoparg6.c index 549c0bc143d9..23f8e2956045 100644 --- a/source/components/executer/exoparg6.c +++ b/source/components/executer/exoparg6.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exprep.c b/source/components/executer/exprep.c index 3074366d9a67..c7b55c547b70 100644 --- a/source/components/executer/exprep.c +++ b/source/components/executer/exprep.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exregion.c b/source/components/executer/exregion.c index 0985e7a51e93..2f49eb0a2bc5 100644 --- a/source/components/executer/exregion.c +++ b/source/components/executer/exregion.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exresnte.c b/source/components/executer/exresnte.c index 064d843ecebb..445a1b5e085b 100644 --- a/source/components/executer/exresnte.c +++ b/source/components/executer/exresnte.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exresolv.c b/source/components/executer/exresolv.c index e4df17a88cdf..78b26041948d 100644 --- a/source/components/executer/exresolv.c +++ b/source/components/executer/exresolv.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exresop.c b/source/components/executer/exresop.c index b0d1c7409e60..619da90fb6f7 100644 --- a/source/components/executer/exresop.c +++ b/source/components/executer/exresop.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exserial.c b/source/components/executer/exserial.c index 9d5e558783a7..69ce5316dd43 100644 --- a/source/components/executer/exserial.c +++ b/source/components/executer/exserial.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exstore.c b/source/components/executer/exstore.c index d6b9143bbbf9..79564db35379 100644 --- a/source/components/executer/exstore.c +++ b/source/components/executer/exstore.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exstoren.c b/source/components/executer/exstoren.c index db3c8d9efb4d..f43e67cdb31b 100644 --- a/source/components/executer/exstoren.c +++ b/source/components/executer/exstoren.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exstorob.c b/source/components/executer/exstorob.c index edad3c44ac26..1ed937340c0e 100644 --- a/source/components/executer/exstorob.c +++ b/source/components/executer/exstorob.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exsystem.c b/source/components/executer/exsystem.c index f10cc1c02206..cf10a5e7bdab 100644 --- a/source/components/executer/exsystem.c +++ b/source/components/executer/exsystem.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/extrace.c b/source/components/executer/extrace.c index 8cb487e1ba21..22c2b8bb8639 100644 --- a/source/components/executer/extrace.c +++ b/source/components/executer/extrace.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exutils.c b/source/components/executer/exutils.c index d7357e356958..86114c8ec831 100644 --- a/source/components/executer/exutils.c +++ b/source/components/executer/exutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwacpi.c b/source/components/hardware/hwacpi.c index 2459b34537e4..71b71cbc64bf 100644 --- a/source/components/hardware/hwacpi.c +++ b/source/components/hardware/hwacpi.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwesleep.c b/source/components/hardware/hwesleep.c index 0e10e2ada0a7..fcc28581ef72 100644 --- a/source/components/hardware/hwesleep.c +++ b/source/components/hardware/hwesleep.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwgpe.c b/source/components/hardware/hwgpe.c index c7b7a4696794..bf333a3fee32 100644 --- a/source/components/hardware/hwgpe.c +++ b/source/components/hardware/hwgpe.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwpci.c b/source/components/hardware/hwpci.c index ab2f5c1bf9ef..1b0721e3a69c 100644 --- a/source/components/hardware/hwpci.c +++ b/source/components/hardware/hwpci.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwregs.c b/source/components/hardware/hwregs.c index c38f752ab821..712a0887b48f 100644 --- a/source/components/hardware/hwregs.c +++ b/source/components/hardware/hwregs.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwsleep.c b/source/components/hardware/hwsleep.c index d503f1cf923b..d85d04785fcd 100644 --- a/source/components/hardware/hwsleep.c +++ b/source/components/hardware/hwsleep.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwtimer.c b/source/components/hardware/hwtimer.c index 112a17fa053b..0e4102db4c76 100644 --- a/source/components/hardware/hwtimer.c +++ b/source/components/hardware/hwtimer.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwvalid.c b/source/components/hardware/hwvalid.c index d296d1b8c142..96b5ac7e6e81 100644 --- a/source/components/hardware/hwvalid.c +++ b/source/components/hardware/hwvalid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwxface.c b/source/components/hardware/hwxface.c index 342b5f18c743..5daed99ad72e 100644 --- a/source/components/hardware/hwxface.c +++ b/source/components/hardware/hwxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwxfsleep.c b/source/components/hardware/hwxfsleep.c index 06462185998d..26b48ccbef7d 100644 --- a/source/components/hardware/hwxfsleep.c +++ b/source/components/hardware/hwxfsleep.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsaccess.c b/source/components/namespace/nsaccess.c index f9227ee4d622..c332896f143e 100644 --- a/source/components/namespace/nsaccess.c +++ b/source/components/namespace/nsaccess.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsalloc.c b/source/components/namespace/nsalloc.c index e75648717ec0..1deb87c6b2e3 100644 --- a/source/components/namespace/nsalloc.c +++ b/source/components/namespace/nsalloc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsarguments.c b/source/components/namespace/nsarguments.c index 1a2d1099e6e4..fe51156578aa 100644 --- a/source/components/namespace/nsarguments.c +++ b/source/components/namespace/nsarguments.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsconvert.c b/source/components/namespace/nsconvert.c index dc913661b4bd..7d68386d5f40 100644 --- a/source/components/namespace/nsconvert.c +++ b/source/components/namespace/nsconvert.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsdump.c b/source/components/namespace/nsdump.c index cfde13b5d7a0..63a449ab6f5a 100644 --- a/source/components/namespace/nsdump.c +++ b/source/components/namespace/nsdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsdumpdv.c b/source/components/namespace/nsdumpdv.c index 97f0bc8cf02c..55ab899d2867 100644 --- a/source/components/namespace/nsdumpdv.c +++ b/source/components/namespace/nsdumpdv.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nseval.c b/source/components/namespace/nseval.c index f16dadd4e2bd..1b80202bae86 100644 --- a/source/components/namespace/nseval.c +++ b/source/components/namespace/nseval.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsinit.c b/source/components/namespace/nsinit.c index 4a83f3da693c..cc15644fc4a5 100644 --- a/source/components/namespace/nsinit.c +++ b/source/components/namespace/nsinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsload.c b/source/components/namespace/nsload.c index bea0ae430837..0a368ab3e603 100644 --- a/source/components/namespace/nsload.c +++ b/source/components/namespace/nsload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsnames.c b/source/components/namespace/nsnames.c index a27a87f02b07..4c0f6991fe1e 100644 --- a/source/components/namespace/nsnames.c +++ b/source/components/namespace/nsnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsobject.c b/source/components/namespace/nsobject.c index 6de2a2976b74..529d816f4334 100644 --- a/source/components/namespace/nsobject.c +++ b/source/components/namespace/nsobject.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsparse.c b/source/components/namespace/nsparse.c index f10db0e4d614..5f7973aa1a20 100644 --- a/source/components/namespace/nsparse.c +++ b/source/components/namespace/nsparse.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nspredef.c b/source/components/namespace/nspredef.c index 7f7965f2bfa7..410eaeb0fc9c 100644 --- a/source/components/namespace/nspredef.c +++ b/source/components/namespace/nspredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsprepkg.c b/source/components/namespace/nsprepkg.c index 689d2c167b5d..e56bcb5d16ca 100644 --- a/source/components/namespace/nsprepkg.c +++ b/source/components/namespace/nsprepkg.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsrepair.c b/source/components/namespace/nsrepair.c index fa1986031d25..24094714b56d 100644 --- a/source/components/namespace/nsrepair.c +++ b/source/components/namespace/nsrepair.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsrepair2.c b/source/components/namespace/nsrepair2.c index 57c229a8c5ee..8ec425ee41a2 100644 --- a/source/components/namespace/nsrepair2.c +++ b/source/components/namespace/nsrepair2.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nssearch.c b/source/components/namespace/nssearch.c index f4b2e71ef784..408a38e68866 100644 --- a/source/components/namespace/nssearch.c +++ b/source/components/namespace/nssearch.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsutils.c b/source/components/namespace/nsutils.c index 6df0d087dd64..1ce7fe407e1a 100644 --- a/source/components/namespace/nsutils.c +++ b/source/components/namespace/nsutils.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nswalk.c b/source/components/namespace/nswalk.c index 3772b09d6ecc..50c5ed5bae55 100644 --- a/source/components/namespace/nswalk.c +++ b/source/components/namespace/nswalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsxfeval.c b/source/components/namespace/nsxfeval.c index ee7334ec3864..b067f6e81936 100644 --- a/source/components/namespace/nsxfeval.c +++ b/source/components/namespace/nsxfeval.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsxfname.c b/source/components/namespace/nsxfname.c index 53a2f4bfa279..7a7393b61a7b 100644 --- a/source/components/namespace/nsxfname.c +++ b/source/components/namespace/nsxfname.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsxfobj.c b/source/components/namespace/nsxfobj.c index de793323adfd..fb08e76f6247 100644 --- a/source/components/namespace/nsxfobj.c +++ b/source/components/namespace/nsxfobj.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psargs.c b/source/components/parser/psargs.c index fb12620c65d6..895feba0ace6 100644 --- a/source/components/parser/psargs.c +++ b/source/components/parser/psargs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psloop.c b/source/components/parser/psloop.c index 6ccac91012b5..478256f29bc5 100644 --- a/source/components/parser/psloop.c +++ b/source/components/parser/psloop.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psobject.c b/source/components/parser/psobject.c index 439158970612..c0c3e9654c03 100644 --- a/source/components/parser/psobject.c +++ b/source/components/parser/psobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psopcode.c b/source/components/parser/psopcode.c index fdea6b565f7a..4f153303fbcd 100644 --- a/source/components/parser/psopcode.c +++ b/source/components/parser/psopcode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psopinfo.c b/source/components/parser/psopinfo.c index f631f0896c63..30447c78b182 100644 --- a/source/components/parser/psopinfo.c +++ b/source/components/parser/psopinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psparse.c b/source/components/parser/psparse.c index 16458bc3e9d5..3b2a3c4c18b3 100644 --- a/source/components/parser/psparse.c +++ b/source/components/parser/psparse.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psscope.c b/source/components/parser/psscope.c index aae7b1ba1830..cbe575dc523e 100644 --- a/source/components/parser/psscope.c +++ b/source/components/parser/psscope.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/pstree.c b/source/components/parser/pstree.c index 1ec1f92e857c..7f92b773aca6 100644 --- a/source/components/parser/pstree.c +++ b/source/components/parser/pstree.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psutils.c b/source/components/parser/psutils.c index faff3f26cffd..223f68db6dc8 100644 --- a/source/components/parser/psutils.c +++ b/source/components/parser/psutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/pswalk.c b/source/components/parser/pswalk.c index cb0ecbeefdc8..0d5b78ddb211 100644 --- a/source/components/parser/pswalk.c +++ b/source/components/parser/pswalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psxface.c b/source/components/parser/psxface.c index 9e9a8acb7360..102033fee81e 100644 --- a/source/components/parser/psxface.c +++ b/source/components/parser/psxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsaddr.c b/source/components/resources/rsaddr.c index d1d34817823a..06f8c44ae6c9 100644 --- a/source/components/resources/rsaddr.c +++ b/source/components/resources/rsaddr.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rscalc.c b/source/components/resources/rscalc.c index 4b050b90f2b4..d435323fe804 100644 --- a/source/components/resources/rscalc.c +++ b/source/components/resources/rscalc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rscreate.c b/source/components/resources/rscreate.c index c0348b942586..8443d7522e28 100644 --- a/source/components/resources/rscreate.c +++ b/source/components/resources/rscreate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsdump.c b/source/components/resources/rsdump.c index 6d5566456820..7f597f16eddc 100644 --- a/source/components/resources/rsdump.c +++ b/source/components/resources/rsdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsdumpinfo.c b/source/components/resources/rsdumpinfo.c index 5d32516dc66e..f1688120911a 100644 --- a/source/components/resources/rsdumpinfo.c +++ b/source/components/resources/rsdumpinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsinfo.c b/source/components/resources/rsinfo.c index cba09fc44119..b3a7180a3c1f 100644 --- a/source/components/resources/rsinfo.c +++ b/source/components/resources/rsinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsio.c b/source/components/resources/rsio.c index bd2cdabb18fb..4be6a7d16a90 100644 --- a/source/components/resources/rsio.c +++ b/source/components/resources/rsio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsirq.c b/source/components/resources/rsirq.c index 30f0abfba19c..1a44bdbe9f91 100644 --- a/source/components/resources/rsirq.c +++ b/source/components/resources/rsirq.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rslist.c b/source/components/resources/rslist.c index c78cfd018f37..4ee8aa63e0ca 100644 --- a/source/components/resources/rslist.c +++ b/source/components/resources/rslist.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsmemory.c b/source/components/resources/rsmemory.c index 1bc0e2ecaaa7..e5562a046685 100644 --- a/source/components/resources/rsmemory.c +++ b/source/components/resources/rsmemory.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsmisc.c b/source/components/resources/rsmisc.c index 900d370f9f8b..31a7d9eecddb 100644 --- a/source/components/resources/rsmisc.c +++ b/source/components/resources/rsmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsserial.c b/source/components/resources/rsserial.c index 8f1920c785a9..2df8eb77e14b 100644 --- a/source/components/resources/rsserial.c +++ b/source/components/resources/rsserial.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsutils.c b/source/components/resources/rsutils.c index ec8a3217590d..6aa2833797c1 100644 --- a/source/components/resources/rsutils.c +++ b/source/components/resources/rsutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsxface.c b/source/components/resources/rsxface.c index e11cf600d95e..3f055af4a349 100644 --- a/source/components/resources/rsxface.c +++ b/source/components/resources/rsxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbdata.c b/source/components/tables/tbdata.c index 154b967b36e3..522234d96d3b 100644 --- a/source/components/tables/tbdata.c +++ b/source/components/tables/tbdata.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbfadt.c b/source/components/tables/tbfadt.c index 3147e83247e8..8196e7afbaa2 100644 --- a/source/components/tables/tbfadt.c +++ b/source/components/tables/tbfadt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbfind.c b/source/components/tables/tbfind.c index 5ed6a71bc63e..1bc21b3e0164 100644 --- a/source/components/tables/tbfind.c +++ b/source/components/tables/tbfind.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbinstal.c b/source/components/tables/tbinstal.c index 0df61084488d..dcbb2a745b45 100644 --- a/source/components/tables/tbinstal.c +++ b/source/components/tables/tbinstal.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbprint.c b/source/components/tables/tbprint.c index 8eb30f8cde7e..392ff95a2e0f 100644 --- a/source/components/tables/tbprint.c +++ b/source/components/tables/tbprint.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbutils.c b/source/components/tables/tbutils.c index c18669182334..6316f258c3fa 100644 --- a/source/components/tables/tbutils.c +++ b/source/components/tables/tbutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbxface.c b/source/components/tables/tbxface.c index 682cb5a80d30..d861d9e6aa2e 100644 --- a/source/components/tables/tbxface.c +++ b/source/components/tables/tbxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbxfload.c b/source/components/tables/tbxfload.c index b886e8c49bf3..046487ba36ee 100644 --- a/source/components/tables/tbxfload.c +++ b/source/components/tables/tbxfload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbxfroot.c b/source/components/tables/tbxfroot.c index 5fa5a6ef6d33..ed33c9b67acf 100644 --- a/source/components/tables/tbxfroot.c +++ b/source/components/tables/tbxfroot.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utaddress.c b/source/components/utilities/utaddress.c index ff7f540ac036..92039cfa0f64 100644 --- a/source/components/utilities/utaddress.c +++ b/source/components/utilities/utaddress.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utalloc.c b/source/components/utilities/utalloc.c index 4ff85feb6a9f..276a531917b1 100644 --- a/source/components/utilities/utalloc.c +++ b/source/components/utilities/utalloc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utascii.c b/source/components/utilities/utascii.c index c28e89476167..a375e44d058d 100644 --- a/source/components/utilities/utascii.c +++ b/source/components/utilities/utascii.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utbuffer.c b/source/components/utilities/utbuffer.c index 5d68e3ce8aa8..214ff20bfb72 100644 --- a/source/components/utilities/utbuffer.c +++ b/source/components/utilities/utbuffer.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utcache.c b/source/components/utilities/utcache.c index 7f3a73a7e227..4e5de96f27b1 100644 --- a/source/components/utilities/utcache.c +++ b/source/components/utilities/utcache.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utclib.c b/source/components/utilities/utclib.c index ad3fc0920537..1c19a11d3a85 100644 --- a/source/components/utilities/utclib.c +++ b/source/components/utilities/utclib.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utcopy.c b/source/components/utilities/utcopy.c index 37ff888eead8..329416480a38 100644 --- a/source/components/utilities/utcopy.c +++ b/source/components/utilities/utcopy.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utdebug.c b/source/components/utilities/utdebug.c index 16696b1fa753..6d8ab27baa4d 100644 --- a/source/components/utilities/utdebug.c +++ b/source/components/utilities/utdebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utdecode.c b/source/components/utilities/utdecode.c index d7f2b5cc85ba..11818b4f8c36 100644 --- a/source/components/utilities/utdecode.c +++ b/source/components/utilities/utdecode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utdelete.c b/source/components/utilities/utdelete.c index 0e0500a0d20b..2cf71aee3ac5 100644 --- a/source/components/utilities/utdelete.c +++ b/source/components/utilities/utdelete.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uterror.c b/source/components/utilities/uterror.c index af412bef0ef7..51ce8d59090a 100644 --- a/source/components/utilities/uterror.c +++ b/source/components/utilities/uterror.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uteval.c b/source/components/utilities/uteval.c index 92316f71979e..9e30ee8d9ef4 100644 --- a/source/components/utilities/uteval.c +++ b/source/components/utilities/uteval.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utexcep.c b/source/components/utilities/utexcep.c index 221e1fe21744..4e7e3f55443a 100644 --- a/source/components/utilities/utexcep.c +++ b/source/components/utilities/utexcep.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utglobal.c b/source/components/utilities/utglobal.c index 806a9406d20f..65189ff2de12 100644 --- a/source/components/utilities/utglobal.c +++ b/source/components/utilities/utglobal.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uthex.c b/source/components/utilities/uthex.c index a922cb4861ac..5cbc8fa6d6b0 100644 --- a/source/components/utilities/uthex.c +++ b/source/components/utilities/uthex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utids.c b/source/components/utilities/utids.c index 34ae697ab3c2..4ef4fccaaca8 100644 --- a/source/components/utilities/utids.c +++ b/source/components/utilities/utids.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utinit.c b/source/components/utilities/utinit.c index 87b3b5e5861a..27f1e37b835d 100644 --- a/source/components/utilities/utinit.c +++ b/source/components/utilities/utinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utlock.c b/source/components/utilities/utlock.c index 7ab4eb743c8b..a1501189d070 100644 --- a/source/components/utilities/utlock.c +++ b/source/components/utilities/utlock.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utmath.c b/source/components/utilities/utmath.c index b736d835dad5..2580cb6e931d 100644 --- a/source/components/utilities/utmath.c +++ b/source/components/utilities/utmath.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utmisc.c b/source/components/utilities/utmisc.c index 84fbfb3103d5..f2db74e8f361 100644 --- a/source/components/utilities/utmisc.c +++ b/source/components/utilities/utmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utmutex.c b/source/components/utilities/utmutex.c index 8bdfbd3c3efc..b723f5b27de6 100644 --- a/source/components/utilities/utmutex.c +++ b/source/components/utilities/utmutex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utnonansi.c b/source/components/utilities/utnonansi.c index b16b1f07b8ab..cf3763bc1d2e 100644 --- a/source/components/utilities/utnonansi.c +++ b/source/components/utilities/utnonansi.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utobject.c b/source/components/utilities/utobject.c index 71244e518826..8b3dcd5f2129 100644 --- a/source/components/utilities/utobject.c +++ b/source/components/utilities/utobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utosi.c b/source/components/utilities/utosi.c index e5d782d9f545..61867f719139 100644 --- a/source/components/utilities/utosi.c +++ b/source/components/utilities/utosi.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utownerid.c b/source/components/utilities/utownerid.c index dd880f86e1bb..2bea3e578862 100644 --- a/source/components/utilities/utownerid.c +++ b/source/components/utilities/utownerid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utpredef.c b/source/components/utilities/utpredef.c index d6d98d0f2a55..c9a830c2c5dd 100644 --- a/source/components/utilities/utpredef.c +++ b/source/components/utilities/utpredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utprint.c b/source/components/utilities/utprint.c index 187fd58a556c..7fb55cea0fd5 100644 --- a/source/components/utilities/utprint.c +++ b/source/components/utilities/utprint.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utresdecode.c b/source/components/utilities/utresdecode.c index 80d6a80e323c..e7c10afaae74 100644 --- a/source/components/utilities/utresdecode.c +++ b/source/components/utilities/utresdecode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utresrc.c b/source/components/utilities/utresrc.c index 56d9abf1c4d5..b7c4aaceb8e2 100644 --- a/source/components/utilities/utresrc.c +++ b/source/components/utilities/utresrc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utstate.c b/source/components/utilities/utstate.c index 2110532024ef..ac85c00203b8 100644 --- a/source/components/utilities/utstate.c +++ b/source/components/utilities/utstate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utstring.c b/source/components/utilities/utstring.c index f2d6ad7fe97c..5218ebab207b 100644 --- a/source/components/utilities/utstring.c +++ b/source/components/utilities/utstring.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utstrsuppt.c b/source/components/utilities/utstrsuppt.c index c0ea049558d8..f2a02eabb2ab 100644 --- a/source/components/utilities/utstrsuppt.c +++ b/source/components/utilities/utstrsuppt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utstrtoul64.c b/source/components/utilities/utstrtoul64.c index 9815d37391cb..6a121c730256 100644 --- a/source/components/utilities/utstrtoul64.c +++ b/source/components/utilities/utstrtoul64.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uttrack.c b/source/components/utilities/uttrack.c index c4f890a26987..b7928b155c75 100644 --- a/source/components/utilities/uttrack.c +++ b/source/components/utilities/uttrack.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utuuid.c b/source/components/utilities/utuuid.c index ebcb07b64195..97ae40be1e38 100644 --- a/source/components/utilities/utuuid.c +++ b/source/components/utilities/utuuid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxface.c b/source/components/utilities/utxface.c index 917a56f53aee..227d18cae9a1 100644 --- a/source/components/utilities/utxface.c +++ b/source/components/utilities/utxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxferror.c b/source/components/utilities/utxferror.c index 6aadf7ec4fb4..0c6b1c769661 100644 --- a/source/components/utilities/utxferror.c +++ b/source/components/utilities/utxferror.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxfinit.c b/source/components/utilities/utxfinit.c index 1a731e02aae8..15756cb76655 100644 --- a/source/components/utilities/utxfinit.c +++ b/source/components/utilities/utxfinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxfmutex.c b/source/components/utilities/utxfmutex.c index 9a2ae9a0d8c9..68472b7fb376 100644 --- a/source/components/utilities/utxfmutex.c +++ b/source/components/utilities/utxfmutex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acapps.h b/source/include/acapps.h index c17e574860a3..3f1833c5f996 100644 --- a/source/include/acapps.h +++ b/source/include/acapps.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License @@ -159,7 +159,7 @@ /* Common info for tool signons */ #define ACPICA_NAME "Intel ACPI Component Architecture" -#define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2020 Intel Corporation" +#define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2021 Intel Corporation" #if ACPI_MACHINE_WIDTH == 64 #define ACPI_WIDTH " (64-bit version)" diff --git a/source/include/acbuffer.h b/source/include/acbuffer.h index b27868aff326..3c541751c0f6 100644 --- a/source/include/acbuffer.h +++ b/source/include/acbuffer.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acclib.h b/source/include/acclib.h index 4717f878fe86..c91b1edf1af5 100644 --- a/source/include/acclib.h +++ b/source/include/acclib.h @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/accommon.h b/source/include/accommon.h index 8aa37717732d..4ef3f5bc1604 100644 --- a/source/include/accommon.h +++ b/source/include/accommon.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acconfig.h b/source/include/acconfig.h index d717aa52ce59..b320a97e3a23 100644 --- a/source/include/acconfig.h +++ b/source/include/acconfig.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acconvert.h b/source/include/acconvert.h index 0962a164343e..b654b18b4dc5 100644 --- a/source/include/acconvert.h +++ b/source/include/acconvert.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acdebug.h b/source/include/acdebug.h index 41f87320bfc3..434745d1458c 100644 --- a/source/include/acdebug.h +++ b/source/include/acdebug.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h index d0ffe3900592..94c002da364c 100644 --- a/source/include/acdisasm.h +++ b/source/include/acdisasm.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License @@ -493,8 +493,6 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[]; -extern ACPI_DMTABLE_INFO AcpiDmTableInfoMtmr[]; -extern ACPI_DMTABLE_INFO AcpiDmTableInfoMtmr0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfitHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit0[]; @@ -567,8 +565,6 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm211[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm23[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm23a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[]; -extern ACPI_DMTABLE_INFO AcpiDmTableInfoVrtc[]; -extern ACPI_DMTABLE_INFO AcpiDmTableInfoVrtc0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoWaet[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat0[]; @@ -720,10 +716,6 @@ void AcpiDmDumpMsct ( ACPI_TABLE_HEADER *Table); -void -AcpiDmDumpMtmr ( - ACPI_TABLE_HEADER *Table); - void AcpiDmDumpNfit ( ACPI_TABLE_HEADER *Table); @@ -784,10 +776,6 @@ void AcpiDmDumpTpm2 ( ACPI_TABLE_HEADER *Table); -void -AcpiDmDumpVrtc ( - ACPI_TABLE_HEADER *Table); - void AcpiDmDumpWdat ( ACPI_TABLE_HEADER *Table); diff --git a/source/include/acdispat.h b/source/include/acdispat.h index 23004eb14312..2047779ff4d8 100644 --- a/source/include/acdispat.h +++ b/source/include/acdispat.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acevents.h b/source/include/acevents.h index 81d9df10034f..77475ac98a20 100644 --- a/source/include/acevents.h +++ b/source/include/acevents.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acexcep.h b/source/include/acexcep.h index 8cbd75498642..6312602e9251 100644 --- a/source/include/acexcep.h +++ b/source/include/acexcep.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acglobal.h b/source/include/acglobal.h index a45ece02303d..c2107df0e1cc 100644 --- a/source/include/acglobal.h +++ b/source/include/acglobal.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/achware.h b/source/include/achware.h index 9ff14d957847..994e9767a2ee 100644 --- a/source/include/achware.h +++ b/source/include/achware.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acinterp.h b/source/include/acinterp.h index d5abafca2610..c6e27cc21e3c 100644 --- a/source/include/acinterp.h +++ b/source/include/acinterp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/aclocal.h b/source/include/aclocal.h index 2c5af2dd4943..e4f46b8877b3 100644 --- a/source/include/aclocal.h +++ b/source/include/aclocal.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acmacros.h b/source/include/acmacros.h index 71cd18e208b5..a7a79fc80e31 100644 --- a/source/include/acmacros.h +++ b/source/include/acmacros.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acnames.h b/source/include/acnames.h index 571394c121d5..5e7629069fbe 100644 --- a/source/include/acnames.h +++ b/source/include/acnames.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acnamesp.h b/source/include/acnamesp.h index 48b365936422..2edd99d79e11 100644 --- a/source/include/acnamesp.h +++ b/source/include/acnamesp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acobject.h b/source/include/acobject.h index 26a4bc35c3f6..f047efb8f9d9 100644 --- a/source/include/acobject.h +++ b/source/include/acobject.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acopcode.h b/source/include/acopcode.h index 6602a6317bcc..91cce057b1ea 100644 --- a/source/include/acopcode.h +++ b/source/include/acopcode.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acoutput.h b/source/include/acoutput.h index e67f152033e7..1d6aacca5583 100644 --- a/source/include/acoutput.h +++ b/source/include/acoutput.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acparser.h b/source/include/acparser.h index f3551bea4219..94674d8cbe68 100644 --- a/source/include/acparser.h +++ b/source/include/acparser.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acpi.h b/source/include/acpi.h index 866b8c1b3487..0a50a44340ff 100644 --- a/source/include/acpi.h +++ b/source/include/acpi.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acpiosxf.h b/source/include/acpiosxf.h index b1007f5b02ec..af90cb9ce49f 100644 --- a/source/include/acpiosxf.h +++ b/source/include/acpiosxf.h @@ -10,7 +10,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acpixf.h b/source/include/acpixf.h index 866f22f9d78c..cb24eb4e486c 100644 --- a/source/include/acpixf.h +++ b/source/include/acpixf.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20201217 +#define ACPI_CA_VERSION 0x20210105 #include "acconfig.h" #include "actypes.h" diff --git a/source/include/acpredef.h b/source/include/acpredef.h index 2564fa55bdfc..22aece65993b 100644 --- a/source/include/acpredef.h +++ b/source/include/acpredef.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acresrc.h b/source/include/acresrc.h index ef1c5eda63c2..082918d72bce 100644 --- a/source/include/acresrc.h +++ b/source/include/acresrc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acrestyp.h b/source/include/acrestyp.h index 9415736b6738..d2cd4c4dc105 100644 --- a/source/include/acrestyp.h +++ b/source/include/acrestyp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acstruct.h b/source/include/acstruct.h index 039792f0f979..c07a319d4027 100644 --- a/source/include/acstruct.h +++ b/source/include/acstruct.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actables.h b/source/include/actables.h index f230bd69b39e..038085c8761f 100644 --- a/source/include/actables.h +++ b/source/include/actables.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h index 59c38a29e16a..b10cc9efb19c 100644 --- a/source/include/actbinfo.h +++ b/source/include/actbinfo.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License @@ -297,7 +297,6 @@ #define ACPI_MPST1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPST_DATA_HDR,f) #define ACPI_MPST2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPST_POWER_DATA,f) #define ACPI_MSCT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MSCT_PROXIMITY,f) -#define ACPI_MTMR0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MTMR_ENTRY,f) #define ACPI_NFITH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NFIT_HEADER,f) #define ACPI_NFIT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NFIT_SYSTEM_ADDRESS,f) #define ACPI_NFIT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NFIT_MEMORY_MAP,f) @@ -342,7 +341,6 @@ #define ACPI_TPM2A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TPM2_TRAILER,f) #define ACPI_TPM211_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TPM2_ARM_SMC,f) #define ACPI_TPM23A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TPM23_TRAILER,f) -#define ACPI_VRTC0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_VRTC_ENTRY,f) #define ACPI_WDAT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_WDAT_ENTRY,f) /* diff --git a/source/include/actbl.h b/source/include/actbl.h index cb3641beb006..f70f1b5909ed 100644 --- a/source/include/actbl.h +++ b/source/include/actbl.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actbl1.h b/source/include/actbl1.h index 47e5f059a55a..5f54ecc0abf8 100644 --- a/source/include/actbl1.h +++ b/source/include/actbl1.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actbl2.h b/source/include/actbl2.h index 2f1dd2990a15..82096fe9c4f5 100644 --- a/source/include/actbl2.h +++ b/source/include/actbl2.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License @@ -177,7 +177,6 @@ #define ACPI_SIG_MPST "MPST" /* Memory Power State Table */ #define ACPI_SIG_MSCT "MSCT" /* Maximum System Characteristics Table */ #define ACPI_SIG_MSDM "MSDM" /* Microsoft Data Management Table */ -#define ACPI_SIG_MTMR "MTMR" /* MID Timer table */ #define ACPI_SIG_NFIT "NFIT" /* NVDIMM Firmware Interface Table */ #define ACPI_SIG_PCCT "PCCT" /* Platform Communications Channel Table */ #define ACPI_SIG_PDTT "PDTT" /* Platform Debug Trigger Table */ @@ -1244,34 +1243,6 @@ typedef struct acpi_table_msdm } ACPI_TABLE_MSDM; -/******************************************************************************* - * - * MTMR - MID Timer Table - * Version 1 - * - * Conforms to "Simple Firmware Interface Specification", - * Draft 0.8.2, Oct 19, 2010 - * NOTE: The ACPI MTMR is equivalent to the SFI MTMR table. - * - ******************************************************************************/ - -typedef struct acpi_table_mtmr -{ - ACPI_TABLE_HEADER Header; /* Common ACPI table header */ - -} ACPI_TABLE_MTMR; - -/* MTMR entry */ - -typedef struct acpi_mtmr_entry -{ - ACPI_GENERIC_ADDRESS PhysicalAddress; - UINT32 Frequency; - UINT32 Irq; - -} ACPI_MTMR_ENTRY; - - /******************************************************************************* * * NFIT - NVDIMM Interface Table (ACPI 6.0+) diff --git a/source/include/actbl3.h b/source/include/actbl3.h index 74d4648a84d2..1c79143b8e63 100644 --- a/source/include/actbl3.h +++ b/source/include/actbl3.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License @@ -177,7 +177,6 @@ #define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */ #define ACPI_SIG_TPM2 "TPM2" /* Trusted Platform Module 2.0 H/W interface table */ #define ACPI_SIG_UEFI "UEFI" /* Uefi Boot Optimization Table */ -#define ACPI_SIG_VRTC "VRTC" /* Virtual Real Time Clock Table */ #define ACPI_SIG_WAET "WAET" /* Windows ACPI Emulated devices Table */ #define ACPI_SIG_WDAT "WDAT" /* Watchdog Action Table */ #define ACPI_SIG_WDDT "WDDT" /* Watchdog Timer Description Table */ @@ -683,33 +682,6 @@ typedef struct acpi_table_uefi } ACPI_TABLE_UEFI; -/******************************************************************************* - * - * VRTC - Virtual Real Time Clock Table - * Version 1 - * - * Conforms to "Simple Firmware Interface Specification", - * Draft 0.8.2, Oct 19, 2010 - * NOTE: The ACPI VRTC is equivalent to The SFI MRTC table. - * - ******************************************************************************/ - -typedef struct acpi_table_vrtc -{ - ACPI_TABLE_HEADER Header; /* Common ACPI table header */ - -} ACPI_TABLE_VRTC; - -/* VRTC entry */ - -typedef struct acpi_vrtc_entry -{ - ACPI_GENERIC_ADDRESS PhysicalAddress; - UINT32 Irq; - -} ACPI_VRTC_ENTRY; - - /******************************************************************************* * * WAET - Windows ACPI Emulated devices Table diff --git a/source/include/actypes.h b/source/include/actypes.h index 1f0a189ab4ba..e98e636a36a8 100644 --- a/source/include/actypes.h +++ b/source/include/actypes.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acutils.h b/source/include/acutils.h index aec52ba3509e..b520f641ca4a 100644 --- a/source/include/acutils.h +++ b/source/include/acutils.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acuuid.h b/source/include/acuuid.h index f11b35365e5a..72b253a4ba77 100644 --- a/source/include/acuuid.h +++ b/source/include/acuuid.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/amlcode.h b/source/include/amlcode.h index 798031ae1c83..f7ad22a18120 100644 --- a/source/include/amlcode.h +++ b/source/include/amlcode.h @@ -10,7 +10,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/amlresrc.h b/source/include/amlresrc.h index aeb2d9a9772b..094ab1d99e6e 100644 --- a/source/include/amlresrc.h +++ b/source/include/amlresrc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/accygwin.h b/source/include/platform/accygwin.h index 43e037b0e21a..1eec32ac34cb 100644 --- a/source/include/platform/accygwin.h +++ b/source/include/platform/accygwin.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acdragonflyex.h b/source/include/platform/acdragonflyex.h index 8d536d33693d..6c11c1773f05 100644 --- a/source/include/platform/acdragonflyex.h +++ b/source/include/platform/acdragonflyex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acefi.h b/source/include/platform/acefi.h index d2cab87288f7..c61798fd4268 100644 --- a/source/include/platform/acefi.h +++ b/source/include/platform/acefi.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acefiex.h b/source/include/platform/acefiex.h index dc9f22bd19ff..f0ae56cc8f62 100644 --- a/source/include/platform/acefiex.h +++ b/source/include/platform/acefiex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acenv.h b/source/include/platform/acenv.h index 15f0c1e86bc8..740d449556e8 100644 --- a/source/include/platform/acenv.h +++ b/source/include/platform/acenv.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acenvex.h b/source/include/platform/acenvex.h index 2b778cc11592..42bb49010bdf 100644 --- a/source/include/platform/acenvex.h +++ b/source/include/platform/acenvex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acfreebsd.h b/source/include/platform/acfreebsd.h index 68eb4302fc42..91e468795cfd 100644 --- a/source/include/platform/acfreebsd.h +++ b/source/include/platform/acfreebsd.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acgcc.h b/source/include/platform/acgcc.h index 8743332561aa..57c61717ef47 100644 --- a/source/include/platform/acgcc.h +++ b/source/include/platform/acgcc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acgccex.h b/source/include/platform/acgccex.h index 1567cedf89cf..61d428524f8a 100644 --- a/source/include/platform/acgccex.h +++ b/source/include/platform/acgccex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/achaiku.h b/source/include/platform/achaiku.h index db4a647b65e9..b7ec29f47d5d 100644 --- a/source/include/platform/achaiku.h +++ b/source/include/platform/achaiku.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acintel.h b/source/include/platform/acintel.h index 20cbdbdc5cb5..352c628cd887 100644 --- a/source/include/platform/acintel.h +++ b/source/include/platform/acintel.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/aclinux.h b/source/include/platform/aclinux.h index ff859c497a8a..17fd5113112f 100644 --- a/source/include/platform/aclinux.h +++ b/source/include/platform/aclinux.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/aclinuxex.h b/source/include/platform/aclinuxex.h index 0a884ac752cf..f88559d2f1f4 100644 --- a/source/include/platform/aclinuxex.h +++ b/source/include/platform/aclinuxex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acmacosx.h b/source/include/platform/acmacosx.h index 568af5f7536b..fd5f2b3f6b60 100644 --- a/source/include/platform/acmacosx.h +++ b/source/include/platform/acmacosx.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acmsvc.h b/source/include/platform/acmsvc.h index e1a2b51e0731..a2b9e4ced77d 100644 --- a/source/include/platform/acmsvc.h +++ b/source/include/platform/acmsvc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acmsvcex.h b/source/include/platform/acmsvcex.h index 01364f69cbce..8c837ec6ab03 100644 --- a/source/include/platform/acmsvcex.h +++ b/source/include/platform/acmsvcex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acnetbsd.h b/source/include/platform/acnetbsd.h index 2b5f81c1740c..138b9ba6b4f9 100644 --- a/source/include/platform/acnetbsd.h +++ b/source/include/platform/acnetbsd.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acos2.h b/source/include/platform/acos2.h index a569d24880ea..e93aba114545 100644 --- a/source/include/platform/acos2.h +++ b/source/include/platform/acos2.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acqnx.h b/source/include/platform/acqnx.h index e2c4b7f4f32a..30c12e9ef33b 100644 --- a/source/include/platform/acqnx.h +++ b/source/include/platform/acqnx.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acwin.h b/source/include/platform/acwin.h index f119cf4d38fd..84e800023b3e 100644 --- a/source/include/platform/acwin.h +++ b/source/include/platform/acwin.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acwin64.h b/source/include/platform/acwin64.h index bd6cd5b0a15a..49b330aa7829 100644 --- a/source/include/platform/acwin64.h +++ b/source/include/platform/acwin64.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osbsdtbl.c b/source/os_specific/service_layers/osbsdtbl.c index 573ac035cd81..410a6f47a4e9 100644 --- a/source/os_specific/service_layers/osbsdtbl.c +++ b/source/os_specific/service_layers/osbsdtbl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oslinuxtbl.c b/source/os_specific/service_layers/oslinuxtbl.c index 4fb133d2e894..c1438f8e9b30 100644 --- a/source/os_specific/service_layers/oslinuxtbl.c +++ b/source/os_specific/service_layers/oslinuxtbl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osunixdir.c b/source/os_specific/service_layers/osunixdir.c index 2a15da4d367c..a889c4b8d522 100644 --- a/source/os_specific/service_layers/osunixdir.c +++ b/source/os_specific/service_layers/osunixdir.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osunixmap.c b/source/os_specific/service_layers/osunixmap.c index ad5e1e164dc5..be8423f689f7 100644 --- a/source/os_specific/service_layers/osunixmap.c +++ b/source/os_specific/service_layers/osunixmap.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osunixxf.c b/source/os_specific/service_layers/osunixxf.c index 358a8b88b321..33fbb0ceadaf 100644 --- a/source/os_specific/service_layers/osunixxf.c +++ b/source/os_specific/service_layers/osunixxf.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oswindir.c b/source/os_specific/service_layers/oswindir.c index 60e61f32d8c9..bbad99753c50 100644 --- a/source/os_specific/service_layers/oswindir.c +++ b/source/os_specific/service_layers/oswindir.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oswintbl.c b/source/os_specific/service_layers/oswintbl.c index fcbe48a800bf..34176dd8ddf8 100644 --- a/source/os_specific/service_layers/oswintbl.c +++ b/source/os_specific/service_layers/oswintbl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oswinxf.c b/source/os_specific/service_layers/oswinxf.c index 7a1768608579..b903f09aa499 100644 --- a/source/os_specific/service_layers/oswinxf.c +++ b/source/os_specific/service_layers/oswinxf.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpibin/abcompare.c b/source/tools/acpibin/abcompare.c index a314172d194f..cd9d833406ae 100644 --- a/source/tools/acpibin/abcompare.c +++ b/source/tools/acpibin/abcompare.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpibin/abmain.c b/source/tools/acpibin/abmain.c index c928a1af9333..b953e264f575 100644 --- a/source/tools/acpibin/abmain.c +++ b/source/tools/acpibin/abmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpibin/acpibin.h b/source/tools/acpibin/acpibin.h index ac769cc39886..1c3c9d433b4b 100644 --- a/source/tools/acpibin/acpibin.h +++ b/source/tools/acpibin/acpibin.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/acpidump.h b/source/tools/acpidump/acpidump.h index 41ea0365c993..78169682c5e9 100644 --- a/source/tools/acpidump/acpidump.h +++ b/source/tools/acpidump/acpidump.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/apdump.c b/source/tools/acpidump/apdump.c index eb67289ee211..90444084b5cb 100644 --- a/source/tools/acpidump/apdump.c +++ b/source/tools/acpidump/apdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/apfiles.c b/source/tools/acpidump/apfiles.c index f715307682af..d9e4e5cfd6b7 100644 --- a/source/tools/acpidump/apfiles.c +++ b/source/tools/acpidump/apfiles.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/apmain.c b/source/tools/acpidump/apmain.c index d79910ea4309..592d33a5120f 100644 --- a/source/tools/acpidump/apmain.c +++ b/source/tools/acpidump/apmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aecommon.h b/source/tools/acpiexec/aecommon.h index 9dbb3fac1647..c325d8f3b641 100644 --- a/source/tools/acpiexec/aecommon.h +++ b/source/tools/acpiexec/aecommon.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeexception.c b/source/tools/acpiexec/aeexception.c index 0e7a274fd26f..df35aa864f63 100644 --- a/source/tools/acpiexec/aeexception.c +++ b/source/tools/acpiexec/aeexception.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeexec.c b/source/tools/acpiexec/aeexec.c index 9a9fde954e1d..d8d93e6182c6 100644 --- a/source/tools/acpiexec/aeexec.c +++ b/source/tools/acpiexec/aeexec.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aehandlers.c b/source/tools/acpiexec/aehandlers.c index a9bcf981b6c5..a1abdddd0213 100644 --- a/source/tools/acpiexec/aehandlers.c +++ b/source/tools/acpiexec/aehandlers.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeinitfile.c b/source/tools/acpiexec/aeinitfile.c index ce758ed1b9fb..d568b50e9361 100644 --- a/source/tools/acpiexec/aeinitfile.c +++ b/source/tools/acpiexec/aeinitfile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeinstall.c b/source/tools/acpiexec/aeinstall.c index 037f54e8cca2..e39c683db265 100644 --- a/source/tools/acpiexec/aeinstall.c +++ b/source/tools/acpiexec/aeinstall.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aemain.c b/source/tools/acpiexec/aemain.c index 2ed08763734b..7db86f78409b 100644 --- a/source/tools/acpiexec/aemain.c +++ b/source/tools/acpiexec/aemain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeregion.c b/source/tools/acpiexec/aeregion.c index edec2a97d0c1..faae73472f46 100644 --- a/source/tools/acpiexec/aeregion.c +++ b/source/tools/acpiexec/aeregion.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aetables.c b/source/tools/acpiexec/aetables.c index 9b414b6e826e..510c7e2e63e0 100644 --- a/source/tools/acpiexec/aetables.c +++ b/source/tools/acpiexec/aetables.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aetables.h b/source/tools/acpiexec/aetables.h index 5c095cb27df7..88cbfc5c55a8 100644 --- a/source/tools/acpiexec/aetables.h +++ b/source/tools/acpiexec/aetables.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aetests.c b/source/tools/acpiexec/aetests.c index 630de2344957..4491186e1d62 100644 --- a/source/tools/acpiexec/aetests.c +++ b/source/tools/acpiexec/aetests.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/acpihelp.h b/source/tools/acpihelp/acpihelp.h index 1ce8b0bf372e..e6c778f2f789 100644 --- a/source/tools/acpihelp/acpihelp.h +++ b/source/tools/acpihelp/acpihelp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahaml.c b/source/tools/acpihelp/ahaml.c index f3d1428c2498..a077caf2a51b 100644 --- a/source/tools/acpihelp/ahaml.c +++ b/source/tools/acpihelp/ahaml.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahamlops.c b/source/tools/acpihelp/ahamlops.c index 1ef6980fb5d2..76ca2b3ed712 100644 --- a/source/tools/acpihelp/ahamlops.c +++ b/source/tools/acpihelp/ahamlops.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahasl.c b/source/tools/acpihelp/ahasl.c index 2ff9676d7a35..b77c875dfd6c 100644 --- a/source/tools/acpihelp/ahasl.c +++ b/source/tools/acpihelp/ahasl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahaslkey.c b/source/tools/acpihelp/ahaslkey.c index 2fde601bc41d..068ef4690c32 100644 --- a/source/tools/acpihelp/ahaslkey.c +++ b/source/tools/acpihelp/ahaslkey.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahaslops.c b/source/tools/acpihelp/ahaslops.c index 189632ddc40a..df495032b07e 100644 --- a/source/tools/acpihelp/ahaslops.c +++ b/source/tools/acpihelp/ahaslops.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahdecode.c b/source/tools/acpihelp/ahdecode.c index d573ac06ed68..ac3e65cbadfe 100644 --- a/source/tools/acpihelp/ahdecode.c +++ b/source/tools/acpihelp/ahdecode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahgrammar.c b/source/tools/acpihelp/ahgrammar.c index 9cf364826411..e12cc6dbecd2 100644 --- a/source/tools/acpihelp/ahgrammar.c +++ b/source/tools/acpihelp/ahgrammar.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahmain.c b/source/tools/acpihelp/ahmain.c index 86fcc8d38a7c..5310d6010025 100644 --- a/source/tools/acpihelp/ahmain.c +++ b/source/tools/acpihelp/ahmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/acpisrc.h b/source/tools/acpisrc/acpisrc.h index 7e506873f254..4cc19c731d05 100644 --- a/source/tools/acpisrc/acpisrc.h +++ b/source/tools/acpisrc/acpisrc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/ascase.c b/source/tools/acpisrc/ascase.c index 8030ca30d393..f3946a8fefb3 100644 --- a/source/tools/acpisrc/ascase.c +++ b/source/tools/acpisrc/ascase.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/asconvrt.c b/source/tools/acpisrc/asconvrt.c index 1687baf747f3..24ff24cd0e8c 100644 --- a/source/tools/acpisrc/asconvrt.c +++ b/source/tools/acpisrc/asconvrt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License @@ -185,7 +185,7 @@ AsCountLines ( #define MODULE_HEADER_BEGIN "/******************************************************************************\n *\n * Module Name:"; #define MODULE_HEADER_END " *****************************************************************************/\n\n" -#define INTEL_COPYRIGHT " * Copyright (C) 2000 - 2020, Intel Corp.\n" +#define INTEL_COPYRIGHT " * Copyright (C) 2000 - 2021, Intel Corp.\n" /* Opening signature of the Intel legal header */ diff --git a/source/tools/acpisrc/asfile.c b/source/tools/acpisrc/asfile.c index c76a502340e2..41900a31fbbb 100644 --- a/source/tools/acpisrc/asfile.c +++ b/source/tools/acpisrc/asfile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/asmain.c b/source/tools/acpisrc/asmain.c index 8044955ce8f8..206feb445650 100644 --- a/source/tools/acpisrc/asmain.c +++ b/source/tools/acpisrc/asmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/asremove.c b/source/tools/acpisrc/asremove.c index 76deadd5351d..9ab6cb4b9992 100644 --- a/source/tools/acpisrc/asremove.c +++ b/source/tools/acpisrc/asremove.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/astable.c b/source/tools/acpisrc/astable.c index f8fdd239a15e..c5660039a733 100644 --- a/source/tools/acpisrc/astable.c +++ b/source/tools/acpisrc/astable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License @@ -197,7 +197,7 @@ ACPI_STRING_TABLE StandardDataTypes[] = { char EmptyHeader[] = ""; char DualLicenseHeader[] = "/*\n" -" * Copyright (C) 2000 - 2020, Intel Corp.\n" +" * Copyright (C) 2000 - 2021, Intel Corp.\n" " * All rights reserved.\n" " *\n" " * Redistribution and use in source and binary forms, with or without\n" @@ -377,7 +377,6 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_MEMORY_ATTRIBUTE", SRC_TYPE_STRUCT}, {"ACPI_MEMORY_LIST", SRC_TYPE_STRUCT}, {"ACPI_METHOD_LOCAL", SRC_TYPE_STRUCT}, - {"ACPI_MTMR_ENTRY", SRC_TYPE_STRUCT}, {"ACPI_MUTEX", SRC_TYPE_SIMPLE}, {"ACPI_MUTEX_HANDLE", SRC_TYPE_SIMPLE}, {"ACPI_MUTEX_INFO", SRC_TYPE_STRUCT}, @@ -535,10 +534,8 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_INFO", SRC_TYPE_STRUCT}, {"ACPI_TABLE_LIST", SRC_TYPE_STRUCT}, {"ACPI_TABLE_LPIT", SRC_TYPE_STRUCT}, - {"ACPI_TABLE_MTMR", SRC_TYPE_STRUCT}, {"ACPI_TABLE_SUPPORT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_TYPE", SRC_TYPE_SIMPLE}, - {"ACPI_TABLE_VRTC", SRC_TYPE_STRUCT}, {"ACPI_TAG_INFO", SRC_TYPE_STRUCT}, {"ACPI_THREAD_ID", SRC_TYPE_SIMPLE}, {"ACPI_THREAD_STATE", SRC_TYPE_STRUCT}, @@ -549,7 +546,6 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_UUID", SRC_TYPE_STRUCT}, {"ACPI_VENDOR_UUID", SRC_TYPE_STRUCT}, {"ACPI_VENDOR_WALK_INFO", SRC_TYPE_STRUCT}, - {"ACPI_VRTC_ENTRY", SRC_TYPE_STRUCT}, {"ACPI_WALK_AML_CALLBACK", SRC_TYPE_SIMPLE}, {"ACPI_WALK_CALLBACK", SRC_TYPE_SIMPLE}, {"ACPI_WALK_RESOURCE_CALLBACK", SRC_TYPE_SIMPLE}, @@ -1163,8 +1159,8 @@ ACPI_CONVERSION_TABLE LicenseConversionTable = ACPI_STRING_TABLE CustomReplacements[] = { - {"(c) 1999 - 2020", "(c) 1999 - 2020", REPLACE_WHOLE_WORD}, /* Main ACPICA source */ - {"(c) 2006 - 2020", "(c) 2006 - 2020", REPLACE_WHOLE_WORD}, /* Test suites */ + {"(c) 1999 - 2020", "(c) 1999 - 2021", REPLACE_WHOLE_WORD}, /* Main ACPICA source */ + {"(c) 2006 - 2020", "(c) 2006 - 2021", REPLACE_WHOLE_WORD}, /* Test suites */ #if 0 {"SUPPORT, ASSISTANCE", "SUPPORT, ASSISTANCE", REPLACE_WHOLE_WORD}, /* Fix intel header */ diff --git a/source/tools/acpisrc/asutils.c b/source/tools/acpisrc/asutils.c index 5f1c9b74fd37..b1cac273bd47 100644 --- a/source/tools/acpisrc/asutils.c +++ b/source/tools/acpisrc/asutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/acpixtract.c b/source/tools/acpixtract/acpixtract.c index 13cf1ad9a0fb..27810124372f 100644 --- a/source/tools/acpixtract/acpixtract.c +++ b/source/tools/acpixtract/acpixtract.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/acpixtract.h b/source/tools/acpixtract/acpixtract.h index 12b54f9de255..c852a80dc1e9 100644 --- a/source/tools/acpixtract/acpixtract.h +++ b/source/tools/acpixtract/acpixtract.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/axmain.c b/source/tools/acpixtract/axmain.c index 083f410fbdfa..2d41c8594329 100644 --- a/source/tools/acpixtract/axmain.c +++ b/source/tools/acpixtract/axmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/axutils.c b/source/tools/acpixtract/axutils.c index 783be35b170d..cdb22b54d3ab 100644 --- a/source/tools/acpixtract/axutils.c +++ b/source/tools/acpixtract/axutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/efihello/efihello.c b/source/tools/efihello/efihello.c index 93408908ee3c..a9b169a401ea 100644 --- a/source/tools/efihello/efihello.c +++ b/source/tools/efihello/efihello.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/examples.c b/source/tools/examples/examples.c index e2f6aa747f2d..c27d90717391 100644 --- a/source/tools/examples/examples.c +++ b/source/tools/examples/examples.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/examples.h b/source/tools/examples/examples.h index d79f4572d7e9..fc61502f0dc7 100644 --- a/source/tools/examples/examples.h +++ b/source/tools/examples/examples.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/exstubs.c b/source/tools/examples/exstubs.c index 0ca2d68797ce..cb3b0049ae99 100644 --- a/source/tools/examples/exstubs.c +++ b/source/tools/examples/exstubs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/extables.c b/source/tools/examples/extables.c index 1890e43ba50c..6571d16a5ae5 100644 --- a/source/tools/examples/extables.c +++ b/source/tools/examples/extables.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. * All rights reserved. * * 2. License From 1e02e5b0ba8634758c128dcb43c67342c7219cd4 Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Thu, 1 Apr 2021 18:01:03 -0400 Subject: [PATCH 03/10] Import ACPICA 20210331. --- changes.txt | 40 ++ source/common/acfileio.c | 3 + source/common/ahids.c | 2 + source/common/ahpredef.c | 4 + source/common/ahtable.c | 3 + source/common/ahuuids.c | 1 + source/common/cmfsize.c | 2 +- source/common/dmrestag.c | 14 +- source/common/dmtable.c | 103 +++- source/common/dmtbdump1.c | 76 +++ source/common/dmtbdump2.c | 518 ++++++++++++++------- source/common/dmtbdump3.c | 100 ++++ source/common/dmtbinfo1.c | 34 +- source/common/dmtbinfo2.c | 251 ++++++++-- source/common/dmtbinfo3.c | 72 +++ source/compiler/aslallocate.c | 2 +- source/compiler/aslascii.c | 4 +- source/compiler/aslcompiler.h | 4 + source/compiler/aslcompiler.l | 1 + source/compiler/aslerror.c | 6 +- source/compiler/aslhelpers.y | 5 + source/compiler/aslmap.c | 1 + source/compiler/aslmessages.c | 3 +- source/compiler/aslmessages.h | 1 + source/compiler/aslnamesp.c | 3 +- source/compiler/aslopcodes.c | 2 +- source/compiler/asloperands.c | 2 +- source/compiler/aslparser.y | 2 +- source/compiler/aslprintf.c | 2 +- source/compiler/aslresource.c | 5 + source/compiler/aslresources.y | 20 +- source/compiler/aslrestype2s.c | 136 ++++++ source/compiler/asltokens.y | 1 + source/compiler/asltransform.c | 5 + source/compiler/asltypes.y | 2 + source/compiler/dtcompiler.h | 15 + source/compiler/dttable1.c | 143 +++++- source/compiler/dttable2.c | 458 +++++++++++++++--- source/compiler/dttemplate.h | 343 +++++++++----- source/compiler/dtutils.c | 5 + source/components/disassembler/dmresrcl2.c | 90 +++- source/components/events/evhandler.c | 7 + source/components/events/evregion.c | 93 ++-- source/components/events/evxfregn.c | 1 + source/components/namespace/nsaccess.c | 3 +- source/components/namespace/nsrepair2.c | 18 +- source/components/resources/rscalc.c | 4 +- source/components/resources/rsdump.c | 10 + source/components/resources/rsdumpinfo.c | 15 + source/components/resources/rsinfo.c | 6 +- source/components/resources/rslist.c | 10 +- source/components/resources/rsmisc.c | 18 + source/components/resources/rsserial.c | 70 +++ source/components/utilities/utresdecode.c | 11 +- source/components/utilities/utresrc.c | 1 + source/include/acdisasm.h | 44 +- source/include/acobject.h | 1 + source/include/acoutput.h | 2 +- source/include/acpixf.h | 2 +- source/include/acpredef.h | 15 + source/include/acresrc.h | 4 + source/include/acrestyp.h | 12 +- source/include/actbinfo.h | 26 +- source/include/actbl1.h | 63 ++- source/include/actbl2.h | 280 +++++++++-- source/include/actbl3.h | 84 +++- source/include/acutils.h | 1 + source/include/acuuid.h | 1 + source/include/amlresrc.h | 25 +- source/include/platform/acgcc.h | 2 +- source/tools/acpisrc/astable.c | 31 +- 71 files changed, 2825 insertions(+), 519 deletions(-) diff --git a/changes.txt b/changes.txt index e58f906382b5..0b71b266a6ba 100644 --- a/changes.txt +++ b/changes.txt @@ -1,3 +1,43 @@ +---------------------------------------- +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. + ---------------------------------------- 05 January 2021. Summary of changes for version 20210105: diff --git a/source/common/acfileio.c b/source/common/acfileio.c index 628cf7a41b25..99f8972985ec 100644 --- a/source/common/acfileio.c +++ b/source/common/acfileio.c @@ -559,6 +559,9 @@ AcValidateTableHeader ( if (Actual < sizeof (ACPI_TABLE_HEADER)) { + fprintf (stderr, + "Could not read entire table header: Actual %u, Requested %u\n", + (UINT32) Actual, (UINT32) sizeof (ACPI_TABLE_HEADER)); return (AE_ERROR); } diff --git a/source/common/ahids.c b/source/common/ahids.c index 1e6edaf711c1..b58bc082054a 100644 --- a/source/common/ahids.c +++ b/source/common/ahids.c @@ -188,6 +188,8 @@ const AH_DEVICE_ID AslDeviceIds[] = {"ACPI0012", "NVDIMM Root Device"}, {"ACPI0013", "Generic Event Device"}, {"ACPI0014", "Wireless Power Calibration Device"}, + {"ACPI0015", "USB4 host interface device"}, + {"ACPI0016", "Compute Express Link Host Bridge"}, {"ADMA0F28", "Intel Audio DMA"}, {"AMCR0F28", "Intel Audio Machine Driver"}, {"ATK4001", "Asus Radio Control Button"}, diff --git a/source/common/ahpredef.c b/source/common/ahpredef.c index e6e2ffc75aa3..d92417d16ca4 100644 --- a/source/common/ahpredef.c +++ b/source/common/ahpredef.c @@ -200,12 +200,16 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] = AH_PREDEF ("_BMC", "Battery Maintenance Control", "Sets battery maintenance and control features"), AH_PREDEF ("_BMD", "Battery Maintenance Data", "Returns battery maintenance, control, and state data"), AH_PREDEF ("_BMS", "Battery Measurement Sampling Time", "Sets the battery measurement sampling time"), + AH_PREDEF ("_BPC", "Battery Power Characteristics", "Returns static values used to configure power threshold support in the platform firmware"), + AH_PREDEF ("_BPS", "Battery Power State", "Returns the power delivery capabilities of the battery at the present time"), + AH_PREDEF ("_BPT", "Battery Power Threshold", "Set a relative battery peak power capability change threshold"), AH_PREDEF ("_BQC", "Brightness Query Current", "Returns the current display brightness level"), AH_PREDEF ("_BST", "Battery Status", "Returns a Control Method Battery status block"), AH_PREDEF ("_BTH", "Battery Throttle Limit", "Thermal limit for charging and discharging"), AH_PREDEF ("_BTM", "Battery Time", "Returns the battery runtime"), AH_PREDEF ("_BTP", "Battery Trip Point", "Sets a Control Method Battery trip point"), AH_PREDEF ("_CBA", "Configuration Base Address", "Sets the base address for a PCI Express host bridge"), + AH_PREDEF ("_CBR", "CXL Host Bridge Register Info", "Get the memory location of CXL Host Bridge Registers"), AH_PREDEF ("_CCA", "Cache Coherency Attribute", "Returns a device's support level for cache coherency"), AH_PREDEF ("_CDM", "Clock Domain", "Returns a logical processor's clock domain identifier"), AH_PREDEF ("_CID", "Compatible ID", "Returns a device's Plug and Play Compatible ID list"), diff --git a/source/common/ahtable.c b/source/common/ahtable.c index ac3c416bb392..e318ddf39189 100644 --- a/source/common/ahtable.c +++ b/source/common/ahtable.c @@ -203,6 +203,7 @@ const AH_TABLE AcpiGbl_SupportedTables[] = {ACPI_SIG_BERT, "Boot Error Record Table"}, {ACPI_SIG_BGRT, "Boot Graphics Resource Table"}, {ACPI_SIG_BOOT, "Simple Boot Flag Table"}, + {ACPI_SIG_CEDT, "CXL Early Discovery Table"}, {ACPI_SIG_CPEP, "Corrected Platform Error Polling table"}, {ACPI_SIG_CSRT, "Core System Resource Table"}, {ACPI_SIG_DBG2, "Debug Port table type 2"}, @@ -231,6 +232,7 @@ const AH_TABLE AcpiGbl_SupportedTables[] = {ACPI_SIG_MSDM, "Microsoft Data Management table"}, {ACPI_SIG_NFIT, "NVDIMM Firmware Interface Table"}, {ACPI_SIG_PCCT, "Platform Communications Channel Table"}, + {ACPI_SIG_PHAT, "Platform Health Assessment Table"}, {ACPI_SIG_PDTT, "Platform Debug Trigger Table"}, {ACPI_SIG_PMTT, "Platform Memory Topology Table"}, {ACPI_SIG_PPTT, "Processor Properties Topology Table"}, @@ -251,6 +253,7 @@ const AH_TABLE AcpiGbl_SupportedTables[] = {ACPI_SIG_TCPA, "Trusted Computing Platform Alliance table"}, {ACPI_SIG_TPM2, "Trusted Platform Module hardware interface table"}, {ACPI_SIG_UEFI, "UEFI Boot Optimization Table"}, + {ACPI_SIG_VIOT, "Virtual I/O Translation Table"}, {ACPI_SIG_WAET, "Windows ACPI Emulated Devices Table"}, {ACPI_SIG_WDAT, "Watchdog Action Table"}, {ACPI_SIG_WDDT, "Watchdog Description Table"}, diff --git a/source/common/ahuuids.c b/source/common/ahuuids.c index 427f91694233..eef1c5688cfd 100644 --- a/source/common/ahuuids.c +++ b/source/common/ahuuids.c @@ -208,6 +208,7 @@ const AH_UUID Gbl_AcpiUuids[] = {"Device Graphs for _DSD", UUID_DEVICE_GRAPHS}, {"Hierarchical Data Extension", UUID_HIERARCHICAL_DATA_EXTENSION}, {"ARM Coresight Graph", UUID_CORESIGHT_GRAPH}, + {"USB4 Capabilities", UUID_USB4_CAPABILITIES}, {NULL, NULL} }; diff --git a/source/common/cmfsize.c b/source/common/cmfsize.c index e0c66e31d780..38ec915a989d 100644 --- a/source/common/cmfsize.c +++ b/source/common/cmfsize.c @@ -1,6 +1,6 @@ /****************************************************************************** * - * Module Name: cfsize - Common get file size function + * Module Name: cmfsize - Common get file size function * *****************************************************************************/ diff --git a/source/common/dmrestag.c b/source/common/dmrestag.c index d8a044069c93..59d5c4f4faeb 100644 --- a/source/common/dmrestag.c +++ b/source/common/dmrestag.c @@ -384,6 +384,14 @@ static const ACPI_RESOURCE_TAG AcpiDmGpioIoTags[] = /* Subtype tables for SerialBus descriptors */ +static const ACPI_RESOURCE_TAG AcpiDmCsi2SerialBusTags[] = /* ACPI 6.4 */ +{ + {( 6 * 8) + 0, ACPI_RESTAG_SLAVEMODE}, + {( 7 * 8) + 0, ACPI_RESTAG_PHYTYPE}, + {( 7 * 8) + 2, ACPI_RESTAG_LOCALPORT}, + {0, NULL} +}; + static const ACPI_RESOURCE_TAG AcpiDmI2cSerialBusTags[] = { {( 6 * 8) + 0, ACPI_RESTAG_SLAVEMODE}, @@ -424,6 +432,7 @@ static const ACPI_RESOURCE_TAG AcpiDmUartSerialBusTags[] = {0, NULL} }; + /* Subtype tables for PinFunction descriptor */ static const ACPI_RESOURCE_TAG AcpiDmPinFunctionTags[] = @@ -539,7 +548,8 @@ static const ACPI_RESOURCE_TAG *AcpiGbl_SerialResourceTags[] = NULL, /* 0x00 Reserved */ AcpiDmI2cSerialBusTags, /* 0x01 I2C SerialBus */ AcpiDmSpiSerialBusTags, /* 0x02 SPI SerialBus */ - AcpiDmUartSerialBusTags /* 0x03 UART SerialBus */ + AcpiDmUartSerialBusTags, /* 0x03 UART SerialBus */ + AcpiDmCsi2SerialBusTags /* 0x04 CSI2 SerialBus */ }; /* @@ -987,7 +997,7 @@ AcpiDmGetResourceTag ( case ACPI_RESOURCE_NAME_SERIAL_BUS: - /* SerialBus has 3 subtypes: I2C, SPI, and UART */ + /* SerialBus has 4 subtypes: I2C, SPI, UART, and CSI2 */ if ((Resource->CommonSerialBus.Type == 0) || (Resource->CommonSerialBus.Type > AML_RESOURCE_MAX_SERIALBUSTYPE)) diff --git a/source/common/dmtable.c b/source/common/dmtable.c index 3e4c6c34153c..ffec889a06de 100644 --- a/source/common/dmtable.c +++ b/source/common/dmtable.c @@ -184,6 +184,12 @@ static const char *AcpiDmAsfSubnames[] = "Unknown Subtable Type" /* Reserved */ }; +static const char *AcpiDmCedtSubnames[] = +{ + "CXL Host Bridge Structure", + "Unknown Subtable Type" /* Reserved */ +}; + static const char *AcpiDmDmarSubnames[] = { "Hardware Unit Definition", @@ -367,15 +373,24 @@ static const char *AcpiDmPcctSubnames[] = "HW-Reduced Comm Subspace Type2", /* ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE_TYPE2 */ "Extended PCC Master Subspace", /* ACPI_PCCT_TYPE_EXT_PCC_MASTER_SUBSPACE */ "Extended PCC Slave Subspace", /* ACPI_PCCT_TYPE_EXT_PCC_SLAVE_SUBSPACE */ + "HW Registers based Comm Subspace", /* ACPI_PCCT_TYPE_HW_REG_COMM_SUBSPACE */ "Unknown Subtable Type" /* Reserved */ }; +static const char *AcpiDmPhatSubnames[] = +{ + "Firmware Version Data", /* ACPI_PHAT_TYPE_FW_VERSION_DATA */ + "Firmware Health Data", /* ACPI_PHAT_TYPE_FW_HEALTH_DATA */ + "Unknown Subtable Type" /* Reserved */ +}; + static const char *AcpiDmPmttSubnames[] = { "Socket", /* ACPI_PMTT_TYPE_SOCKET */ "Memory Controller", /* ACPI_PMTT_TYPE_CONTROLLER */ "Physical Component (DIMM)", /* ACPI_PMTT_TYPE_DIMM */ - "Unknown Subtable Type" /* Reserved */ + "Unknown Subtable Type", /* Reserved */ + "Vendor Specific" /* ACPI_PMTT_TYPE_VENDOR */ }; static const char *AcpiDmPpttSubnames[] = @@ -434,6 +449,16 @@ static const char *AcpiDmLpitSubnames[] = "Unknown Subtable Type" /* Reserved */ }; +static const char *AcpiDmViotSubnames[] = +{ + "Unknown Subtable Type", /* 0 -Reserved */ + "PCI Range", + "MMIO Endpoint", + "VirtIO-PCI IOMMU", + "VirtIO-MMIO IOMMU", + "Unknown Subtable Type" /* Reserved */ +}; + #define ACPI_FADT_PM_RESERVED 9 static const char *AcpiDmFadtProfiles[] = @@ -474,8 +499,8 @@ static const char *AcpiDmGasAccessWidth[] = * handler. This table must be NULL terminated. RSDP and FACS are * special-cased elsewhere. * - * Note: Any tables added here should be duplicated within AcpiSupportedTables - * in the file common/ahtable.c + * Note: Any tables added here should be duplicated within + * AcpiGbl_SupportedTables in the file common/ahtable.c * ******************************************************************************/ @@ -485,6 +510,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = {ACPI_SIG_BERT, AcpiDmTableInfoBert, NULL, NULL, TemplateBert}, {ACPI_SIG_BGRT, AcpiDmTableInfoBgrt, NULL, NULL, TemplateBgrt}, {ACPI_SIG_BOOT, AcpiDmTableInfoBoot, NULL, NULL, TemplateBoot}, + {ACPI_SIG_CEDT, NULL, AcpiDmDumpCedt, DtCompileCedt, TemplateCedt}, {ACPI_SIG_CPEP, NULL, AcpiDmDumpCpep, DtCompileCpep, TemplateCpep}, {ACPI_SIG_CSRT, NULL, AcpiDmDumpCsrt, DtCompileCsrt, TemplateCsrt}, {ACPI_SIG_DBG2, AcpiDmTableInfoDbg2, AcpiDmDumpDbg2, DtCompileDbg2, TemplateDbg2}, @@ -512,6 +538,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = {ACPI_SIG_NFIT, AcpiDmTableInfoNfit, AcpiDmDumpNfit, DtCompileNfit, TemplateNfit}, {ACPI_SIG_PCCT, AcpiDmTableInfoPcct, AcpiDmDumpPcct, DtCompilePcct, TemplatePcct}, {ACPI_SIG_PDTT, AcpiDmTableInfoPdtt, AcpiDmDumpPdtt, DtCompilePdtt, TemplatePdtt}, + {ACPI_SIG_PHAT, NULL, AcpiDmDumpPhat, DtCompilePhat, TemplatePhat}, {ACPI_SIG_PMTT, NULL, AcpiDmDumpPmtt, DtCompilePmtt, TemplatePmtt}, {ACPI_SIG_PPTT, NULL, AcpiDmDumpPptt, DtCompilePptt, TemplatePptt}, {ACPI_SIG_RASF, AcpiDmTableInfoRasf, NULL, NULL, TemplateRasf}, @@ -529,6 +556,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = {ACPI_SIG_TCPA, NULL, AcpiDmDumpTcpa, DtCompileTcpa, TemplateTcpa}, {ACPI_SIG_TPM2, AcpiDmTableInfoTpm2, AcpiDmDumpTpm2, DtCompileTpm2, TemplateTpm2}, {ACPI_SIG_UEFI, AcpiDmTableInfoUefi, NULL, DtCompileUefi, TemplateUefi}, + {ACPI_SIG_VIOT, AcpiDmTableInfoViot, AcpiDmDumpViot, DtCompileViot, TemplateViot}, {ACPI_SIG_WAET, AcpiDmTableInfoWaet, NULL, NULL, TemplateWaet}, {ACPI_SIG_WDAT, NULL, AcpiDmDumpWdat, DtCompileWdat, TemplateWdat}, {ACPI_SIG_WDDT, AcpiDmTableInfoWddt, NULL, NULL, TemplateWddt}, @@ -936,6 +964,7 @@ AcpiDmDumpTable ( case ACPI_DMT_CHKSUM: case ACPI_DMT_SPACEID: case ACPI_DMT_ACCWIDTH: + case ACPI_DMT_CEDT: case ACPI_DMT_IVRS: case ACPI_DMT_GTDT: case ACPI_DMT_MADT: @@ -952,6 +981,7 @@ AcpiDmDumpTable ( case ACPI_DMT_ERSTACT: case ACPI_DMT_ERSTINST: case ACPI_DMT_DMAR_SCOPE: + case ACPI_DMT_VIOT: ByteLength = 1; break; @@ -961,6 +991,7 @@ AcpiDmDumpTable ( case ACPI_DMT_HEST: case ACPI_DMT_HMAT: case ACPI_DMT_NFIT: + case ACPI_DMT_PHAT: ByteLength = 2; break; @@ -1030,6 +1061,17 @@ AcpiDmDumpTable ( ByteLength = SubtableLength; break; + case ACPI_DMT_PMTT_VENDOR: + /* + * Calculate the length of the vendor data for the PMTT table: + * Length = (Current Subtable ptr + Subtable length) - + * Start of the vendor data (Target) + */ + ByteLength = ((ACPI_CAST_PTR (char, Table) + + (ACPI_CAST_PTR (ACPI_PMTT_HEADER, Table)->Length)) - + ACPI_CAST_PTR (char, Target)); + break; + case ACPI_DMT_STRING: ByteLength = strlen (ACPI_CAST_PTR (char, Target)) + 1; @@ -1346,6 +1388,20 @@ AcpiDmDumpTable ( AcpiOsPrintf (UINT8_FORMAT, *Target, AcpiDmAsfSubnames[Temp16]); break; + case ACPI_DMT_CEDT: + + /* CEDT subtable types */ + + Temp8 = *Target; + if (Temp8 > ACPI_CEDT_TYPE_RESERVED) + { + Temp8 = ACPI_CEDT_TYPE_RESERVED; + } + + AcpiOsPrintf (UINT8_FORMAT, *Target, + AcpiDmCedtSubnames[Temp8]); + break; + case ACPI_DMT_DMAR: /* DMAR subtable types */ @@ -1559,16 +1615,33 @@ AcpiDmDumpTable ( AcpiDmPcctSubnames[Temp8]); break; + case ACPI_DMT_PHAT: + + /* PMTT subtable types */ + + Temp16 = *Target; + if (Temp16 > ACPI_PHAT_TYPE_RESERVED) + { + Temp16 = ACPI_PHAT_TYPE_RESERVED; + } + + AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16(Target), + AcpiDmPhatSubnames[Temp16]); + break; + case ACPI_DMT_PMTT: /* PMTT subtable types */ Temp8 = *Target; - if (Temp8 > ACPI_PMTT_TYPE_RESERVED) + if (Temp8 == ACPI_PMTT_TYPE_VENDOR) + { + Temp8 = ACPI_PMTT_TYPE_RESERVED + 1; + } + else if (Temp8 > ACPI_PMTT_TYPE_RESERVED) { Temp8 = ACPI_PMTT_TYPE_RESERVED; } - AcpiOsPrintf (UINT8_FORMAT, *Target, AcpiDmPmttSubnames[Temp8]); break; @@ -1599,6 +1672,8 @@ AcpiDmDumpTable ( break; case ACPI_DMT_RAW_BUFFER: + case ACPI_DMT_BUFFER: + case ACPI_DMT_PMTT_VENDOR: if (ByteLength == 0) { @@ -1606,8 +1681,7 @@ AcpiDmDumpTable ( break; } - AcpiDmDumpBuffer (Table, CurrentOffset, ByteLength, - CurrentOffset, NULL); + AcpiDmDumpBuffer (Target, 0, ByteLength, 0, NULL); break; case ACPI_DMT_SDEV: @@ -1676,6 +1750,7 @@ AcpiDmDumpTable ( { case ACPI_IVRS_TYPE_HARDWARE1: case ACPI_IVRS_TYPE_HARDWARE2: + case ACPI_IVRS_TYPE_HARDWARE3: Name = AcpiDmIvrsSubnames[0]; break; @@ -1710,6 +1785,20 @@ AcpiDmDumpTable ( AcpiDmLpitSubnames[Temp32]); break; + case ACPI_DMT_VIOT: + + /* VIOT subtable types */ + + Temp8 = *Target; + if (Temp8 > ACPI_VIOT_RESERVED) + { + Temp8 = ACPI_VIOT_RESERVED; + } + + AcpiOsPrintf (UINT8_FORMAT, *Target, + AcpiDmViotSubnames[Temp8]); + break; + case ACPI_DMT_EXIT: return (AE_OK); diff --git a/source/common/dmtbdump1.c b/source/common/dmtbdump1.c index 72d667e9759a..8fc53acf49d8 100644 --- a/source/common/dmtbdump1.c +++ b/source/common/dmtbdump1.c @@ -329,6 +329,82 @@ AcpiDmDumpAsf ( } } +/******************************************************************************* + * + * FUNCTION: AcpiDmDumpCedt + * + * PARAMETERS: Table - A CEDT table + * + * RETURN: None + * + * DESCRIPTION: Format the contents of a CEDT. This table type consists + * of an open-ended number of subtables. + * + ******************************************************************************/ + +void +AcpiDmDumpCedt ( + ACPI_TABLE_HEADER *Table) +{ + ACPI_STATUS Status; + ACPI_CEDT_HEADER *Subtable; + UINT32 Length = Table->Length; + UINT32 Offset = sizeof (ACPI_TABLE_CEDT); + ACPI_DMTABLE_INFO *InfoTable; + + + /* There is no main table (other than the standard ACPI header) */ + + Subtable = ACPI_ADD_PTR (ACPI_CEDT_HEADER, Table, Offset); + while (Offset < Table->Length) + { + /* Common subtable header */ + + AcpiOsPrintf ("\n"); + Status = AcpiDmDumpTable (Length, Offset, Subtable, + Subtable->Length, AcpiDmTableInfoCedtHdr); + if (ACPI_FAILURE (Status)) + { + return; + } + + switch (Subtable->Type) + { + case ACPI_CEDT_TYPE_CHBS: + + InfoTable = AcpiDmTableInfoCedt0; + break; + + default: + + AcpiOsPrintf ("\n**** Unknown CEDT subtable type 0x%X\n\n", + Subtable->Type); + + /* Attempt to continue */ + + if (!Subtable->Length) + { + AcpiOsPrintf ("Invalid zero length subtable\n"); + return; + } + goto NextSubtable; + } + + Status = AcpiDmDumpTable (Length, Offset, Subtable, + Subtable->Length, InfoTable); + if (ACPI_FAILURE (Status)) + { + return; + } + +NextSubtable: + /* Point to next subtable */ + + Offset += Subtable->Length; + Subtable = ACPI_ADD_PTR (ACPI_CEDT_HEADER, Subtable, + Subtable->Length); + } +} /******************************************************************************* * diff --git a/source/common/dmtbdump2.c b/source/common/dmtbdump2.c index b8ece375a4f2..80d9d459778c 100644 --- a/source/common/dmtbdump2.c +++ b/source/common/dmtbdump2.c @@ -181,6 +181,7 @@ AcpiDmDumpIort ( ACPI_IORT_NODE *IortNode; ACPI_IORT_ITS_GROUP *IortItsGroup = NULL; ACPI_IORT_SMMU *IortSmmu = NULL; + ACPI_IORT_RMR *IortRmr = NULL; UINT32 Offset; UINT32 NodeOffset; UINT32 Length; @@ -188,6 +189,7 @@ AcpiDmDumpIort ( char *String; UINT32 i; UINT32 MappingByteLength; + UINT8 Revision; /* Main table */ @@ -198,6 +200,17 @@ AcpiDmDumpIort ( return; } + Revision = Table->Revision; + + /* Both IORT Rev E and E.a have known issues and are not supported */ + + if (Revision == 1 || Revision == 2) + { + AcpiOsPrintf ("\n**** Unsupported IORT revision 0x%X\n", + Revision); + return; + } + Iort = ACPI_CAST_PTR (ACPI_TABLE_IORT, Table); Offset = sizeof (ACPI_TABLE_IORT); @@ -221,8 +234,18 @@ AcpiDmDumpIort ( IortNode = ACPI_ADD_PTR (ACPI_IORT_NODE, Table, Offset); AcpiOsPrintf ("\n"); Length = ACPI_OFFSET (ACPI_IORT_NODE, NodeData); - Status = AcpiDmDumpTable (Table->Length, Offset, - IortNode, Length, AcpiDmTableInfoIortHdr); + + if (Revision == 0) + { + Status = AcpiDmDumpTable (Table->Length, Offset, + IortNode, Length, AcpiDmTableInfoIortHdr); + } + else if (Revision >= 3) + { + Status = AcpiDmDumpTable (Table->Length, Offset, + IortNode, Length, AcpiDmTableInfoIortHdr3); + } + if (ACPI_FAILURE (Status)) { return; @@ -272,6 +295,13 @@ AcpiDmDumpIort ( Length = IortNode->Length - NodeOffset; break; + case ACPI_IORT_NODE_RMR: + + InfoTable = AcpiDmTableInfoIort6; + Length = IortNode->Length - NodeOffset; + IortRmr = ACPI_ADD_PTR (ACPI_IORT_RMR, IortNode, NodeOffset); + break; + default: AcpiOsPrintf ("\n**** Unknown IORT node type 0x%X\n", @@ -391,7 +421,30 @@ AcpiDmDumpIort ( } break; - default: + case ACPI_IORT_NODE_RMR: + + /* Validate IortRmr to avoid compiler warnings */ + if (IortRmr) + { + NodeOffset = IortRmr->RmrOffset; + Length = sizeof (ACPI_IORT_RMR_DESC); + for (i = 0; i < IortRmr->RmrCount; i++) + { + AcpiOsPrintf ("\n"); + Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, + ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), + Length, AcpiDmTableInfoIort6a); + if (ACPI_FAILURE (Status)) + { + return; + } + + NodeOffset += Length; + } + } + break; + + default: break; } @@ -434,8 +487,6 @@ AcpiDmDumpIort ( * ******************************************************************************/ -static UINT8 EntrySizes[] = {4,8,16,32}; - void AcpiDmDumpIvrs ( ACPI_TABLE_HEADER *Table) @@ -445,6 +496,7 @@ AcpiDmDumpIvrs ( UINT32 EntryOffset; UINT32 EntryLength; UINT32 EntryType; + ACPI_IVRS_DEVICE_HID *HidSubtable; ACPI_IVRS_DE_HEADER *DeviceEntry; ACPI_IVRS_HEADER *Subtable; ACPI_DMTABLE_INFO *InfoTable; @@ -481,6 +533,7 @@ AcpiDmDumpIvrs ( break; case ACPI_IVRS_TYPE_HARDWARE2: + case ACPI_IVRS_TYPE_HARDWARE3: InfoTable = AcpiDmTableInfoIvrs01; break; @@ -520,7 +573,8 @@ AcpiDmDumpIvrs ( /* The hardware subtable can contain multiple device entries */ if (Subtable->Type == ACPI_IVRS_TYPE_HARDWARE1 || - Subtable->Type == ACPI_IVRS_TYPE_HARDWARE2) + Subtable->Type == ACPI_IVRS_TYPE_HARDWARE2 || + Subtable->Type == ACPI_IVRS_TYPE_HARDWARE3) { if (Subtable->Type == ACPI_IVRS_TYPE_HARDWARE1) { @@ -545,11 +599,10 @@ AcpiDmDumpIvrs ( * * 00 = 4 byte * 01 = 8 byte - * 10 = 16 byte - currently no entries defined - * 11 = 32 byte - currently no entries defined + * 1x = variable length */ EntryType = DeviceEntry->Type; - EntryLength = EntrySizes [EntryType >> 6]; + EntryLength = EntryType >> 6 == 1 ? 8 : 4; switch (EntryType) { @@ -588,6 +641,14 @@ AcpiDmDumpIvrs ( InfoTable = AcpiDmTableInfoIvrs8c; break; + /* Variable-length entries */ + + case ACPI_IVRS_TYPE_HID: + + EntryLength = 22; + InfoTable = AcpiDmTableInfoIvrsHid; + break; + default: InfoTable = AcpiDmTableInfoIvrs4; AcpiOsPrintf ( @@ -606,9 +667,24 @@ AcpiDmDumpIvrs ( return; } + HidSubtable = ACPI_CAST_PTR (ACPI_IVRS_DEVICE_HID, DeviceEntry); EntryOffset += EntryLength; DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, DeviceEntry, EntryLength); + + if (EntryType == ACPI_IVRS_TYPE_HID) + { + EntryLength = HidSubtable->UidLength; + Status = AcpiDmDumpTable (Table->Length, EntryOffset, + Table, EntryLength, AcpiDmTableInfoIvrsHid1); + if (ACPI_FAILURE (Status)) + { + return; + } + EntryOffset += EntryLength; + DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, + DeviceEntry, EntryLength); + } } } @@ -825,6 +901,11 @@ AcpiDmDumpMadt ( InfoTable = AcpiDmTableInfoMadt15; break; + case ACPI_MADT_TYPE_MULTIPROC_WAKEUP: + + InfoTable = AcpiDmTableInfoMadt16; + break; + default: AcpiOsPrintf ("\n**** Unknown MADT subtable type 0x%X\n\n", @@ -1380,6 +1461,11 @@ AcpiDmDumpPcct ( InfoTable = AcpiDmTableInfoPcct4; break; + case ACPI_PCCT_TYPE_HW_REG_COMM_SUBSPACE: + + InfoTable = AcpiDmTableInfoPcct5; + break; + default: AcpiOsPrintf ( @@ -1459,6 +1545,140 @@ AcpiDmDumpPdtt ( } +/******************************************************************************* + * + * FUNCTION: AcpiDmDumpPhat + * + * PARAMETERS: Table - A PHAT table + * + * RETURN: None + * + * DESCRIPTION: Format the contents of a PHAT. + * + ******************************************************************************/ + +void +AcpiDmDumpPhat ( + ACPI_TABLE_HEADER *Table) +{ + ACPI_STATUS Status; + ACPI_DMTABLE_INFO *InfoTable; + ACPI_PHAT_HEADER *Subtable; + ACPI_PHAT_VERSION_DATA *VersionData; + UINT32 RecordCount; + UINT32 Length = Table->Length; + UINT32 Offset = sizeof (ACPI_TABLE_PHAT); + UINT32 SubtableLength; + UINT32 PathLength; + UINT32 VendorLength; + + + Subtable = ACPI_ADD_PTR (ACPI_PHAT_HEADER, Table, sizeof (ACPI_TABLE_PHAT)); + + while (Offset < Table->Length) + { + /* Common subtable header */ + + AcpiOsPrintf ("\n"); + Status = AcpiDmDumpTable (Length, 0, Subtable, + sizeof (ACPI_PHAT_HEADER), AcpiDmTableInfoPhatHdr); + if (ACPI_FAILURE (Status)) + { + return; + } + + switch (Subtable->Type) + { + case ACPI_PHAT_TYPE_FW_VERSION_DATA: + + InfoTable = AcpiDmTableInfoPhat0; + SubtableLength = sizeof (ACPI_PHAT_VERSION_DATA); + break; + + case ACPI_PHAT_TYPE_FW_HEALTH_DATA: + + InfoTable = AcpiDmTableInfoPhat1; + SubtableLength = sizeof (ACPI_PHAT_HEALTH_DATA); + break; + + default: + + AcpiOsPrintf ("\n**** Unknown PHAT subtable type 0x%X\n\n", + Subtable->Type); + + return; + } + + Status = AcpiDmDumpTable (Length, 0, Subtable, + SubtableLength, InfoTable); + if (ACPI_FAILURE (Status)) + { + return; + } + + switch (Subtable->Type) + { + case ACPI_PHAT_TYPE_FW_VERSION_DATA: + + VersionData = ACPI_CAST_PTR (ACPI_PHAT_VERSION_DATA, Subtable); + RecordCount = VersionData->ElementCount; + while (RecordCount) + { + Status = AcpiDmDumpTable (Length, Offset, + ACPI_ADD_PTR (ACPI_PHAT_HEADER, Subtable, sizeof (ACPI_PHAT_VERSION_DATA)), + sizeof (ACPI_PHAT_VERSION_ELEMENT), AcpiDmTableInfoPhat0a); + if (ACPI_FAILURE (Status)) + { + return; + } + + RecordCount--; + } + + break; + + case ACPI_PHAT_TYPE_FW_HEALTH_DATA: + + /* account for the null terminator */ + + PathLength = strlen (ACPI_ADD_PTR (char, Subtable, sizeof (ACPI_PHAT_HEALTH_DATA))) + 1; + Status = AcpiDmDumpTable (Length, Offset, + ACPI_ADD_PTR (ACPI_PHAT_HEADER, Subtable, sizeof (ACPI_PHAT_HEALTH_DATA)), + PathLength, AcpiDmTableInfoPhat1a); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Get vendor data - data length is the remaining subtable length */ + + VendorLength = + Subtable->Length - sizeof (ACPI_PHAT_HEALTH_DATA) - PathLength; + Status = AcpiDmDumpTable (Length, 0, + ACPI_ADD_PTR (ACPI_PHAT_HEADER, Subtable, sizeof (ACPI_PHAT_HEALTH_DATA) + PathLength), + VendorLength, AcpiDmTableInfoPhat1b); + if (ACPI_FAILURE (Status)) + { + return; + } + break; + + default: + + AcpiOsPrintf ("\n**** Unknown PHAT subtable type 0x%X\n\n", + Subtable->Type); + return; + } + + /* Next subtable */ + + Offset += Subtable->Length; + Subtable = ACPI_ADD_PTR (ACPI_PHAT_HEADER, Subtable, + Subtable->Length); + } +} + + /******************************************************************************* * * FUNCTION: AcpiDmDumpPmtt @@ -1478,15 +1698,8 @@ AcpiDmDumpPmtt ( { ACPI_STATUS Status; ACPI_PMTT_HEADER *Subtable; - ACPI_PMTT_HEADER *MemSubtable; - ACPI_PMTT_HEADER *DimmSubtable; - ACPI_PMTT_DOMAIN *DomainArray; UINT32 Length = Table->Length; UINT32 Offset = sizeof (ACPI_TABLE_PMTT); - UINT32 MemOffset; - UINT32 DimmOffset; - UINT32 DomainOffset; - UINT32 DomainCount; /* Main table */ @@ -1502,160 +1715,56 @@ AcpiDmDumpPmtt ( Subtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, Table, Offset); while (Offset < Table->Length) { - /* Common subtable header */ + /* Each of the types below contain the common subtable header */ AcpiOsPrintf ("\n"); - Status = AcpiDmDumpTable (Length, Offset, Subtable, - Subtable->Length, AcpiDmTableInfoPmttHdr); - if (ACPI_FAILURE (Status)) + switch (Subtable->Type) { - return; - } + case ACPI_PMTT_TYPE_SOCKET: - /* Only Socket subtables are expected at this level */ + Status = AcpiDmDumpTable (Length, Offset, Subtable, + Subtable->Length, AcpiDmTableInfoPmtt0); + if (ACPI_FAILURE (Status)) + { + return; + } + break; - if (Subtable->Type != ACPI_PMTT_TYPE_SOCKET) - { + case ACPI_PMTT_TYPE_CONTROLLER: + Status = AcpiDmDumpTable (Length, Offset, Subtable, + Subtable->Length, AcpiDmTableInfoPmtt1); + if (ACPI_FAILURE (Status)) + { + return; + } + break; + + case ACPI_PMTT_TYPE_DIMM: + Status = AcpiDmDumpTable (Length, Offset, Subtable, + Subtable->Length, AcpiDmTableInfoPmtt2); + if (ACPI_FAILURE (Status)) + { + return; + } + break; + + case ACPI_PMTT_TYPE_VENDOR: + Status = AcpiDmDumpTable (Length, Offset, Subtable, + Subtable->Length, AcpiDmTableInfoPmttVendor); + if (ACPI_FAILURE (Status)) + { + return; + } + break; + + default: AcpiOsPrintf ( "\n**** Unexpected or unknown PMTT subtable type 0x%X\n\n", Subtable->Type); return; } - /* Dump the fixed-length portion of the subtable */ - - Status = AcpiDmDumpTable (Length, Offset, Subtable, - Subtable->Length, AcpiDmTableInfoPmtt0); - if (ACPI_FAILURE (Status)) - { - return; - } - - /* Walk the memory controller subtables */ - - MemOffset = sizeof (ACPI_PMTT_SOCKET); - MemSubtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, Subtable, - sizeof (ACPI_PMTT_SOCKET)); - - while (((Offset + MemOffset) < Table->Length) && - (MemOffset < Subtable->Length)) - { - /* Common subtable header */ - - AcpiOsPrintf ("\n"); - Status = AcpiDmDumpTable (Length, - Offset + MemOffset, MemSubtable, - MemSubtable->Length, AcpiDmTableInfoPmttHdr); - if (ACPI_FAILURE (Status)) - { - return; - } - - /* Only memory controller subtables are expected at this level */ - - if (MemSubtable->Type != ACPI_PMTT_TYPE_CONTROLLER) - { - AcpiOsPrintf ( - "\n**** Unexpected or unknown PMTT subtable type 0x%X\n\n", - MemSubtable->Type); - return; - } - - /* Dump the fixed-length portion of the controller subtable */ - - Status = AcpiDmDumpTable (Length, - Offset + MemOffset, MemSubtable, - MemSubtable->Length, AcpiDmTableInfoPmtt1); - if (ACPI_FAILURE (Status)) - { - return; - } - - /* Walk the variable count of proximity domains */ - - DomainCount = ((ACPI_PMTT_CONTROLLER *) MemSubtable)->DomainCount; - DomainOffset = sizeof (ACPI_PMTT_CONTROLLER); - DomainArray = ACPI_ADD_PTR (ACPI_PMTT_DOMAIN, MemSubtable, - sizeof (ACPI_PMTT_CONTROLLER)); - - while (((Offset + MemOffset + DomainOffset) < Table->Length) && - ((MemOffset + DomainOffset) < Subtable->Length) && - DomainCount) - { - Status = AcpiDmDumpTable (Length, - Offset + MemOffset + DomainOffset, DomainArray, - sizeof (ACPI_PMTT_DOMAIN), AcpiDmTableInfoPmtt1a); - if (ACPI_FAILURE (Status)) - { - return; - } - - DomainOffset += sizeof (ACPI_PMTT_DOMAIN); - DomainArray++; - DomainCount--; - } - - if (DomainCount) - { - AcpiOsPrintf ( - "\n**** DomainCount exceeds subtable length\n\n"); - } - - /* Walk the physical component (DIMM) subtables */ - - DimmOffset = DomainOffset; - DimmSubtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, MemSubtable, - DomainOffset); - - while (((Offset + MemOffset + DimmOffset) < Table->Length) && - (DimmOffset < MemSubtable->Length)) - { - /* Common subtable header */ - - AcpiOsPrintf ("\n"); - Status = AcpiDmDumpTable (Length, - Offset + MemOffset + DimmOffset, DimmSubtable, - DimmSubtable->Length, AcpiDmTableInfoPmttHdr); - if (ACPI_FAILURE (Status)) - { - return; - } - - /* Only DIMM subtables are expected at this level */ - - if (DimmSubtable->Type != ACPI_PMTT_TYPE_DIMM) - { - AcpiOsPrintf ( - "\n**** Unexpected or unknown PMTT subtable type 0x%X\n\n", - DimmSubtable->Type); - return; - } - - /* Dump the fixed-length DIMM subtable */ - - Status = AcpiDmDumpTable (Length, - Offset + MemOffset + DimmOffset, DimmSubtable, - DimmSubtable->Length, AcpiDmTableInfoPmtt2); - if (ACPI_FAILURE (Status)) - { - return; - } - - /* Point to next DIMM subtable */ - - DimmOffset += DimmSubtable->Length; - DimmSubtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, - DimmSubtable, DimmSubtable->Length); - } - - /* Point to next Controller subtable */ - - MemOffset += MemSubtable->Length; - MemSubtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, - MemSubtable, MemSubtable->Length); - } - - /* Point to next Socket subtable */ + /* Point to next subtable */ Offset += Subtable->Length; Subtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, @@ -1786,6 +1895,21 @@ AcpiDmDumpPptt ( } break; + case ACPI_PPTT_TYPE_CACHE: + + if (Table->Revision < 3) + { + break; + } + Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, + ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Subtable, SubtableOffset), + sizeof (ACPI_PPTT_CACHE_V1), AcpiDmTableInfoPptt1a); + if (ACPI_FAILURE (Status)) + { + return; + } + break; + default: break; @@ -1906,17 +2030,20 @@ void AcpiDmDumpSdev ( ACPI_TABLE_HEADER *Table) { - ACPI_STATUS Status; - ACPI_SDEV_HEADER *Subtable; - ACPI_SDEV_PCIE *Pcie; - ACPI_SDEV_NAMESPACE *Namesp; - ACPI_DMTABLE_INFO *InfoTable; - UINT32 Length = Table->Length; - UINT32 Offset = sizeof (ACPI_TABLE_SDEV); - UINT16 PathOffset; - UINT16 PathLength; - UINT16 VendorDataOffset; - UINT16 VendorDataLength; + ACPI_STATUS Status; + ACPI_SDEV_HEADER *Subtable; + ACPI_SDEV_PCIE *Pcie; + ACPI_SDEV_NAMESPACE *Namesp; + ACPI_DMTABLE_INFO *InfoTable; + ACPI_DMTABLE_INFO *SecureComponentInfoTable; + UINT32 Length = Table->Length; + UINT32 Offset = sizeof (ACPI_TABLE_SDEV); + UINT16 PathOffset; + UINT16 PathLength; + UINT16 VendorDataOffset; + UINT16 VendorDataLength; + ACPI_SDEV_SECURE_COMPONENT *SecureComponent = NULL; + UINT32 CurrentOffset = 0; /* Main table */ @@ -1959,7 +2086,7 @@ AcpiDmDumpSdev ( } AcpiOsPrintf ("\n"); - Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, + Status = AcpiDmDumpTable (Table->Length, 0, Subtable, Subtable->Length, InfoTable); if (ACPI_FAILURE (Status)) { @@ -1970,6 +2097,52 @@ AcpiDmDumpSdev ( { case ACPI_SDEV_TYPE_NAMESPACE_DEVICE: + CurrentOffset = sizeof (ACPI_SDEV_NAMESPACE); + if (Subtable->Flags & ACPI_SDEV_SECURE_COMPONENTS_PRESENT) + { + SecureComponent = ACPI_CAST_PTR (ACPI_SDEV_SECURE_COMPONENT, + ACPI_ADD_PTR (UINT8, Subtable, sizeof (ACPI_SDEV_NAMESPACE))); + + Status = AcpiDmDumpTable (Table->Length, CurrentOffset, + ACPI_ADD_PTR(UINT8, Subtable, sizeof (ACPI_SDEV_NAMESPACE)), + sizeof (ACPI_SDEV_SECURE_COMPONENT), AcpiDmTableInfoSdev0b); + if (ACPI_FAILURE (Status)) + { + return; + } + CurrentOffset += sizeof (ACPI_SDEV_SECURE_COMPONENT); + + Status = AcpiDmDumpTable (Table->Length, CurrentOffset, + ACPI_ADD_PTR(UINT8, Subtable, SecureComponent->SecureComponentOffset), + sizeof (ACPI_SDEV_HEADER), AcpiDmTableInfoSdevSecCompHdr); + if (ACPI_FAILURE (Status)) + { + return; + } + CurrentOffset += sizeof (ACPI_SDEV_HEADER); + + switch (Subtable->Type) + { + case ACPI_SDEV_TYPE_ID_COMPONENT: + + SecureComponentInfoTable = AcpiDmTableInfoSdevSecCompId; + break; + + case ACPI_SDEV_TYPE_MEM_COMPONENT: + + SecureComponentInfoTable = AcpiDmTableInfoSdevSecCompMem; + break; + + default: + goto NextSubtable; + } + + Status = AcpiDmDumpTable (Table->Length, CurrentOffset, + ACPI_ADD_PTR(UINT8, Subtable, SecureComponent->SecureComponentOffset), + SecureComponent->SecureComponentLength, SecureComponentInfoTable); + CurrentOffset += SecureComponent->SecureComponentLength; + } + /* Dump the PCIe device ID(s) */ Namesp = ACPI_CAST_PTR (ACPI_SDEV_NAMESPACE, Subtable); @@ -1978,13 +2151,14 @@ AcpiDmDumpSdev ( if (PathLength) { - Status = AcpiDmDumpTable (Table->Length, 0, + Status = AcpiDmDumpTable (Table->Length, CurrentOffset, ACPI_ADD_PTR (UINT8, Namesp, PathOffset), PathLength, AcpiDmTableInfoSdev0a); if (ACPI_FAILURE (Status)) { return; } + CurrentOffset += PathLength; } /* Dump the vendor-specific data */ diff --git a/source/common/dmtbdump3.c b/source/common/dmtbdump3.c index fde8f7a884ab..7f559eeef3a6 100644 --- a/source/common/dmtbdump3.c +++ b/source/common/dmtbdump3.c @@ -601,6 +601,106 @@ AcpiDmDumpTpm2 ( } +/******************************************************************************* + * + * FUNCTION: AcpiDmDumpViot + * + * PARAMETERS: Table - A VIOT table + * + * RETURN: None + * + * DESCRIPTION: Format the contents of a VIOT + * + ******************************************************************************/ + +void +AcpiDmDumpViot ( + ACPI_TABLE_HEADER *Table) +{ + ACPI_STATUS Status; + ACPI_TABLE_VIOT *Viot; + ACPI_VIOT_HEADER *ViotHeader; + UINT16 Length; + UINT16 Offset; + ACPI_DMTABLE_INFO *InfoTable; + + /* Main table */ + + Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoViot); + if (ACPI_FAILURE (Status)) + { + return; + } + + Viot = ACPI_CAST_PTR (ACPI_TABLE_VIOT, Table); + + Offset = Viot->NodeOffset; + while (Offset < Table->Length) + { + /* Common subtable header */ + ViotHeader = ACPI_ADD_PTR (ACPI_VIOT_HEADER, Table, Offset); + AcpiOsPrintf ("\n"); + + Length = sizeof (ACPI_VIOT_HEADER); + Status = AcpiDmDumpTable (Table->Length, Offset, ViotHeader, Length, + AcpiDmTableInfoViotHeader); + if (ACPI_FAILURE (Status)) + { + return; + } + + Length = ViotHeader->Length; + switch (ViotHeader->Type) + { + case ACPI_VIOT_NODE_PCI_RANGE: + + InfoTable = AcpiDmTableInfoViot1; + break; + + case ACPI_VIOT_NODE_MMIO: + + InfoTable = AcpiDmTableInfoViot2; + break; + + case ACPI_VIOT_NODE_VIRTIO_IOMMU_PCI: + + InfoTable = AcpiDmTableInfoViot3; + break; + + case ACPI_VIOT_NODE_VIRTIO_IOMMU_MMIO: + + InfoTable = AcpiDmTableInfoViot4; + break; + + default: + + AcpiOsPrintf ("\n*** Unknown VIOT node type 0x%X\n", + ViotHeader->Type); + + /* Attempt to continue */ + + if (!Length) + { + AcpiOsPrintf ("Invalid zero length VIOT node\n"); + return; + } + goto NextSubtable; + } + + AcpiOsPrintf ("\n"); + Status = AcpiDmDumpTable (Table->Length, Offset, ViotHeader, Length, + InfoTable); + if (ACPI_FAILURE (Status)) + { + return; + } + +NextSubtable: + Offset += Length; + } +} + + /******************************************************************************* * * FUNCTION: AcpiDmDumpWdat diff --git a/source/common/dmtbinfo1.c b/source/common/dmtbinfo1.c index 5931c01e81d1..ea545f53a5a1 100644 --- a/source/common/dmtbinfo1.c +++ b/source/common/dmtbinfo1.c @@ -344,6 +344,33 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[] = }; +/******************************************************************************* + * + * CEDT - CXL Early Discovery Table + * + ******************************************************************************/ + +ACPI_DMTABLE_INFO AcpiDmTableInfoCedtHdr[] = +{ + {ACPI_DMT_CEDT, ACPI_CEDT_OFFSET (Type), "Subtable Type", 0}, + {ACPI_DMT_UINT8, ACPI_CEDT_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT16, ACPI_CEDT_OFFSET (Length), "Length", DT_LENGTH}, + ACPI_DMT_TERMINATOR +}; + +/* 0: CXL Host Bridge Structure */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoCedt0[] = +{ + {ACPI_DMT_UINT32, ACPI_CEDT0_OFFSET (Uid), "Associated host bridge", 0}, + {ACPI_DMT_UINT32, ACPI_CEDT0_OFFSET (CxlVersion), "Specification version", 0}, + {ACPI_DMT_UINT32, ACPI_CEDT0_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_CEDT0_OFFSET (Base), "Register base", 0}, + {ACPI_DMT_UINT64, ACPI_CEDT0_OFFSET (Length), "Register length", 0}, + ACPI_DMT_TERMINATOR +}; + + /******************************************************************************* * * CPEP - Corrected Platform Error Polling table @@ -1134,9 +1161,12 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoHmat0[] = ACPI_DMTABLE_INFO AcpiDmTableInfoHmat1[] = { {ACPI_DMT_UINT8, ACPI_HMAT1_OFFSET (Flags), "Flags (decoded below)", 0}, - {ACPI_DMT_FLAGS4_0, ACPI_HMAT1_FLAG_OFFSET (Flags,0), "Memory Hierarchy", 0}, + {ACPI_DMT_FLAGS4_0, ACPI_HMAT1_FLAG_OFFSET (Flags,0), "Memory Hierarchy", 0}, /* First 4 bits */ + {ACPI_DMT_FLAG4, ACPI_HMAT1_FLAG_OFFSET (Flags,0), "Use Minimum Transfer Size", 0}, + {ACPI_DMT_FLAG5, ACPI_HMAT1_FLAG_OFFSET (Flags,0), "Non-sequential Transfers", 0}, {ACPI_DMT_UINT8, ACPI_HMAT1_OFFSET (DataType), "Data Type", 0}, - {ACPI_DMT_UINT16, ACPI_HMAT1_OFFSET (Reserved1), "Reserved1", 0}, + {ACPI_DMT_UINT8, ACPI_HMAT1_OFFSET (MinTransferSize), "Minimum Transfer Size", 0}, + {ACPI_DMT_UINT8, ACPI_HMAT1_OFFSET (Reserved1), "Reserved1", 0}, {ACPI_DMT_UINT32, ACPI_HMAT1_OFFSET (NumberOfInitiatorPDs), "Initiator Proximity Domains #", 0}, {ACPI_DMT_UINT32, ACPI_HMAT1_OFFSET (NumberOfTargetPDs), "Target Proximity Domains #", 0}, {ACPI_DMT_UINT32, ACPI_HMAT1_OFFSET (Reserved2), "Reserved2", 0}, diff --git a/source/common/dmtbinfo2.c b/source/common/dmtbinfo2.c index 0d61cb7a3231..9bb4b48c052a 100644 --- a/source/common/dmtbinfo2.c +++ b/source/common/dmtbinfo2.c @@ -218,7 +218,20 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoIortHdr[] = {ACPI_DMT_UINT8, ACPI_IORTH_OFFSET (Type), "Type", 0}, {ACPI_DMT_UINT16, ACPI_IORTH_OFFSET (Length), "Length", DT_LENGTH}, {ACPI_DMT_UINT8, ACPI_IORTH_OFFSET (Revision), "Revision", 0}, - {ACPI_DMT_UINT32, ACPI_IORTH_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT32, ACPI_IORTH_OFFSET (Identifier), "Reserved", 0}, + {ACPI_DMT_UINT32, ACPI_IORTH_OFFSET (MappingCount), "Mapping Count", 0}, + {ACPI_DMT_UINT32, ACPI_IORTH_OFFSET (MappingOffset), "Mapping Offset", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Common Subtable header (one per Subtable)- Revision 3 */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoIortHdr3[] = +{ + {ACPI_DMT_UINT8, ACPI_IORTH_OFFSET (Type), "Type", 0}, + {ACPI_DMT_UINT16, ACPI_IORTH_OFFSET (Length), "Length", DT_LENGTH}, + {ACPI_DMT_UINT8, ACPI_IORTH_OFFSET (Revision), "Revision", 0}, + {ACPI_DMT_UINT32, ACPI_IORTH_OFFSET (Identifier), "Identifier", 0}, {ACPI_DMT_UINT32, ACPI_IORTH_OFFSET (MappingCount), "Mapping Count", 0}, {ACPI_DMT_UINT32, ACPI_IORTH_OFFSET (MappingOffset), "Mapping Offset", 0}, ACPI_DMT_TERMINATOR @@ -369,6 +382,25 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoIort5[] = }; +/* 0x06: RMR */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoIort6[] = +{ + {ACPI_DMT_UINT32, ACPI_IORT6_OFFSET (Flags), "Flags (decoded below)", 0}, + {ACPI_DMT_FLAG0, ACPI_IORT6_FLAG_OFFSET (Flags, 0), "Remapping Permitted", 0}, + {ACPI_DMT_UINT32, ACPI_IORT6_OFFSET (RmrCount), "Number of RMR Descriptors", 0}, + {ACPI_DMT_UINT32, ACPI_IORT6_OFFSET (RmrOffset), "RMR Descriptor Offset", 0}, + ACPI_DMT_TERMINATOR +}; + +ACPI_DMTABLE_INFO AcpiDmTableInfoIort6a[] = +{ + {ACPI_DMT_UINT64, ACPI_IORT6A_OFFSET (BaseAddress), "Base Address of RMR", DT_OPTIONAL}, + {ACPI_DMT_UINT64, ACPI_IORT6A_OFFSET (Length), "Length of RMR", 0}, + {ACPI_DMT_UINT32, ACPI_IORT6A_OFFSET (Reserved), "Reserved", 0}, + ACPI_DMT_TERMINATOR +}; + /******************************************************************************* * * IVRS - I/O Virtualization Reporting Structure @@ -478,6 +510,24 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[] = ACPI_DMT_TERMINATOR }; +/* Variable-length device entry */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHid[] = +{ + ACPI_DMT_IVRS_DE_HEADER, + {ACPI_DMT_NAME8, ACPI_IVRSHID_OFFSET (AcpiHid), "ACPI HID", 0}, + {ACPI_DMT_NAME8, ACPI_IVRSHID_OFFSET (AcpiCid), "ACPI CID", 0}, + {ACPI_DMT_UINT8, ACPI_IVRSHID_OFFSET (UidType), "UID Format", DT_DESCRIBES_OPTIONAL}, + {ACPI_DMT_UINT8, ACPI_IVRSHID_OFFSET (UidLength), "UID Length", DT_DESCRIBES_OPTIONAL}, + ACPI_DMT_TERMINATOR +}; + +ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHid1[] = +{ + {ACPI_DMT_RAW_BUFFER, 0, "UID", DT_OPTIONAL}, + ACPI_DMT_TERMINATOR +}; + /******************************************************************************* * @@ -751,6 +801,16 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15[] = ACPI_DMT_TERMINATOR }; +/* 16: Multiprocessor wakeup structure (ACPI 6.4) */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt16[] = +{ + {ACPI_DMT_UINT16, ACPI_MADT16_OFFSET (MailboxVersion), "Mailbox Version", 0}, + {ACPI_DMT_UINT32, ACPI_MADT16_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_MADT16_OFFSET (BaseAddress), "Mailbox Address", 0}, + ACPI_DMT_TERMINATOR +}; + /******************************************************************************* * @@ -938,12 +998,14 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoNfit0[] = {ACPI_DMT_UINT16, ACPI_NFIT0_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, {ACPI_DMT_FLAG0, ACPI_NFIT0_FLAG_OFFSET (Flags,0), "Add/Online Operation Only", 0}, {ACPI_DMT_FLAG1, ACPI_NFIT0_FLAG_OFFSET (Flags,0), "Proximity Domain Valid", 0}, + {ACPI_DMT_FLAG2, ACPI_NFIT0_FLAG_OFFSET (Flags,0), "Location Cookie Valid", 0}, {ACPI_DMT_UINT32, ACPI_NFIT0_OFFSET (Reserved), "Reserved", 0}, {ACPI_DMT_UINT32, ACPI_NFIT0_OFFSET (ProximityDomain), "Proximity Domain", 0}, {ACPI_DMT_UUID, ACPI_NFIT0_OFFSET (RangeGuid[0]), "Region Type GUID", 0}, {ACPI_DMT_UINT64, ACPI_NFIT0_OFFSET (Address), "Address Range Base", 0}, {ACPI_DMT_UINT64, ACPI_NFIT0_OFFSET (Length), "Address Range Length", 0}, {ACPI_DMT_UINT64, ACPI_NFIT0_OFFSET (MemoryMapping), "Memory Map Attribute", 0}, + {ACPI_DMT_UINT64, ACPI_NFIT0_OFFSET (LocationCookie), "Location Cookie", 0}, /* ACPI 6.4 */ ACPI_DMT_TERMINATOR }; @@ -1219,6 +1281,25 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPcct4[] = ACPI_DMT_TERMINATOR }; +/* 5: HW Registers based Communications Subspace */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoPcct5[] = +{ + {ACPI_DMT_UINT16, ACPI_PCCT5_OFFSET (Version), "Version", 0}, + {ACPI_DMT_UINT64, ACPI_PCCT5_OFFSET (BaseAddress), "Base Address", 0}, + {ACPI_DMT_UINT64, ACPI_PCCT5_OFFSET (Length), "Length", 0}, + {ACPI_DMT_GAS, ACPI_PCCT5_OFFSET (DoorbellRegister), "Doorbell Register", 0}, + {ACPI_DMT_UINT64, ACPI_PCCT5_OFFSET (DoorbellPreserve), "Preserve Mask", 0}, + {ACPI_DMT_UINT64, ACPI_PCCT5_OFFSET (DoorbellWrite), "Write Mask", 0}, + {ACPI_DMT_GAS, ACPI_PCCT5_OFFSET (CmdCompleteRegister), "Command Complete Register", 0}, + {ACPI_DMT_UINT64, ACPI_PCCT5_OFFSET (CmdCompleteMask), "Command Complete Check Mask", 0}, + {ACPI_DMT_GAS, ACPI_PCCT5_OFFSET (ErrorStatusRegister), "Error Status Register", 0}, + {ACPI_DMT_UINT64, ACPI_PCCT5_OFFSET (ErrorStatusMask), "Error Status Mask", 0}, + {ACPI_DMT_UINT32, ACPI_PCCT5_OFFSET (NominalLatency), "Nominal Latency", 0}, + {ACPI_DMT_UINT32, ACPI_PCCT5_OFFSET (MinTurnaroundTime), "Minimum Turnaround Time", 0}, + ACPI_DMT_TERMINATOR +}; + /******************************************************************************* * @@ -1245,6 +1326,61 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt0[] = }; +/******************************************************************************* + * + * PHAT - Platform Health Assessment Table (ACPI 6.4) + * + ******************************************************************************/ + +ACPI_DMTABLE_INFO AcpiDmTableInfoPhatHdr[] = +{ + {ACPI_DMT_PHAT, ACPI_PHATH_OFFSET (Type), "Subtable Type", 0}, + {ACPI_DMT_UINT16, ACPI_PHATH_OFFSET (Length), "Length", 0}, + {ACPI_DMT_UINT8, ACPI_PHATH_OFFSET (Revision), "Revision", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 0: Firmware version table */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0[] = +{ + {ACPI_DMT_UINT24, ACPI_PHAT0_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT32, ACPI_PHAT0_OFFSET (ElementCount), "Element Count", 0}, + ACPI_DMT_TERMINATOR +}; + +ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0a[] = +{ + {ACPI_DMT_UUID, ACPI_PHAT0A_OFFSET (Guid), "GUID", 0}, + {ACPI_DMT_UINT64, ACPI_PHAT0A_OFFSET (VersionValue), "Version Value", 0}, + {ACPI_DMT_UINT32, ACPI_PHAT0A_OFFSET (ProducerId), "Producer ID", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 1: Firmware Health Data Record */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1[] = +{ + {ACPI_DMT_UINT16, ACPI_PHAT1_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT8, ACPI_PHAT1_OFFSET (Health), "Health", 0}, + {ACPI_DMT_UUID, ACPI_PHAT1_OFFSET (DeviceGuid), "Device GUID", 0}, + {ACPI_DMT_UINT32, ACPI_PHAT1_OFFSET (DeviceSpecificOffset), "Device specific offset", 0}, + ACPI_DMT_TERMINATOR +}; + +ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1a[] = +{ + {ACPI_DMT_STRING, 0, "Namepath", 0}, + ACPI_DMT_TERMINATOR +}; + +ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1b[] = +{ + {ACPI_DMT_RAW_BUFFER, 0, "Vendor Data", 0}, + ACPI_DMT_TERMINATOR +}; + + /******************************************************************************* * * PMTT - Platform Memory Topology Table @@ -1253,24 +1389,22 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt0[] = ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt[] = { - {ACPI_DMT_UINT32, ACPI_PMTT_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT32, ACPI_PMTT_OFFSET (MemoryDeviceCount), "Memory Device Count", 0}, ACPI_DMT_TERMINATOR }; /* Common Subtable header (one per Subtable) */ -ACPI_DMTABLE_INFO AcpiDmTableInfoPmttHdr[] = -{ - {ACPI_DMT_PMTT, ACPI_PMTTH_OFFSET (Type), "Subtable Type", 0}, - {ACPI_DMT_UINT8, ACPI_PMTTH_OFFSET (Reserved1), "Reserved", 0}, - {ACPI_DMT_UINT16, ACPI_PMTTH_OFFSET (Length), "Length", DT_LENGTH}, - {ACPI_DMT_UINT16, ACPI_PMTTH_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, - {ACPI_DMT_FLAG0, ACPI_PMTTH_FLAG_OFFSET (Flags,0), "Top-level Device", 0}, - {ACPI_DMT_FLAG1, ACPI_PMTTH_FLAG_OFFSET (Flags,0), "Physical Element", 0}, - {ACPI_DMT_FLAGS2, ACPI_PMTTH_FLAG_OFFSET (Flags,0), "Memory Type", 0}, - {ACPI_DMT_UINT16, ACPI_PMTTH_OFFSET (Reserved2), "Reserved", 0}, - ACPI_DMT_TERMINATOR -}; +#define ACPI_DM_PMTT_HEADER \ + {ACPI_DMT_PMTT, ACPI_PMTTH_OFFSET (Type), "Subtable Type", 0}, \ + {ACPI_DMT_UINT8, ACPI_PMTTH_OFFSET (Reserved1), "Reserved", 0}, \ + {ACPI_DMT_UINT16, ACPI_PMTTH_OFFSET (Length), "Length", DT_LENGTH}, \ + {ACPI_DMT_UINT16, ACPI_PMTTH_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, \ + {ACPI_DMT_FLAG0, ACPI_PMTTH_FLAG_OFFSET (Flags,0), "Top-level Device", 0}, \ + {ACPI_DMT_FLAG1, ACPI_PMTTH_FLAG_OFFSET (Flags,0), "Physical Element", 0}, \ + {ACPI_DMT_FLAGS2, ACPI_PMTTH_FLAG_OFFSET (Flags,0), "Memory Type", 0}, \ + {ACPI_DMT_UINT16, ACPI_PMTTH_OFFSET (Reserved2), "Reserved", 0}, \ + {ACPI_DMT_UINT32, ACPI_PMTTH_OFFSET (MemoryDeviceCount), "Memory Device Count", 0} /* PMTT Subtables */ @@ -1278,6 +1412,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPmttHdr[] = ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt0[] = { + ACPI_DM_PMTT_HEADER, {ACPI_DMT_UINT16, ACPI_PMTT0_OFFSET (SocketId), "Socket ID", 0}, {ACPI_DMT_UINT16, ACPI_PMTT0_OFFSET (Reserved), "Reserved", 0}, ACPI_DMT_TERMINATOR @@ -1287,22 +1422,9 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt0[] = ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1[] = { - {ACPI_DMT_UINT32, ACPI_PMTT1_OFFSET (ReadLatency), "Read Latency", 0}, - {ACPI_DMT_UINT32, ACPI_PMTT1_OFFSET (WriteLatency), "Write Latency", 0}, - {ACPI_DMT_UINT32, ACPI_PMTT1_OFFSET (ReadBandwidth), "Read Bandwidth", 0}, - {ACPI_DMT_UINT32, ACPI_PMTT1_OFFSET (WriteBandwidth), "Write Bandwidth", 0}, - {ACPI_DMT_UINT16, ACPI_PMTT1_OFFSET (AccessWidth), "Access Width", 0}, - {ACPI_DMT_UINT16, ACPI_PMTT1_OFFSET (Alignment), "Alignment", 0}, + ACPI_DM_PMTT_HEADER, + {ACPI_DMT_UINT16, ACPI_PMTT1_OFFSET (ControllerId), "Controller ID", 0}, {ACPI_DMT_UINT16, ACPI_PMTT1_OFFSET (Reserved), "Reserved", 0}, - {ACPI_DMT_UINT16, ACPI_PMTT1_OFFSET (DomainCount), "Domain Count", 0}, - ACPI_DMT_TERMINATOR -}; - -/* 1a: Proximity Domain */ - -ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1a[] = -{ - {ACPI_DMT_UINT32, ACPI_PMTT1A_OFFSET (ProximityDomain), "Proximity Domain", 0}, ACPI_DMT_TERMINATOR }; @@ -1310,13 +1432,21 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1a[] = ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt2[] = { - {ACPI_DMT_UINT16, ACPI_PMTT2_OFFSET (ComponentId), "Component ID", 0}, - {ACPI_DMT_UINT16, ACPI_PMTT2_OFFSET (Reserved), "Reserved", 0}, - {ACPI_DMT_UINT32, ACPI_PMTT2_OFFSET (MemorySize), "Memory Size", 0}, + ACPI_DM_PMTT_HEADER, {ACPI_DMT_UINT32, ACPI_PMTT2_OFFSET (BiosHandle), "Bios Handle", 0}, ACPI_DMT_TERMINATOR }; +/* 0xFF: Vendor Specific */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoPmttVendor[] = +{ + ACPI_DM_PMTT_HEADER, + {ACPI_DMT_UUID, ACPI_PMTT_VENDOR_OFFSET (TypeUuid), "Type Uuid", 0}, + {ACPI_DMT_PMTT_VENDOR, ACPI_PMTT_VENDOR_OFFSET (Specific), "Vendor Data", 0}, + ACPI_DMT_TERMINATOR +}; + /******************************************************************************* * @@ -1371,6 +1501,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1[] = {ACPI_DMT_FLAG4, ACPI_PPTT1_FLAG_OFFSET (Flags,0), "Cache Type valid", 0}, {ACPI_DMT_FLAG5, ACPI_PPTT1_FLAG_OFFSET (Flags,0), "Write Policy valid", 0}, {ACPI_DMT_FLAG6, ACPI_PPTT1_FLAG_OFFSET (Flags,0), "Line Size valid", 0}, + {ACPI_DMT_FLAG7, ACPI_PPTT1_FLAG_OFFSET (Flags,0), "Cache ID valid", 0}, {ACPI_DMT_UINT32, ACPI_PPTT1_OFFSET (NextLevelOfCache), "Next Level of Cache", 0}, {ACPI_DMT_UINT32, ACPI_PPTT1_OFFSET (Size), "Size", 0}, {ACPI_DMT_UINT32, ACPI_PPTT1_OFFSET (NumberOfSets), "Number of Sets", 0}, @@ -1383,6 +1514,14 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1[] = ACPI_DMT_TERMINATOR }; +/* 1: cache type v1 */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1a[] = +{ + {ACPI_DMT_UINT32, ACPI_PPTT1A_OFFSET (CacheId), "Cache ID", 0}, + ACPI_DMT_TERMINATOR +}; + /* 2: ID */ ACPI_DMTABLE_INFO AcpiDmTableInfoPptt2[] = @@ -1499,6 +1638,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoSdevHdr[] = {ACPI_DMT_SDEV, ACPI_SDEVH_OFFSET (Type), "Subtable Type", 0}, {ACPI_DMT_UINT8, ACPI_SDEVH_OFFSET (Flags), "Flags (decoded below)", 0}, {ACPI_DMT_FLAG0, ACPI_SDEVH_FLAG_OFFSET (Flags,0), "Allow handoff to unsecure OS", 0}, + {ACPI_DMT_FLAG1, ACPI_SDEVH_FLAG_OFFSET (Flags,0), "Secure access components present", 0}, {ACPI_DMT_UINT16, ACPI_SDEVH_OFFSET (Length), "Length", 0}, ACPI_DMT_TERMINATOR }; @@ -1522,6 +1662,53 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0a[] = ACPI_DMT_TERMINATOR }; +ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0b[] = +{ + {ACPI_DMT_UINT16, ACPI_SDEV0B_OFFSET (SecureComponentOffset), "Secure Access Components Offset", 0}, + {ACPI_DMT_UINT16, ACPI_SDEV0B_OFFSET (SecureComponentLength), "Secure Access Components Length", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Secure access components */ + +/* Common secure access components header secure access component */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompHdr[] = +{ + {ACPI_DMT_UINT8, ACPI_SDEVCH_OFFSET (Type), "Secure Component Type", 0}, + {ACPI_DMT_UINT8, ACPI_SDEVCH_OFFSET (Flags), "Flags (decoded below)", 0}, + {ACPI_DMT_UINT16, ACPI_SDEVCH_OFFSET (Length), "Length", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 0: Identification Based Secure Access Component */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompId[] = +{ + {ACPI_DMT_UINT16, ACPI_SDEVC0_OFFSET (HardwareIdOffset), "Hardware ID Offset", 0}, + {ACPI_DMT_UINT16, ACPI_SDEVC0_OFFSET (HardwareIdLength), "Hardware ID Length", 0}, + {ACPI_DMT_UINT16, ACPI_SDEVC0_OFFSET (SubsystemIdOffset), "Subsystem ID Offset", 0}, + {ACPI_DMT_UINT16, ACPI_SDEVC0_OFFSET (SubsystemIdLength), "Subsystem ID Length", 0}, + {ACPI_DMT_UINT16, ACPI_SDEVC0_OFFSET (HardwareRevision), "Hardware Revision", 0}, + {ACPI_DMT_UINT8, ACPI_SDEVC0_OFFSET (HardwareRevPresent), "Hardware Rev Present", 0}, + {ACPI_DMT_UINT8, ACPI_SDEVC0_OFFSET (ClassCodePresent), "Class Code Present", 0}, + {ACPI_DMT_UINT8, ACPI_SDEVC0_OFFSET (PciBaseClass), "PCI Base Class", 0}, + {ACPI_DMT_UINT8, ACPI_SDEVC0_OFFSET (PciSubClass), "PCI SubClass", 0}, + {ACPI_DMT_UINT8, ACPI_SDEVC0_OFFSET (PciProgrammingXface), "PCI Programming Xface", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 1: Memory Based Secure Access Component */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompMem[] = +{ + {ACPI_DMT_UINT32, ACPI_SDEVC1_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_SDEVC1_OFFSET (MemoryBaseAddress), "Memory Base Address", 0}, + {ACPI_DMT_UINT64, ACPI_SDEVC1_OFFSET (MemoryLength), "Memory Length", 0}, + ACPI_DMT_TERMINATOR +}; + + /* 1: PCIe Endpoint Device Based Device Structure */ ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1[] = diff --git a/source/common/dmtbinfo3.c b/source/common/dmtbinfo3.c index 99661d06a3e4..773ba16ecb4a 100644 --- a/source/common/dmtbinfo3.c +++ b/source/common/dmtbinfo3.c @@ -378,6 +378,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoSrat5[] = {ACPI_DMT_BUF16, ACPI_SRAT5_OFFSET (DeviceHandle), "Device Handle", 0}, {ACPI_DMT_UINT32, ACPI_SRAT5_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, {ACPI_DMT_FLAG0, ACPI_SRAT5_FLAG_OFFSET (Flags,0), "Enabled", 0}, + {ACPI_DMT_FLAG1, ACPI_SRAT5_FLAG_OFFSET (Flags,0), "Architectural Transactions", 0}, {ACPI_DMT_UINT32, ACPI_SRAT5_OFFSET (Reserved1), "Reserved2", 0}, ACPI_DMT_TERMINATOR }; @@ -526,6 +527,77 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[] = }; +/******************************************************************************* + * + * VIOT - Virtual I/O Translation Table + * + ******************************************************************************/ + +ACPI_DMTABLE_INFO AcpiDmTableInfoViot[] = +{ + {ACPI_DMT_UINT16, ACPI_VIOT_OFFSET (NodeCount), "Node count", 0}, + {ACPI_DMT_UINT16, ACPI_VIOT_OFFSET (NodeOffset), "Node offset", 0}, + {ACPI_DMT_UINT64, ACPI_VIOT_OFFSET (Reserved), "Reserved", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Common VIOT subtable header */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoViotHeader[] = +{ + {ACPI_DMT_VIOT, ACPI_VIOTH_OFFSET (Type), "Type", 0}, + {ACPI_DMT_UINT8, ACPI_VIOTH_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT16, ACPI_VIOTH_OFFSET (Length), "Length", DT_LENGTH}, + ACPI_DMT_TERMINATOR +}; + +/* VIOT Subtables */ + +/* 0x01: PCI Range Node */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoViot1[] = +{ + {ACPI_DMT_UINT32, ACPI_VIOT1_OFFSET (EndpointStart), "Endpoint start", 0}, + {ACPI_DMT_UINT16, ACPI_VIOT1_OFFSET (SegmentStart), "PCI Segment start", 0}, + {ACPI_DMT_UINT16, ACPI_VIOT1_OFFSET (SegmentEnd), "PCI Segment end", 0}, + {ACPI_DMT_UINT16, ACPI_VIOT1_OFFSET (BdfStart), "PCI BDF start", 0}, + {ACPI_DMT_UINT16, ACPI_VIOT1_OFFSET (BdfEnd), "PCI BDF end", 0}, + {ACPI_DMT_UINT16, ACPI_VIOT1_OFFSET (OutputNode), "Output node", 0}, + {ACPI_DMT_UINT48, ACPI_VIOT1_OFFSET (Reserved), "Reserved", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 0x02: MMIO Endpoint Node */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoViot2[] = +{ + {ACPI_DMT_UINT32, ACPI_VIOT2_OFFSET (Endpoint), "Endpoint", 0}, + {ACPI_DMT_UINT64, ACPI_VIOT2_OFFSET (BaseAddress), "Base address", 0}, + {ACPI_DMT_UINT16, ACPI_VIOT2_OFFSET (OutputNode), "Output node", 0}, + {ACPI_DMT_UINT48, ACPI_VIOT2_OFFSET (Reserved), "Reserved", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 0x03: PCI Virtio-IOMMU Node */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoViot3[] = +{ + {ACPI_DMT_UINT16, ACPI_VIOT3_OFFSET (Segment), "PCI Segment", 0}, + {ACPI_DMT_UINT16, ACPI_VIOT3_OFFSET (Bdf), "PCI BDF number", 0}, + {ACPI_DMT_UINT64, ACPI_VIOT3_OFFSET (Reserved), "Reserved", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 0x04: MMIO Virtio-IOMMU Node */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoViot4[] = +{ + {ACPI_DMT_UINT32, ACPI_VIOT4_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_VIOT4_OFFSET (BaseAddress), "Base address", 0}, + ACPI_DMT_TERMINATOR +}; + + /******************************************************************************* * * WAET - Windows ACPI Emulated devices Table diff --git a/source/compiler/aslallocate.c b/source/compiler/aslallocate.c index 4007687b2326..8be711b2c017 100644 --- a/source/compiler/aslallocate.c +++ b/source/compiler/aslallocate.c @@ -153,7 +153,7 @@ /* * Local heap allocation wrappers. See aslcache.c for allocation from local - * cache alloctions + * cache allocations */ diff --git a/source/compiler/aslascii.c b/source/compiler/aslascii.c index d02ca80cb815..0e8c4d4e0f40 100644 --- a/source/compiler/aslascii.c +++ b/source/compiler/aslascii.c @@ -184,7 +184,7 @@ FlConsumeNewComment ( * not handle comment delimiters within string literals. However, * on the rare chance this happens and an invalid character is * missed, the parser will catch the error by failing in some - * spectactular manner. + * spectacular manner. * ******************************************************************************/ @@ -216,7 +216,7 @@ FlIsFileAsciiSource ( while (fread (&Byte, 1, 1, Handle) == 1) { - /* Ignore comment fields (allow non-ascii within) */ + /* Ignore comment fields (allow non-ASCII within) */ if (OpeningComment) { diff --git a/source/compiler/aslcompiler.h b/source/compiler/aslcompiler.h index 3cd56d1f36b8..e48e4674c1e5 100644 --- a/source/compiler/aslcompiler.h +++ b/source/compiler/aslcompiler.h @@ -1538,6 +1538,10 @@ ASL_RESOURCE_NODE * RsDoUartSerialBusDescriptor ( ASL_RESOURCE_INFO *Info); +ASL_RESOURCE_NODE * +RsDoCsi2SerialBusDescriptor ( + ASL_RESOURCE_INFO *Info); + ASL_RESOURCE_NODE * RsDoPinFunctionDescriptor ( ASL_RESOURCE_INFO *Info); diff --git a/source/compiler/aslcompiler.l b/source/compiler/aslcompiler.l index 629b99727366..e0985362fb94 100644 --- a/source/compiler/aslcompiler.l +++ b/source/compiler/aslcompiler.l @@ -434,6 +434,7 @@ NamePathTail [.]{NameSeg} "ResourceTemplate" { count (1); return (PARSEOP_RESOURCETEMPLATE); } "RawDataBuffer" { count (1); return (PARSEOP_DATABUFFER); } +"Csi2Bus" { count (1); return (PARSEOP_CSI2_SERIALBUS); } "DMA" { count (1); return (PARSEOP_DMA); } "DWordIO" { count (1); return (PARSEOP_DWORDIO); } "DWordMemory" { count (1); return (PARSEOP_DWORDMEMORY); } diff --git a/source/compiler/aslerror.c b/source/compiler/aslerror.c index 6c684f2f2b53..d73d7de903a1 100644 --- a/source/compiler/aslerror.c +++ b/source/compiler/aslerror.c @@ -1125,7 +1125,7 @@ void AslCheckExpectedExceptions ( void) { - UINT8 i; + UINT32 i; ASL_EXPECTED_MSG_NODE *Current = AslGbl_ExpectedErrorCodeList; ASL_LOCATION_NODE *LocationNode; @@ -1188,7 +1188,7 @@ AslLogExpectedException ( if (MessageId > 6999) { - printf ("\"%s\" is not a valid warning/remark/erro ID\n", + printf ("\"%s\" is not a valid warning/remark/error ID\n", MessageIdString); return (AE_BAD_PARAMETER); } @@ -1336,7 +1336,7 @@ AslElevateException ( if (MessageId > 6999) { - printf ("\"%s\" is not a valid warning/remark/erro ID\n", + printf ("\"%s\" is not a valid warning/remark/error ID\n", MessageIdString); return (AE_BAD_PARAMETER); } diff --git a/source/compiler/aslhelpers.y b/source/compiler/aslhelpers.y index 0b3029046931..abb729c33320 100644 --- a/source/compiler/aslhelpers.y +++ b/source/compiler/aslhelpers.y @@ -360,6 +360,11 @@ OptionalSlaveMode | ',' SlaveModeKeyword {$$ = $2;} ; +OptionalSlaveMode_First + : {$$ = NULL;} + | SlaveModeKeyword {$$ = $1;} + ; + OptionalShareType : {$$ = NULL;} | ',' {$$ = NULL;} diff --git a/source/compiler/aslmap.c b/source/compiler/aslmap.c index ed27a155c809..7b591bc6e8fa 100644 --- a/source/compiler/aslmap.c +++ b/source/compiler/aslmap.c @@ -346,6 +346,7 @@ const ASL_MAPPING_ENTRY AslKeywordMapping [] = /* FUNCTION */ OP_TABLE_ENTRY (AML_METHOD_OP, 0, OP_AML_PACKAGE, 0), /* GPIOINT */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0), /* GPIOIO */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0), +/* CSI2SERIALBUS */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0), /* I2CSERIALBUS */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0), /* I2CSERIALBUSV2 */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0), /* IF */ OP_TABLE_ENTRY (AML_IF_OP, 0, OP_AML_PACKAGE, 0), diff --git a/source/compiler/aslmessages.c b/source/compiler/aslmessages.c index 87ebc48e4394..c969764508c0 100644 --- a/source/compiler/aslmessages.c +++ b/source/compiler/aslmessages.c @@ -384,7 +384,8 @@ const char *AslCompilerMsgs [] = /* ASL_MSG_EXTERNAL_FOUND_HERE */ "External declaration below ", /* ASL_MSG_LOWER_CASE_NAMESEG */ "At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case", /* ASL_MSG_LOWER_CASE_NAMEPATH */ "At least one lower case letter found in NamePath, ASL is case insensitive - converting to upper case", -/* ASL_MSG_UUID_NOT_FOUND */ "Unknown UUID string" +/* ASL_MSG_UUID_NOT_FOUND */ "Unknown UUID string", +/* ASL_MSG_LEGACY_DDB_TYPE */ "DDBHandleObj has been deprecated along with the Unload operator. DDBHandlObj objects are only used in Unload" }; /* Table compiler */ diff --git a/source/compiler/aslmessages.h b/source/compiler/aslmessages.h index a4842cdf2166..1d9f7becb12d 100644 --- a/source/compiler/aslmessages.h +++ b/source/compiler/aslmessages.h @@ -389,6 +389,7 @@ typedef enum ASL_MSG_LOWER_CASE_NAMESEG, ASL_MSG_LOWER_CASE_NAMEPATH, ASL_MSG_UUID_NOT_FOUND, + ASL_MSG_LEGACY_DDB_TYPE, /* These messages are used by the Data Table compiler only */ diff --git a/source/compiler/aslnamesp.c b/source/compiler/aslnamesp.c index 7dc9ed7e5152..6f9bb65a4d6c 100644 --- a/source/compiler/aslnamesp.c +++ b/source/compiler/aslnamesp.c @@ -519,7 +519,8 @@ NsDoOneNamespaceObject ( * * RETURN: Status * - * DESCRIPTION: Print the full pathname and addtional info for a namespace node. + * DESCRIPTION: Print the full pathname and additional info for a namespace + * node. * ******************************************************************************/ diff --git a/source/compiler/aslopcodes.c b/source/compiler/aslopcodes.c index f5cb02146066..2f2c77446c22 100644 --- a/source/compiler/aslopcodes.c +++ b/source/compiler/aslopcodes.c @@ -676,7 +676,7 @@ OpcDoUnicode ( * Bits 4-0 - 3rd character of mfg code * Byte 2: Bits 7-4 - 1st hex digit of product number * Bits 3-0 - 2nd hex digit of product number - * Byte 3: Bits 7-4 - 3st hex digit of product number + * Byte 3: Bits 7-4 - 3rd hex digit of product number * Bits 3-0 - Hex digit of the revision number * ******************************************************************************/ diff --git a/source/compiler/asloperands.c b/source/compiler/asloperands.c index bd4a4d8579fd..ae3b918dffda 100644 --- a/source/compiler/asloperands.c +++ b/source/compiler/asloperands.c @@ -1090,7 +1090,7 @@ OpnDoDefinitionBlock ( * Use the definition block file parameter instead of the input * filename. Since all files were opened previously, remove the * existing file and open a new file with the name of this - * definiton block parameter. Since AML code generation has yet + * definition block parameter. Since AML code generation has yet * to happen, the previous file can be removed without any impacts. */ FlCloseFile (ASL_FILE_AML_OUTPUT); diff --git a/source/compiler/aslparser.y b/source/compiler/aslparser.y index c91acedf9f38..0a6fb64d62d8 100644 --- a/source/compiler/aslparser.y +++ b/source/compiler/aslparser.y @@ -208,7 +208,7 @@ AslLocalAllocate ( * These shift/reduce conflicts are expected. There should be zero * reduce/reduce conflicts. */ -%expect 124 +%expect 127 /*! [Begin] no source code translation */ diff --git a/source/compiler/aslprintf.c b/source/compiler/aslprintf.c index 62d411e16c59..04f2d31eaee5 100644 --- a/source/compiler/aslprintf.c +++ b/source/compiler/aslprintf.c @@ -352,7 +352,7 @@ OpcParsePrintf ( /* * Append an empty string if the first argument is - * not a string. This will implicitly conver the 2nd + * not a string. This will implicitly convert the 2nd * concat source to a string per the ACPI specification. */ if (!Op->Asl.Child) diff --git a/source/compiler/aslresource.c b/source/compiler/aslresource.c index 434a74c68843..a2d855684d6b 100644 --- a/source/compiler/aslresource.c +++ b/source/compiler/aslresource.c @@ -990,6 +990,11 @@ RsDoOneResourceDescriptor ( Rnode = RsDoUartSerialBusDescriptor (Info); break; + case PARSEOP_CSI2_SERIALBUS: + + Rnode = RsDoCsi2SerialBusDescriptor (Info); + break; + case PARSEOP_PINCONFIG: Rnode = RsDoPinConfigDescriptor (Info); diff --git a/source/compiler/aslresources.y b/source/compiler/aslresources.y index 00a0958b3a93..86c8981f79b6 100644 --- a/source/compiler/aslresources.y +++ b/source/compiler/aslresources.y @@ -190,7 +190,8 @@ ResourceMacroList ; ResourceMacroTerm - : DMATerm {} + : Csi2SerialBusTerm {} + | DMATerm {} | DWordIOTerm {} | DWordMemoryTerm {} | DWordSpaceTerm {} @@ -233,6 +234,23 @@ ResourceMacroTerm | WordSpaceTerm {} ; +Csi2SerialBusTerm + : PARSEOP_CSI2_SERIALBUS + PARSEOP_OPEN_PAREN {$$ = TrCreateLeafOp (PARSEOP_CSI2_SERIALBUS);} + OptionalSlaveMode_First {UtCheckIntegerRange ($4, 0x00, 0x01);} /* 04: SlaveMode */ + ',' ByteConstExpr {UtCheckIntegerRange ($7, 0x00, 0x03);} /* 07: PhyType */ + OptionalByteConstExpr {UtCheckIntegerRange ($9, 0x00, 0xFC);} /* 09: LocalPortInstance */ + ',' StringData /* 12: ResourceSource */ + ',' ByteConstExpr /* 14: ResourceSourceIndex */ + OptionalResourceType /* 15; ResourceType (ResourceUsage) */ + OptionalNameString /* 16: DescriptorName */ + OptionalBuffer_Last /* 17: VendorData */ + PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($3,8, + $4,$7,$9,$12,$14,$15,$16,$17);} + | PARSEOP_CSI2_SERIALBUS + PARSEOP_OPEN_PAREN + error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} + DMATerm : PARSEOP_DMA PARSEOP_OPEN_PAREN {$$ = TrCreateLeafOp (PARSEOP_DMA);} diff --git a/source/compiler/aslrestype2s.c b/source/compiler/aslrestype2s.c index 8539edea8c9e..607aca8be350 100644 --- a/source/compiler/aslrestype2s.c +++ b/source/compiler/aslrestype2s.c @@ -1387,6 +1387,142 @@ RsDoUartSerialBusDescriptor ( } +/******************************************************************************* + * + * FUNCTION: RsDoCsi2SerialBusDescriptor + * + * PARAMETERS: Info - Parse Op and resource template offset + * + * RETURN: Completed resource node + * + * DESCRIPTION: Construct a long "Csi2SerialBus" descriptor + * + ******************************************************************************/ + +ASL_RESOURCE_NODE * +RsDoCsi2SerialBusDescriptor ( + ASL_RESOURCE_INFO *Info) +{ + AML_RESOURCE *Descriptor; + ACPI_PARSE_OBJECT *InitializerOp; + ASL_RESOURCE_NODE *Rnode; + char *ResourceSource = NULL; + UINT8 *VendorData = NULL; + UINT16 ResSourceLength; + UINT16 VendorLength; + UINT16 DescriptorSize; + UINT32 CurrentByteOffset; + UINT32 i; + + + InitializerOp = Info->DescriptorTypeOp->Asl.Child; + CurrentByteOffset = Info->CurrentByteOffset; + + /* + * Calculate lengths for fields that have variable length: + * 1) Resource Source string + * 2) Vendor Data buffer + */ + ResSourceLength = RsGetStringDataLength (InitializerOp); + VendorLength = RsGetBufferDataLength (InitializerOp); + + DescriptorSize = ACPI_AML_SIZE_LARGE (AML_RESOURCE_CSI2_SERIALBUS) + + ResSourceLength + VendorLength; + + /* Allocate the local resource node and initialize */ + + Rnode = RsAllocateResourceNode (DescriptorSize + + sizeof (AML_RESOURCE_LARGE_HEADER)); + + Descriptor = Rnode->Buffer; + Descriptor->Csi2SerialBus.ResourceLength = DescriptorSize; + Descriptor->Csi2SerialBus.DescriptorType = ACPI_RESOURCE_NAME_SERIAL_BUS; + Descriptor->Csi2SerialBus.RevisionId = AML_RESOURCE_CSI2_REVISION; + Descriptor->Csi2SerialBus.TypeRevisionId = AML_RESOURCE_CSI2_TYPE_REVISION; + Descriptor->Csi2SerialBus.Type = AML_RESOURCE_CSI2_SERIALBUSTYPE; + Descriptor->Csi2SerialBus.TypeDataLength = AML_RESOURCE_CSI2_MIN_DATA_LEN + VendorLength; + + /* Build pointers to optional areas */ + + VendorData = ACPI_ADD_PTR (UINT8, Descriptor, sizeof (AML_RESOURCE_CSI2_SERIALBUS)); + ResourceSource = ACPI_ADD_PTR (char, VendorData, VendorLength); + + /* Process all child initialization nodes */ + + for (i = 0; InitializerOp; i++) + { + switch (i) + { + case 0: /* Slave Mode [Flag] (_SLV) */ + + RsSetFlagBits (&Descriptor->Csi2SerialBus.Flags, InitializerOp, 0, 0); + RsCreateBitField (InitializerOp, ACPI_RESTAG_SLAVEMODE, + CurrentByteOffset + ASL_RESDESC_OFFSET (I2cSerialBus.Flags), 0); + break; + + case 1: /* Phy Type [Flag] (_PHY) */ + + RsSetFlagBits16 ((UINT16 *) &Descriptor->Csi2SerialBus.TypeSpecificFlags, InitializerOp, 0, 0); + RsCreateBitField (InitializerOp, ACPI_RESTAG_PHYTYPE, + CurrentByteOffset + ASL_RESDESC_OFFSET (Csi2SerialBus.TypeSpecificFlags), 0); + break; + + case 2: /* Local Port Instance [Integer] (_PRT) */ + + RsSetFlagBits16 ((UINT16 *) &Descriptor->Csi2SerialBus.TypeSpecificFlags, InitializerOp, 0, 0); + RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_LOCALPORT, + CurrentByteOffset + ASL_RESDESC_OFFSET (Csi2SerialBus.TypeSpecificFlags), 2, 6); + break; + + case 3: /* ResSource [Optional Field - STRING] */ + + if (ResSourceLength) + { + /* Copy string to the descriptor */ + + strcpy (ResourceSource, + InitializerOp->Asl.Value.String); + } + break; + + case 4: /* Resource Index */ + + if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) + { + Descriptor->Csi2SerialBus.ResSourceIndex = + (UINT8) InitializerOp->Asl.Value.Integer; + } + break; + + case 5: /* Resource Usage (consumer/producer) */ + + RsSetFlagBits (&Descriptor->Csi2SerialBus.Flags, InitializerOp, 1, 1); + break; + + case 6: /* Resource Tag (Descriptor Name) */ + + UtAttachNamepathToOwner (Info->DescriptorTypeOp, InitializerOp); + break; + + case 7: /* Vendor Data (Optional - Buffer of BYTEs) (_VEN) */ + + RsGetVendorData (InitializerOp, VendorData, + CurrentByteOffset + sizeof (AML_RESOURCE_CSI2_SERIALBUS)); + break; + + default: /* Ignore any extra nodes */ + + break; + } + + InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); + } + + MpSaveSerialInfo (Info->MappingOp, Descriptor, ResourceSource); + return (Rnode); +} + + /******************************************************************************* * * FUNCTION: RsDoPinFunctionDescriptor diff --git a/source/compiler/asltokens.y b/source/compiler/asltokens.y index 788f4b8ca084..5e205e01de3c 100644 --- a/source/compiler/asltokens.y +++ b/source/compiler/asltokens.y @@ -283,6 +283,7 @@ NoEcho(' %token PARSEOP_FUNCTION %token PARSEOP_GPIO_INT %token PARSEOP_GPIO_IO +%token PARSEOP_CSI2_SERIALBUS %token PARSEOP_I2C_SERIALBUS %token PARSEOP_I2C_SERIALBUS_V2 %token PARSEOP_IF diff --git a/source/compiler/asltransform.c b/source/compiler/asltransform.c index dcab8b39c40a..91655420fee8 100644 --- a/source/compiler/asltransform.c +++ b/source/compiler/asltransform.c @@ -541,6 +541,11 @@ TrTransformSubtree ( AslError (ASL_WARNING, ASL_MSG_LEGACY_PROCESSOR_OP, Op, Op->Asl.ExternalName); break; + case PARSEOP_OBJECTTYPE_DDB: + + AslError (ASL_WARNING, ASL_MSG_LEGACY_DDB_TYPE, Op, Op->Asl.ExternalName); + break; + default: /* Nothing to do here for other opcodes */ diff --git a/source/compiler/asltypes.y b/source/compiler/asltypes.y index b68ca665b38b..aaa732f4dc45 100644 --- a/source/compiler/asltypes.y +++ b/source/compiler/asltypes.y @@ -410,6 +410,7 @@ NoEcho(' /* Resource Descriptors */ %type ConnectionTerm +%type Csi2SerialBusTerm %type DMATerm %type DWordIOTerm %type DWordMemoryTerm @@ -501,6 +502,7 @@ NoEcho(' %type OptionalShareType %type OptionalShareType_First %type OptionalSlaveMode +%type OptionalSlaveMode_First %type OptionalStopBits %type OptionalStringData %type OptionalSyncLevel diff --git a/source/compiler/dtcompiler.h b/source/compiler/dtcompiler.h index 7bc403ebb4b9..f2d006440d8e 100644 --- a/source/compiler/dtcompiler.h +++ b/source/compiler/dtcompiler.h @@ -573,6 +573,10 @@ ACPI_STATUS DtCompileCpep ( void **PFieldList); +ACPI_STATUS +DtCompileCedt ( + void **PFieldList); + ACPI_STATUS DtCompileCsrt ( void **PFieldList); @@ -657,6 +661,10 @@ ACPI_STATUS DtCompilePdtt ( void **PFieldList); +ACPI_STATUS +DtCompilePhat ( + void **PFieldList); + ACPI_STATUS DtCompilePmtt ( void **PFieldList); @@ -705,6 +713,10 @@ ACPI_STATUS DtCompileUefi ( void **PFieldList); +ACPI_STATUS +DtCompileViot ( + void **PFieldList); + ACPI_STATUS DtCompileWdat ( void **PFieldList); @@ -733,6 +745,7 @@ extern const unsigned char TemplateAsf[]; extern const unsigned char TemplateBoot[]; extern const unsigned char TemplateBert[]; extern const unsigned char TemplateBgrt[]; +extern const unsigned char TemplateCedt[]; extern const unsigned char TemplateCpep[]; extern const unsigned char TemplateCsrt[]; extern const unsigned char TemplateDbg2[]; @@ -760,6 +773,7 @@ extern const unsigned char TemplateMsdm[]; extern const unsigned char TemplateNfit[]; extern const unsigned char TemplatePcct[]; extern const unsigned char TemplatePdtt[]; +extern const unsigned char TemplatePhat[]; extern const unsigned char TemplatePmtt[]; extern const unsigned char TemplatePptt[]; extern const unsigned char TemplateRasf[]; @@ -777,6 +791,7 @@ extern const unsigned char TemplateStao[]; extern const unsigned char TemplateTcpa[]; extern const unsigned char TemplateTpm2[]; extern const unsigned char TemplateUefi[]; +extern const unsigned char TemplateViot[]; extern const unsigned char TemplateWaet[]; extern const unsigned char TemplateWdat[]; extern const unsigned char TemplateWddt[]; diff --git a/source/compiler/dttable1.c b/source/compiler/dttable1.c index 286ecaa7fee8..458a71743cf8 100644 --- a/source/compiler/dttable1.c +++ b/source/compiler/dttable1.c @@ -342,6 +342,80 @@ DtCompileAsf ( } +/****************************************************************************** + * + * FUNCTION: DtCompileCedt + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile CEDT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileCedt ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + ACPI_CEDT_HEADER *CedtHeader; + DT_FIELD *SubtableStart; + + + /* Walk the parse tree */ + + while (*PFieldList) + { + SubtableStart = *PFieldList; + + /* CEDT Header */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoCedtHdr, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + CedtHeader = ACPI_CAST_PTR (ACPI_CEDT_HEADER, Subtable->Buffer); + + switch (CedtHeader->Type) + { + case ACPI_CEDT_TYPE_CHBS: + + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "CEDT"); + return (AE_ERROR); + } + + /* CEDT Subtable */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoCedt0, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPopSubtable (); + } + + return (AE_OK); +} + + /****************************************************************************** * * FUNCTION: DtCompileCpep @@ -1582,10 +1656,12 @@ DtCompileIort ( DT_SUBTABLE *ParentTable; DT_FIELD **PFieldList = (DT_FIELD **) List; DT_FIELD *SubtableStart; + ACPI_TABLE_HEADER *Table; ACPI_TABLE_IORT *Iort; ACPI_IORT_NODE *IortNode; ACPI_IORT_ITS_GROUP *IortItsGroup; ACPI_IORT_SMMU *IortSmmu; + ACPI_IORT_RMR *IortRmr; UINT32 NodeNumber; UINT32 NodeLength; UINT32 IdMappingNumber; @@ -1593,6 +1669,8 @@ DtCompileIort ( UINT32 ContextIrptNumber; UINT32 PmuIrptNumber; UINT32 PaddingLength; + UINT8 Revision; + UINT32 RmrCount; ParentTable = DtPeekSubtable (); @@ -1605,6 +1683,17 @@ DtCompileIort ( } DtInsertSubtable (ParentTable, Subtable); + Table = ACPI_CAST_PTR (ACPI_TABLE_HEADER, ParentTable->Buffer); + Revision = Table->Revision; + + /* Both IORT Rev E and E.a have known issues and are not supported */ + + if (Revision == 1 || Revision == 2) + { + DtError (ASL_ERROR, ASL_MSG_UNSUPPORTED, NULL, "IORT table revision"); + return (AE_ERROR); + } + /* * Using ACPI_SUB_PTR, We needn't define a separate structure. Care * should be taken to avoid accessing ACPI_TABLE_HEADER fields. @@ -1645,8 +1734,17 @@ DtCompileIort ( while (*PFieldList) { SubtableStart = *PFieldList; - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIortHdr, - &Subtable); + if (Revision == 0) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIortHdr, + &Subtable); + } + else if (Revision >= 3) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIortHdr3, + &Subtable); + } + if (ACPI_FAILURE (Status)) { return (Status); @@ -1864,7 +1962,46 @@ DtCompileIort ( NodeLength += Subtable->Length; break; - default: + case ACPI_IORT_NODE_RMR: + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort6, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + IortRmr = ACPI_CAST_PTR (ACPI_IORT_RMR, Subtable->Buffer); + NodeLength += Subtable->Length; + + /* Compile RMR Descriptors */ + + RmrCount = 0; + IortRmr->RmrOffset = NodeLength; + while (*PFieldList) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort6a, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + if (!Subtable) + { + break; + } + + DtInsertSubtable (ParentTable, Subtable); + NodeLength += sizeof (ACPI_IORT_RMR_DESC); + RmrCount++; + } + + IortRmr->RmrCount = RmrCount; + break; + + default: DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "IORT"); return (AE_ERROR); diff --git a/source/compiler/dttable2.c b/source/compiler/dttable2.c index 732635bf4751..f6efcf3d940b 100644 --- a/source/compiler/dttable2.c +++ b/source/compiler/dttable2.c @@ -366,6 +366,11 @@ DtCompileMadt ( InfoTable = AcpiDmTableInfoMadt15; break; + case ACPI_MADT_TYPE_MULTIPROC_WAKEUP: + + InfoTable = AcpiDmTableInfoMadt16; + break; + default: DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "MADT"); @@ -858,6 +863,11 @@ DtCompilePcct ( InfoTable = AcpiDmTableInfoPcct4; break; + case ACPI_PCCT_TYPE_HW_REG_COMM_SUBSPACE: + + InfoTable = AcpiDmTableInfoPcct5; + break; + default: DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "PCCT"); @@ -939,6 +949,142 @@ DtCompilePdtt ( } +/****************************************************************************** + * + * FUNCTION: DtCompilePhat + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile Phat. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompilePhat ( + void **List) +{ + ACPI_STATUS Status = AE_OK; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + ACPI_PHAT_HEADER *PhatHeader; + ACPI_DMTABLE_INFO *Info; + ACPI_PHAT_VERSION_DATA *VersionData; + UINT32 RecordCount; + + + /* The table consist of subtables */ + + while (*PFieldList) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPhatHdr, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + PhatHeader = ACPI_CAST_PTR (ACPI_PHAT_HEADER, Subtable->Buffer); + + switch (PhatHeader->Type) + { + case ACPI_PHAT_TYPE_FW_VERSION_DATA: + + Info = AcpiDmTableInfoPhat0; + PhatHeader->Length = sizeof (ACPI_PHAT_VERSION_DATA); + break; + + case ACPI_PHAT_TYPE_FW_HEALTH_DATA: + + Info = AcpiDmTableInfoPhat1; + PhatHeader->Length = sizeof (ACPI_PHAT_HEALTH_DATA); + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, *PFieldList, "PHAT"); + return (AE_ERROR); + + break; + } + + Status = DtCompileTable (PFieldList, Info, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + switch (PhatHeader->Type) + { + case ACPI_PHAT_TYPE_FW_VERSION_DATA: + + VersionData = ACPI_CAST_PTR (ACPI_PHAT_VERSION_DATA, + (Subtable->Buffer - sizeof (ACPI_PHAT_HEADER))); + RecordCount = VersionData->ElementCount; + + while (RecordCount) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPhat0a, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + RecordCount--; + PhatHeader->Length += sizeof (ACPI_PHAT_VERSION_ELEMENT); + } + break; + + case ACPI_PHAT_TYPE_FW_HEALTH_DATA: + + /* Compile device path */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPhat1a, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + PhatHeader->Length += (UINT16) Subtable->Length; + + /* Compile vendor specific data */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPhat1b, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + PhatHeader->Length += (UINT16) Subtable->Length; + + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, *PFieldList, "PHAT"); + return (AE_ERROR); + } + } + + return (Status); +} + + /****************************************************************************** * * FUNCTION: DtCompilePmtt @@ -960,10 +1106,7 @@ DtCompilePmtt ( DT_SUBTABLE *ParentTable; DT_FIELD **PFieldList = (DT_FIELD **) List; DT_FIELD *SubtableStart; - ACPI_PMTT_HEADER *PmttHeader; - ACPI_PMTT_CONTROLLER *PmttController; - UINT16 DomainCount; - UINT8 PrevType = ACPI_PMTT_TYPE_SOCKET; + UINT16 Type; /* Main table */ @@ -978,41 +1121,21 @@ DtCompilePmtt ( DtInsertSubtable (ParentTable, Subtable); DtPushSubtable (Subtable); + /* Subtables */ + while (*PFieldList) { SubtableStart = *PFieldList; - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmttHdr, - &Subtable); - if (ACPI_FAILURE (Status)) - { - return (Status); - } + DtCompileInteger ((UINT8 *) &Type, *PFieldList, 2, 0); - PmttHeader = ACPI_CAST_PTR (ACPI_PMTT_HEADER, Subtable->Buffer); - while (PrevType >= PmttHeader->Type) - { - DtPopSubtable (); - - if (PrevType == ACPI_PMTT_TYPE_SOCKET) - { - break; - } - - PrevType--; - } - - PrevType = PmttHeader->Type; - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - switch (PmttHeader->Type) + switch (Type) { case ACPI_PMTT_TYPE_SOCKET: /* Subtable: Socket Structure */ + DbgPrint (ASL_DEBUG_OUTPUT, "Compile PMTT_TYPE_SOCKET (0)\n"); + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt0, &Subtable); if (ACPI_FAILURE (Status)) @@ -1020,14 +1143,14 @@ DtCompilePmtt ( return (Status); } - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); break; case ACPI_PMTT_TYPE_CONTROLLER: /* Subtable: Memory Controller Structure */ + DbgPrint (ASL_DEBUG_OUTPUT, "Compile PMTT_TYPE_CONTROLLER (1)\n"); + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt1, &Subtable); if (ACPI_FAILURE (Status)) @@ -1035,31 +1158,13 @@ DtCompilePmtt ( return (Status); } - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - PmttController = ACPI_CAST_PTR (ACPI_PMTT_CONTROLLER, - (Subtable->Buffer - sizeof (ACPI_PMTT_HEADER))); - DomainCount = PmttController->DomainCount; - - while (DomainCount) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt1a, - &Subtable); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - DtInsertSubtable (ParentTable, Subtable); - DomainCount--; - } break; case ACPI_PMTT_TYPE_DIMM: - /* Subtable: Physical Component Structure */ + /* Subtable: Physical Component (DIMM) Structure */ + DbgPrint (ASL_DEBUG_OUTPUT, "Compile PMTT_TYPE_DIMM (2)\n"); Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt2, &Subtable); if (ACPI_FAILURE (Status)) @@ -1067,8 +1172,20 @@ DtCompilePmtt ( return (Status); } - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); + break; + + case ACPI_PMTT_TYPE_VENDOR: + + /* Subtable: Vendor-specific Structure */ + + DbgPrint (ASL_DEBUG_OUTPUT, "Compile PMTT_TYPE_VENDOR(FF)\n"); + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmttVendor, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + break; default: @@ -1076,6 +1193,8 @@ DtCompilePmtt ( DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "PMTT"); return (AE_ERROR); } + + DtInsertSubtable (ParentTable, Subtable); } return (Status); @@ -1106,6 +1225,7 @@ DtCompilePptt ( ACPI_DMTABLE_INFO *InfoTable; DT_FIELD **PFieldList = (DT_FIELD **) List; DT_FIELD *SubtableStart; + ACPI_TABLE_HEADER *PpttAcpiHeader; ParentTable = DtPeekSubtable (); @@ -1191,6 +1311,20 @@ DtCompilePptt ( } break; + case ACPI_PPTT_TYPE_CACHE: + + PpttAcpiHeader = ACPI_CAST_PTR (ACPI_TABLE_HEADER, + AslGbl_RootTable->Buffer); + if (PpttAcpiHeader->Revision < 3) + { + break; + } + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPptt1a, + &Subtable); + DtInsertSubtable (ParentTable, Subtable); + PpttHeader->Length += (UINT8)(Subtable->Length); + break; + default: break; @@ -1336,16 +1470,20 @@ ACPI_STATUS DtCompileSdev ( void **List) { - ACPI_STATUS Status; - ACPI_SDEV_HEADER *SdevHeader; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - ACPI_DMTABLE_INFO *InfoTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_FIELD *SubtableStart; - ACPI_SDEV_PCIE *Pcie = NULL; - ACPI_SDEV_NAMESPACE *Namesp = NULL; - UINT32 EntryCount; + ACPI_STATUS Status; + ACPI_SDEV_HEADER *SdevHeader; + ACPI_SDEV_HEADER *SecureComponentHeader; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + ACPI_DMTABLE_INFO *InfoTable; + ACPI_DMTABLE_INFO *SecureComponentInfoTable = NULL; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + ACPI_SDEV_PCIE *Pcie = NULL; + ACPI_SDEV_NAMESPACE *Namesp = NULL; + UINT32 EntryCount; + ACPI_SDEV_SECURE_COMPONENT *SecureComponent = NULL; + UINT16 ComponentLength = 0; /* Subtables */ @@ -1375,6 +1513,8 @@ DtCompileSdev ( InfoTable = AcpiDmTableInfoSdev0; Namesp = ACPI_CAST_PTR (ACPI_SDEV_NAMESPACE, Subtable->Buffer); + SecureComponent = ACPI_CAST_PTR (ACPI_SDEV_SECURE_COMPONENT, + ACPI_ADD_PTR (UINT8, Subtable->Buffer, sizeof(ACPI_SDEV_NAMESPACE))); break; case ACPI_SDEV_TYPE_PCIE_ENDPOINT_DEVICE: @@ -1406,6 +1546,86 @@ DtCompileSdev ( { case ACPI_SDEV_TYPE_NAMESPACE_DEVICE: + /* + * Device Id Offset will be be calculated differently depending on + * the presence of secure access components. + */ + Namesp->DeviceIdOffset = 0; + ComponentLength = 0; + + /* If the secure access component exists, get the structures */ + + if (SdevHeader->Flags & ACPI_SDEV_SECURE_COMPONENTS_PRESENT) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoSdev0b, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + Namesp->DeviceIdOffset += sizeof (ACPI_SDEV_SECURE_COMPONENT); + + /* Compile a secure access component header */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoSdevSecCompHdr, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + /* Compile the secure access component */ + + SecureComponentHeader = ACPI_CAST_PTR (ACPI_SDEV_HEADER, Subtable->Buffer); + switch (SecureComponentHeader->Type) + { + case ACPI_SDEV_TYPE_ID_COMPONENT: + + SecureComponentInfoTable = AcpiDmTableInfoSdevSecCompId; + Namesp->DeviceIdOffset += sizeof (ACPI_SDEV_ID_COMPONENT); + ComponentLength = sizeof (ACPI_SDEV_ID_COMPONENT); + break; + + case ACPI_SDEV_TYPE_MEM_COMPONENT: + + SecureComponentInfoTable = AcpiDmTableInfoSdevSecCompMem; + Namesp->DeviceIdOffset += sizeof (ACPI_SDEV_MEM_COMPONENT); + ComponentLength = sizeof (ACPI_SDEV_MEM_COMPONENT); + break; + + default: + + /* Any other secure component types are undefined */ + + return (AE_ERROR); + } + + Status = DtCompileTable (PFieldList, SecureComponentInfoTable, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + SecureComponent->SecureComponentOffset = + sizeof (ACPI_SDEV_NAMESPACE) + sizeof (ACPI_SDEV_SECURE_COMPONENT); + SecureComponent->SecureComponentLength = ComponentLength; + + + /* + * Add the secure component to the subtable to be added for the + * the namespace subtable's length + */ + ComponentLength += sizeof (ACPI_SDEV_SECURE_COMPONENT); + } + /* Append DeviceId namespace string */ Status = DtCompileTable (PFieldList, AcpiDmTableInfoSdev0a, @@ -1423,7 +1643,8 @@ DtCompileSdev ( ParentTable = DtPeekSubtable (); DtInsertSubtable (ParentTable, Subtable); - Namesp->DeviceIdOffset = sizeof (ACPI_SDEV_NAMESPACE); + Namesp->DeviceIdOffset += sizeof (ACPI_SDEV_NAMESPACE); + Namesp->DeviceIdLength = (UINT16) Subtable->Length; /* Append Vendor data */ @@ -1453,7 +1674,7 @@ DtCompileSdev ( /* Final size of entire namespace structure */ SdevHeader->Length = (UINT16)(sizeof(ACPI_SDEV_NAMESPACE) + - Subtable->Length + Namesp->DeviceIdLength); + Subtable->Length + Namesp->DeviceIdLength) + ComponentLength; } } @@ -2137,6 +2358,111 @@ DtCompileUefi ( } +/****************************************************************************** + * + * FUNCTION: DtCompileViot + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile VIOT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileViot ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + ACPI_TABLE_VIOT *Viot; + ACPI_VIOT_HEADER *ViotHeader; + ACPI_DMTABLE_INFO *InfoTable; + UINT16 NodeCount; + + ParentTable = DtPeekSubtable (); + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoViot, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + DtInsertSubtable (ParentTable, Subtable); + + /* + * Using ACPI_SUB_PTR, We needn't define a separate structure. Care + * should be taken to avoid accessing ACPI_TABLE_HEADER fields. + */ + Viot = ACPI_SUB_PTR (ACPI_TABLE_VIOT, Subtable->Buffer, + sizeof (ACPI_TABLE_HEADER)); + + Viot->NodeOffset = sizeof (ACPI_TABLE_VIOT); + + NodeCount = 0; + while (*PFieldList) { + SubtableStart = *PFieldList; + Status = DtCompileTable (PFieldList, AcpiDmTableInfoViotHeader, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + ViotHeader = ACPI_CAST_PTR (ACPI_VIOT_HEADER, Subtable->Buffer); + + switch (ViotHeader->Type) + { + case ACPI_VIOT_NODE_PCI_RANGE: + + InfoTable = AcpiDmTableInfoViot1; + break; + + case ACPI_VIOT_NODE_MMIO: + + InfoTable = AcpiDmTableInfoViot2; + break; + + case ACPI_VIOT_NODE_VIRTIO_IOMMU_PCI: + + InfoTable = AcpiDmTableInfoViot3; + break; + + case ACPI_VIOT_NODE_VIRTIO_IOMMU_MMIO: + + InfoTable = AcpiDmTableInfoViot4; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "VIOT"); + return (AE_ERROR); + } + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPopSubtable (); + NodeCount++; + } + + Viot->NodeCount = NodeCount; + return (AE_OK); +} + + /****************************************************************************** * * FUNCTION: DtCompileWdat diff --git a/source/compiler/dttemplate.h b/source/compiler/dttemplate.h index ddbcce8ae066..fbe68ec9f8f1 100644 --- a/source/compiler/dttemplate.h +++ b/source/compiler/dttemplate.h @@ -204,6 +204,27 @@ const unsigned char TemplateBoot[] = 0x28,0x05,0x10,0x20,0x00,0x00,0x00,0x00 /* 00000020 "(.. ...." */ }; +const unsigned char TemplateCedt[] = +{ + 0x43,0x45,0x44,0x54,0x84,0x00,0x00,0x00, /* 00000000 "CEDT...." */ + 0x01,0x8B,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ + 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */ + 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x05,0x01,0x21,0x20,0x00,0x00,0x20,0x00, /* 00000020 "..! .. ." */ + 0x33,0x33,0xCD,0xAB,0x01,0x00,0x00,0x00, /* 00000028 "33......" */ + 0x00,0x00,0x00,0x00,0x00,0x21,0x43,0xD5, /* 00000030 ".....!C." */ + 0x00,0x00,0x00,0x00,0x45,0x23,0x01,0x00, /* 00000038 "....E#.." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00, /* 00000040 "...... ." */ + 0x44,0x44,0xCD,0xAB,0x01,0x00,0x00,0x00, /* 00000048 "DD......" */ + 0x00,0x00,0x00,0x00,0x00,0x21,0x43,0xA5, /* 00000050 ".....!C." */ + 0x00,0x00,0x00,0x00,0x45,0x23,0xB1,0x00, /* 00000058 "....E#.." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00, /* 00000060 "...... ." */ + 0x55,0x55,0xCD,0xAB,0x01,0x00,0x00,0x00, /* 00000068 "UU......" */ + 0x00,0x00,0x00,0x00,0x00,0x21,0x43,0xB5, /* 00000070 ".....!C." */ + 0x00,0x00,0x00,0x00,0x45,0x23,0xB1,0x00, /* 00000078 "....E#.." */ + 0x00,0x00,0x00,0x00 /* 00000080 "...." */ +}; + const unsigned char TemplateCpep[] = { 0x43,0x50,0x45,0x50,0x34,0x00,0x00,0x00, /* 00000000 "CPEP4..." */ @@ -697,39 +718,39 @@ const unsigned char TemplateHpet[] = const unsigned char TemplateIort[] = { - 0x49,0x4F,0x52,0x54,0xF8,0x01,0x00,0x00, /* 00000000 "IORT...." */ - 0x00,0x72,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 ".rINTEL " */ + 0x49,0x4F,0x52,0x54,0x3C,0x02,0x00,0x00, /* 00000000 "IORT<..." */ + 0x03,0xF1,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ 0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ - 0x13,0x03,0x18,0x20,0x06,0x00,0x00,0x00, /* 00000020 "... ...." */ + 0x05,0x01,0x21,0x20,0x07,0x00,0x00,0x00, /* 00000020 "..! ...." */ 0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000028 "4......." */ - 0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00, /* 00000030 "........" */ + 0x49,0x4F,0x52,0x54,0x00,0x18,0x00,0x01, /* 00000030 "IORT...." */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000040 "........" */ - 0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00, /* 00000048 "........" */ + 0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x04, /* 00000048 "........" */ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000050 "........" */ 0x6C,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000058 "l......." */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000060 "........" */ 0x00,0x5C,0x5F,0x53,0x42,0x2E,0x50,0x43, /* 00000068 ".\_SB.PC" */ 0x49,0x30,0x2E,0x44,0x45,0x56,0x30,0x00, /* 00000070 "I0.DEV0." */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000078 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000080 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000088 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000090 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000098 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A0 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A8 "........" */ + 0x49,0x4F,0x52,0x54,0x3C,0x02,0x00,0x00, /* 00000078 "IORT<..." */ + 0x03,0xF2,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000080 "..INTEL " */ + 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000088 "Template" */ + 0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000090 "....INTL" */ + 0x05,0x01,0x21,0x20,0x07,0x00,0x00,0x00, /* 00000098 "..! ...." */ + 0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A0 "4......." */ + 0x49,0x4F,0x52,0x54,0x00,0x18,0x00,0x01, /* 000000A8 "IORT...." */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B0 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B8 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000C0 "........" */ - 0x00,0x00,0x00,0x00,0x02,0x38,0x00,0x00, /* 000000C8 ".....8.." */ + 0x00,0x00,0x00,0x00,0x02,0x38,0x00,0x03, /* 000000C8 ".....8.." */ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000000D0 "........" */ 0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000D8 "$......." */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000E0 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000E8 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000F0 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000F8 "........" */ - 0x00,0x00,0x00,0x00,0x03,0x60,0x00,0x01, /* 00000100 ".....`.." */ + 0x00,0x00,0x00,0x00,0x03,0x60,0x00,0x03, /* 00000100 ".....`.." */ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000108 "........" */ 0x4C,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000110 "L......." */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000118 "........" */ @@ -741,7 +762,7 @@ const unsigned char TemplateIort[] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000148 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000150 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000158 "........" */ - 0x00,0x00,0x00,0x00,0x04,0x58,0x00,0x01, /* 00000160 ".....X.." */ + 0x00,0x00,0x00,0x00,0x04,0x58,0x00,0x04, /* 00000160 ".....X.." */ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000168 "........" */ 0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000170 "D......." */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000178 "........" */ @@ -752,14 +773,23 @@ const unsigned char TemplateIort[] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001A0 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001A8 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001B0 "........" */ - 0x00,0x00,0x00,0x00,0x05,0x3C,0x00,0x01, /* 000001B8 ".....<.." */ + 0x00,0x00,0x00,0x00,0x05,0x3C,0x00,0x02, /* 000001B8 ".....<.." */ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000001C0 "........" */ 0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001C8 "(......." */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001D0 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001D8 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001E0 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001E8 "........" */ - 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00 /* 000001F0 "........" */ + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000001F0 "........" */ + 0x06,0x44,0x00,0x01,0x00,0x00,0x00,0x00, /* 000001F8 ".D......" */ + 0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00, /* 00000200 "....0..." */ + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000208 "........" */ + 0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000210 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000218 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000220 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000228 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000230 "........" */ + 0x01,0x00,0x00,0x00 /* 00000238 "...." */ }; const unsigned char TemplateIvrs[] = @@ -817,11 +847,11 @@ const unsigned char TemplateLpit[] = const unsigned char TemplateMadt[] = { - 0x41,0x50,0x49,0x43,0x5A,0x01,0x00,0x00, /* 00000000 "APICZ..." */ - 0x05,0xEF,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ + 0x41,0x50,0x49,0x43,0x6A,0x01,0x00,0x00, /* 00000000 "APICj..." */ + 0x05,0x9D,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ - 0x08,0x01,0x19,0x20,0x00,0x00,0x00,0x00, /* 00000020 "... ...." */ + 0x13,0x11,0x20,0x20,0x00,0x00,0x00,0x00, /* 00000020 ".. ...." */ 0x01,0x00,0x00,0x00,0x00,0x08,0x00,0x00, /* 00000028 "........" */ 0x01,0x00,0x00,0x00,0x01,0x0C,0x01,0x00, /* 00000030 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */ @@ -860,7 +890,9 @@ const unsigned char TemplateMadt[] = 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x14, /* 00000140 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000148 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000150 "........" */ - 0x00,0x00 /* 00000158 ".." */ + 0x00,0x00,0x10,0x10,0x00,0x00,0x00,0x00, /* 00000158 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000160 "........" */ + 0x00,0x00 /* 00000168 ".." */ }; const unsigned char TemplateMcfg[] = @@ -956,91 +988,92 @@ const unsigned char TemplateMsct[] = const unsigned char TemplateNfit[] = { - 0x4E,0x46,0x49,0x54,0x80,0x01,0x00,0x00, /* 00000000 "NFIT...." */ - 0x01,0x07,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ + 0x4E,0x46,0x49,0x54,0x88,0x01,0x00,0x00, /* 00000000 "NFIT...." */ + 0x01,0x81,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ - 0x29,0x09,0x17,0x20,0x00,0x00,0x00,0x00, /* 00000020 ").. ...." */ - 0x00,0x00,0x38,0x00,0x01,0x00,0x00,0x00, /* 00000028 "..8....." */ + 0x13,0x11,0x20,0x20,0x00,0x00,0x00,0x00, /* 00000020 ".. ...." */ + 0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x00, /* 00000028 "..@....." */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000030 "........" */ 0x30,0x05,0xAF,0x91,0x86,0x5D,0x0E,0x47, /* 00000038 "0....].G" */ 0xA6,0xB0,0x0A,0x2D,0xB9,0x40,0x82,0x49, /* 00000040 "...-.@.I" */ 0x00,0x00,0x00,0x7C,0x03,0x00,0x00,0x00, /* 00000048 "...|...." */ 0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00, /* 00000050 "........" */ 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000058 "........" */ - 0x01,0x00,0x30,0x00,0x01,0x00,0x00,0x00, /* 00000060 "..0....." */ - 0x04,0x00,0x00,0x00,0x01,0x00,0x01,0x00, /* 00000068 "........" */ - 0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00, /* 00000070 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000078 "........" */ - 0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00, /* 00000080 "........" */ - 0x01,0x00,0x03,0x00,0x2A,0x00,0x00,0x00, /* 00000088 "....*..." */ - 0x02,0x00,0x20,0x00,0x01,0x00,0x00,0x00, /* 00000090 ".. ....." */ - 0x04,0x00,0x00,0x00,0x00,0x01,0x00,0x00, /* 00000098 "........" */ - 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, /* 000000A0 "........" */ - 0x06,0x00,0x00,0x00,0x09,0x00,0x00,0x00, /* 000000A8 "........" */ - 0x03,0x00,0x28,0x00,0x00,0x00,0x00,0x00, /* 000000B0 "..(....." */ - 0xB4,0x13,0x5D,0x40,0x91,0x0B,0x29,0x93, /* 000000B8 "..]@..)." */ - 0x67,0xE8,0x23,0x4C,0x00,0x00,0x00,0x88, /* 000000C0 "g.#L...." */ - 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77, /* 000000C8 ".."3DUfw" */ - 0x88,0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF, /* 000000D0 "........" */ - 0x04,0x00,0x50,0x00,0x01,0x00,0x86,0x80, /* 000000D8 "..P....." */ - 0x17,0x20,0x01,0x00,0x86,0x80,0x17,0x20, /* 000000E0 ". ..... " */ - 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000E8 "........" */ - 0x89,0x00,0x54,0x76,0x01,0x03,0x00,0x01, /* 000000F0 "..Tv...." */ - 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000F8 ". ......" */ - 0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00, /* 00000100 "........" */ - 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000108 "........" */ - 0x00,0x10,0x80,0x00,0x00,0x00,0x00,0x00, /* 00000110 "........" */ - 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000118 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000120 "........" */ - 0x05,0x00,0x28,0x00,0x01,0x00,0x00,0x01, /* 00000128 "..(....." */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000130 "........" */ - 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000138 ". ......" */ - 0x00,0x00,0x00,0xE0,0x0F,0x00,0x00,0x00, /* 00000140 "........" */ - 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00, /* 00000148 "........" */ - 0x06,0x00,0x20,0x00,0x01,0x00,0x00,0x00, /* 00000150 ".. ....." */ - 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000158 "........" */ - 0x00,0x00,0x00,0x18,0x04,0x00,0x00,0x00, /* 00000160 "........" */ - 0x00,0x00,0x00,0x18,0x06,0x00,0x00,0x00, /* 00000168 "........" */ - 0x07,0x00,0x10,0x00,0x00,0x00,0x00,0x00, /* 00000170 "........" */ - 0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* 00000178 "........" */ + 0x00,0xEF,0xCD,0xAB,0x78,0x56,0x34,0x12, /* 00000060 "....xV4." */ + 0x01,0x00,0x30,0x00,0x01,0x00,0x00,0x00, /* 00000068 "..0....." */ + 0x04,0x00,0x00,0x00,0x01,0x00,0x01,0x00, /* 00000070 "........" */ + 0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00, /* 00000078 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000080 "........" */ + 0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00, /* 00000088 "........" */ + 0x01,0x00,0x03,0x00,0x2A,0x00,0x00,0x00, /* 00000090 "....*..." */ + 0x02,0x00,0x20,0x00,0x01,0x00,0x00,0x00, /* 00000098 ".. ....." */ + 0x04,0x00,0x00,0x00,0x00,0x01,0x00,0x00, /* 000000A0 "........" */ + 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, /* 000000A8 "........" */ + 0x06,0x00,0x00,0x00,0x09,0x00,0x00,0x00, /* 000000B0 "........" */ + 0x03,0x00,0x28,0x00,0x00,0x00,0x00,0x00, /* 000000B8 "..(....." */ + 0xB4,0x13,0x5D,0x40,0x91,0x0B,0x29,0x93, /* 000000C0 "..]@..)." */ + 0x67,0xE8,0x23,0x4C,0x00,0x00,0x00,0x88, /* 000000C8 "g.#L...." */ + 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77, /* 000000D0 ".."3DUfw" */ + 0x88,0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF, /* 000000D8 "........" */ + 0x04,0x00,0x50,0x00,0x01,0x00,0x86,0x80, /* 000000E0 "..P....." */ + 0x17,0x20,0x01,0x00,0x86,0x80,0x17,0x20, /* 000000E8 ". ..... " */ + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000F0 "........" */ + 0x89,0x00,0x54,0x76,0x01,0x03,0x00,0x01, /* 000000F8 "..Tv...." */ + 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000100 ". ......" */ + 0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00, /* 00000108 "........" */ + 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000110 "........" */ + 0x00,0x10,0x80,0x00,0x00,0x00,0x00,0x00, /* 00000118 "........" */ + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000120 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000128 "........" */ + 0x05,0x00,0x28,0x00,0x01,0x00,0x00,0x01, /* 00000130 "..(....." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000138 "........" */ + 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000140 ". ......" */ + 0x00,0x00,0x00,0xE0,0x0F,0x00,0x00,0x00, /* 00000148 "........" */ + 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00, /* 00000150 "........" */ + 0x06,0x00,0x20,0x00,0x01,0x00,0x00,0x00, /* 00000158 ".. ....." */ + 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000160 "........" */ + 0x00,0x00,0x00,0x18,0x04,0x00,0x00,0x00, /* 00000168 "........" */ + 0x00,0x00,0x00,0x18,0x06,0x00,0x00,0x00, /* 00000170 "........" */ + 0x07,0x00,0x10,0x00,0x00,0x00,0x00,0x00, /* 00000178 "........" */ + 0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* 00000180 "........" */ }; const unsigned char TemplatePcct[] = { - 0x50,0x43,0x43,0x54,0x4e,0x02,0x00,0x00, /* 00000000 "PCCTN..." */ - 0x01,0x47,0x49,0x4e,0x54,0x45,0x4c,0x20, /* 00000008 ".GINTEL " */ - 0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65, /* 00000010 "Template" */ - 0x01,0x00,0x00,0x00,0x49,0x4e,0x54,0x4c, /* 00000018 "....INTL" */ - 0x03,0x03,0x17,0x20,0x01,0x00,0x00,0x00, /* 00000020 "... ...." */ + 0x50,0x43,0x43,0x54,0xAE,0x02,0x00,0x00, /* 00000000 "PCCT...." */ + 0x01,0xE6,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ + 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ + 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x25,0x09,0x20,0x20,0x01,0x00,0x00,0x00, /* 00000020 "%. ...." */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000028 "........" */ - 0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000030 ".>......" */ + 0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000030 ".>......" */ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, /* 00000038 "........" */ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, /* 00000040 """""""""" */ 0x01,0x32,0x00,0x03,0x33,0x33,0x33,0x33, /* 00000048 ".2..3333" */ 0x33,0x33,0x33,0x33,0x44,0x44,0x44,0x44, /* 00000050 "3333DDDD" */ 0x44,0x44,0x44,0x44,0x55,0x55,0x55,0x55, /* 00000058 "DDDDUUUU" */ 0x55,0x55,0x55,0x55,0x66,0x66,0x66,0x66, /* 00000060 "UUUUffff" */ - 0x77,0x77,0x77,0x77,0x88,0x88,0x01,0x3e, /* 00000068 "wwww...>" */ + 0x77,0x77,0x77,0x77,0x88,0x88,0x01,0x3E, /* 00000068 "wwww...>" */ 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000070 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000078 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x32, /* 00000080 ".......2" */ 0x00,0x03,0x44,0x44,0x44,0x44,0x44,0x44, /* 00000088 "..DDDDDD" */ 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, /* 00000090 "DDDDDDDD" */ 0x44,0x44,0x55,0x55,0x55,0x55,0x55,0x55, /* 00000098 "DDUUUUUU" */ - 0x55,0x55,0x66,0x66,0x66,0x66,0x77,0x77, /* 000000a0 "UUffffww" */ - 0x77,0x77,0x88,0x88,0x02,0x5a,0x01,0x00, /* 000000a8 "ww...Z.." */ - 0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 000000b0 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000b8 "........" */ - 0x00,0x00,0x00,0x00,0x01,0x32,0x00,0x03, /* 000000c0 ".....2.." */ - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, /* 000000c8 "DDDDDDDD" */ - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, /* 000000d0 "DDDDDDDD" */ - 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, /* 000000d8 "UUUUUUUU" */ - 0x66,0x66,0x66,0x66,0x77,0x77,0x77,0x77, /* 000000e0 "ffffwwww" */ - 0x88,0x88,0x01,0x32,0x00,0x03,0x33,0x33, /* 000000e8 "...2..33" */ - 0x33,0x33,0x33,0x33,0x33,0x33,0x44,0x44, /* 000000f0 "333333DD" */ - 0x44,0x44,0x44,0x44,0x44,0x44,0x55,0x55, /* 000000f8 "DDDDDDUU" */ - 0x55,0x55,0x55,0x55,0x55,0x55,0x03,0xa4, /* 00000100 "UUUUUU.." */ + 0x55,0x55,0x66,0x66,0x66,0x66,0x77,0x77, /* 000000A0 "UUffffww" */ + 0x77,0x77,0x88,0x88,0x02,0x5A,0x01,0x00, /* 000000A8 "ww...Z.." */ + 0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 000000B0 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B8 "........" */ + 0x00,0x00,0x00,0x00,0x01,0x32,0x00,0x03, /* 000000C0 ".....2.." */ + 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, /* 000000C8 "DDDDDDDD" */ + 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, /* 000000D0 "DDDDDDDD" */ + 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, /* 000000D8 "UUUUUUUU" */ + 0x66,0x66,0x66,0x66,0x77,0x77,0x77,0x77, /* 000000E0 "ffffwwww" */ + 0x88,0x88,0x01,0x32,0x00,0x03,0x33,0x33, /* 000000E8 "...2..33" */ + 0x33,0x33,0x33,0x33,0x33,0x33,0x44,0x44, /* 000000F0 "333333DD" */ + 0x44,0x44,0x44,0x44,0x44,0x44,0x55,0x55, /* 000000F8 "DDDDDDUU" */ + 0x55,0x55,0x55,0x55,0x55,0x55,0x03,0xA4, /* 00000100 "UUUUUU.." */ 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000108 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000110 "........" */ 0x00,0x00,0x01,0x32,0x00,0x03,0x33,0x33, /* 00000118 "...2..33" */ @@ -1060,18 +1093,18 @@ const unsigned char TemplatePcct[] = 0x33,0x33,0x33,0x33,0x33,0x33,0x44,0x44, /* 00000188 "333333DD" */ 0x44,0x44,0x44,0x44,0x44,0x44,0x01,0x32, /* 00000190 "DDDDDD.2" */ 0x00,0x03,0x33,0x33,0x33,0x33,0x33,0x33, /* 00000198 "..333333" */ - 0x33,0x33,0x55,0x55,0x55,0x55,0x55,0x55, /* 000001a0 "33UUUUUU" */ - 0x55,0x55,0x04,0xa4,0x01,0x00,0x00,0x00, /* 000001a8 "UU......" */ - 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001b0 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x32, /* 000001b8 ".......2" */ - 0x00,0x03,0x33,0x33,0x33,0x33,0x33,0x33, /* 000001c0 "..333333" */ - 0x33,0x33,0x44,0x44,0x44,0x44,0x44,0x44, /* 000001c8 "33DDDDDD" */ - 0x44,0x44,0x55,0x55,0x55,0x55,0x55,0x55, /* 000001d0 "DDUUUUUU" */ - 0x55,0x55,0x66,0x66,0x66,0x66,0x77,0x77, /* 000001d8 "UUffffww" */ - 0x77,0x77,0x88,0x88,0x88,0x88,0x01,0x32, /* 000001e0 "ww.....2" */ - 0x00,0x03,0x33,0x33,0x33,0x33,0x33,0x33, /* 000001e8 "..333333" */ - 0x33,0x33,0x99,0x99,0x99,0x99,0x99,0x99, /* 000001f0 "33......" */ - 0x99,0x99,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001f8 "........" */ + 0x33,0x33,0x55,0x55,0x55,0x55,0x55,0x55, /* 000001A0 "33UUUUUU" */ + 0x55,0x55,0x04,0xA4,0x01,0x00,0x00,0x00, /* 000001A8 "UU......" */ + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001B0 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x32, /* 000001B8 ".......2" */ + 0x00,0x03,0x33,0x33,0x33,0x33,0x33,0x33, /* 000001C0 "..333333" */ + 0x33,0x33,0x44,0x44,0x44,0x44,0x44,0x44, /* 000001C8 "33DDDDDD" */ + 0x44,0x44,0x55,0x55,0x55,0x55,0x55,0x55, /* 000001D0 "DDUUUUUU" */ + 0x55,0x55,0x66,0x66,0x66,0x66,0x77,0x77, /* 000001D8 "UUffffww" */ + 0x77,0x77,0x88,0x88,0x88,0x88,0x01,0x32, /* 000001E0 "ww.....2" */ + 0x00,0x03,0x33,0x33,0x33,0x33,0x33,0x33, /* 000001E8 "..333333" */ + 0x33,0x33,0x99,0x99,0x99,0x99,0x99,0x99, /* 000001F0 "33......" */ + 0x99,0x99,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001F8 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000200 "........" */ 0x00,0x00,0x01,0x32,0x00,0x03,0x33,0x33, /* 00000208 "...2..33" */ 0x33,0x33,0x33,0x33,0x33,0x33,0x22,0x22, /* 00000210 "333333""" */ @@ -1081,7 +1114,19 @@ const unsigned char TemplatePcct[] = 0x33,0x33,0x44,0x44,0x44,0x44,0x44,0x44, /* 00000230 "33DDDDDD" */ 0x44,0x44,0x01,0x32,0x00,0x03,0x33,0x33, /* 00000238 "DD.2..33" */ 0x33,0x33,0x33,0x33,0x33,0x33,0x55,0x55, /* 00000240 "333333UU" */ - 0x55,0x55,0x55,0x55,0x55,0x55 /* 00000248 "UUUUUU| */ + 0x55,0x55,0x55,0x55,0x55,0x55,0x05,0x60, /* 00000248 "UUUUUU.`" */ + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000250 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000258 "........" */ + 0x00,0x00,0x01,0x32,0x00,0x03,0x33,0x33, /* 00000260 "...2..33" */ + 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, /* 00000268 "33333333" */ + 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, /* 00000270 "33333333" */ + 0x33,0x33,0x33,0x33,0x33,0x33,0x01,0x32, /* 00000278 "333333.2" */ + 0x00,0x03,0x33,0x33,0x33,0x33,0x33,0x33, /* 00000280 "..333333" */ + 0x33,0x33,0x44,0x44,0x44,0x44,0x44,0x44, /* 00000288 "33DDDDDD" */ + 0x44,0x44,0x01,0x32,0x00,0x03,0x33,0x33, /* 00000290 "DD.2..33" */ + 0x33,0x33,0x33,0x33,0x33,0x33,0x55,0x55, /* 00000298 "333333UU" */ + 0x55,0x55,0x55,0x55,0x55,0x55,0x03,0x00, /* 000002A0 "UUUUUU.." */ + 0x00,0x00,0x05,0x00,0x00,0x00 /* 000002A8 "......" */ }; const unsigned char TemplatePdtt[] = @@ -1095,31 +1140,50 @@ const unsigned char TemplatePdtt[] = 0xCC,0x01,0xDD,0x00 /* 00000030 "...." */ }; +const unsigned char TemplatePhat [] = +{ + 0x50,0x48,0x41,0x54,0x6F,0x00,0x00,0x00, /* 00000000 "PHATo..." */ + 0x01,0xC7,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ + 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ + 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x05,0x01,0x21,0x20,0x00,0x00,0x28,0x00, /* 00000020 "..! ..(." */ + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000028 "........" */ + 0x30,0x05,0xAF,0x91,0x86,0x5D,0x0E,0x47, /* 00000030 "0....].G" */ + 0xA6,0xB0,0x0A,0x2D,0xB9,0x40,0x82,0x49, /* 00000038 "...-.@.I" */ + 0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01, /* 00000040 "........" */ + 0x0C,0x0B,0x0A,0x09,0x01,0x00,0x23,0x00, /* 00000048 "......#." */ + 0x00,0x00,0x00,0x00,0x30,0x05,0xAF,0x91, /* 00000050 "....0..." */ + 0x86,0x5D,0x0E,0x47,0xA6,0xB0,0x0A,0x2D, /* 00000058 ".].G...-" */ + 0xB9,0x40,0x82,0x49,0x00,0x00,0x00,0x00, /* 00000060 ".@.I...." */ + 0x61,0x73,0x64,0x66,0x00,0xFF,0x11 /* 00000068 "asdf..." */ +}; + const unsigned char TemplatePmtt[] = { - 0x50,0x4D,0x54,0x54,0xB4,0x00,0x00,0x00, /* 00000000 "PMTT...." */ - 0x01,0x3A,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 ".:INTEL " */ + 0x50,0x4D,0x54,0x54,0xBB,0x00,0x00,0x00, /* 00000000 "PMTT...." */ + 0x02,0x2E,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */ 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ - 0x26,0x08,0x11,0x20,0x00,0x00,0x00,0x00, /* 00000020 "&.. ...." */ - 0x00,0x00,0x80,0x00,0x01,0x00,0x00,0x00, /* 00000028 "........" */ - 0x00,0x00,0x00,0x00,0x01,0x00,0x54,0x00, /* 00000030 "......T." */ - 0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000040 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000048 "........" */ - 0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00, /* 00000050 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000058 "........" */ - 0x02,0x00,0x14,0x00,0x02,0x00,0x00,0x00, /* 00000060 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000068 "........" */ - 0x00,0x00,0x00,0x00,0x02,0x00,0x14,0x00, /* 00000070 "........" */ - 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000078 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000080 "........" */ - 0x01,0x00,0x20,0x00,0x01,0x00,0x00,0x00, /* 00000088 ".. ....." */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000090 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000098 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A0 "........" */ - 0x00,0x00,0x0C,0x00,0x01,0x00,0x00,0x00, /* 000000A8 "........" */ - 0x00,0x00,0x00,0x00 /* 000000B0 "...." */ + 0x05,0x01,0x21,0x20,0x08,0x00,0x00,0x00, /* 00000020 "..! ...." */ + 0x00,0x00,0x10,0x00,0x0D,0x00,0x00,0x00, /* 00000028 "........" */ + 0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000030 "........" */ + 0x01,0x00,0x10,0x00,0x04,0x00,0x00,0x00, /* 00000038 "........" */ + 0x02,0x00,0x00,0x00,0x44,0x44,0x00,0x00, /* 00000040 "....DD.." */ + 0x02,0x00,0x10,0x00,0x04,0x00,0x00,0x00, /* 00000048 "........" */ + 0x01,0x00,0x00,0x00,0x78,0x56,0x34,0x12, /* 00000050 "....xV4." */ + 0xFF,0x00,0x23,0x00,0x0D,0x00,0x00,0x00, /* 00000058 "..#....." */ + 0x03,0x00,0x00,0x00,0x03,0x02,0x01,0x00, /* 00000060 "........" */ + 0x08,0x04,0x07,0x06,0x08,0x09,0x0A,0x0B, /* 00000068 "........" */ + 0x0C,0x0D,0x0E,0x0F,0x55,0x66,0x77,0x88, /* 00000070 "....Ufw." */ + 0x11,0xAA,0xBB,0x00,0x00,0x10,0x00,0x0D, /* 00000078 "........" */ + 0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x01, /* 00000080 "........" */ + 0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00, /* 00000088 "........" */ + 0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00, /* 00000090 "........" */ + 0x00,0x00,0x00,0x02,0x00,0x10,0x00,0x04, /* 00000098 "........" */ + 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x78, /* 000000A0 ".......x" */ + 0x56,0x34,0x12,0x02,0x00,0x10,0x00,0x04, /* 000000A8 "V4......" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78, /* 000000B0 ".......x" */ + 0x56,0x34,0x12 /* 000000B8 "V4." */ }; const unsigned char TemplatePptt[] = @@ -1205,21 +1269,24 @@ const unsigned char TemplateSdei[] = const unsigned char TemplateSdev[] = { - 0x53,0x44,0x45,0x56,0x72,0x00,0x00,0x00, /* 00000000 "SDEVr..." */ - 0x01,0x2F,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "./INTEL " */ + 0x53,0x44,0x45,0x56,0x89,0x00,0x00,0x00, /* 00000000 "SDEV...." */ + 0x01,0x6E,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 ".nINTEL " */ 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ - 0x31,0x08,0x17,0x20,0x00,0x01,0x2A,0x00, /* 00000020 "1.. ..*." */ - 0x0C,0x00,0x16,0x00,0x22,0x00,0x08,0x00, /* 00000028 "...."..." */ - 0x5C,0x5C,0x5F,0x53,0x42,0x5F,0x2E,0x50, /* 00000030 "\\_SB_.P" */ - 0x43,0x49,0x30,0x2E,0x55,0x53,0x42,0x31, /* 00000038 "CI0.USB1" */ - 0x2E,0x53,0x55,0x42,0x31,0x00,0x00,0x11, /* 00000040 ".SUB1..." */ - 0x22,0x33,0x44,0x55,0x66,0x77,0x01,0x01, /* 00000048 ""3DUfw.." */ - 0x24,0x00,0x10,0x00,0x20,0x00,0x10,0x00, /* 00000050 "$... ..." */ - 0x04,0x00,0x14,0x00,0x10,0x00,0x11,0x22, /* 00000058 "......."" */ - 0x33,0x44,0xEE,0xDD,0xCC,0xBB,0xAA,0x55, /* 00000060 "3D.....U" */ - 0x66,0x77,0x88,0x99,0xAA,0xBB,0xCC,0xDD, /* 00000068 "fw......" */ - 0xEE,0xFF /* 00000070 ".." */ + 0x05,0x01,0x21,0x20,0x00,0x03,0x41,0x00, /* 00000020 "..! ..A." */ + 0x23,0x00,0x16,0x00,0x39,0x00,0x08,0x00, /* 00000028 "#...9..." */ + 0x10,0x00,0x13,0x00,0x00,0x00,0x00,0x00, /* 00000030 "........" */ + 0x01,0x00,0x03,0x02,0x05,0x04,0x07,0x06, /* 00000038 "........" */ + 0x09,0x08,0x0A,0x0B,0x0C,0x0D,0x0E,0x5C, /* 00000040 ".......\" */ + 0x5C,0x5F,0x53,0x42,0x5F,0x2E,0x50,0x43, /* 00000048 "\_SB_.PC" */ + 0x49,0x30,0x2E,0x55,0x53,0x42,0x31,0x2E, /* 00000050 "I0.USB1." */ + 0x53,0x55,0x42,0x31,0x00,0x00,0x11,0x22, /* 00000058 "SUB1..."" */ + 0x33,0x44,0x55,0x66,0x77,0x01,0x01,0x24, /* 00000060 "3DUfw..$" */ + 0x00,0x10,0x00,0x20,0x00,0x10,0x00,0x04, /* 00000068 "... ...." */ + 0x00,0x14,0x00,0x10,0x00,0x11,0x22,0x33, /* 00000070 "......"3" */ + 0x44,0xEE,0xDD,0xCC,0xBB,0xAA,0x55,0x66, /* 00000078 "D.....Uf" */ + 0x77,0x88,0x99,0xAA,0xBB,0xCC,0xDD,0xEE, /* 00000080 "w......." */ + 0xFF /* 00000088 "." */ }; const unsigned char TemplateSlic[] = @@ -1450,6 +1517,26 @@ const unsigned char TemplateUefi[] = 0x0C,0x0D,0x0E,0x0F,0x00,0x00 /* 00000030 "......" */ }; +const unsigned char TemplateViot[] = +{ + 0x56,0x49,0x4F,0x54,0x80,0x00,0x00,0x00, /* 00000000 "VIOT...." */ + 0x00,0x52,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 ".RINTEL " */ + 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ + 0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x05,0x01,0x21,0x20,0x04,0x00,0x30,0x00, /* 00000020 "..! ..0." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000028 "........" */ + 0x01,0x00,0x18,0x00,0x00,0x00,0x00,0x00, /* 00000030 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, /* 00000038 "........" */ + 0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000040 "`......." */ + 0x02,0x00,0x18,0x00,0x00,0x00,0x01,0x00, /* 00000048 "........" */ + 0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00, /* 00000050 "........" */ + 0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000058 "p......." */ + 0x03,0x00,0x10,0x00,0x00,0x00,0x00,0x00, /* 00000060 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000068 "........" */ + 0x04,0x00,0x10,0x00,0x00,0x00,0x00,0x00, /* 00000070 "........" */ + 0x00,0x00,0x00,0x1D,0x00,0x00,0x00,0x00 /* 00000078 "........" */ +}; + const unsigned char TemplateWaet[] = { 0x57,0x41,0x45,0x54,0x28,0x00,0x00,0x00, /* 00000000 "WAET(..." */ diff --git a/source/compiler/dtutils.c b/source/compiler/dtutils.c index a508b51c947b..d69ad2fbce33 100644 --- a/source/compiler/dtutils.c +++ b/source/compiler/dtutils.c @@ -438,6 +438,7 @@ DtGetFieldType ( case ACPI_DMT_BUF16: case ACPI_DMT_BUF128: case ACPI_DMT_PCI_PATH: + case ACPI_DMT_PMTT_VENDOR: Type = DT_FIELD_TYPE_BUFFER; break; @@ -573,6 +574,7 @@ DtGetFieldLength ( case ACPI_DMT_CHKSUM: case ACPI_DMT_SPACEID: case ACPI_DMT_ACCWIDTH: + case ACPI_DMT_CEDT: case ACPI_DMT_IVRS: case ACPI_DMT_GTDT: case ACPI_DMT_MADT: @@ -589,6 +591,7 @@ DtGetFieldLength ( case ACPI_DMT_ERSTACT: case ACPI_DMT_ERSTINST: case ACPI_DMT_DMAR_SCOPE: + case ACPI_DMT_VIOT: ByteLength = 1; break; @@ -599,6 +602,7 @@ DtGetFieldLength ( case ACPI_DMT_HMAT: case ACPI_DMT_NFIT: case ACPI_DMT_PCI_PATH: + case ACPI_DMT_PHAT: ByteLength = 2; break; @@ -673,6 +677,7 @@ DtGetFieldLength ( case ACPI_DMT_BUFFER: case ACPI_DMT_RAW_BUFFER: + case ACPI_DMT_PMTT_VENDOR: Value = DtGetFieldValue (Field); if (Value) diff --git a/source/components/disassembler/dmresrcl2.c b/source/components/disassembler/dmresrcl2.c index e98a15dbe26a..ae15e3d8aa7f 100644 --- a/source/components/disassembler/dmresrcl2.c +++ b/source/components/disassembler/dmresrcl2.c @@ -159,6 +159,13 @@ /* Local prototypes */ +static void +AcpiDmCsi2SerialBusDescriptor ( + ACPI_OP_WALK_INFO *Info, + AML_RESOURCE *Resource, + UINT32 Length, + UINT32 Level); + static void AcpiDmI2cSerialBusDescriptor ( ACPI_OP_WALK_INFO *Info, @@ -200,7 +207,8 @@ static ACPI_RESOURCE_HANDLER SerialBusResourceDispatch [] = NULL, AcpiDmI2cSerialBusDescriptor, AcpiDmSpiSerialBusDescriptor, - AcpiDmUartSerialBusDescriptor + AcpiDmUartSerialBusDescriptor, + AcpiDmCsi2SerialBusDescriptor }; @@ -674,6 +682,15 @@ AcpiDmDumpSerialBusVendorData ( sizeof (AML_RESOURCE_UART_SERIALBUS)); break; + case AML_RESOURCE_CSI2_SERIALBUSTYPE: + + VendorLength = Resource->CommonSerialBus.TypeDataLength - + AML_RESOURCE_CSI2_MIN_DATA_LEN; + + VendorData = ACPI_ADD_PTR (UINT8, Resource, + sizeof (AML_RESOURCE_CSI2_SERIALBUS)); + break; + default: return; @@ -685,6 +702,75 @@ AcpiDmDumpSerialBusVendorData ( } +/******************************************************************************* + * + * FUNCTION: AcpiDmCsi2SerialBusDescriptor + * + * PARAMETERS: Info - Extra resource info + * Resource - Pointer to the resource descriptor + * Length - Length of the descriptor in bytes + * Level - Current source code indentation level + * + * RETURN: None + * + * DESCRIPTION: Decode a CSI2 serial bus descriptor + * + ******************************************************************************/ + +static void +AcpiDmCsi2SerialBusDescriptor ( + ACPI_OP_WALK_INFO *Info, + AML_RESOURCE *Resource, + UINT32 Length, + UINT32 Level) +{ + UINT32 ResourceSourceOffset; + char *DeviceName; + + + /* SlaveMode, PhyType, LocalPortInstance */ + + AcpiDmIndent (Level); + AcpiOsPrintf ("Csi2Bus (%s,", + AcpiGbl_SmDecode [ACPI_GET_1BIT_FLAG (Resource->Csi2SerialBus.Flags)]); + + AcpiOsPrintf (" 0x%2.2X, 0x%2.2X,\n", + Resource->Csi2SerialBus.TypeSpecificFlags & 0x03, + Resource->Csi2SerialBus.TypeSpecificFlags & 0xFC); + + /* ResourceSource is a required field */ + + ResourceSourceOffset = sizeof (AML_RESOURCE_COMMON_SERIALBUS) + + Resource->CommonSerialBus.TypeDataLength; + + AcpiDmIndent (Level + 1); + DeviceName = ACPI_ADD_PTR (char, Resource, ResourceSourceOffset); + AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX); + + /* ResourceSourceIndex, ResourceUsage */ + + AcpiOsPrintf (",\n"); + AcpiDmIndent (Level + 1); + AcpiOsPrintf ("0x%2.2X, ", Resource->Csi2SerialBus.ResSourceIndex); + + AcpiOsPrintf ("%s, ", + AcpiGbl_ConsumeDecode [ACPI_EXTRACT_1BIT_FLAG (Resource->Csi2SerialBus.Flags, 1)]); + + /* Insert a descriptor name */ + + AcpiDmDescriptorName (); + + /* Dump the vendor data */ + + AcpiOsPrintf (",\n"); + AcpiDmIndent (Level + 1); + AcpiDmDumpSerialBusVendorData (Resource, Level); + AcpiOsPrintf (")\n"); + + MpSaveSerialInfo (Info->MappingOp, Resource, DeviceName); +} + + /******************************************************************************* * * FUNCTION: AcpiDmI2cSerialBusDescriptor @@ -939,7 +1025,7 @@ AcpiDmUartSerialBusDescriptor ( * * RETURN: None * - * DESCRIPTION: Decode a I2C/SPI/UART serial bus descriptor + * DESCRIPTION: Decode a I2C/SPI/UART/CSI2 serial bus descriptor * ******************************************************************************/ diff --git a/source/components/events/evhandler.c b/source/components/events/evhandler.c index 9faccba3783e..39171014ee54 100644 --- a/source/components/events/evhandler.c +++ b/source/components/events/evhandler.c @@ -677,6 +677,13 @@ AcpiEvInstallSpaceHandler ( /* Init handler obj */ + Status = AcpiOsCreateMutex (&HandlerObj->AddressSpace.ContextMutex); + if (ACPI_FAILURE (Status)) + { + AcpiUtRemoveReference (HandlerObj); + goto UnlockAndExit; + } + HandlerObj->AddressSpace.SpaceId = (UINT8) SpaceId; HandlerObj->AddressSpace.HandlerFlags = Flags; HandlerObj->AddressSpace.RegionList = NULL; diff --git a/source/components/events/evregion.c b/source/components/events/evregion.c index 4f5bb7e0b5df..2624cd65d38a 100644 --- a/source/components/events/evregion.c +++ b/source/components/events/evregion.c @@ -270,6 +270,8 @@ AcpiEvAddressSpaceDispatch ( ACPI_OPERAND_OBJECT *RegionObj2; void *RegionContext = NULL; ACPI_CONNECTION_INFO *Context; + ACPI_MUTEX ContextMutex; + BOOLEAN ContextLocked; ACPI_PHYSICAL_ADDRESS Address; @@ -296,6 +298,8 @@ AcpiEvAddressSpaceDispatch ( } Context = HandlerDesc->AddressSpace.Context; + ContextMutex = HandlerDesc->AddressSpace.ContextMutex; + ContextLocked = FALSE; /* * It may be the case that the region has never been initialized. @@ -362,43 +366,6 @@ AcpiEvAddressSpaceDispatch ( Handler = HandlerDesc->AddressSpace.Handler; Address = (RegionObj->Region.Address + RegionOffset); - /* - * Special handling for GenericSerialBus and GeneralPurposeIo: - * There are three extra parameters that must be passed to the - * handler via the context: - * 1) Connection buffer, a resource template from Connection() op - * 2) Length of the above buffer - * 3) Actual access length from the AccessAs() op - * - * In addition, for GeneralPurposeIo, the Address and BitWidth fields - * are defined as follows: - * 1) Address is the pin number index of the field (bit offset from - * the previous Connection) - * 2) BitWidth is the actual bit length of the field (number of pins) - */ - if ((RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GSBUS) && - Context && - FieldObj) - { - /* Get the Connection (ResourceTemplate) buffer */ - - Context->Connection = FieldObj->Field.ResourceBuffer; - Context->Length = FieldObj->Field.ResourceLength; - Context->AccessLength = FieldObj->Field.AccessLength; - } - if ((RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GPIO) && - Context && - FieldObj) - { - /* Get the Connection (ResourceTemplate) buffer */ - - Context->Connection = FieldObj->Field.ResourceBuffer; - Context->Length = FieldObj->Field.ResourceLength; - Context->AccessLength = FieldObj->Field.AccessLength; - Address = FieldObj->Field.PinNumberIndex; - BitWidth = FieldObj->Field.BitLength; - } - ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION, "Handler %p (@%p) Address %8.8X%8.8X [%s]\n", &RegionObj->Region.Handler->AddressSpace, Handler, @@ -416,11 +383,62 @@ AcpiEvAddressSpaceDispatch ( AcpiExExitInterpreter(); } + /* + * Special handling for GenericSerialBus and GeneralPurposeIo: + * There are three extra parameters that must be passed to the + * handler via the context: + * 1) Connection buffer, a resource template from Connection() op + * 2) Length of the above buffer + * 3) Actual access length from the AccessAs() op + * + * Since we pass these extra parameters via the context, which is + * shared between threads, we must lock the context to avoid these + * parameters being changed from another thread before the handler + * has completed running. + * + * In addition, for GeneralPurposeIo, the Address and BitWidth fields + * are defined as follows: + * 1) Address is the pin number index of the field (bit offset from + * the previous Connection) + * 2) BitWidth is the actual bit length of the field (number of pins) + */ + if ((RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GSBUS || + RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GPIO) && + Context && + FieldObj) + { + + Status = AcpiOsAcquireMutex (ContextMutex, ACPI_WAIT_FOREVER); + if (ACPI_FAILURE (Status)) + { + goto ReEnterInterpreter; + } + + ContextLocked = TRUE; + + /* Get the Connection (ResourceTemplate) buffer */ + + Context->Connection = FieldObj->Field.ResourceBuffer; + Context->Length = FieldObj->Field.ResourceLength; + Context->AccessLength = FieldObj->Field.AccessLength; + + if (RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GPIO) + { + Address = FieldObj->Field.PinNumberIndex; + BitWidth = FieldObj->Field.BitLength; + } + } + /* Call the handler */ Status = Handler (Function, Address, BitWidth, Value, Context, RegionObj2->Extra.RegionContext); + if (ContextLocked) + { + AcpiOsReleaseMutex (ContextMutex); + } + if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, "Returned by Handler for [%s]", @@ -438,6 +456,7 @@ AcpiEvAddressSpaceDispatch ( } } +ReEnterInterpreter: if (!(HandlerDesc->AddressSpace.HandlerFlags & ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) { diff --git a/source/components/events/evxfregn.c b/source/components/events/evxfregn.c index 9113d8a26e68..3febc81c216c 100644 --- a/source/components/events/evxfregn.c +++ b/source/components/events/evxfregn.c @@ -362,6 +362,7 @@ AcpiRemoveAddressSpaceHandler ( /* Now we can delete the handler object */ + AcpiOsReleaseMutex (HandlerObj->AddressSpace.ContextMutex); AcpiUtRemoveReference (HandlerObj); goto UnlockAndExit; } diff --git a/source/components/namespace/nsaccess.c b/source/components/namespace/nsaccess.c index c332896f143e..4286223efe4e 100644 --- a/source/components/namespace/nsaccess.c +++ b/source/components/namespace/nsaccess.c @@ -251,14 +251,13 @@ AcpiNsRootInitialize ( * predefined names are at the root level. It is much easier to * just create and link the new node(s) here. */ - NewNode = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_NAMESPACE_NODE)); + NewNode = AcpiNsCreateNode (*ACPI_CAST_PTR (UINT32, InitVal->Name)); if (!NewNode) { Status = AE_NO_MEMORY; goto UnlockAndExit; } - ACPI_COPY_NAMESEG (NewNode->Name.Ascii, InitVal->Name); NewNode->DescriptorType = ACPI_DESC_TYPE_NAMED; NewNode->Type = InitVal->Type; diff --git a/source/components/namespace/nsrepair2.c b/source/components/namespace/nsrepair2.c index 8ec425ee41a2..d3dcd3180eee 100644 --- a/source/components/namespace/nsrepair2.c +++ b/source/components/namespace/nsrepair2.c @@ -690,8 +690,9 @@ AcpiNsRepair_HID ( ACPI_OPERAND_OBJECT **ReturnObjectPtr) { ACPI_OPERAND_OBJECT *ReturnObject = *ReturnObjectPtr; - char *Dest; + ACPI_OPERAND_OBJECT *NewString; char *Source; + char *Dest; ACPI_FUNCTION_NAME (NsRepair_HID); @@ -716,6 +717,14 @@ AcpiNsRepair_HID ( return_ACPI_STATUS (AE_OK); } + /* It is simplest to always create a new string object */ + + NewString = AcpiUtCreateStringObject (ReturnObject->String.Length); + if (!NewString) + { + return_ACPI_STATUS (AE_NO_MEMORY); + } + /* * Remove a leading asterisk if present. For some unknown reason, there * are many machines in the field that contains IDs like this. @@ -726,7 +735,7 @@ AcpiNsRepair_HID ( if (*Source == '*') { Source++; - ReturnObject->String.Length--; + NewString->String.Length--; ACPI_DEBUG_PRINT ((ACPI_DB_REPAIR, "%s: Removed invalid leading asterisk\n", Info->FullPathname)); @@ -740,12 +749,13 @@ AcpiNsRepair_HID ( * "NNNN####" where N is an uppercase letter or decimal digit, and * # is a hex digit. */ - for (Dest = ReturnObject->String.Pointer; *Source; Dest++, Source++) + for (Dest = NewString->String.Pointer; *Source; Dest++, Source++) { *Dest = (char) toupper ((int) *Source); } - ReturnObject->String.Pointer[ReturnObject->String.Length] = 0; + AcpiUtRemoveReference (ReturnObject); + *ReturnObjectPtr = NewString; return_ACPI_STATUS (AE_OK); } diff --git a/source/components/resources/rscalc.c b/source/components/resources/rscalc.c index d435323fe804..2e878e80f057 100644 --- a/source/components/resources/rscalc.c +++ b/source/components/resources/rscalc.c @@ -816,9 +816,9 @@ AcpiRsGetListLength ( *SizeNeeded += BufferSize; ACPI_DEBUG_PRINT ((ACPI_DB_RESOURCES, - "Type %.2X, AmlLength %.2X InternalLength %.2X\n", + "Type %.2X, AmlLength %.2X InternalLength %.2X%8X\n", AcpiUtGetResourceType (AmlBuffer), - AcpiUtGetDescriptorLength (AmlBuffer), BufferSize)); + AcpiUtGetDescriptorLength (AmlBuffer), ACPI_FORMAT_UINT64(*SizeNeeded))); /* * Point to the next resource within the AML stream using the length diff --git a/source/components/resources/rsdump.c b/source/components/resources/rsdump.c index 7f597f16eddc..44b552ada5b4 100644 --- a/source/components/resources/rsdump.c +++ b/source/components/resources/rsdump.c @@ -277,6 +277,11 @@ AcpiRsDumpResourceList ( ResourceList->Type); return; } + else if (!ResourceList->Type) + { + ACPI_ERROR ((AE_INFO, "Invalid Zero Resource Type")); + return; + } /* Sanity check the length. It must not be zero, or we loop forever */ @@ -460,6 +465,11 @@ AcpiRsDumpDescriptor ( AcpiRsOutString (Name, Table->Pointer [*Target & 0x07]); break; + case ACPI_RSD_6BITFLAG: + + AcpiRsOutInteger8 (Name, (ACPI_GET8 (Target) & 0x3F)); + break; + case ACPI_RSD_SHORTLIST: /* * Short byte list (single line output) for DMA and IRQ resources diff --git a/source/components/resources/rsdumpinfo.c b/source/components/resources/rsdumpinfo.c index f1688120911a..26f4993d5a54 100644 --- a/source/components/resources/rsdumpinfo.c +++ b/source/components/resources/rsdumpinfo.c @@ -454,6 +454,21 @@ ACPI_RSDUMP_INFO AcpiRsDumpCommonSerialBus[11] = ACPI_RS_DUMP_COMMON_SERIAL_BUS }; +ACPI_RSDUMP_INFO AcpiRsDumpCsi2SerialBus[11] = +{ + {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpCsi2SerialBus), "Camera Serial Bus", NULL}, + {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (Csi2SerialBus.RevisionId), "RevisionId", NULL}, + {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (Csi2SerialBus.Type), "Type", AcpiGbl_SbtDecode}, + {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Csi2SerialBus.ProducerConsumer), "ProducerConsumer", AcpiGbl_ConsumeDecode}, + {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Csi2SerialBus.SlaveMode), "SlaveMode", AcpiGbl_SmDecode}, + {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Csi2SerialBus.PhyType), "PhyType", AcpiGbl_PhyDecode}, + {ACPI_RSD_6BITFLAG, ACPI_RSD_OFFSET (Csi2SerialBus.LocalPortInstance), "LocalPortInstance", NULL}, + {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (Csi2SerialBus.TypeRevisionId), "TypeRevisionId", NULL}, + {ACPI_RSD_UINT16, ACPI_RSD_OFFSET (Csi2SerialBus.VendorLength), "VendorLength", NULL}, + {ACPI_RSD_SHORTLISTX,ACPI_RSD_OFFSET (Csi2SerialBus.VendorData), "VendorData", NULL}, + {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (Csi2SerialBus.ResourceSource), "ResourceSource", NULL}, +}; + ACPI_RSDUMP_INFO AcpiRsDumpI2cSerialBus[14] = { {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpI2cSerialBus), "I2C Serial Bus", NULL}, diff --git a/source/components/resources/rsinfo.c b/source/components/resources/rsinfo.c index b3a7180a3c1f..9687bfb44648 100644 --- a/source/components/resources/rsinfo.c +++ b/source/components/resources/rsinfo.c @@ -245,7 +245,7 @@ ACPI_RSCONVERT_INFO *AcpiGbl_GetResourceDispatch[] = AcpiRsConvertPinGroupConfig, /* 0x12, ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG */ }; -/* Subtype table for SerialBus -- I2C, SPI, and UART */ +/* Subtype table for SerialBus -- I2C, SPI, UART, and CSI2 */ ACPI_RSCONVERT_INFO *AcpiGbl_ConvertResourceSerialBusDispatch[] = { @@ -253,6 +253,7 @@ ACPI_RSCONVERT_INFO *AcpiGbl_ConvertResourceSerialBusDispatch[] = AcpiRsConvertI2cSerialBus, AcpiRsConvertSpiSerialBus, AcpiRsConvertUartSerialBus, + AcpiRsConvertCsi2SerialBus }; @@ -295,6 +296,7 @@ ACPI_RSDUMP_INFO *AcpiGbl_DumpSerialBusDispatch[] = AcpiRsDumpI2cSerialBus, /* AML_RESOURCE_I2C_BUS_TYPE */ AcpiRsDumpSpiSerialBus, /* AML_RESOURCE_SPI_BUS_TYPE */ AcpiRsDumpUartSerialBus, /* AML_RESOURCE_UART_BUS_TYPE */ + AcpiRsDumpCsi2SerialBus, /* AML_RESOURCE_CSI2_BUS_TYPE */ }; #endif @@ -384,6 +386,7 @@ const UINT8 AcpiGbl_AmlResourceSerialBusSizes[] = sizeof (AML_RESOURCE_I2C_SERIALBUS), sizeof (AML_RESOURCE_SPI_SERIALBUS), sizeof (AML_RESOURCE_UART_SERIALBUS), + sizeof (AML_RESOURCE_CSI2_SERIALBUS), }; const UINT8 AcpiGbl_ResourceStructSerialBusSizes[] = @@ -392,4 +395,5 @@ const UINT8 AcpiGbl_ResourceStructSerialBusSizes[] = ACPI_RS_SIZE (ACPI_RESOURCE_I2C_SERIALBUS), ACPI_RS_SIZE (ACPI_RESOURCE_SPI_SERIALBUS), ACPI_RS_SIZE (ACPI_RESOURCE_UART_SERIALBUS), + ACPI_RS_SIZE (ACPI_RESOURCE_CSI2_SERIALBUS), }; diff --git a/source/components/resources/rslist.c b/source/components/resources/rslist.c index 4ee8aa63e0ca..1867c0a95479 100644 --- a/source/components/resources/rslist.c +++ b/source/components/resources/rslist.c @@ -216,7 +216,7 @@ AcpiRsConvertAmlToResources ( } else { - /* This is an I2C, SPI, or UART SerialBus descriptor */ + /* This is an I2C, SPI, UART, or CSI2 SerialBus descriptor */ ConversionTable = AcpiGbl_ConvertResourceSerialBusDispatch [ AmlResource->CommonSerialBus.Type]; @@ -246,6 +246,12 @@ AcpiRsConvertAmlToResources ( return_ACPI_STATUS (Status); } + if (!Resource->Length) + { + ACPI_EXCEPTION ((AE_INFO, Status, + "Zero-length resource returned from RsConvertAmlToResource")); + } + ACPI_DEBUG_PRINT ((ACPI_DB_RESOURCES, "Type %.2X, AmlLength %.2X InternalLength %.2X\n", AcpiUtGetResourceType (Aml), Length, @@ -326,7 +332,7 @@ AcpiRsConvertResourcesToAml ( } else { - /* This is an I2C, SPI, or UART SerialBus descriptor */ + /* This is an I2C, SPI, UART or CSI2 SerialBus descriptor */ ConversionTable = AcpiGbl_ConvertResourceSerialBusDispatch[ Resource->Data.CommonSerialBus.Type]; diff --git a/source/components/resources/rsmisc.c b/source/components/resources/rsmisc.c index 31a7d9eecddb..f0f186b83583 100644 --- a/source/components/resources/rsmisc.c +++ b/source/components/resources/rsmisc.c @@ -225,6 +225,8 @@ AcpiRsConvertAmlToResource ( Count = INIT_TABLE_LENGTH (Info); while (Count) { + Target = NULL; + /* * Source is the external AML byte stream buffer, * destination is the internal resource descriptor @@ -275,6 +277,14 @@ AcpiRsConvertAmlToResource ( ((ACPI_GET8 (Source) >> Info->Value) & 0x07)); break; + case ACPI_RSC_6BITFLAG: + /* + * Mask and shift the flag bits + */ + ACPI_SET8 (Destination, + ((ACPI_GET8 (Source) >> Info->Value) & 0x3F)); + break; + case ACPI_RSC_COUNT: ItemCount = ACPI_GET8 (Source); @@ -654,6 +664,14 @@ AcpiRsConvertResourceToAml ( ((ACPI_GET8 (Source) & 0x07) << Info->Value)); break; + case ACPI_RSC_6BITFLAG: + /* + * Mask and shift the flag bits + */ + ACPI_SET_BIT (*ACPI_CAST8 (Destination), (UINT8) + ((ACPI_GET8 (Source) & 0x3F) << Info->Value)); + break; + case ACPI_RSC_COUNT: ItemCount = ACPI_GET8 (Source); diff --git a/source/components/resources/rsserial.c b/source/components/resources/rsserial.c index 2df8eb77e14b..d505ea949441 100644 --- a/source/components/resources/rsserial.c +++ b/source/components/resources/rsserial.c @@ -327,6 +327,76 @@ ACPI_RSCONVERT_INFO AcpiRsConvertPinFunction[13] = }; +/******************************************************************************* + * + * AcpiRsConvertCsi2SerialBus + * + ******************************************************************************/ + +ACPI_RSCONVERT_INFO AcpiRsConvertCsi2SerialBus[14] = +{ + {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_SERIAL_BUS, + ACPI_RS_SIZE (ACPI_RESOURCE_CSI2_SERIALBUS), + ACPI_RSC_TABLE_SIZE (AcpiRsConvertCsi2SerialBus)}, + + {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_SERIAL_BUS, + sizeof (AML_RESOURCE_CSI2_SERIALBUS), + 0}, + + {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.CommonSerialBus.RevisionId), + AML_OFFSET (CommonSerialBus.RevisionId), + 1}, + + {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.Csi2SerialBus.Type), + AML_OFFSET (Csi2SerialBus.Type), + 1}, + + {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Csi2SerialBus.ProducerConsumer), + AML_OFFSET (Csi2SerialBus.Flags), + 1}, + + {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Csi2SerialBus.SlaveMode), + AML_OFFSET (Csi2SerialBus.Flags), + 0}, + + {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.Csi2SerialBus.PhyType), + AML_OFFSET (Csi2SerialBus.TypeSpecificFlags), + 0}, + + {ACPI_RSC_6BITFLAG, ACPI_RS_OFFSET (Data.Csi2SerialBus.LocalPortInstance), + AML_OFFSET (Csi2SerialBus.TypeSpecificFlags), + 2}, + + {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.Csi2SerialBus.TypeRevisionId), + AML_OFFSET (Csi2SerialBus.TypeRevisionId), + 1}, + + /* Vendor data */ + + {ACPI_RSC_COUNT_SERIAL_VEN, ACPI_RS_OFFSET (Data.Csi2SerialBus.VendorLength), + AML_OFFSET (Csi2SerialBus.TypeDataLength), + AML_RESOURCE_CSI2_MIN_DATA_LEN}, + + {ACPI_RSC_MOVE_SERIAL_VEN, ACPI_RS_OFFSET (Data.Csi2SerialBus.VendorData), + 0, + sizeof (AML_RESOURCE_CSI2_SERIALBUS)}, + + /* Resource Source */ + + {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.Csi2SerialBus.ResourceSource.Index), + AML_OFFSET (Csi2SerialBus.ResSourceIndex), + 1}, + + {ACPI_RSC_COUNT_SERIAL_RES, ACPI_RS_OFFSET (Data.Csi2SerialBus.ResourceSource.StringLength), + AML_OFFSET (Csi2SerialBus.TypeDataLength), + sizeof (AML_RESOURCE_CSI2_SERIALBUS)}, + + {ACPI_RSC_MOVE_SERIAL_RES, ACPI_RS_OFFSET (Data.Csi2SerialBus.ResourceSource.StringPtr), + AML_OFFSET (Csi2SerialBus.TypeDataLength), + sizeof (AML_RESOURCE_CSI2_SERIALBUS)}, +}; + + /******************************************************************************* * * AcpiRsConvertI2cSerialBus diff --git a/source/components/utilities/utresdecode.c b/source/components/utilities/utresdecode.c index e7c10afaae74..561240f06724 100644 --- a/source/components/utilities/utresdecode.c +++ b/source/components/utilities/utresdecode.c @@ -240,6 +240,14 @@ const char *AcpiGbl_MtpDecode[] = "AddressRangeNVS" }; +const char *AcpiGbl_PhyDecode[] = +{ + "Type C", + "Type D", + "Unknown Type", + "Unknown Type" +}; + const char *AcpiGbl_RngDecode[] = { "InvalidRanges", @@ -331,7 +339,8 @@ const char *AcpiGbl_SbtDecode[] = "/* UNKNOWN serial bus type */", "I2C", "SPI", - "UART" + "UART", + "CSI2" }; /* I2C serial bus access mode */ diff --git a/source/components/utilities/utresrc.c b/source/components/utilities/utresrc.c index b7c4aaceb8e2..70e5119e807f 100644 --- a/source/components/utilities/utresrc.c +++ b/source/components/utilities/utresrc.c @@ -212,6 +212,7 @@ const UINT8 AcpiGbl_ResourceAmlSerialBusSizes[] = ACPI_AML_SIZE_LARGE (AML_RESOURCE_I2C_SERIALBUS), ACPI_AML_SIZE_LARGE (AML_RESOURCE_SPI_SERIALBUS), ACPI_AML_SIZE_LARGE (AML_RESOURCE_UART_SERIALBUS), + ACPI_AML_SIZE_LARGE (AML_RESOURCE_CSI2_SERIALBUS), }; diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h index 94c002da364c..f02f32399c07 100644 --- a/source/include/acdisasm.h +++ b/source/include/acdisasm.h @@ -251,6 +251,7 @@ typedef enum /* Types that are specific to particular ACPI tables */ ACPI_DMT_ASF, + ACPI_DMT_CEDT, ACPI_DMT_DMAR, ACPI_DMT_DMAR_SCOPE, ACPI_DMT_EINJACT, @@ -269,13 +270,16 @@ typedef enum ACPI_DMT_MADT, ACPI_DMT_NFIT, ACPI_DMT_PCCT, + ACPI_DMT_PHAT, ACPI_DMT_PMTT, + ACPI_DMT_PMTT_VENDOR, ACPI_DMT_PPTT, ACPI_DMT_SDEI, ACPI_DMT_SDEV, ACPI_DMT_SLIC, ACPI_DMT_SRAT, ACPI_DMT_TPM2, + ACPI_DMT_VIOT, /* Special opcodes */ @@ -364,6 +368,8 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedtHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt0[]; @@ -451,8 +457,11 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3b[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3c[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort4[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort5[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort6[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort6a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortAcc[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortHdr3[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortMap[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortPad[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[]; @@ -463,6 +472,8 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHid[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHid1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[]; @@ -481,6 +492,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt12[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt13[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt14[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt16[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[]; @@ -507,11 +519,17 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit7[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhatHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0a[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1a[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1b[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1[]; -extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt2[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmttVendor[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmttHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcctHdr[]; @@ -520,10 +538,12 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct3[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct4[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct5[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt0a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPpttHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRasf[]; @@ -539,6 +559,10 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0a[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0b[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompId[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompMem[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1b[]; @@ -565,6 +589,12 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm211[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm23[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm23a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoViotHeader[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot2[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot3[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoViot4[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoWaet[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat0[]; @@ -640,6 +670,10 @@ void AcpiDmDumpAsf ( ACPI_TABLE_HEADER *Table); +void +AcpiDmDumpCedt ( + ACPI_TABLE_HEADER *Table); + void AcpiDmDumpCpep ( ACPI_TABLE_HEADER *Table); @@ -728,6 +762,10 @@ void AcpiDmDumpPdtt ( ACPI_TABLE_HEADER *Table); +void +AcpiDmDumpPhat ( + ACPI_TABLE_HEADER *Table); + void AcpiDmDumpPmtt ( ACPI_TABLE_HEADER *Table); @@ -776,6 +814,10 @@ void AcpiDmDumpTpm2 ( ACPI_TABLE_HEADER *Table); +void +AcpiDmDumpViot ( + ACPI_TABLE_HEADER *Table); + void AcpiDmDumpWdat ( ACPI_TABLE_HEADER *Table); diff --git a/source/include/acobject.h b/source/include/acobject.h index f047efb8f9d9..e7d9f1c9bb61 100644 --- a/source/include/acobject.h +++ b/source/include/acobject.h @@ -521,6 +521,7 @@ typedef struct acpi_object_addr_handler ACPI_ADR_SPACE_HANDLER Handler; ACPI_NAMESPACE_NODE *Node; /* Parent device */ void *Context; + ACPI_MUTEX ContextMutex; ACPI_ADR_SPACE_SETUP Setup; union acpi_operand_object *RegionList; /* Regions using this handler */ union acpi_operand_object *Next; diff --git a/source/include/acoutput.h b/source/include/acoutput.h index 1d6aacca5583..46774ad0fa66 100644 --- a/source/include/acoutput.h +++ b/source/include/acoutput.h @@ -508,7 +508,7 @@ * * A less-safe version of the macros is provided for optional use if the * compiler uses excessive CPU stack (for example, this may happen in the - * debug case if code optimzation is disabled.) + * debug case if code optimization is disabled.) */ /* Exit trace helper macro */ diff --git a/source/include/acpixf.h b/source/include/acpixf.h index cb24eb4e486c..0733ac413548 100644 --- a/source/include/acpixf.h +++ b/source/include/acpixf.h @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20210105 +#define ACPI_CA_VERSION 0x20210331 #include "acconfig.h" #include "actypes.h" diff --git a/source/include/acpredef.h b/source/include/acpredef.h index 22aece65993b..bc55155cfa99 100644 --- a/source/include/acpredef.h +++ b/source/include/acpredef.h @@ -472,6 +472,17 @@ const ACPI_PREDEFINED_INFO AcpiGbl_PredefinedMethods[] = {{"_BMS", METHOD_1ARGS (ACPI_TYPE_INTEGER), METHOD_RETURNS (ACPI_RTYPE_INTEGER)}}, + {{"_BPC", METHOD_0ARGS, + METHOD_RETURNS (ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (4 Int) */ + PACKAGE_INFO (ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4,0,0,0), + + {{"_BPS", METHOD_0ARGS, + METHOD_RETURNS (ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (5 Int) */ + PACKAGE_INFO (ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 5,0,0,0), + + {{"_BPT", METHOD_1ARGS (ACPI_TYPE_PACKAGE), + METHOD_RETURNS (ACPI_RTYPE_INTEGER)}}, + {{"_BQC", METHOD_0ARGS, METHOD_RETURNS (ACPI_RTYPE_INTEGER)}}, @@ -491,6 +502,10 @@ const ACPI_PREDEFINED_INFO AcpiGbl_PredefinedMethods[] = {{"_CBA", METHOD_0ARGS, METHOD_RETURNS (ACPI_RTYPE_INTEGER)}}, /* See PCI firmware spec 3.0 */ + {{"_CBR", METHOD_0ARGS, + METHOD_RETURNS (ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (3 Int) */ + PACKAGE_INFO (ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 3,0,0,0), + {{"_CCA", METHOD_0ARGS, METHOD_RETURNS (ACPI_RTYPE_INTEGER)}}, /* ACPI 5.1 */ diff --git a/source/include/acresrc.h b/source/include/acresrc.h index 082918d72bce..816d4fa4383f 100644 --- a/source/include/acresrc.h +++ b/source/include/acresrc.h @@ -192,6 +192,7 @@ typedef enum ACPI_RSC_1BITFLAG, ACPI_RSC_2BITFLAG, ACPI_RSC_3BITFLAG, + ACPI_RSC_6BITFLAG, ACPI_RSC_ADDRESS, ACPI_RSC_BITMASK, ACPI_RSC_BITMASK16, @@ -252,6 +253,7 @@ typedef enum ACPI_RSD_1BITFLAG, ACPI_RSD_2BITFLAG, ACPI_RSD_3BITFLAG, + ACPI_RSD_6BITFLAG, ACPI_RSD_ADDRESS, ACPI_RSD_DWORDLIST, ACPI_RSD_LITERAL, @@ -495,6 +497,7 @@ extern ACPI_RSCONVERT_INFO AcpiRsConvertAddress64[]; extern ACPI_RSCONVERT_INFO AcpiRsConvertExtAddress64[]; extern ACPI_RSCONVERT_INFO AcpiRsConvertGpio[]; extern ACPI_RSCONVERT_INFO AcpiRsConvertFixedDma[]; +extern ACPI_RSCONVERT_INFO AcpiRsConvertCsi2SerialBus[]; extern ACPI_RSCONVERT_INFO AcpiRsConvertI2cSerialBus[]; extern ACPI_RSCONVERT_INFO AcpiRsConvertSpiSerialBus[]; extern ACPI_RSCONVERT_INFO AcpiRsConvertUartSerialBus[]; @@ -550,6 +553,7 @@ extern ACPI_RSDUMP_INFO AcpiRsDumpGpio[]; extern ACPI_RSDUMP_INFO AcpiRsDumpPinFunction[]; extern ACPI_RSDUMP_INFO AcpiRsDumpFixedDma[]; extern ACPI_RSDUMP_INFO AcpiRsDumpCommonSerialBus[]; +extern ACPI_RSDUMP_INFO AcpiRsDumpCsi2SerialBus[]; extern ACPI_RSDUMP_INFO AcpiRsDumpI2cSerialBus[]; extern ACPI_RSDUMP_INFO AcpiRsDumpSpiSerialBus[]; extern ACPI_RSDUMP_INFO AcpiRsDumpUartSerialBus[]; diff --git a/source/include/acrestyp.h b/source/include/acrestyp.h index d2cd4c4dc105..3c258de9de32 100644 --- a/source/include/acrestyp.h +++ b/source/include/acrestyp.h @@ -593,7 +593,7 @@ typedef struct acpi_resource_gpio #define ACPI_IO_RESTRICT_NONE_PRESERVE 3 -/* Common structure for I2C, SPI, and UART serial descriptors */ +/* Common structure for I2C, SPI, UART, CSI2 serial descriptors */ #define ACPI_RESOURCE_SERIAL_COMMON \ UINT8 RevisionId; \ @@ -618,6 +618,7 @@ typedef struct acpi_resource_common_serialbus #define ACPI_RESOURCE_SERIAL_TYPE_I2C 1 #define ACPI_RESOURCE_SERIAL_TYPE_SPI 2 #define ACPI_RESOURCE_SERIAL_TYPE_UART 3 +#define ACPI_RESOURCE_SERIAL_TYPE_CSI2 4 /* Values for SlaveMode field above */ @@ -732,6 +733,14 @@ typedef struct acpi_resource_uart_serialbus #define ACPI_UART_CLEAR_TO_SEND (1<<6) #define ACPI_UART_REQUEST_TO_SEND (1<<7) +typedef struct acpi_resource_csi2_serialbus +{ + ACPI_RESOURCE_SERIAL_COMMON + UINT8 LocalPortInstance; + UINT8 PhyType; + +} ACPI_RESOURCE_CSI2_SERIALBUS; + typedef struct acpi_resource_pin_function { UINT8 RevisionId; @@ -872,6 +881,7 @@ typedef union acpi_resource_data ACPI_RESOURCE_I2C_SERIALBUS I2cSerialBus; ACPI_RESOURCE_SPI_SERIALBUS SpiSerialBus; ACPI_RESOURCE_UART_SERIALBUS UartSerialBus; + ACPI_RESOURCE_CSI2_SERIALBUS Csi2SerialBus; ACPI_RESOURCE_COMMON_SERIALBUS CommonSerialBus; ACPI_RESOURCE_PIN_FUNCTION PinFunction; ACPI_RESOURCE_PIN_CONFIG PinConfig; diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h index b10cc9efb19c..af10c774d4c6 100644 --- a/source/include/actbinfo.h +++ b/source/include/actbinfo.h @@ -196,6 +196,7 @@ #define ACPI_TPM2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TPM2,f) #define ACPI_TPM23_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TPM23,f) #define ACPI_UEFI_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_UEFI,f) +#define ACPI_VIOT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_VIOT,f) #define ACPI_WAET_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_WAET,f) #define ACPI_WDAT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_WDAT,f) #define ACPI_WDDT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_WDDT,f) @@ -213,6 +214,8 @@ #define ACPI_ASF2a_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_CONTROL_DATA,f) #define ACPI_ASF3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_RMCP,f) #define ACPI_ASF4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_ADDRESS,f) +#define ACPI_CEDT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_HEADER, f) +#define ACPI_CEDT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CHBS, f) #define ACPI_CPEP0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CPEP_POLLING,f) #define ACPI_CSRT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CSRT_GROUP,f) #define ACPI_CSRT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CSRT_SHARED_INFO,f) @@ -260,6 +263,8 @@ #define ACPI_IORT3A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_SMMU_GSI,f) #define ACPI_IORT4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_SMMU_V3,f) #define ACPI_IORT5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_PMCG,f) +#define ACPI_IORT6_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_RMR,f) +#define ACPI_IORT6A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_RMR_DESC,f) #define ACPI_IORTA_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_MEMORY_ACCESS,f) #define ACPI_IORTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_NODE,f) #define ACPI_IORTM_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_ID_MAPPING,f) @@ -271,6 +276,7 @@ #define ACPI_IVRS8A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IVRS_DEVICE8A,f) #define ACPI_IVRS8B_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IVRS_DEVICE8B,f) #define ACPI_IVRS8C_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IVRS_DEVICE8C,f) +#define ACPI_IVRSHID_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IVRS_DEVICE_HID,f) #define ACPI_LPITH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_LPIT_HEADER,f) #define ACPI_LPIT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_LPIT_NATIVE,f) #define ACPI_MADT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_LOCAL_APIC,f) @@ -289,6 +295,7 @@ #define ACPI_MADT13_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_MSI_FRAME,f) #define ACPI_MADT14_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_REDISTRIBUTOR,f) #define ACPI_MADT15_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_TRANSLATOR,f) +#define ACPI_MADT16_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_MULTIPROC_WAKEUP,f) #define ACPI_MADTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SUBTABLE_HEADER,f) #define ACPI_MCFG0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MCFG_ALLOCATION,f) #define ACPI_MPST0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPST_POWER_NODE,f) @@ -311,21 +318,31 @@ #define ACPI_PCCT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PCCT_HW_REDUCED_TYPE2,f) #define ACPI_PCCT3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PCCT_EXT_PCC_MASTER,f) #define ACPI_PCCT4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PCCT_EXT_PCC_SLAVE,f) +#define ACPI_PCCT5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PCCT_HW_REG,f) #define ACPI_PDTT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PDTT_CHANNEL,f) +#define ACPI_PHATH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PHAT_HEADER,f) +#define ACPI_PHAT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PHAT_VERSION_DATA,f) +#define ACPI_PHAT0A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PHAT_VERSION_ELEMENT,f) +#define ACPI_PHAT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PHAT_HEALTH_DATA,f) #define ACPI_PMTT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PMTT_SOCKET,f) #define ACPI_PMTT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PMTT_CONTROLLER,f) -#define ACPI_PMTT1A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PMTT_DOMAIN,f) #define ACPI_PMTT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PMTT_PHYSICAL_COMPONENT,f) +#define ACPI_PMTT_VENDOR_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PMTT_VENDOR_SPECIFIC,f) #define ACPI_PMTTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PMTT_HEADER,f) #define ACPI_PPTTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SUBTABLE_HEADER,f) #define ACPI_PPTT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PPTT_PROCESSOR,f) #define ACPI_PPTT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PPTT_CACHE,f) +#define ACPI_PPTT1A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PPTT_CACHE_V1,f) #define ACPI_PPTT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PPTT_ID,f) #define ACPI_S3PTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_FPDT_HEADER,f) #define ACPI_S3PT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_S3PT_RESUME,f) #define ACPI_S3PT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_S3PT_SUSPEND,f) #define ACPI_SDEVH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SDEV_HEADER,f) #define ACPI_SDEV0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SDEV_NAMESPACE,f) +#define ACPI_SDEV0B_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SDEV_SECURE_COMPONENT,f) +#define ACPI_SDEVCH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SDEV_HEADER,f) +#define ACPI_SDEVC0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SDEV_ID_COMPONENT, f) +#define ACPI_SDEVC1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SDEV_MEM_COMPONENT, f) #define ACPI_SDEV1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SDEV_PCIE,f) #define ACPI_SDEV1A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SDEV_PCIE_PATH,f) #define ACPI_SLIC_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_SLIC,f) @@ -341,6 +358,11 @@ #define ACPI_TPM2A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TPM2_TRAILER,f) #define ACPI_TPM211_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TPM2_ARM_SMC,f) #define ACPI_TPM23A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TPM23_TRAILER,f) +#define ACPI_VIOTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_VIOT_HEADER,f) +#define ACPI_VIOT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_VIOT_PCI_RANGE,f) +#define ACPI_VIOT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_VIOT_MMIO,f) +#define ACPI_VIOT3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_VIOT_VIRTIO_IOMMU_PCI,f) +#define ACPI_VIOT4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_VIOT_VIRTIO_IOMMU_MMIO,f) #define ACPI_WDAT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_WDAT_ENTRY,f) /* @@ -358,6 +380,7 @@ #define ACPI_HPET_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_HPET,f,o) #define ACPI_PPTT0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_PPTT_PROCESSOR,f,o) #define ACPI_PPTT1_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_PPTT_CACHE,f,o) +#define ACPI_PPTT1A_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_PPTT_CACHE_V1,f,o) #define ACPI_SRAT0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_CPU_AFFINITY,f,o) #define ACPI_SRAT1_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_MEM_AFFINITY,f,o) #define ACPI_SRAT2_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_X2APIC_CPU_AFFINITY,f,o) @@ -372,6 +395,7 @@ #define ACPI_IORT3_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_SMMU,f,o) #define ACPI_IORT3a_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_SMMU_GSI,f,o) #define ACPI_IORT4_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_SMMU_V3,f,o) +#define ACPI_IORT6_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_RMR,f,o) #define ACPI_IORTA_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_MEMORY_ACCESS,f,o) #define ACPI_IORTM_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_ID_MAPPING,f,o) #define ACPI_LPITH_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_LPIT_HEADER,f,o) diff --git a/source/include/actbl1.h b/source/include/actbl1.h index 5f54ecc0abf8..437a122b1a6a 100644 --- a/source/include/actbl1.h +++ b/source/include/actbl1.h @@ -172,6 +172,7 @@ #define ACPI_SIG_BERT "BERT" /* Boot Error Record Table */ #define ACPI_SIG_BGRT "BGRT" /* Boot Graphics Resource Table */ #define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */ +#define ACPI_SIG_CEDT "CEDT" /* CXL Early Discovery Table */ #define ACPI_SIG_CPEP "CPEP" /* Corrected Platform Error Polling table */ #define ACPI_SIG_CSRT "CSRT" /* Core System Resource Table */ #define ACPI_SIG_DBG2 "DBG2" /* Debug Port table type 2 */ @@ -492,6 +493,58 @@ typedef struct acpi_table_boot } ACPI_TABLE_BOOT; +/******************************************************************************* + * + * CEDT - CXL Early Discovery Table + * Version 1 + * + * Conforms to the "CXL Early Discovery Table" (CXL 2.0) + * + ******************************************************************************/ + +typedef struct acpi_table_cedt +{ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + +} ACPI_TABLE_CEDT; + +/* CEDT subtable header (Performance Record Structure) */ + +typedef struct acpi_cedt_header +{ + UINT8 Type; + UINT8 Reserved; + UINT16 Length; + +} ACPI_CEDT_HEADER; + +/* Values for Type field above */ + +enum AcpiCedtType +{ + ACPI_CEDT_TYPE_CHBS = 0, + ACPI_CEDT_TYPE_RESERVED = 1 +}; + + +/* + * CEDT subtables + */ + +/* 0: CXL Host Bridge Structure */ + +typedef struct acpi_cedt_chbs +{ + ACPI_CEDT_HEADER Header; + UINT32 Uid; + UINT32 CxlVersion; + UINT32 Reserved; + UINT64 Base; + UINT64 Length; + +} ACPI_CEDT_CHBS; + + /******************************************************************************* * * CPEP - Corrected Platform Error Polling table (ACPI 4.0) @@ -1829,7 +1882,8 @@ typedef struct acpi_hmat_locality ACPI_HMAT_STRUCTURE Header; UINT8 Flags; UINT8 DataType; - UINT16 Reserved1; + UINT8 MinTransferSize; + UINT8 Reserved1; UINT32 NumberOfInitiatorPDs; UINT32 NumberOfTargetPDs; UINT32 Reserved2; @@ -1839,14 +1893,17 @@ typedef struct acpi_hmat_locality /* Masks for Flags field above */ -#define ACPI_HMAT_MEMORY_HIERARCHY (0x0F) +#define ACPI_HMAT_MEMORY_HIERARCHY (0x0F) /* Bits 0-3 */ -/* Values for Memory Hierarchy flag */ +/* Values for Memory Hierarchy flags */ #define ACPI_HMAT_MEMORY 0 #define ACPI_HMAT_1ST_LEVEL_CACHE 1 #define ACPI_HMAT_2ND_LEVEL_CACHE 2 #define ACPI_HMAT_3RD_LEVEL_CACHE 3 +#define ACPI_HMAT_MINIMUM_XFER_SIZE 0x10 /* Bit 4: ACPI 6.4 */ +#define ACPI_HMAT_NON_SEQUENTIAL_XFERS 0x20 /* Bit 5: ACPI 6.4 */ + /* Values for DataType field above */ diff --git a/source/include/actbl2.h b/source/include/actbl2.h index 82096fe9c4f5..71c39e86295c 100644 --- a/source/include/actbl2.h +++ b/source/include/actbl2.h @@ -180,6 +180,7 @@ #define ACPI_SIG_NFIT "NFIT" /* NVDIMM Firmware Interface Table */ #define ACPI_SIG_PCCT "PCCT" /* Platform Communications Channel Table */ #define ACPI_SIG_PDTT "PDTT" /* Platform Debug Trigger Table */ +#define ACPI_SIG_PHAT "PHAT" /* Platform Health Assessment Table */ #define ACPI_SIG_PMTT "PMTT" /* Platform Memory Topology Table */ #define ACPI_SIG_PPTT "PPTT" /* Processor Properties Topology Table */ #define ACPI_SIG_RASF "RASF" /* RAS Feature table */ @@ -213,7 +214,7 @@ * IORT - IO Remapping Table * * Conforms to "IO Remapping Table System Software on ARM Platforms", - * Document number: ARM DEN 0049D, March 2018 + * Document number: ARM DEN 0049E.b, Feb 2021 * ******************************************************************************/ @@ -235,7 +236,7 @@ typedef struct acpi_iort_node UINT8 Type; UINT16 Length; UINT8 Revision; - UINT32 Reserved; + UINT32 Identifier; UINT32 MappingCount; UINT32 MappingOffset; char NodeData[1]; @@ -251,7 +252,8 @@ enum AcpiIortNodeType ACPI_IORT_NODE_PCI_ROOT_COMPLEX = 0x02, ACPI_IORT_NODE_SMMU = 0x03, ACPI_IORT_NODE_SMMU_V3 = 0x04, - ACPI_IORT_NODE_PMCG = 0x05 + ACPI_IORT_NODE_PMCG = 0x05, + ACPI_IORT_NODE_RMR = 0x06, }; @@ -332,10 +334,11 @@ typedef struct acpi_iort_root_complex } ACPI_IORT_ROOT_COMPLEX; -/* Values for AtsAttribute field above */ +/* Masks for AtsAttribute field above */ -#define ACPI_IORT_ATS_SUPPORTED 0x00000001 /* The root complex supports ATS */ -#define ACPI_IORT_ATS_UNSUPPORTED 0x00000000 /* The root complex doesn't support ATS */ +#define ACPI_IORT_ATS_SUPPORTED (1) /* The root complex ATS support */ +#define ACPI_IORT_PRI_SUPPORTED (1<<1) /* The root complex PRI support */ +#define ACPI_IORT_PASID_FWD_SUPPORTED (1<<2) /* The root complex PASID forward support */ typedef struct acpi_iort_smmu @@ -416,6 +419,19 @@ typedef struct acpi_iort_pmcg } ACPI_IORT_PMCG; +typedef struct acpi_iort_rmr { + UINT32 Flags; + UINT32 RmrCount; + UINT32 RmrOffset; + +} ACPI_IORT_RMR; + +typedef struct acpi_iort_rmr_desc { + UINT64 BaseAddress; + UINT64 Length; + UINT32 Reserved; + +} ACPI_IORT_RMR_DESC; /******************************************************************************* * @@ -459,6 +475,7 @@ enum AcpiIvrsType { ACPI_IVRS_TYPE_HARDWARE1 = 0x10, ACPI_IVRS_TYPE_HARDWARE2 = 0x11, + ACPI_IVRS_TYPE_HARDWARE3 = 0x40, ACPI_IVRS_TYPE_MEMORY1 = 0x20, ACPI_IVRS_TYPE_MEMORY2 = 0x21, ACPI_IVRS_TYPE_MEMORY3 = 0x22 @@ -555,7 +572,11 @@ enum AcpiIvrsDeviceEntryType ACPI_IVRS_TYPE_ALIAS_START = 67, /* Uses ACPI_IVRS_DEVICE8A */ ACPI_IVRS_TYPE_EXT_SELECT = 70, /* Uses ACPI_IVRS_DEVICE8B */ ACPI_IVRS_TYPE_EXT_START = 71, /* Uses ACPI_IVRS_DEVICE8B */ - ACPI_IVRS_TYPE_SPECIAL = 72 /* Uses ACPI_IVRS_DEVICE8C */ + ACPI_IVRS_TYPE_SPECIAL = 72, /* Uses ACPI_IVRS_DEVICE8C */ + + /* Variable-length device entries */ + + ACPI_IVRS_TYPE_HID = 240 /* Uses ACPI_IVRS_DEVICE_HID */ }; /* Values for Data field above */ @@ -616,6 +637,18 @@ typedef struct acpi_ivrs_device8c #define ACPI_IVHD_IOAPIC 1 #define ACPI_IVHD_HPET 2 +/* Type 240: variable-length device entry */ + +typedef struct acpi_ivrs_device_hid +{ + ACPI_IVRS_DE_HEADER Header; + UINT64 AcpiHid; + UINT64 AcpiCid; + UINT8 UidType; + UINT8 UidLength; + +} ACPI_IVRS_DEVICE_HID; + /* 0x20, 0x21, 0x22: I/O Virtualization Memory Definition Block (IVMD) */ @@ -733,7 +766,8 @@ enum AcpiMadtType ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13, ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14, ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15, - ACPI_MADT_TYPE_RESERVED = 16 /* 16 and greater are reserved */ + ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16, + ACPI_MADT_TYPE_RESERVED = 17 /* 17 and greater are reserved */ }; @@ -989,6 +1023,17 @@ typedef struct acpi_madt_generic_translator } ACPI_MADT_GENERIC_TRANSLATOR; +/* 16: Multiprocessor wakeup (ACPI 6.4) */ + +typedef struct acpi_madt_multiproc_wakeup +{ + ACPI_SUBTABLE_HEADER Header; + UINT16 MailboxVersion; + UINT32 Reserved; /* reserved - must be zero */ + UINT64 BaseAddress; + +} ACPI_MADT_MULTIPROC_WAKEUP; + /* * Common flags fields for MADT subtables @@ -1299,6 +1344,7 @@ typedef struct acpi_nfit_system_address UINT64 Address; UINT64 Length; UINT64 MemoryMapping; + UINT64 LocationCookie; /* ACPI 6.4 */ } ACPI_NFIT_SYSTEM_ADDRESS; @@ -1306,6 +1352,7 @@ typedef struct acpi_nfit_system_address #define ACPI_NFIT_ADD_ONLINE_ONLY (1) /* 00: Add/Online Operation Only */ #define ACPI_NFIT_PROXIMITY_VALID (1<<1) /* 01: Proximity Domain Valid */ +#define ACPI_NFIT_LOCATION_COOKIE_VALID (1<<2) /* 02: SPA location cookie valid (ACPI 6.4) */ /* Range Type GUIDs appear in the include/acuuid.h file */ @@ -1529,7 +1576,8 @@ enum AcpiPcctType ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE_TYPE2 = 2, /* ACPI 6.1 */ ACPI_PCCT_TYPE_EXT_PCC_MASTER_SUBSPACE = 3, /* ACPI 6.2 */ ACPI_PCCT_TYPE_EXT_PCC_SLAVE_SUBSPACE = 4, /* ACPI 6.2 */ - ACPI_PCCT_TYPE_RESERVED = 5 /* 5 and greater are reserved */ + ACPI_PCCT_TYPE_HW_REG_COMM_SUBSPACE = 5, /* ACPI 6.4 */ + ACPI_PCCT_TYPE_RESERVED = 6 /* 6 and greater are reserved */ }; /* @@ -1658,6 +1706,26 @@ typedef struct acpi_pcct_ext_pcc_slave } ACPI_PCCT_EXT_PCC_SLAVE; +/* 5: HW Registers based Communications Subspace */ + +typedef struct acpi_pcct_hw_reg +{ + ACPI_SUBTABLE_HEADER Header; + UINT16 Version; + UINT64 BaseAddress; + UINT64 Length; + ACPI_GENERIC_ADDRESS DoorbellRegister; + UINT64 DoorbellPreserve; + UINT64 DoorbellWrite; + ACPI_GENERIC_ADDRESS CmdCompleteRegister; + UINT64 CmdCompleteMask; + ACPI_GENERIC_ADDRESS ErrorStatusRegister; + UINT64 ErrorStatusMask; + UINT32 NominalLatency; + UINT32 MinTurnaroundTime; + +} ACPI_PCCT_HW_REG; + /* Values for doorbell flags above */ @@ -1728,6 +1796,79 @@ typedef struct acpi_pdtt_channel #define ACPI_PDTT_TRIGGER_ORDER (1<<2) +/******************************************************************************* + * + * PHAT - Platform Health Assessment Table (ACPI 6.4) + * Version 1 + * + ******************************************************************************/ + +typedef struct acpi_table_phat +{ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + +} ACPI_TABLE_PHAT; + +/* Common header for PHAT subtables that follow main table */ + +typedef struct acpi_phat_header +{ + UINT16 Type; + UINT16 Length; + UINT8 Revision; + +} ACPI_PHAT_HEADER; + + +/* Values for Type field above */ + +#define ACPI_PHAT_TYPE_FW_VERSION_DATA 0 +#define ACPI_PHAT_TYPE_FW_HEALTH_DATA 1 +#define ACPI_PHAT_TYPE_RESERVED 2 /* 0x02-0xFFFF are reserved */ + +/* + * PHAT subtables, correspond to Type in ACPI_PHAT_HEADER + */ + +/* 0: Firmware Version Data Record */ + +typedef struct acpi_phat_version_data +{ + ACPI_PHAT_HEADER Header; + UINT8 Reserved[3]; + UINT32 ElementCount; + +} ACPI_PHAT_VERSION_DATA; + +typedef struct acpi_phat_version_element +{ + UINT8 Guid[16]; + UINT64 VersionValue; + UINT32 ProducerId; + +} ACPI_PHAT_VERSION_ELEMENT; + + +/* 1: Firmware Health Data Record */ + +typedef struct acpi_phat_health_data +{ + ACPI_PHAT_HEADER Header; + UINT8 Reserved[2]; + UINT8 Health; + UINT8 DeviceGuid[16]; + UINT32 DeviceSpecificOffset; /* Zero if no Device-specific data */ + +} ACPI_PHAT_HEALTH_DATA; + +/* Values for Health field above */ + +#define ACPI_PHAT_ERRORS_FOUND 0 +#define ACPI_PHAT_NO_ERRORS 1 +#define ACPI_PHAT_UNKNOWN_ERRORS 2 +#define ACPI_PHAT_ADVISORY 3 + + /******************************************************************************* * * PMTT - Platform Memory Topology Table (ACPI 5.0) @@ -1738,7 +1879,11 @@ typedef struct acpi_pdtt_channel typedef struct acpi_table_pmtt { ACPI_TABLE_HEADER Header; /* Common ACPI table header */ - UINT32 Reserved; + UINT32 MemoryDeviceCount; + /* + * Immediately followed by: + * MEMORY_DEVICE MemoryDeviceStruct[MemoryDeviceCount]; + */ } ACPI_TABLE_PMTT; @@ -1752,6 +1897,12 @@ typedef struct acpi_pmtt_header UINT16 Length; UINT16 Flags; UINT16 Reserved2; + UINT32 MemoryDeviceCount; /* Zero means no memory device structs follow */ + /* + * Immediately followed by: + * UINT8 TypeSpecificData[] + * MEMORY_DEVICE MemoryDeviceStruct[MemoryDeviceCount]; + */ } ACPI_PMTT_HEADER; @@ -1760,7 +1911,8 @@ typedef struct acpi_pmtt_header #define ACPI_PMTT_TYPE_SOCKET 0 #define ACPI_PMTT_TYPE_CONTROLLER 1 #define ACPI_PMTT_TYPE_DIMM 2 -#define ACPI_PMTT_TYPE_RESERVED 3 /* 0x03-0xFF are reserved */ +#define ACPI_PMTT_TYPE_RESERVED 3 /* 0x03-0xFE are reserved */ +#define ACPI_PMTT_TYPE_VENDOR 0xFF /* Values for Flags field above */ @@ -1783,6 +1935,10 @@ typedef struct acpi_pmtt_socket UINT16 Reserved; } ACPI_PMTT_SOCKET; + /* + * Immediately followed by: + * MEMORY_DEVICE MemoryDeviceStruct[MemoryDeviceCount]; + */ /* 1: Memory Controller subtable */ @@ -1790,24 +1946,14 @@ typedef struct acpi_pmtt_socket typedef struct acpi_pmtt_controller { ACPI_PMTT_HEADER Header; - UINT32 ReadLatency; - UINT32 WriteLatency; - UINT32 ReadBandwidth; - UINT32 WriteBandwidth; - UINT16 AccessWidth; - UINT16 Alignment; + UINT16 ControllerId; UINT16 Reserved; - UINT16 DomainCount; } ACPI_PMTT_CONTROLLER; - -/* 1a: Proximity Domain substructure */ - -typedef struct acpi_pmtt_domain -{ - UINT32 ProximityDomain; - -} ACPI_PMTT_DOMAIN; + /* + * Immediately followed by: + * MEMORY_DEVICE MemoryDeviceStruct[MemoryDeviceCount]; + */ /* 2: Physical Component Identifier (DIMM) */ @@ -1815,14 +1961,27 @@ typedef struct acpi_pmtt_domain typedef struct acpi_pmtt_physical_component { ACPI_PMTT_HEADER Header; - UINT16 ComponentId; - UINT16 Reserved; - UINT32 MemorySize; UINT32 BiosHandle; } ACPI_PMTT_PHYSICAL_COMPONENT; +/* 0xFF: Vendor Specific Data */ + +typedef struct acpi_pmtt_vendor_specific +{ + ACPI_PMTT_HEADER Header; + UINT8 TypeUuid[16]; + UINT8 Specific[]; + /* + * Immediately followed by: + * UINT8 VendorSpecificData[]; + * MEMORY_DEVICE MemoryDeviceStruct[MemoryDeviceCount]; + */ + +} ACPI_PMTT_VENDOR_SPECIFIC; + + /******************************************************************************* * * PPTT - Processor Properties Topology Table (ACPI 6.2) @@ -1885,6 +2044,15 @@ typedef struct acpi_pptt_cache } ACPI_PPTT_CACHE; +/* 1: Cache Type Structure for PPTT version 3 */ + +typedef struct acpi_pptt_cache_v1 +{ + UINT32 CacheId; + +} ACPI_PPTT_CACHE_V1; + + /* Flags */ #define ACPI_PPTT_SIZE_PROPERTY_VALID (1) /* Physical property valid */ @@ -1894,6 +2062,7 @@ typedef struct acpi_pptt_cache #define ACPI_PPTT_CACHE_TYPE_VALID (1<<4) /* Cache type valid */ #define ACPI_PPTT_WRITE_POLICY_VALID (1<<5) /* Write policy valid */ #define ACPI_PPTT_LINE_SIZE_VALID (1<<6) /* Line size valid */ +#define ACPI_PPTT_CACHE_ID_VALID (1<<7) /* Cache ID valid */ /* Masks for Attributes */ @@ -2108,6 +2277,7 @@ enum AcpiSdevType /* Values for flags above */ #define ACPI_SDEV_HANDOFF_TO_UNSECURE_OS (1) +#define ACPI_SDEV_SECURE_COMPONENTS_PRESENT (1<<1) /* * SDEV subtables @@ -2125,6 +2295,58 @@ typedef struct acpi_sdev_namespace } ACPI_SDEV_NAMESPACE; +typedef struct acpi_sdev_secure_component +{ + UINT16 SecureComponentOffset; + UINT16 SecureComponentLength; + +} ACPI_SDEV_SECURE_COMPONENT; + + +/* + * SDEV sub-subtables ("Components") for above + */ +typedef struct acpi_sdev_component +{ + ACPI_SDEV_HEADER Header; + +} ACPI_SDEV_COMPONENT; + + +/* Values for sub-subtable type above */ + +enum AcpiSacType +{ + ACPI_SDEV_TYPE_ID_COMPONENT = 0, + ACPI_SDEV_TYPE_MEM_COMPONENT = 1 +}; + +typedef struct acpi_sdev_id_component +{ + ACPI_SDEV_HEADER Header; + UINT16 HardwareIdOffset; + UINT16 HardwareIdLength; + UINT16 SubsystemIdOffset; + UINT16 SubsystemIdLength; + UINT16 HardwareRevision; + UINT8 HardwareRevPresent; + UINT8 ClassCodePresent; + UINT8 PciBaseClass; + UINT8 PciSubClass; + UINT8 PciProgrammingXface; + +} ACPI_SDEV_ID_COMPONENT; + +typedef struct acpi_sdev_mem_component +{ + ACPI_SDEV_HEADER Header; + UINT32 Reserved; + UINT64 MemoryBaseAddress; + UINT64 MemoryLength; + +} ACPI_SDEV_MEM_COMPONENT; + + /* 1: PCIe Endpoint Device Based Device Structure */ typedef struct acpi_sdev_pcie diff --git a/source/include/actbl3.h b/source/include/actbl3.h index 1c79143b8e63..d4260a1d98b2 100644 --- a/source/include/actbl3.h +++ b/source/include/actbl3.h @@ -177,6 +177,7 @@ #define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */ #define ACPI_SIG_TPM2 "TPM2" /* Trusted Platform Module 2.0 H/W interface table */ #define ACPI_SIG_UEFI "UEFI" /* Uefi Boot Optimization Table */ +#define ACPI_SIG_VIOT "VIOT" /* Virtual I/O Translation Table */ #define ACPI_SIG_WAET "WAET" /* Windows ACPI Emulated devices Table */ #define ACPI_SIG_WDAT "WDAT" /* Watchdog Action Table */ #define ACPI_SIG_WDDT "WDDT" /* Watchdog Timer Description Table */ @@ -463,7 +464,8 @@ typedef struct acpi_srat_generic_affinity /* Flags for ACPI_SRAT_GENERIC_AFFINITY */ -#define ACPI_SRAT_GENERIC_AFFINITY_ENABLED (1) /* 00: Use affinity structure */ +#define ACPI_SRAT_GENERIC_AFFINITY_ENABLED (1) /* 00: Use affinity structure */ +#define ACPI_SRAT_ARCHITECTURAL_TRANSACTIONS (1<<1) /* ACPI 6.4 */ /******************************************************************************* * @@ -682,6 +684,86 @@ typedef struct acpi_table_uefi } ACPI_TABLE_UEFI; +/******************************************************************************* + * + * VIOT - Virtual I/O Translation Table + * Version 1 + * + ******************************************************************************/ + +typedef struct acpi_table_viot +{ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + UINT16 NodeCount; + UINT16 NodeOffset; + UINT8 Reserved[8]; + +} ACPI_TABLE_VIOT; + +/* VIOT subtable header */ + +typedef struct acpi_viot_header +{ + UINT8 Type; + UINT8 Reserved; + UINT16 Length; + +} ACPI_VIOT_HEADER; + +/* Values for Type field above */ + +enum AcpiViotNodeType +{ + ACPI_VIOT_NODE_PCI_RANGE = 0x01, + ACPI_VIOT_NODE_MMIO = 0x02, + ACPI_VIOT_NODE_VIRTIO_IOMMU_PCI = 0x03, + ACPI_VIOT_NODE_VIRTIO_IOMMU_MMIO = 0x04, + ACPI_VIOT_RESERVED = 0x05 +}; + +/* VIOT subtables */ + +typedef struct acpi_viot_pci_range +{ + ACPI_VIOT_HEADER Header; + UINT32 EndpointStart; + UINT16 SegmentStart; + UINT16 SegmentEnd; + UINT16 BdfStart; + UINT16 BdfEnd; + UINT16 OutputNode; + UINT8 Reserved[6]; + +} ACPI_VIOT_PCI_RANGE; + +typedef struct acpi_viot_mmio +{ + ACPI_VIOT_HEADER Header; + UINT32 Endpoint; + UINT64 BaseAddress; + UINT16 OutputNode; + UINT8 Reserved[6]; + +} ACPI_VIOT_MMIO; + +typedef struct acpi_viot_virtio_iommu_pci +{ + ACPI_VIOT_HEADER Header; + UINT16 Segment; + UINT16 Bdf; + UINT8 Reserved[8]; + +} ACPI_VIOT_VIRTIO_IOMMU_PCI; + +typedef struct acpi_viot_virtio_iommu_mmio +{ + ACPI_VIOT_HEADER Header; + UINT8 Reserved[4]; + UINT64 BaseAddress; + +} ACPI_VIOT_VIRTIO_IOMMU_MMIO; + + /******************************************************************************* * * WAET - Windows ACPI Emulated devices Table diff --git a/source/include/acutils.h b/source/include/acutils.h index b520f641ca4a..4d4854227907 100644 --- a/source/include/acutils.h +++ b/source/include/acutils.h @@ -171,6 +171,7 @@ extern const char *AcpiGbl_MaxDecode[]; extern const char *AcpiGbl_MemDecode[]; extern const char *AcpiGbl_MinDecode[]; extern const char *AcpiGbl_MtpDecode[]; +extern const char *AcpiGbl_PhyDecode[]; extern const char *AcpiGbl_RngDecode[]; extern const char *AcpiGbl_RwDecode[]; extern const char *AcpiGbl_ShrDecode[]; diff --git a/source/include/acuuid.h b/source/include/acuuid.h index 72b253a4ba77..48f4c9a1c346 100644 --- a/source/include/acuuid.h +++ b/source/include/acuuid.h @@ -210,5 +210,6 @@ #define UUID_DEVICE_GRAPHS "ab02a46b-74c7-45a2-bd68-f7d344ef2153" #define UUID_HIERARCHICAL_DATA_EXTENSION "dbb8e3e6-5886-4ba6-8795-1319f52a966b" #define UUID_CORESIGHT_GRAPH "3ecbc8b6-1d0e-4fb3-8107-e627f805c6cd" +#define UUID_USB4_CAPABILITIES "23a0d13a-26ab-486c-9c5f-0ffa525a575a" #endif /* __ACUUID_H__ */ diff --git a/source/include/amlresrc.h b/source/include/amlresrc.h index 094ab1d99e6e..a97a1c63259d 100644 --- a/source/include/amlresrc.h +++ b/source/include/amlresrc.h @@ -183,6 +183,7 @@ #define ACPI_RESTAG_IORESTRICTION "_IOR" #define ACPI_RESTAG_LENGTH "_LEN" #define ACPI_RESTAG_LINE "_LIN" +#define ACPI_RESTAG_LOCALPORT "_PRT" #define ACPI_RESTAG_MEMATTRIBUTES "_MTP" /* Memory(0), Reserved(1), ACPI(2), NVS(3) */ #define ACPI_RESTAG_MEMTYPE "_MEM" /* NonCache(0), Cacheable(1) Cache+combine(2), Cache+prefetch(3) */ #define ACPI_RESTAG_MAXADDR "_MAX" @@ -192,6 +193,7 @@ #define ACPI_RESTAG_MODE "_MOD" #define ACPI_RESTAG_PARITY "_PAR" #define ACPI_RESTAG_PHASE "_PHA" +#define ACPI_RESTAG_PHYTYPE "_PHY" #define ACPI_RESTAG_PIN "_PIN" #define ACPI_RESTAG_PINCONFIG "_PPI" #define ACPI_RESTAG_PINCONFIG_TYPE "_TYP" @@ -568,7 +570,8 @@ typedef struct aml_resource_gpio #define AML_RESOURCE_I2C_SERIALBUSTYPE 1 #define AML_RESOURCE_SPI_SERIALBUSTYPE 2 #define AML_RESOURCE_UART_SERIALBUSTYPE 3 -#define AML_RESOURCE_MAX_SERIALBUSTYPE 3 +#define AML_RESOURCE_CSI2_SERIALBUSTYPE 4 +#define AML_RESOURCE_MAX_SERIALBUSTYPE 4 #define AML_RESOURCE_VENDOR_SERIALBUSTYPE 192 /* Vendor defined is 0xC0-0xFF (NOT SUPPORTED) */ typedef struct aml_resource_common_serialbus @@ -578,6 +581,24 @@ typedef struct aml_resource_common_serialbus } AML_RESOURCE_COMMON_SERIALBUS; + +typedef struct aml_resource_csi2_serialbus +{ + AML_RESOURCE_LARGE_HEADER_COMMON + AML_RESOURCE_SERIAL_COMMON + + /* + * Optional fields follow immediately: + * 1) Vendor Data bytes + * 2) Resource Source String + */ + +} AML_RESOURCE_CSI2_SERIALBUS; + +#define AML_RESOURCE_CSI2_REVISION 1 /* ACPI 6.4 */ +#define AML_RESOURCE_CSI2_TYPE_REVISION 1 /* ACPI 6.4 */ +#define AML_RESOURCE_CSI2_MIN_DATA_LEN 0 /* ACPI 6.4 */ + typedef struct aml_resource_i2c_serialbus { AML_RESOURCE_LARGE_HEADER_COMMON @@ -617,7 +638,6 @@ typedef struct aml_resource_spi_serialbus #define AML_RESOURCE_SPI_TYPE_REVISION 1 /* ACPI 5.0 */ #define AML_RESOURCE_SPI_MIN_DATA_LEN 9 - typedef struct aml_resource_uart_serialbus { AML_RESOURCE_LARGE_HEADER_COMMON @@ -792,6 +812,7 @@ typedef union aml_resource AML_RESOURCE_I2C_SERIALBUS I2cSerialBus; AML_RESOURCE_SPI_SERIALBUS SpiSerialBus; AML_RESOURCE_UART_SERIALBUS UartSerialBus; + AML_RESOURCE_CSI2_SERIALBUS Csi2SerialBus; AML_RESOURCE_COMMON_SERIALBUS CommonSerialBus; AML_RESOURCE_PIN_FUNCTION PinFunction; AML_RESOURCE_PIN_CONFIG PinConfig; diff --git a/source/include/platform/acgcc.h b/source/include/platform/acgcc.h index 57c61717ef47..148190a3a6a5 100644 --- a/source/include/platform/acgcc.h +++ b/source/include/platform/acgcc.h @@ -203,7 +203,7 @@ typedef __builtin_va_list va_list; #endif /* - * Explictly mark intentional explicit fallthrough to silence + * Explicitly mark intentional explicit fallthrough to silence * -Wimplicit-fallthrough in GCC 7.1+. */ diff --git a/source/tools/acpisrc/astable.c b/source/tools/acpisrc/astable.c index c5660039a733..7c457f03b7c8 100644 --- a/source/tools/acpisrc/astable.c +++ b/source/tools/acpisrc/astable.c @@ -222,7 +222,7 @@ char DualLicenseHeader[] = " * NO WARRANTY\n" " * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n" " * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n" -" * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR\n" +" * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n" " * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n" " * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n" " * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n" @@ -474,6 +474,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_RESOURCE_ADDRESS32", SRC_TYPE_STRUCT}, {"ACPI_RESOURCE_ADDRESS64", SRC_TYPE_STRUCT}, {"ACPI_RESOURCE_COMMON_SERIALBUS", SRC_TYPE_STRUCT}, + {"ACPI_RESOURCE_CSI2_SERIALBUS", SRC_TYPE_STRUCT}, {"ACPI_RESOURCE_EXTENDED_ADDRESS64", SRC_TYPE_STRUCT}, {"ACPI_RESOURCE_ATTRIBUTE", SRC_TYPE_UNION}, {"ACPI_RESOURCE_DATA", SRC_TYPE_UNION}, @@ -571,6 +572,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"AML_RESOURCE_ADDRESS32", SRC_TYPE_STRUCT}, {"AML_RESOURCE_ADDRESS64", SRC_TYPE_STRUCT}, {"AML_RESOURCE_COMMON_SERIALBUS", SRC_TYPE_STRUCT}, + {"AML_RESOURCE_CSI2_SERIALBUS", SRC_TYPE_STRUCT}, {"AML_RESOURCE_DMA", SRC_TYPE_STRUCT}, {"AML_RESOURCE_END_DEPENDENT", SRC_TYPE_STRUCT}, {"AML_RESOURCE_END_TAG", SRC_TYPE_STRUCT}, @@ -641,10 +643,12 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_BERT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_BGRT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_BOOT", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_CEDT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_CPEP", SRC_TYPE_STRUCT}, {"ACPI_TABLE_CSRT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_DBG2", SRC_TYPE_STRUCT}, {"ACPI_TABLE_DBGP", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_CEDT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_DMAR", SRC_TYPE_STRUCT}, {"ACPI_TABLE_DRTM", SRC_TYPE_STRUCT}, {"ACPI_TABLE_ECDT", SRC_TYPE_STRUCT}, @@ -669,6 +673,8 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_NFIT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_PCCT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_PDTT", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_PHAT", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_PMTT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_PPTT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_RSDP", SRC_TYPE_STRUCT}, {"ACPI_TABLE_RSDT", SRC_TYPE_STRUCT}, @@ -686,6 +692,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_TPM2", SRC_TYPE_STRUCT}, {"ACPI_TABLE_TPM23", SRC_TYPE_STRUCT}, {"ACPI_TABLE_UEFI", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_VIOT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_WAET", SRC_TYPE_STRUCT}, {"ACPI_TABLE_WDAT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_WDDT", SRC_TYPE_STRUCT}, @@ -704,6 +711,8 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_ASF_REMOTE", SRC_TYPE_STRUCT}, {"ACPI_ASF_RMCP", SRC_TYPE_STRUCT}, {"ACPI_BERT_REGION", SRC_TYPE_STRUCT}, + {"ACPI_CEDT_CHBS", SRC_TYPE_STRUCT}, + {"ACPI_CEDT_HEADER", SRC_TYPE_STRUCT}, {"ACPI_CPEP_POLLING", SRC_TYPE_STRUCT}, {"ACPI_CSRT_GROUP", SRC_TYPE_STRUCT}, {"ACPI_CSRT_DESCRIPTOR", SRC_TYPE_STRUCT}, @@ -767,6 +776,8 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_IORT_SMMU_GSI", SRC_TYPE_STRUCT}, {"ACPI_IORT_SMMU_V3", SRC_TYPE_STRUCT}, {"ACPI_IORT_PMCG", SRC_TYPE_STRUCT}, + {"ACPI_IORT_RMR", SRC_TYPE_STRUCT}, + {"ACPI_IORT_RMR_DESC", SRC_TYPE_STRUCT}, {"ACPI_IVRS_HEADER", SRC_TYPE_STRUCT}, {"ACPI_IVRS_HARDWARE", SRC_TYPE_STRUCT}, {"ACPI_IVRS_DE_HEADER", SRC_TYPE_STRUCT}, @@ -792,6 +803,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_MADT_INTERRUPT_OVERRIDE", SRC_TYPE_STRUCT}, {"ACPI_MADT_INTERRUPT_SOURCE", SRC_TYPE_STRUCT}, {"ACPI_MADT_NMI_SOURCE", SRC_TYPE_STRUCT}, + {"ACPI_MADT_MULTIPROC_WAKEUP", SRC_TYPE_STRUCT}, {"ACPI_MADT_PROCESSOR_APIC", SRC_TYPE_STRUCT}, {"ACPI_MPST_COMPONENT", SRC_TYPE_STRUCT}, {"ACPI_MPST_DATA_HDR", SRC_TYPE_STRUCT}, @@ -815,10 +827,22 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_PCCT_HW_REDUCED_TYPE2", SRC_TYPE_STRUCT}, {"ACPI_PCCT_EXT_PCC_MASTER", SRC_TYPE_STRUCT}, {"ACPI_PCCT_EXT_PCC_SLAVE", SRC_TYPE_STRUCT}, + {"ACPI_PCCT_HW_REG", SRC_TYPE_STRUCT}, {"ACPI_PCCT_SHARED_MEMORY", SRC_TYPE_STRUCT}, {"ACPI_PCCT_SUBSPACE", SRC_TYPE_STRUCT}, {"ACPI_PDTT_CHANNEL", SRC_TYPE_STRUCT}, + {"ACPI_PHAT_HEADER", SRC_TYPE_STRUCT}, + {"ACPI_PHAT_VERSION_DATA", SRC_TYPE_STRUCT}, + {"ACPI_PHAT_VERSION_ELEMENT", SRC_TYPE_STRUCT}, + {"ACPI_PHAT_VERSION_ELEMENT", SRC_TYPE_STRUCT}, + {"ACPI_PHAT_HEALTH_DATA", SRC_TYPE_STRUCT}, + {"ACPI_PMTT_CONTROLLER", SRC_TYPE_STRUCT}, + {"ACPI_PMTT_HEADER", SRC_TYPE_STRUCT}, + {"ACPI_PMTT_PHYSICAL_COMPONENT", SRC_TYPE_STRUCT}, + {"ACPI_PMTT_SOCKET", SRC_TYPE_STRUCT}, + {"ACPI_PMTT_VENDOR_SPECIFIC", SRC_TYPE_STRUCT}, {"ACPI_PPTT_CACHE", SRC_TYPE_STRUCT}, + {"ACPI_PPTT_CACHE_V1", SRC_TYPE_STRUCT}, {"ACPI_PPTT_ID", SRC_TYPE_STRUCT}, {"ACPI_PPTT_PROCESSOR", SRC_TYPE_STRUCT}, {"ACPI_RSDP_COMMON", SRC_TYPE_STRUCT}, @@ -841,6 +865,11 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TPM2_TRAILER", SRC_TYPE_STRUCT}, {"ACPI_TPM23_TRAILER", SRC_TYPE_STRUCT}, {"ACPI_TPM2_ARM_SMC", SRC_TYPE_STRUCT}, + {"ACPI_VIOT_HEADER", SRC_TYPE_STRUCT}, + {"ACPI_VIOT_PCI_RANGE", SRC_TYPE_STRUCT}, + {"ACPI_VIOT_MMIO", SRC_TYPE_STRUCT}, + {"ACPI_VIOT_VIRTIO_IOMMU_PCI", SRC_TYPE_STRUCT}, + {"ACPI_VIOT_VIRTIO_IOMMU_MMIO", SRC_TYPE_STRUCT}, {"ACPI_WDAT_ENTRY", SRC_TYPE_STRUCT}, /* Data Table compiler */ From 395770967c3664ec744e63fa47acc19670d32f47 Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Sat, 5 Jun 2021 00:00:36 -0400 Subject: [PATCH 04/10] Import ACPICA 20210604 --- changes.txt | 42 +++ source/common/ahtable.c | 42 +-- source/common/dmtable.c | 116 ++++++++- source/common/dmtbdump2.c | 230 +++++++++++++++-- source/common/dmtbdump3.c | 60 +++++ source/common/dmtbinfo1.c | 13 + source/common/dmtbinfo2.c | 203 ++++++++++++--- source/common/dmtbinfo3.c | 24 ++ source/compiler/aslcompiler.h | 4 + source/compiler/aslmessages.c | 6 +- source/compiler/aslmessages.h | 4 +- source/compiler/aslutils.c | 40 +++ source/compiler/asluuid.c | 47 ---- source/compiler/dtcompiler.h | 16 ++ source/compiler/dtfield.c | 4 +- source/compiler/dtio.c | 6 +- source/compiler/dttable1.c | 326 ++++++++++++++++++------ source/compiler/dttable2.c | 169 ++++++++++++ source/compiler/dttemplate.h | 212 +++++++++++++-- source/compiler/dtutils.c | 19 ++ source/components/executer/exfield.c | 6 +- source/components/executer/exserial.c | 12 + source/components/namespace/nsrepair2.c | 7 + source/components/utilities/utdelete.c | 8 + source/components/utilities/utprint.c | 2 +- source/components/utilities/utuuid.c | 48 ++++ source/include/acbuffer.h | 9 + source/include/acconfig.h | 1 + source/include/acdisasm.h | 37 ++- source/include/acpixf.h | 2 +- source/include/actbinfo.h | 9 + source/include/actbl1.h | 43 +++- source/include/actbl2.h | 156 ++++++++++++ source/include/acutils.h | 5 + source/tools/acpiexec/aeinstall.c | 1 + source/tools/acpiexec/aeregion.c | 17 ++ source/tools/acpisrc/astable.c | 9 + 37 files changed, 1695 insertions(+), 260 deletions(-) diff --git a/changes.txt b/changes.txt index 0b71b266a6ba..31b4eaff62fb 100644 --- a/changes.txt +++ b/changes.txt @@ -1,3 +1,45 @@ +---------------------------------------- +04 June 2021. Summary of changes for version 20210604: + +1) 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. + +Added support for PlatformRtMechanism OperationRegion handler. Adds a new +utility function, AcpiUtConvertUuidToString. Writing a buffer to a +PlatformRtMechanism fieldunit invokes a bidirectional transaction. The +input buffer contains 26 bytes containing 9 bytes of status, a command +byte and a 16-byte UUID. This change will simply pass this incoming +buffer to a handler registered by the OS. + +2) iASL Compiler/Disassembler and ACPICA tools: + +Added full support for the PRMT ACPI table (Platform Runtime Mechanism +Table). Includes support in the iASL compiler, the disassembler, and the +template generator. + +Added full support for the BDAT (BIOS Data ACPI Table) ACPI table. + +Added full support for the RGRT (Regulatory Graphics Resource Table) ACPI +table. + +Added full support for the SVKL (Storage Volume Key Location Table) ACPI +table. Header file support from Kuppuswamy Sathyanarayanan +. + +Completed full support for the IVRS (I/O Virtualization Reporting +Structure) ACPI table. Added compiler support for IVRS, updated +disassembler support. Adds a new utility, UtIsIdInteger, to determine if +a HID/CID is an integer or a string. + +Headers: Added more structs to the CEDT table: CXL fixed memory window +structure. + +ACPI 6.4: MADT: added Multiprocessor Wakeup Mailbox Structure. + ---------------------------------------- 31 March 2021. Summary of changes for version 20210331: diff --git a/source/common/ahtable.c b/source/common/ahtable.c index e318ddf39189..80f248d2e72a 100644 --- a/source/common/ahtable.c +++ b/source/common/ahtable.c @@ -199,20 +199,21 @@ AcpiAhGetTableInfo ( */ const AH_TABLE AcpiGbl_SupportedTables[] = { - {ACPI_SIG_ASF, "Alert Standard Format table"}, + {ACPI_SIG_ASF, "Alert Standard Format Table"}, + {ACPI_SIG_BDAT, "BIOS Data ACPI Table"}, {ACPI_SIG_BERT, "Boot Error Record Table"}, {ACPI_SIG_BGRT, "Boot Graphics Resource Table"}, {ACPI_SIG_BOOT, "Simple Boot Flag Table"}, {ACPI_SIG_CEDT, "CXL Early Discovery Table"}, - {ACPI_SIG_CPEP, "Corrected Platform Error Polling table"}, + {ACPI_SIG_CPEP, "Corrected Platform Error Polling Table"}, {ACPI_SIG_CSRT, "Core System Resource Table"}, - {ACPI_SIG_DBG2, "Debug Port table type 2"}, - {ACPI_SIG_DBGP, "Debug Port table"}, - {ACPI_SIG_DMAR, "DMA Remapping table"}, - {ACPI_SIG_DRTM, "Dynamic Root of Trust for Measurement table"}, + {ACPI_SIG_DBG2, "Debug Port Table type 2"}, + {ACPI_SIG_DBGP, "Debug Port Table"}, + {ACPI_SIG_DMAR, "DMA Remapping Table"}, + {ACPI_SIG_DRTM, "Dynamic Root of Trust for Measurement Table"}, {ACPI_SIG_DSDT, "Differentiated System Description Table (AML table)"}, {ACPI_SIG_ECDT, "Embedded Controller Boot Resources Table"}, - {ACPI_SIG_EINJ, "Error Injection table"}, + {ACPI_SIG_EINJ, "Error Injection Table"}, {ACPI_SIG_ERST, "Error Record Serialization Table"}, {ACPI_SIG_FACS, "Firmware ACPI Control Structure"}, {ACPI_SIG_FADT, "Fixed ACPI Description Table (FADT)"}, @@ -220,38 +221,41 @@ const AH_TABLE AcpiGbl_SupportedTables[] = {ACPI_SIG_GTDT, "Generic Timer Description Table"}, {ACPI_SIG_HEST, "Hardware Error Source Table"}, {ACPI_SIG_HMAT, "Heterogeneous Memory Attributes Table"}, - {ACPI_SIG_HPET, "High Precision Event Timer table"}, + {ACPI_SIG_HPET, "High Precision Event Timer Table"}, {ACPI_SIG_IORT, "IO Remapping Table"}, {ACPI_SIG_IVRS, "I/O Virtualization Reporting Structure"}, {ACPI_SIG_LPIT, "Low Power Idle Table"}, {ACPI_SIG_MADT, "Multiple APIC Description Table (MADT)"}, - {ACPI_SIG_MCFG, "Memory Mapped Configuration table"}, - {ACPI_SIG_MCHI, "Management Controller Host Interface table"}, + {ACPI_SIG_MCFG, "Memory Mapped Configuration Table"}, + {ACPI_SIG_MCHI, "Management Controller Host Interface Table"}, {ACPI_SIG_MPST, "Memory Power State Table"}, {ACPI_SIG_MSCT, "Maximum System Characteristics Table"}, - {ACPI_SIG_MSDM, "Microsoft Data Management table"}, + {ACPI_SIG_MSDM, "Microsoft Data Management Table"}, {ACPI_SIG_NFIT, "NVDIMM Firmware Interface Table"}, {ACPI_SIG_PCCT, "Platform Communications Channel Table"}, - {ACPI_SIG_PHAT, "Platform Health Assessment Table"}, {ACPI_SIG_PDTT, "Platform Debug Trigger Table"}, + {ACPI_SIG_PHAT, "Platform Health Assessment Table"}, {ACPI_SIG_PMTT, "Platform Memory Topology Table"}, {ACPI_SIG_PPTT, "Processor Properties Topology Table"}, + {ACPI_SIG_PRMT, "Platform Runtime Mechanism Table"}, {ACPI_SIG_RASF, "RAS Features Table"}, + {ACPI_SIG_RGRT, "Regulatory Graphics Resource Table"}, {ACPI_RSDP_NAME,"Root System Description Pointer"}, {ACPI_SIG_RSDT, "Root System Description Table"}, {ACPI_SIG_S3PT, "S3 Performance Table"}, {ACPI_SIG_SBST, "Smart Battery Specification Table"}, {ACPI_SIG_SDEI, "Software Delegated Exception Interface Table"}, - {ACPI_SIG_SDEV, "Secure Devices table"}, + {ACPI_SIG_SDEV, "Secure Devices Table"}, {ACPI_SIG_SLIC, "Software Licensing Description Table"}, {ACPI_SIG_SLIT, "System Locality Information Table"}, - {ACPI_SIG_SPCR, "Serial Port Console Redirection table"}, - {ACPI_SIG_SPMI, "Server Platform Management Interface table"}, + {ACPI_SIG_SPCR, "Serial Port Console Redirection Table"}, + {ACPI_SIG_SPMI, "Server Platform Management Interface Table"}, {ACPI_SIG_SRAT, "System Resource Affinity Table"}, {ACPI_SIG_SSDT, "Secondary System Description Table (AML table)"}, - {ACPI_SIG_STAO, "Status Override table"}, - {ACPI_SIG_TCPA, "Trusted Computing Platform Alliance table"}, - {ACPI_SIG_TPM2, "Trusted Platform Module hardware interface table"}, + {ACPI_SIG_STAO, "Status Override Table"}, + {ACPI_SIG_SVKL, "Storage Volume Key Location Table"}, + {ACPI_SIG_TCPA, "Trusted Computing Platform Alliance Table"}, + {ACPI_SIG_TPM2, "Trusted Platform Module hardware interface Table"}, {ACPI_SIG_UEFI, "UEFI Boot Optimization Table"}, {ACPI_SIG_VIOT, "Virtual I/O Translation Table"}, {ACPI_SIG_WAET, "Windows ACPI Emulated Devices Table"}, @@ -260,7 +264,7 @@ const AH_TABLE AcpiGbl_SupportedTables[] = {ACPI_SIG_WDRT, "Watchdog Resource Table"}, {ACPI_SIG_WPBT, "Windows Platform Binary Table"}, {ACPI_SIG_WSMT, "Windows SMM Security Mitigations Table"}, - {ACPI_SIG_XENV, "Xen Environment table"}, + {ACPI_SIG_XENV, "Xen Environment Table"}, {ACPI_SIG_XSDT, "Extended System Description Table"}, {NULL, NULL} }; diff --git a/source/common/dmtable.c b/source/common/dmtable.c index ffec889a06de..7a4e87e123a7 100644 --- a/source/common/dmtable.c +++ b/source/common/dmtable.c @@ -187,6 +187,7 @@ static const char *AcpiDmAsfSubnames[] = static const char *AcpiDmCedtSubnames[] = { "CXL Host Bridge Structure", + "CXL Fixed Memory Window Structure", "Unknown Subtable Type" /* Reserved */ }; @@ -350,6 +351,7 @@ static const char *AcpiDmMadtSubnames[] = "Generic MSI Frame", /* ACPI_MADT_GENERIC_MSI_FRAME */ "Generic Interrupt Redistributor", /* ACPI_MADT_GENERIC_REDISTRIBUTOR */ "Generic Interrupt Translator", /* ACPI_MADT_GENERIC_TRANSLATOR */ + "Mutiprocessor Wakeup", /* ACPI_MADT_TYPE_MULTIPROC_WAKEUP */ "Unknown Subtable Type" /* Reserved */ }; @@ -401,6 +403,12 @@ static const char *AcpiDmPpttSubnames[] = "Unknown Subtable Type" /* Reserved */ }; +static const char *AcpiDmRgrtSubnames[] = +{ + "Unknown/Reserved Image Type", /* ACPI_RGRT_TYPE_RESERVED0 */ + "Type PNG" /* ACPI_RGRT_IMAGE_TYPE_PNG */ +}; + static const char *AcpiDmSdevSubnames[] = { "Namespace Device", /* ACPI_SDEV_TYPE_NAMESPACE_DEVICE */ @@ -438,9 +446,28 @@ static const char *AcpiDmTpm2Subnames[] = static const char *AcpiDmIvrsSubnames[] = { - "Hardware Definition Block", - "Memory Definition Block", - "Unknown Subtable Type" /* Reserved */ + "Hardware Definition Block (IVHD)", + "Hardware Definition Block - Mixed Format (IVHD)", + "Memory Definition Block (IVMD)", + "Unknown/Reserved Subtable Type" /* Reserved */ +}; + +static const char *AcpiDmIvrsDevEntryNames[] = +{ + "Unknown/Reserved Device Entry Type", /* 0- Reserved */ + "Device Entry: Select All Devices", /* 1 */ + "Device Entry: Select One Device", /* 2 */ + "Device Entry: Start of Range", /* 3 */ + "Device Entry: End of Range", /* 4 */ + "Device Entry: Alias Select", /* 66 */ + "Device Entry: Alias Start of Range", /* 67 */ + "Unknown/Reserved Device Entry Type", /* 68- Reserved */ + "Unknown/Reserved Device Entry Type", /* 69- Reserved */ + "Device Entry: Extended Select", /* 70 */ + "Device Entry: Extended Start of Range", /* 71 */ + "Device Entry: Special Device", /* 72 */ + "Device Entry: ACPI HID Named Device", /* 240 */ + "Unknown/Reserved Device Entry Type" /* Reserved */ }; static const char *AcpiDmLpitSubnames[] = @@ -507,6 +534,7 @@ static const char *AcpiDmGasAccessWidth[] = const ACPI_DMTABLE_DATA AcpiDmTableData[] = { {ACPI_SIG_ASF, NULL, AcpiDmDumpAsf, DtCompileAsf, TemplateAsf}, + {ACPI_SIG_BDAT, AcpiDmTableInfoBdat, NULL, NULL, TemplateBdat}, {ACPI_SIG_BERT, AcpiDmTableInfoBert, NULL, NULL, TemplateBert}, {ACPI_SIG_BGRT, AcpiDmTableInfoBgrt, NULL, NULL, TemplateBgrt}, {ACPI_SIG_BOOT, AcpiDmTableInfoBoot, NULL, NULL, TemplateBoot}, @@ -541,7 +569,9 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = {ACPI_SIG_PHAT, NULL, AcpiDmDumpPhat, DtCompilePhat, TemplatePhat}, {ACPI_SIG_PMTT, NULL, AcpiDmDumpPmtt, DtCompilePmtt, TemplatePmtt}, {ACPI_SIG_PPTT, NULL, AcpiDmDumpPptt, DtCompilePptt, TemplatePptt}, + {ACPI_SIG_PRMT, NULL, AcpiDmDumpPrmt, DtCompilePrmt, TemplatePrmt}, {ACPI_SIG_RASF, AcpiDmTableInfoRasf, NULL, NULL, TemplateRasf}, + {ACPI_SIG_RGRT, NULL, AcpiDmDumpRgrt, DtCompileRgrt, TemplateRgrt}, {ACPI_SIG_RSDT, NULL, AcpiDmDumpRsdt, DtCompileRsdt, TemplateRsdt}, {ACPI_SIG_S3PT, NULL, NULL, NULL, TemplateS3pt}, {ACPI_SIG_SBST, AcpiDmTableInfoSbst, NULL, NULL, TemplateSbst}, @@ -553,6 +583,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = {ACPI_SIG_SPMI, AcpiDmTableInfoSpmi, NULL, NULL, TemplateSpmi}, {ACPI_SIG_SRAT, NULL, AcpiDmDumpSrat, DtCompileSrat, TemplateSrat}, {ACPI_SIG_STAO, NULL, AcpiDmDumpStao, DtCompileStao, TemplateStao}, + {ACPI_SIG_SVKL, AcpiDmTableInfoSvkl, AcpiDmDumpSvkl, DtCompileSvkl, TemplateSvkl}, {ACPI_SIG_TCPA, NULL, AcpiDmDumpTcpa, DtCompileTcpa, TemplateTcpa}, {ACPI_SIG_TPM2, AcpiDmTableInfoTpm2, AcpiDmDumpTpm2, DtCompileTpm2, TemplateTpm2}, {ACPI_SIG_UEFI, AcpiDmTableInfoUefi, NULL, DtCompileUefi, TemplateUefi}, @@ -940,8 +971,8 @@ AcpiDmDumpTable ( if (SubtableLength && (Info->Offset >= SubtableLength)) { AcpiOsPrintf ( - "/**** ACPI subtable terminates early - " - "may be older version (dump table) */\n"); + "/**** ACPI subtable terminates early (Len %u) - " + "may be older version (dump table) */\n", SubtableLength); /* Move on to next subtable */ @@ -966,11 +997,13 @@ AcpiDmDumpTable ( case ACPI_DMT_ACCWIDTH: case ACPI_DMT_CEDT: case ACPI_DMT_IVRS: + case ACPI_DMT_IVRS_DE: case ACPI_DMT_GTDT: case ACPI_DMT_MADT: case ACPI_DMT_PCCT: case ACPI_DMT_PMTT: case ACPI_DMT_PPTT: + case ACPI_DMT_RGRT: case ACPI_DMT_SDEV: case ACPI_DMT_SRAT: case ACPI_DMT_ASF: @@ -1077,6 +1110,11 @@ AcpiDmDumpTable ( ByteLength = strlen (ACPI_CAST_PTR (char, Target)) + 1; break; + case ACPI_DMT_IVRS_UNTERMINATED_STRING: + + ByteLength = ((ACPI_CAST_PTR (ACPI_IVRS_DEVICE_HID, Target) -1)->UidLength); + break; + case ACPI_DMT_GAS: if (!LastOutputBlankLine) @@ -1273,7 +1311,7 @@ AcpiDmDumpTable ( /* Convert 16-byte UUID buffer to 36-byte formatted UUID string */ - (void) AuConvertUuidToString ((char *) Target, AslGbl_MsgBuffer); + (void) AcpiUtConvertUuidToString ((char *) Target, AslGbl_MsgBuffer); AcpiOsPrintf ("%s\n", AslGbl_MsgBuffer); break; @@ -1283,6 +1321,11 @@ AcpiDmDumpTable ( AcpiOsPrintf ("\"%s\"\n", ACPI_CAST_PTR (char, Target)); break; + case ACPI_DMT_IVRS_UNTERMINATED_STRING: + + AcpiOsPrintf ("\"%.*s\"\n", ByteLength, ACPI_CAST_PTR (char, Target)); + break; + /* Fixed length ASCII name fields */ case ACPI_DMT_SIG: @@ -1684,6 +1727,20 @@ AcpiDmDumpTable ( AcpiDmDumpBuffer (Target, 0, ByteLength, 0, NULL); break; + case ACPI_DMT_RGRT: + + /* RGRT subtable types */ + + Temp8 = *Target; + if (Temp8 >= ACPI_RGRT_TYPE_RESERVED) + { + Temp8 = ACPI_RGRT_TYPE_RESERVED0; + } + + AcpiOsPrintf (UINT8_FORMAT, *Target, + AcpiDmRgrtSubnames[Temp8]); + break; + case ACPI_DMT_SDEV: /* SDEV subtable types */ @@ -1750,21 +1807,62 @@ AcpiDmDumpTable ( { case ACPI_IVRS_TYPE_HARDWARE1: case ACPI_IVRS_TYPE_HARDWARE2: - case ACPI_IVRS_TYPE_HARDWARE3: Name = AcpiDmIvrsSubnames[0]; break; + case ACPI_IVRS_TYPE_HARDWARE3: + + Name = AcpiDmIvrsSubnames[1]; + break; + case ACPI_IVRS_TYPE_MEMORY1: case ACPI_IVRS_TYPE_MEMORY2: case ACPI_IVRS_TYPE_MEMORY3: - Name = AcpiDmIvrsSubnames[1]; + Name = AcpiDmIvrsSubnames[2]; break; default: - Name = AcpiDmIvrsSubnames[2]; + Name = AcpiDmIvrsSubnames[3]; + break; + } + + AcpiOsPrintf (UINT8_FORMAT, *Target, Name); + break; + + case ACPI_DMT_IVRS_DE: + + /* IVRS device entry types */ + + Temp8 = *Target; + switch (Temp8) + { + case ACPI_IVRS_TYPE_ALL: + case ACPI_IVRS_TYPE_SELECT: + case ACPI_IVRS_TYPE_START: + case ACPI_IVRS_TYPE_END: + + Name = AcpiDmIvrsDevEntryNames[Temp8]; + break; + + case ACPI_IVRS_TYPE_ALIAS_SELECT: + case ACPI_IVRS_TYPE_ALIAS_START: + case ACPI_IVRS_TYPE_EXT_SELECT: + case ACPI_IVRS_TYPE_EXT_START: + case ACPI_IVRS_TYPE_SPECIAL: + + Name = AcpiDmIvrsDevEntryNames[Temp8 - 61]; + break; + + case ACPI_IVRS_TYPE_HID: + + Name = AcpiDmIvrsDevEntryNames[Temp8 - 228]; + break; + + default: + Name = AcpiDmIvrsDevEntryNames[0]; /* Unknown/Reserved */ break; } diff --git a/source/common/dmtbdump2.c b/source/common/dmtbdump2.c index 80d9d459778c..1b3cdf76926a 100644 --- a/source/common/dmtbdump2.c +++ b/source/common/dmtbdump2.c @@ -153,6 +153,7 @@ #include "accommon.h" #include "acdisasm.h" #include "actables.h" +#include "aslcompiler.h" /* This module used for application-level code only */ @@ -483,7 +484,18 @@ AcpiDmDumpIort ( * * RETURN: None * - * DESCRIPTION: Format the contents of a IVRS + * DESCRIPTION: Format the contents of a IVRS. Notes: + * The IVRS is essentially a flat table, with the following + * structure: + *
+ *
+ * + * + * ... + * + * + * + * ... * ******************************************************************************/ @@ -513,36 +525,36 @@ AcpiDmDumpIvrs ( /* Subtables */ Subtable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, Table, Offset); + while (Offset < Table->Length) { - /* Common subtable header */ - - AcpiOsPrintf ("\n"); - Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, - Subtable->Length, AcpiDmTableInfoIvrsHdr); - if (ACPI_FAILURE (Status)) - { - return; - } - switch (Subtable->Type) { + /* Type 10h, IVHD (I/O Virtualization Hardware Definition) */ + case ACPI_IVRS_TYPE_HARDWARE1: - InfoTable = AcpiDmTableInfoIvrs0; + AcpiOsPrintf ("\n"); + InfoTable = AcpiDmTableInfoIvrsHware1; break; + /* Types 11h, 40h, IVHD (I/O Virtualization Hardware Definition) */ + case ACPI_IVRS_TYPE_HARDWARE2: case ACPI_IVRS_TYPE_HARDWARE3: - InfoTable = AcpiDmTableInfoIvrs01; + AcpiOsPrintf ("\n"); + InfoTable = AcpiDmTableInfoIvrsHware23; break; + /* Types 20h-22h, IVMD (I/O Virtualization Memory Definition Block) */ + case ACPI_IVRS_TYPE_MEMORY1: case ACPI_IVRS_TYPE_MEMORY2: case ACPI_IVRS_TYPE_MEMORY3: - InfoTable = AcpiDmTableInfoIvrs1; + AcpiOsPrintf ("\n"); + InfoTable = AcpiDmTableInfoIvrsMemory; break; default: @@ -562,7 +574,6 @@ AcpiDmDumpIvrs ( /* Dump the subtable */ - AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, Subtable->Length, InfoTable); if (ACPI_FAILURE (Status)) @@ -570,7 +581,7 @@ AcpiDmDumpIvrs ( return; } - /* The hardware subtable can contain multiple device entries */ + /* The hardware subtables (IVHD) can contain multiple device entries */ if (Subtable->Type == ACPI_IVRS_TYPE_HARDWARE1 || Subtable->Type == ACPI_IVRS_TYPE_HARDWARE2 || @@ -584,16 +595,19 @@ AcpiDmDumpIvrs ( } else { - /* ACPI_IVRS_TYPE_HARDWARE2 subtable type */ + /* ACPI_IVRS_TYPE_HARDWARE2, HARDWARE3 subtable types */ EntryOffset = Offset + sizeof (ACPI_IVRS_HARDWARE2); DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, Subtable, sizeof (ACPI_IVRS_HARDWARE2)); } + /* Process all of the Device Entries */ + while (EntryOffset < (Offset + Subtable->Length)) { AcpiOsPrintf ("\n"); + /* * Upper 2 bits of Type encode the length of the device entry * @@ -645,7 +659,7 @@ AcpiDmDumpIvrs ( case ACPI_IVRS_TYPE_HID: - EntryLength = 22; + EntryLength = 4; InfoTable = AcpiDmTableInfoIvrsHid; break; @@ -669,21 +683,87 @@ AcpiDmDumpIvrs ( HidSubtable = ACPI_CAST_PTR (ACPI_IVRS_DEVICE_HID, DeviceEntry); EntryOffset += EntryLength; - DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, DeviceEntry, + DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, HidSubtable, EntryLength); if (EntryType == ACPI_IVRS_TYPE_HID) { - EntryLength = HidSubtable->UidLength; - Status = AcpiDmDumpTable (Table->Length, EntryOffset, - Table, EntryLength, AcpiDmTableInfoIvrsHid1); + /* + * Determine if the HID is an integer or a string. + * An integer is defined to be 32 bits, with the upper 32 bits + * set to zero. (from the ACPI Spec): "The HID can be a 32-bit + * integer or a character string. If an integer, the lower + * 4 bytes of the field contain the integer and the upper + * 4 bytes are padded with 0". + */ + if (UtIsIdInteger ((UINT8 *) &HidSubtable->AcpiHid)) + { + Status = AcpiDmDumpTable (Table->Length, EntryOffset, + &HidSubtable->AcpiHid, 8, AcpiDmTableInfoIvrsHidInteger); + } + else + { + Status = AcpiDmDumpTable (Table->Length, EntryOffset, + &HidSubtable->AcpiHid, 8, AcpiDmTableInfoIvrsHidString); + } if (ACPI_FAILURE (Status)) { return; } - EntryOffset += EntryLength; + + EntryOffset += 8; + + /* + * Determine if the CID is an integer or a string. The format + * of the CID is the same as the HID above. From ACPI Spec: + * "If present, CID must be a single Compatible Device ID + * following the same format as the HID field." + */ + if (UtIsIdInteger ((UINT8 *) &HidSubtable->AcpiCid)) + { + Status = AcpiDmDumpTable (Table->Length, EntryOffset, + &HidSubtable->AcpiCid, 8, AcpiDmTableInfoIvrsCidInteger); + } + else + { + Status = AcpiDmDumpTable (Table->Length, EntryOffset, + &HidSubtable->AcpiCid, 8, AcpiDmTableInfoIvrsCidString); + } + if (ACPI_FAILURE (Status)) + { + return; + } + + EntryOffset += 8; + EntryLength = HidSubtable->UidLength; + + if (EntryLength > ACPI_IVRS_UID_NOT_PRESENT) + { + /* Dump the UID based upon the UidType field (String or Integer) */ + + if (HidSubtable->UidType == ACPI_IVRS_UID_IS_STRING) + { + Status = AcpiDmDumpTable (Table->Length, EntryOffset, + &HidSubtable->UidType, EntryLength, AcpiDmTableInfoIvrsUidString); + if (ACPI_FAILURE (Status)) + { + return; + } + } + else /* ACPI_IVRS_UID_IS_INTEGER */ + { + Status = AcpiDmDumpTable (Table->Length, EntryOffset, + &HidSubtable->UidType, EntryLength, AcpiDmTableInfoIvrsUidInteger); + if (ACPI_FAILURE (Status)) + { + return; + } + } + } + + EntryOffset += EntryLength+2; DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, - DeviceEntry, EntryLength); + Table, EntryOffset); } } } @@ -1923,6 +2003,108 @@ AcpiDmDumpPptt ( } +/******************************************************************************* + * + * FUNCTION: AcpiDmDumpPrmt + * + * PARAMETERS: Table - A PRMT table + * + * RETURN: None + * + * DESCRIPTION: Format the contents of a PRMT. This table type consists + * of an open-ended number of subtables. + * + ******************************************************************************/ + +void +AcpiDmDumpPrmt ( + ACPI_TABLE_HEADER *Table) +{ + UINT32 CurrentOffset = sizeof (ACPI_TABLE_HEADER); + ACPI_TABLE_PRMT_HEADER *PrmtHeader; + ACPI_PRMT_MODULE_INFO *PrmtModuleInfo; + ACPI_PRMT_HANDLER_INFO *PrmtHandlerInfo; + ACPI_STATUS Status; + UINT32 i, j; + + + /* Main table header */ + + PrmtHeader = ACPI_ADD_PTR (ACPI_TABLE_PRMT_HEADER, Table, CurrentOffset); + Status = AcpiDmDumpTable (Table->Length, CurrentOffset, PrmtHeader, + sizeof (ACPI_TABLE_PRMT_HEADER), AcpiDmTableInfoPrmtHdr); + if (ACPI_FAILURE (Status)) + { + AcpiOsPrintf ("Invalid PRMT header\n"); + return; + } + + CurrentOffset += sizeof (ACPI_TABLE_PRMT_HEADER); + + /* PRM Module Information Structure array */ + + for (i = 0; i < PrmtHeader->ModuleInfoCount; ++i) + { + PrmtModuleInfo = ACPI_ADD_PTR (ACPI_PRMT_MODULE_INFO, Table, CurrentOffset); + Status = AcpiDmDumpTable (Table->Length, CurrentOffset, PrmtModuleInfo, + sizeof (ACPI_PRMT_MODULE_INFO), AcpiDmTableInfoPrmtModule); + + CurrentOffset += sizeof (ACPI_PRMT_MODULE_INFO); + + /* PRM handler information structure array */ + + for (j = 0; j < PrmtModuleInfo->HandlerInfoCount; ++j) + { + PrmtHandlerInfo = ACPI_ADD_PTR (ACPI_PRMT_HANDLER_INFO, Table, CurrentOffset); + Status = AcpiDmDumpTable (Table->Length, CurrentOffset, PrmtHandlerInfo, + sizeof (ACPI_PRMT_HANDLER_INFO), AcpiDmTableInfoPrmtHandler); + + CurrentOffset += sizeof (ACPI_PRMT_HANDLER_INFO); + } + } +} + + +/******************************************************************************* + * + * FUNCTION: AcpiDmDumpRgrt + * + * PARAMETERS: Table - A RGRT table + * + * RETURN: None + * + * DESCRIPTION: Format the contents of a RGRT + * + ******************************************************************************/ + +void +AcpiDmDumpRgrt ( + ACPI_TABLE_HEADER *Table) +{ + ACPI_STATUS Status; + ACPI_TABLE_RGRT *Subtable = ACPI_CAST_PTR (ACPI_TABLE_RGRT, Table); + UINT32 Offset = sizeof (ACPI_TABLE_RGRT); + + + /* Main table */ + + Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoRgrt); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Dump the binary image as a subtable */ + + Status = AcpiDmDumpTable (Table->Length, Offset, &Subtable->Image, + Table->Length - Offset, AcpiDmTableInfoRgrt0); + if (ACPI_FAILURE (Status)) + { + return; + } +} + + /******************************************************************************* * * FUNCTION: AcpiDmDumpS3pt diff --git a/source/common/dmtbdump3.c b/source/common/dmtbdump3.c index 7f559eeef3a6..e81a703b43cc 100644 --- a/source/common/dmtbdump3.c +++ b/source/common/dmtbdump3.c @@ -420,6 +420,65 @@ AcpiDmDumpStao ( } +/******************************************************************************* + * + * FUNCTION: AcpiDmDumpSvkl + * + * PARAMETERS: Table - A SVKL table + * + * RETURN: None + * + * DESCRIPTION: Format the contents of a SVKL. This is a variable-length + * table that contains an open-ended number of key subtables at + * the end of the header. + * + * NOTES: SVKL is essentially a flat table, with a small main table and + * a variable number of a single type of subtable. + * + ******************************************************************************/ + +void +AcpiDmDumpSvkl ( + ACPI_TABLE_HEADER *Table) +{ + ACPI_STATUS Status; + UINT32 Length = Table->Length; + UINT32 Offset = sizeof (ACPI_TABLE_SVKL); + ACPI_SVKL_KEY *Subtable; + + + /* Main table */ + + Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoSvkl); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* The rest of the table consists of subtables (single type) */ + + Subtable = ACPI_ADD_PTR (ACPI_SVKL_KEY, Table, Offset); + while (Offset < Table->Length) + { + /* Dump the subtable */ + + AcpiOsPrintf ("\n"); + Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, + sizeof (ACPI_SVKL_KEY), AcpiDmTableInfoSvkl0); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Point to next subtable */ + + Offset += sizeof (ACPI_SVKL_KEY); + Subtable = ACPI_ADD_PTR (ACPI_SVKL_KEY, Subtable, + sizeof (ACPI_SVKL_KEY)); + } +} + + /******************************************************************************* * * FUNCTION: AcpiDmDumpTcpa @@ -502,6 +561,7 @@ AcpiDmDumpTcpa ( * DESCRIPTION: Format the contents of a TPM2. * ******************************************************************************/ + static void AcpiDmDumpTpm2Rev3 ( ACPI_TABLE_HEADER *Table) diff --git a/source/common/dmtbinfo1.c b/source/common/dmtbinfo1.c index ea545f53a5a1..fbf3980dec3b 100644 --- a/source/common/dmtbinfo1.c +++ b/source/common/dmtbinfo1.c @@ -295,6 +295,19 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[] = }; +/******************************************************************************* + * + * BDAT - BIOS Data ACPI Table + * + ******************************************************************************/ + +ACPI_DMTABLE_INFO AcpiDmTableInfoBdat[] = +{ + {ACPI_DMT_GAS, ACPI_BDAT_OFFSET (Gas), "BDAT Generic Address", 0}, + ACPI_DMT_TERMINATOR +}; + + /******************************************************************************* * * BERT - Boot Error Record table diff --git a/source/common/dmtbinfo2.c b/source/common/dmtbinfo2.c index 9bb4b48c052a..00cf2e4d3755 100644 --- a/source/common/dmtbinfo2.c +++ b/source/common/dmtbinfo2.c @@ -414,23 +414,24 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[] = ACPI_DMT_TERMINATOR }; -/* Common Subtable header (one per Subtable) */ - -ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHdr[] = -{ - {ACPI_DMT_IVRS, ACPI_IVRSH_OFFSET (Type), "Subtable Type", 0}, - {ACPI_DMT_UINT8, ACPI_IVRSH_OFFSET (Flags), "Flags", 0}, - {ACPI_DMT_UINT16, ACPI_IVRSH_OFFSET (Length), "Length", DT_LENGTH}, - {ACPI_DMT_UINT16, ACPI_IVRSH_OFFSET (DeviceId), "DeviceId", 0}, - ACPI_DMT_TERMINATOR -}; - /* IVRS subtables */ /* 0x10: I/O Virtualization Hardware Definition (IVHD) Block */ -ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[] = +ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHware1[] = { + {ACPI_DMT_IVRS, ACPI_IVRSH_OFFSET (Type), "Subtable Type", 0}, + {ACPI_DMT_UINT8, ACPI_IVRSH_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, + {ACPI_DMT_FLAG0, ACPI_IVRS_FLAG_OFFSET (Flags,0), "HtTunEn", 0}, + {ACPI_DMT_FLAG1, ACPI_IVRS_FLAG_OFFSET (Flags,0), "PassPW", 0}, + {ACPI_DMT_FLAG2, ACPI_IVRS_FLAG_OFFSET (Flags,0), "ResPassPW", 0}, + {ACPI_DMT_FLAG3, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Isoc Control", 0}, + {ACPI_DMT_FLAG4, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Iotlb Support", 0}, + {ACPI_DMT_FLAG5, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Coherent", 0}, + {ACPI_DMT_FLAG6, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Prefetch Support", 0}, + {ACPI_DMT_FLAG7, ACPI_IVRS_FLAG_OFFSET (Flags,0), "PPR Support", 0}, + {ACPI_DMT_UINT16, ACPI_IVRSH_OFFSET (Length), "Length", DT_LENGTH}, + {ACPI_DMT_UINT16, ACPI_IVRSH_OFFSET (DeviceId), "DeviceId", 0}, {ACPI_DMT_UINT16, ACPI_IVRS0_OFFSET (CapabilityOffset), "Capability Offset", 0}, {ACPI_DMT_UINT64, ACPI_IVRS0_OFFSET (BaseAddress), "Base Address", 0}, {ACPI_DMT_UINT16, ACPI_IVRS0_OFFSET (PciSegmentGroup), "PCI Segment Group", 0}, @@ -439,24 +440,44 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[] = ACPI_DMT_TERMINATOR }; -/* 0x10: I/O Virtualization Hardware Definition (IVHD) Block */ +/* 0x11, 0x40: I/O Virtualization Hardware Definition (IVHD) Block */ -ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs01[] = +ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHware23[] = { - {ACPI_DMT_UINT16, ACPI_IVRS01_OFFSET (CapabilityOffset), "Capability Offset", 0}, - {ACPI_DMT_UINT64, ACPI_IVRS01_OFFSET (BaseAddress), "Base Address", 0}, - {ACPI_DMT_UINT16, ACPI_IVRS01_OFFSET (PciSegmentGroup), "PCI Segment Group", 0}, - {ACPI_DMT_UINT16, ACPI_IVRS01_OFFSET (Info), "Virtualization Info", 0}, - {ACPI_DMT_UINT32, ACPI_IVRS01_OFFSET (Attributes), "Attributes", 0}, - {ACPI_DMT_UINT64, ACPI_IVRS01_OFFSET (EfrRegisterImage), "EFR Image", 0}, - {ACPI_DMT_UINT64, ACPI_IVRS01_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_IVRS, ACPI_IVRSH_OFFSET (Type), "Subtable Type", 0}, + {ACPI_DMT_UINT8, ACPI_IVRSH_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, + {ACPI_DMT_FLAG0, ACPI_IVRS_FLAG_OFFSET (Flags,0), "HtTunEn", 0}, + {ACPI_DMT_FLAG1, ACPI_IVRS_FLAG_OFFSET (Flags,0), "PassPW", 0}, + {ACPI_DMT_FLAG2, ACPI_IVRS_FLAG_OFFSET (Flags,0), "ResPassPW", 0}, + {ACPI_DMT_FLAG3, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Isoc Control", 0}, + {ACPI_DMT_FLAG4, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Iotlb Support", 0}, + {ACPI_DMT_FLAG5, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Coherent", 0}, + {ACPI_DMT_FLAG6, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Prefetch Support", 0}, + {ACPI_DMT_FLAG7, ACPI_IVRS_FLAG_OFFSET (Flags,0), "PPR Support", 0}, + {ACPI_DMT_UINT16, ACPI_IVRS01_OFFSET (Header.Length), "Length", DT_LENGTH}, + {ACPI_DMT_UINT16, ACPI_IVRS01_OFFSET (Header.DeviceId), "DeviceId", 0}, + {ACPI_DMT_UINT16, ACPI_IVRS01_OFFSET (CapabilityOffset), "Capability Offset", 0}, + {ACPI_DMT_UINT64, ACPI_IVRS01_OFFSET (BaseAddress), "Base Address", 0}, + {ACPI_DMT_UINT16, ACPI_IVRS01_OFFSET (PciSegmentGroup), "PCI Segment Group", 0}, + {ACPI_DMT_UINT16, ACPI_IVRS01_OFFSET (Info), "Virtualization Info", 0}, + {ACPI_DMT_UINT32, ACPI_IVRS01_OFFSET (Attributes), "Attributes", 0}, + {ACPI_DMT_UINT64, ACPI_IVRS01_OFFSET (EfrRegisterImage), "EFR Image", 0}, + {ACPI_DMT_UINT64, ACPI_IVRS01_OFFSET (Reserved), "Reserved", 0}, ACPI_DMT_TERMINATOR }; -/* 0x20, 0x21, 0x22: I/O Virtualization Memory Definition (IVMD) Block */ +/* 0x20, 0x21, 0x22: I/O Virtualization Memory Definition (IVMD) Device Entry Block */ -ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[] = +ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsMemory[] = { + {ACPI_DMT_IVRS, ACPI_IVRSH_OFFSET (Type), "Subtable Type", 0}, + {ACPI_DMT_UINT8, ACPI_IVRSH_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, + {ACPI_DMT_FLAG0, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Unity", 0}, + {ACPI_DMT_FLAG1, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Readable", 0}, + {ACPI_DMT_FLAG2, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Writeable", 0}, + {ACPI_DMT_FLAG3, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Exclusion Range", 0}, + {ACPI_DMT_UINT16, ACPI_IVRSH_OFFSET (Length), "Length", DT_LENGTH}, + {ACPI_DMT_UINT16, ACPI_IVRSH_OFFSET (DeviceId), "DeviceId", 0}, {ACPI_DMT_UINT16, ACPI_IVRS1_OFFSET (AuxData), "Auxiliary Data", 0}, {ACPI_DMT_UINT64, ACPI_IVRS1_OFFSET (Reserved), "Reserved", 0}, {ACPI_DMT_UINT64, ACPI_IVRS1_OFFSET (StartAddress), "Start Address", 0}, @@ -467,19 +488,26 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[] = /* Device entry header for IVHD block */ #define ACPI_DMT_IVRS_DE_HEADER \ - {ACPI_DMT_UINT8, ACPI_IVRSD_OFFSET (Type), "Entry Type", 0}, \ + {ACPI_DMT_IVRS_DE, ACPI_IVRSD_OFFSET (Type), "Subtable Type", 0}, \ {ACPI_DMT_UINT16, ACPI_IVRSD_OFFSET (Id), "Device ID", 0}, \ - {ACPI_DMT_UINT8, ACPI_IVRSD_OFFSET (DataSetting), "Data Setting", 0} + {ACPI_DMT_UINT8, ACPI_IVRSD_OFFSET (DataSetting), "Data Setting (decoded below)", 0}, \ + {ACPI_DMT_FLAG0, ACPI_IVRSDE_FLAG_OFFSET (DataSetting, 0), "INITPass", 0}, \ + {ACPI_DMT_FLAG1, ACPI_IVRSDE_FLAG_OFFSET (DataSetting, 0), "EIntPass", 0}, \ + {ACPI_DMT_FLAG2, ACPI_IVRSDE_FLAG_OFFSET (DataSetting, 0), "NMIPass", 0}, \ + {ACPI_DMT_FLAG3, ACPI_IVRSDE_FLAG_OFFSET (DataSetting, 0), "Reserved", 0}, \ + {ACPI_DMT_FLAGS4, ACPI_IVRSDE_FLAG_OFFSET (DataSetting, 0), "System MGMT", 0}, \ + {ACPI_DMT_FLAG6, ACPI_IVRSDE_FLAG_OFFSET (DataSetting, 0), "LINT0 Pass", 0}, \ + {ACPI_DMT_FLAG7, ACPI_IVRSDE_FLAG_OFFSET (DataSetting, 0), "LINT1 Pass", 0} -/* 4-byte device entry */ +/* 4-byte device entry (Types 1,2,3,4) */ ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[] = { ACPI_DMT_IVRS_DE_HEADER, - {ACPI_DMT_EXIT, 0, NULL, 0}, + ACPI_DMT_TERMINATOR }; -/* 8-byte device entry */ +/* 8-byte device entry (Type Alias Select, Alias Start of Range) */ ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[] = { @@ -490,7 +518,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[] = ACPI_DMT_TERMINATOR }; -/* 8-byte device entry */ +/* 8-byte device entry (Type Extended Select, Extended Start of Range) */ ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[] = { @@ -499,7 +527,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[] = ACPI_DMT_TERMINATOR }; -/* 8-byte device entry */ +/* 8-byte device entry (Type Special Device) */ ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[] = { @@ -510,21 +538,50 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[] = ACPI_DMT_TERMINATOR }; -/* Variable-length device entry */ +/* Variable-length Device Entry Type 0xF0 */ ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHid[] = { ACPI_DMT_IVRS_DE_HEADER, - {ACPI_DMT_NAME8, ACPI_IVRSHID_OFFSET (AcpiHid), "ACPI HID", 0}, - {ACPI_DMT_NAME8, ACPI_IVRSHID_OFFSET (AcpiCid), "ACPI CID", 0}, - {ACPI_DMT_UINT8, ACPI_IVRSHID_OFFSET (UidType), "UID Format", DT_DESCRIBES_OPTIONAL}, - {ACPI_DMT_UINT8, ACPI_IVRSHID_OFFSET (UidLength), "UID Length", DT_DESCRIBES_OPTIONAL}, ACPI_DMT_TERMINATOR }; -ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHid1[] = +ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsUidString[] = { - {ACPI_DMT_RAW_BUFFER, 0, "UID", DT_OPTIONAL}, + {ACPI_DMT_UINT8, 0, "UID Format", DT_DESCRIBES_OPTIONAL}, + {ACPI_DMT_UINT8, 1, "UID Length", DT_DESCRIBES_OPTIONAL}, + {ACPI_DMT_IVRS_UNTERMINATED_STRING, 2, "UID", DT_OPTIONAL}, + ACPI_DMT_TERMINATOR +}; + +ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsUidInteger[] = +{ + {ACPI_DMT_UINT8, 0, "UID Format", DT_DESCRIBES_OPTIONAL}, + {ACPI_DMT_UINT8, 1, "UID Length", DT_DESCRIBES_OPTIONAL}, + {ACPI_DMT_UINT64, 2, "UID", DT_OPTIONAL}, + ACPI_DMT_TERMINATOR +}; + +ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHidString[] = +{ + {ACPI_DMT_NAME8, 0, "ACPI HID", 0}, + ACPI_DMT_TERMINATOR +}; + +ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHidInteger[] = +{ + {ACPI_DMT_UINT64, 0, "ACPI HID", 0}, + ACPI_DMT_TERMINATOR +}; +ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsCidString[] = +{ + {ACPI_DMT_NAME8, 0, "ACPI CID", 0}, + ACPI_DMT_TERMINATOR +}; + +ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsCidInteger[] = +{ + {ACPI_DMT_UINT64, 0, "ACPI CID", 0}, ACPI_DMT_TERMINATOR }; @@ -1537,6 +1594,52 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPptt2[] = }; +/******************************************************************************* + * + * PRMT - Platform Runtime Mechanism Table + * Version 1 + * + ******************************************************************************/ + +ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHdr[] = +{ + {ACPI_DMT_UUID, ACPI_PRMTH_OFFSET (PlatformGuid[0]), "Platform GUID", 0}, + {ACPI_DMT_UINT32, ACPI_PRMTH_OFFSET (ModuleInfoOffset), "Module info offset", 0}, + {ACPI_DMT_UINT32, ACPI_PRMTH_OFFSET (ModuleInfoCount), "Module info count", 0}, + ACPI_DMT_NEW_LINE, + ACPI_DMT_TERMINATOR + +}; + +ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtModule[] = +{ + {ACPI_DMT_UINT16, ACPI_PRMT0_OFFSET (Revision), "Revision", 0}, + {ACPI_DMT_UINT16, ACPI_PRMT0_OFFSET (Length), "Length", 0}, + {ACPI_DMT_UUID, ACPI_PRMT0_OFFSET (ModuleGuid[0]), "Module GUID", 0}, + {ACPI_DMT_UINT16, ACPI_PRMT0_OFFSET (MajorRev), "Major Revision", 0}, + {ACPI_DMT_UINT16, ACPI_PRMT0_OFFSET (MinorRev), "Minor Revision", 0}, + {ACPI_DMT_UINT16, ACPI_PRMT0_OFFSET (HandlerInfoCount), "Handler Info Count", 0}, + {ACPI_DMT_UINT32, ACPI_PRMT0_OFFSET (HandlerInfoOffset), "Handler Info Offset", 0}, + {ACPI_DMT_UINT64, ACPI_PRMT0_OFFSET (MmioListPointer), "Mmio List pointer", 0}, + ACPI_DMT_NEW_LINE, + ACPI_DMT_TERMINATOR + +}; + +ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHandler[] = +{ + {ACPI_DMT_UINT16, ACPI_PRMT1_OFFSET (Revision), "Revision", 0}, + {ACPI_DMT_UINT16, ACPI_PRMT1_OFFSET (Length), "Length", 0}, + {ACPI_DMT_UUID, ACPI_PRMT1_OFFSET (HandlerGuid[0]), "Handler GUID", 0}, + {ACPI_DMT_UINT64, ACPI_PRMT1_OFFSET (HandlerAddress), "Handler address", 0}, + {ACPI_DMT_UINT64, ACPI_PRMT1_OFFSET (StaticDataBufferAddress),"Satic Data Address", 0}, + {ACPI_DMT_UINT64, ACPI_PRMT1_OFFSET (AcpiParamBufferAddress), "ACPI Parameter Address", 0}, + ACPI_DMT_NEW_LINE, + ACPI_DMT_TERMINATOR + +}; + + /******************************************************************************* * * RASF - RAS Feature table @@ -1550,6 +1653,31 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoRasf[] = }; +/******************************************************************************* + * + * RGRT - Regulatory Graphics Resource Table + * + ******************************************************************************/ + +ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt[] = +{ + {ACPI_DMT_UINT16, ACPI_RGRT_OFFSET (Version), "Version", 0}, + {ACPI_DMT_RGRT, ACPI_RGRT_OFFSET (ImageType), "Image Type", 0}, + {ACPI_DMT_UINT8, ACPI_RGRT_OFFSET (Reserved), "Reserved", 0}, + ACPI_DMT_TERMINATOR +}; + +/* + * We treat the binary image field as its own subtable (to make + * ACPI_DMT_RAW_BUFFER work properly). + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt0[] = +{ + {ACPI_DMT_RAW_BUFFER, 0, "Image", 0}, + ACPI_DMT_TERMINATOR +}; + + /******************************************************************************* * * S3PT - S3 Performance Table @@ -1734,4 +1862,5 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1b[] = {ACPI_DMT_RAW_BUFFER, 0, "Vendor Data", 0}, /*, DT_OPTIONAL}, */ ACPI_DMT_TERMINATOR }; + /*! [End] no source code translation !*/ diff --git a/source/common/dmtbinfo3.c b/source/common/dmtbinfo3.c index 773ba16ecb4a..b04350198590 100644 --- a/source/common/dmtbinfo3.c +++ b/source/common/dmtbinfo3.c @@ -403,6 +403,30 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoStaoStr[] = }; +/******************************************************************************* + * + * SVKL - Storage Volume Key Location table + * + ******************************************************************************/ + +ACPI_DMTABLE_INFO AcpiDmTableInfoSvkl[] = +{ + {ACPI_DMT_UINT32, ACPI_SVKL_OFFSET (Count), "Key Count", 0}, + ACPI_DMT_TERMINATOR +}; + +/* SVKL subtables */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoSvkl0[] = +{ + {ACPI_DMT_UINT16, ACPI_SVKL0_OFFSET (Type), "Key Type", 0}, + {ACPI_DMT_UINT16, ACPI_SVKL0_OFFSET (Format), "Key Format", 0}, + {ACPI_DMT_UINT32, ACPI_SVKL0_OFFSET (Size), "Key Size", 0}, + {ACPI_DMT_UINT64, ACPI_SVKL0_OFFSET (Address), "Key Address", 0}, + ACPI_DMT_TERMINATOR +}; + + /******************************************************************************* * * TCPA - Trusted Computing Platform Alliance table (Client) diff --git a/source/compiler/aslcompiler.h b/source/compiler/aslcompiler.h index e48e4674c1e5..5112ea49695c 100644 --- a/source/compiler/aslcompiler.h +++ b/source/compiler/aslcompiler.h @@ -1224,6 +1224,10 @@ DbgPrint ( #define ASL_PARSE_OUTPUT 1 #define ASL_TREE_OUTPUT 2 +BOOLEAN +UtIsIdInteger ( + UINT8 *Target); + UINT8 UtIsBigEndianMachine ( void); diff --git a/source/compiler/aslmessages.c b/source/compiler/aslmessages.c index c969764508c0..4dd6422ba75a 100644 --- a/source/compiler/aslmessages.c +++ b/source/compiler/aslmessages.c @@ -400,14 +400,16 @@ const char *AslTableCompilerMsgs [] = /* ASL_MSG_INVALID_FIELD_NAME */ "Invalid Field Name", /* ASL_MSG_INVALID_HEX_INTEGER */ "Invalid hex integer constant", /* ASL_MSG_OEM_TABLE */ "OEM table - unknown contents", -/* ASL_MSG_RESERVED_VALUE */ "Reserved field", +/* ASL_MSG_RESERVED_FIELD */ "Reserved field", /* ASL_MSG_UNKNOWN_LABEL */ "Label is undefined", /* ASL_MSG_UNKNOWN_SUBTABLE */ "Unknown subtable type", /* ASL_MSG_UNKNOWN_TABLE */ "Unknown ACPI table signature", /* ASL_MSG_ZERO_VALUE */ "Value must be non-zero", /* ASL_MSG_INVALID_LABEL */ "Invalid field label detected", /* ASL_MSG_BUFFER_LIST */ "Invalid buffer initializer list", -/* ASL_MSG_ENTRY_LIST */ "Invalid entry initializer list" +/* ASL_MSG_ENTRY_LIST */ "Invalid entry initializer list", +/* ASL_MSG_UNKNOWN_FORMAT */ "Unknown format value", +/* ASL_MSG_RESERVED_VALUE */ "Value for field is reserved or unknown", }; /* Preprocessor */ diff --git a/source/compiler/aslmessages.h b/source/compiler/aslmessages.h index 1d9f7becb12d..69c2561bad0f 100644 --- a/source/compiler/aslmessages.h +++ b/source/compiler/aslmessages.h @@ -402,7 +402,7 @@ typedef enum ASL_MSG_INVALID_FIELD_NAME, ASL_MSG_INVALID_HEX_INTEGER, ASL_MSG_OEM_TABLE, - ASL_MSG_RESERVED_VALUE, + ASL_MSG_RESERVED_FIELD, ASL_MSG_UNKNOWN_LABEL, ASL_MSG_UNKNOWN_SUBTABLE, ASL_MSG_UNKNOWN_TABLE, @@ -410,6 +410,8 @@ typedef enum ASL_MSG_INVALID_LABEL, ASL_MSG_BUFFER_LIST, ASL_MSG_ENTRY_LIST, + ASL_MSG_UNKNOWN_FORMAT, + ASL_MSG_RESERVED_VALUE, /* These messages are used by the Preprocessor only */ diff --git a/source/compiler/aslutils.c b/source/compiler/aslutils.c index 5dee45d91e04..44631957ca8e 100644 --- a/source/compiler/aslutils.c +++ b/source/compiler/aslutils.c @@ -206,6 +206,46 @@ UtIsBigEndianMachine ( } +/******************************************************************************* + * + * FUNCTION: UtIsIdInteger + * + * PARAMETERS: Pointer to an ACPI ID (HID, CID) string + * + * RETURN: TRUE if string is an integer + * FALSE if string is not an integer + * + * DESCRIPTION: Determine whether the input ACPI ID string can be converted to + * an integer value. + * + ******************************************************************************/ + +BOOLEAN +UtIsIdInteger ( + UINT8 *Target) +{ + UINT32 i; + + + /* The first three characters of the string must be alphabetic */ + + for (i = 0; i < 3; i++) + { + if (!isalpha ((int) Target[i])) + { + break; + } + } + + if (i < 3) + { + return (TRUE); + } + + return (FALSE); +} + + /****************************************************************************** * * FUNCTION: UtQueryForOverwrite diff --git a/source/compiler/asluuid.c b/source/compiler/asluuid.c index c8dd4a464aa9..30540acdaeaa 100644 --- a/source/compiler/asluuid.c +++ b/source/compiler/asluuid.c @@ -212,50 +212,3 @@ AuValidateUuid ( return (AE_OK); } - -/******************************************************************************* - * - * FUNCTION: AuConvertUuidToString - * - * PARAMETERS: UuidBuffer - 16-byte UUID buffer - * OutString - 36-byte formatted UUID string - * - * RETURN: Status - * - * DESCRIPTION: Convert 16-byte UUID buffer to 36-byte formatted UUID string - * OutString must be 37 bytes to include null terminator. - * - ******************************************************************************/ - -ACPI_STATUS -AuConvertUuidToString ( - char *UuidBuffer, - char *OutString) -{ - UINT32 i; - - - if (!UuidBuffer || !OutString) - { - return (AE_BAD_PARAMETER); - } - - for (i = 0; i < UUID_BUFFER_LENGTH; i++) - { - OutString[AcpiGbl_MapToUuidOffset[i]] = - AcpiUtHexToAsciiChar (UuidBuffer[i], 4); - - OutString[AcpiGbl_MapToUuidOffset[i] + 1] = - AcpiUtHexToAsciiChar (UuidBuffer[i], 0); - } - - /* Insert required hyphens (dashes) */ - - OutString[UUID_HYPHEN1_OFFSET] = - OutString[UUID_HYPHEN2_OFFSET] = - OutString[UUID_HYPHEN3_OFFSET] = - OutString[UUID_HYPHEN4_OFFSET] = '-'; - - OutString[UUID_STRING_LENGTH] = 0; /* Null terminate */ - return (AE_OK); -} diff --git a/source/compiler/dtcompiler.h b/source/compiler/dtcompiler.h index f2d006440d8e..4f96680843fd 100644 --- a/source/compiler/dtcompiler.h +++ b/source/compiler/dtcompiler.h @@ -673,6 +673,14 @@ ACPI_STATUS DtCompilePptt ( void **PFieldList); +ACPI_STATUS +DtCompilePrmt ( + void **PFieldList); + +ACPI_STATUS +DtCompileRgrt ( + void **PFieldList); + ACPI_STATUS DtCompileRsdt ( void **PFieldList); @@ -701,6 +709,10 @@ ACPI_STATUS DtCompileStao ( void **PFieldList); +ACPI_STATUS +DtCompileSvkl ( + void **PFieldList); + ACPI_STATUS DtCompileTcpa ( void **PFieldList); @@ -743,6 +755,7 @@ DtGetGenericTableInfo ( extern const unsigned char TemplateAsf[]; extern const unsigned char TemplateBoot[]; +extern const unsigned char TemplateBdat[]; extern const unsigned char TemplateBert[]; extern const unsigned char TemplateBgrt[]; extern const unsigned char TemplateCedt[]; @@ -776,7 +789,9 @@ extern const unsigned char TemplatePdtt[]; extern const unsigned char TemplatePhat[]; extern const unsigned char TemplatePmtt[]; extern const unsigned char TemplatePptt[]; +extern const unsigned char TemplatePrmt[]; extern const unsigned char TemplateRasf[]; +extern const unsigned char TemplateRgrt[]; extern const unsigned char TemplateRsdt[]; extern const unsigned char TemplateS3pt[]; extern const unsigned char TemplateSbst[]; @@ -788,6 +803,7 @@ extern const unsigned char TemplateSpcr[]; extern const unsigned char TemplateSpmi[]; extern const unsigned char TemplateSrat[]; extern const unsigned char TemplateStao[]; +extern const unsigned char TemplateSvkl[]; extern const unsigned char TemplateTcpa[]; extern const unsigned char TemplateTpm2[]; extern const unsigned char TemplateUefi[]; diff --git a/source/compiler/dtfield.c b/source/compiler/dtfield.c index ee7788e3b8a5..729791d7acde 100644 --- a/source/compiler/dtfield.c +++ b/source/compiler/dtfield.c @@ -434,14 +434,14 @@ DtCompileInteger ( { if (Value != 1) { - DtError (ASL_WARNING, ASL_MSG_RESERVED_VALUE, Field, + DtError (ASL_WARNING, ASL_MSG_RESERVED_FIELD, Field, "Must be one, setting to one"); Value = 1; } } else if (Value != 0) { - DtError (ASL_WARNING, ASL_MSG_RESERVED_VALUE, Field, + DtError (ASL_WARNING, ASL_MSG_RESERVED_FIELD, Field, "Must be zero, setting to zero"); Value = 0; } diff --git a/source/compiler/dtio.c b/source/compiler/dtio.c index 781b2b8abc40..e1776f3f2919 100644 --- a/source/compiler/dtio.c +++ b/source/compiler/dtio.c @@ -1086,9 +1086,9 @@ DtDumpSubtableTree ( { DbgPrint (ASL_DEBUG_OUTPUT, - "[%.04X] %24s %*s%p (%.02X) - (%.02X)\n", + "[%.04X] %24s %*s%p (%.02X) - (%.02X) %.02X\n", Subtable->Depth, Subtable->Name, (4 * Subtable->Depth), " ", - Subtable, Subtable->Length, Subtable->TotalLength); + Subtable, Subtable->Length, Subtable->TotalLength, *Subtable->Buffer); } @@ -1123,7 +1123,7 @@ DtDumpSubtableList ( DtWalkTableTree (AslGbl_RootTable, DtDumpSubtableInfo, NULL, NULL); DbgPrint (ASL_DEBUG_OUTPUT, - "\nSubtable Tree: (Depth, Name, Subtable, Length, TotalLength)\n\n"); + "\nSubtable Tree: (Depth, Name, Subtable, Length, TotalLength, Integer Value)\n\n"); DtWalkTableTree (AslGbl_RootTable, DtDumpSubtableTree, NULL, NULL); DbgPrint (ASL_DEBUG_OUTPUT, "\n"); diff --git a/source/compiler/dttable1.c b/source/compiler/dttable1.c index 458a71743cf8..bf710e31c133 100644 --- a/source/compiler/dttable1.c +++ b/source/compiler/dttable1.c @@ -2058,7 +2058,18 @@ DtCompileIort ( * * RETURN: Status * - * DESCRIPTION: Compile IVRS. + * DESCRIPTION: Compile IVRS. Notes: + * The IVRS is essentially a flat table, with the following + * structure: + *
+ *
+ * + * + * ... + * + * + * + * ... * *****************************************************************************/ @@ -2069,13 +2080,17 @@ DtCompileIvrs ( ACPI_STATUS Status; DT_SUBTABLE *Subtable; DT_SUBTABLE *ParentTable; + DT_SUBTABLE *MainSubtable; DT_FIELD **PFieldList = (DT_FIELD **) List; DT_FIELD *SubtableStart; - ACPI_DMTABLE_INFO *InfoTable; - ACPI_IVRS_HEADER *IvrsHeader; - UINT8 EntryType; + ACPI_DMTABLE_INFO *InfoTable = NULL; + UINT8 SubtableType; + UINT8 Temp64[16]; + UINT8 Temp8; + /* Main table */ + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIvrs, &Subtable); if (ACPI_FAILURE (Status)) @@ -2085,11 +2100,98 @@ DtCompileIvrs ( ParentTable = DtPeekSubtable (); DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + /* Save a pointer to the main subtable */ + + MainSubtable = Subtable; while (*PFieldList) { SubtableStart = *PFieldList; - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIvrsHdr, + + /* Compile the SubtableType integer */ + + DtCompileInteger (&SubtableType, *PFieldList, 1, 0); + + switch (SubtableType) + { + + /* Type 10h, IVHD (I/O Virtualization Hardware Definition) */ + + case ACPI_IVRS_TYPE_HARDWARE1: + + InfoTable = AcpiDmTableInfoIvrsHware1; + break; + + /* Types 11h, 40h, IVHD (I/O Virtualization Hardware Definition) */ + + case ACPI_IVRS_TYPE_HARDWARE2: + case ACPI_IVRS_TYPE_HARDWARE3: + + InfoTable = AcpiDmTableInfoIvrsHware23; + break; + + /* Types 20h, 21h, 22h, IVMD (I/O Virtualization Memory Definition Block) */ + + case ACPI_IVRS_TYPE_MEMORY1: + case ACPI_IVRS_TYPE_MEMORY2: + case ACPI_IVRS_TYPE_MEMORY3: + + InfoTable = AcpiDmTableInfoIvrsMemory; + break; + + /* 4-byte device entries */ + + case ACPI_IVRS_TYPE_PAD4: + case ACPI_IVRS_TYPE_ALL: + case ACPI_IVRS_TYPE_SELECT: + case ACPI_IVRS_TYPE_START: + case ACPI_IVRS_TYPE_END: + + InfoTable = AcpiDmTableInfoIvrs4; + break; + + /* 8-byte device entries, type A */ + + case ACPI_IVRS_TYPE_ALIAS_SELECT: + case ACPI_IVRS_TYPE_ALIAS_START: + + InfoTable = AcpiDmTableInfoIvrs8a; + break; + + /* 8-byte device entries, type B */ + + case ACPI_IVRS_TYPE_EXT_SELECT: + case ACPI_IVRS_TYPE_EXT_START: + + InfoTable = AcpiDmTableInfoIvrs8b; + break; + + /* 8-byte device entries, type C */ + + case ACPI_IVRS_TYPE_SPECIAL: + + InfoTable = AcpiDmTableInfoIvrs8c; + break; + + /* Variable device entries, type F0h */ + + case ACPI_IVRS_TYPE_HID: + + InfoTable = AcpiDmTableInfoIvrsHid; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, + "IVRS Device Entry"); + return (AE_ERROR); + } + + /* Compile the InfoTable from above */ + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable); if (ACPI_FAILURE (Status)) { @@ -2097,110 +2199,164 @@ DtCompileIvrs ( } ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); + if (SubtableType != ACPI_IVRS_TYPE_HARDWARE1 && + SubtableType != ACPI_IVRS_TYPE_HARDWARE2 && + SubtableType != ACPI_IVRS_TYPE_HARDWARE3 && + SubtableType != ACPI_IVRS_TYPE_HID && + SubtableType != ACPI_IVRS_TYPE_MEMORY1 && + SubtableType != ACPI_IVRS_TYPE_MEMORY2 && + SubtableType != ACPI_IVRS_TYPE_MEMORY3) + { + if (ParentTable) + DtInsertSubtable (ParentTable, Subtable); + } - IvrsHeader = ACPI_CAST_PTR (ACPI_IVRS_HEADER, Subtable->Buffer); - - switch (IvrsHeader->Type) + switch (SubtableType) { case ACPI_IVRS_TYPE_HARDWARE1: - - InfoTable = AcpiDmTableInfoIvrs0; - break; - case ACPI_IVRS_TYPE_HARDWARE2: - - InfoTable = AcpiDmTableInfoIvrs01; - break; - + case ACPI_IVRS_TYPE_HARDWARE3: case ACPI_IVRS_TYPE_MEMORY1: case ACPI_IVRS_TYPE_MEMORY2: case ACPI_IVRS_TYPE_MEMORY3: - InfoTable = AcpiDmTableInfoIvrs1; + /* Insert these IVHDs/IVMDs at the root subtable */ + + DtInsertSubtable (MainSubtable, Subtable); + DtPushSubtable (Subtable); + ParentTable = MainSubtable; break; - default: + case ACPI_IVRS_TYPE_HID: - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "IVRS"); - return (AE_ERROR); - } + /* Special handling for the HID named device entry (0xF0) */ - Status = DtCompileTable (PFieldList, InfoTable, &Subtable); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - if (IvrsHeader->Type == ACPI_IVRS_TYPE_HARDWARE1 || - IvrsHeader->Type == ACPI_IVRS_TYPE_HARDWARE2) - { - while (*PFieldList && - !strcmp ((*PFieldList)->Name, "Entry Type")) + if (ParentTable) { - SubtableStart = *PFieldList; - DtCompileInteger (&EntryType, *PFieldList, 1, 0); + DtInsertSubtable (ParentTable, Subtable); + } - switch (EntryType) - { - /* 4-byte device entries */ + /* + * Process the HID value. First, get the HID value as a string. + */ + DtCompileOneField ((UINT8 *) &Temp64, *PFieldList, 16, DT_FIELD_TYPE_STRING, 0); - case ACPI_IVRS_TYPE_PAD4: - case ACPI_IVRS_TYPE_ALL: - case ACPI_IVRS_TYPE_SELECT: - case ACPI_IVRS_TYPE_START: - case ACPI_IVRS_TYPE_END: + /* + * Determine if the HID is an integer or a string. + * An integer is defined to be 32 bits, with the upper 32 bits + * set to zero. (from the ACPI Spec): "The HID can be a 32-bit + * integer or a character string. If an integer, the lower + * 4 bytes of the field contain the integer and the upper + * 4 bytes are padded with 0". + */ + if (UtIsIdInteger ((UINT8 *) &Temp64)) + { + /* Compile the HID value as an integer */ - InfoTable = AcpiDmTableInfoIvrs4; - break; + DtCompileOneField ((UINT8 *) &Temp64, *PFieldList, 8, DT_FIELD_TYPE_INTEGER, 0); - /* 8-byte entries, type A */ - - case ACPI_IVRS_TYPE_ALIAS_SELECT: - case ACPI_IVRS_TYPE_ALIAS_START: - - InfoTable = AcpiDmTableInfoIvrs8a; - break; - - /* 8-byte entries, type B */ - - case ACPI_IVRS_TYPE_PAD8: - case ACPI_IVRS_TYPE_EXT_SELECT: - case ACPI_IVRS_TYPE_EXT_START: - - InfoTable = AcpiDmTableInfoIvrs8b; - break; - - /* 8-byte entries, type C */ - - case ACPI_IVRS_TYPE_SPECIAL: - - InfoTable = AcpiDmTableInfoIvrs8c; - break; - - default: - - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, - "IVRS Device Entry"); - return (AE_ERROR); - } - - Status = DtCompileTable (PFieldList, InfoTable, + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIvrsHidInteger, &Subtable); if (ACPI_FAILURE (Status)) { return (Status); } - - DtInsertSubtable (ParentTable, Subtable); } - } + else + { + /* Compile the HID value as a string */ - DtPopSubtable (); + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIvrsHidString, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + } + + DtInsertSubtable (ParentTable, Subtable); + + /* + * Process the CID value. First, get the CID value as a string. + */ + DtCompileOneField ((UINT8 *) &Temp64, *PFieldList, 16, DT_FIELD_TYPE_STRING, 0); + + if (UtIsIdInteger ((UINT8 *) &Temp64)) + { + /* Compile the CID value as an integer */ + + DtCompileOneField ((UINT8 *) &Temp64, *PFieldList, 8, DT_FIELD_TYPE_INTEGER, 0); + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIvrsCidInteger, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + } + else + { + /* Compile the CID value as a string */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIvrsCidString, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + } + + DtInsertSubtable (ParentTable, Subtable); + + /* + * Process the UID value. First, get and decode the "UID Format" field (Integer). + */ + if (!*PFieldList) + { + return (AE_OK); + } + + DtCompileOneField (&Temp8, *PFieldList, 1, DT_FIELD_TYPE_INTEGER, 0); + + switch (Temp8) + { + case ACPI_IVRS_UID_NOT_PRESENT: + break; + + case ACPI_IVRS_UID_IS_INTEGER: + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIvrsUidInteger, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + DtInsertSubtable (ParentTable, Subtable); + break; + + case ACPI_IVRS_UID_IS_STRING: + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIvrsUidString, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + DtInsertSubtable (ParentTable, Subtable); + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_FORMAT, SubtableStart, + "IVRS Device Entry"); + return (AE_ERROR); + } + + default: + + /* All other subtable types come through here */ + break; + } } return (AE_OK); diff --git a/source/compiler/dttable2.c b/source/compiler/dttable2.c index f6efcf3d940b..3a0d8a22607b 100644 --- a/source/compiler/dttable2.c +++ b/source/compiler/dttable2.c @@ -1335,6 +1335,118 @@ DtCompilePptt ( } +/****************************************************************************** + * + * FUNCTION: DtCompilePrmt + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile PRMT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompilePrmt ( + void **List) +{ + ACPI_STATUS Status; + ACPI_TABLE_PRMT_HEADER *PrmtHeader; + ACPI_PRMT_MODULE_INFO *PrmtModuleInfo; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + UINT32 i, j; + + ParentTable = DtPeekSubtable (); + + /* Compile PRMT subtable header */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPrmtHdr, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + DtInsertSubtable (ParentTable, Subtable); + PrmtHeader = ACPI_CAST_PTR (ACPI_TABLE_PRMT_HEADER, Subtable->Buffer); + + for (i = 0; i < PrmtHeader->ModuleInfoCount; i++) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPrmtModule, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + DtInsertSubtable (ParentTable, Subtable); + PrmtModuleInfo = ACPI_CAST_PTR (ACPI_PRMT_MODULE_INFO, Subtable->Buffer); + + for (j = 0; j < PrmtModuleInfo->HandlerInfoCount; j++) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPrmtHandler, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + DtInsertSubtable (ParentTable, Subtable); + } + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileRgrt + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile RGRT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileRgrt ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + + + /* Compile the main table */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoRgrt, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + /* Compile the "Subtable" -- actually just the binary (PNG) image */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoRgrt0, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + return (AE_OK); +} + + /****************************************************************************** * * FUNCTION: DtCompileRsdt @@ -2024,6 +2136,63 @@ DtCompileStao ( } + +/****************************************************************************** + * + * FUNCTION: DtCompileSvkl + * + * PARAMETERS: PFieldList - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile SVKL. + * + * NOTES: SVKL is essentially a flat table, with a small main table and + * a variable number of a single type of subtable. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileSvkl ( + void **List) +{ + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + ACPI_STATUS Status; + + + /* Compile the main table */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoSvkl, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + /* Compile each subtable */ + + while (*PFieldList) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoSvkl0, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + } + + return (AE_OK); +} + + /****************************************************************************** * * FUNCTION: DtCompileTcpa diff --git a/source/compiler/dttemplate.h b/source/compiler/dttemplate.h index fbe68ec9f8f1..224a6a111dc2 100644 --- a/source/compiler/dttemplate.h +++ b/source/compiler/dttemplate.h @@ -174,6 +174,16 @@ const unsigned char TemplateAsf[] = 0x01,0x00 /* 00000070 ".." */ }; +const unsigned char TemplateBdat[] = +{ + 0x42,0x44,0x41,0x54,0x30,0x00,0x00,0x00, /* 00000000 "BDAT0..." */ + 0x01,0xED,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ + 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ + 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x31,0x03,0x21,0x20,0x01,0x08,0x00,0x01, /* 00000020 "1.! ...." */ + 0xF0,0xDE,0xBC,0x9A,0x78,0x56,0x34,0x12 /* 00000028 "....xV4." */ +}; + const unsigned char TemplateBgrt[] = { 0x42,0x47,0x52,0x54,0x38,0x00,0x00,0x00, /* 00000000 "BGRT8..." */ @@ -794,30 +804,72 @@ const unsigned char TemplateIort[] = const unsigned char TemplateIvrs[] = { - 0x49,0x56,0x52,0x53,0xBC,0x00,0x00,0x00, /* 00000000 "IVRS...." */ - 0x01,0x87,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ + 0x49,0x56,0x52,0x53,0x10,0x02,0x00,0x00, /* 00000000 "IVRS...." */ + 0x02,0x6C,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 ".lINTEL " */ 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */ 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ - 0x28,0x05,0x10,0x20,0x00,0x00,0x00,0x00, /* 00000020 "(.. ...." */ + 0x31,0x03,0x21,0x20,0x41,0x30,0x20,0x00, /* 00000020 "1.! A0 ." */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000028 "........" */ - 0x10,0x14,0x34,0x00,0x00,0x00,0x00,0x00, /* 00000030 "..4....." */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000040 "........" */ - 0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00, /* 00000048 "....@..." */ - 0x00,0x00,0x00,0x00,0x42,0x00,0x00,0x00, /* 00000050 "....B..." */ - 0x00,0x00,0x00,0x00,0x48,0x00,0x00,0x00, /* 00000058 "....H..." */ - 0x00,0x00,0x00,0x00,0x20,0x08,0x20,0x00, /* 00000060 ".... . ." */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000068 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000070 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000078 "........" */ - 0x00,0x00,0x00,0x00,0x21,0x04,0x20,0x00, /* 00000080 "....!. ." */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000088 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000090 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000098 "........" */ - 0x00,0x00,0x00,0x00,0x10,0x14,0x18,0x00, /* 000000A0 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A8 "........" */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B0 "........" */ - 0x00,0x00,0x00,0x00 /* 000000B8 "...." */ + 0x10,0xB0,0x64,0x00,0x02,0x00,0x40,0x00, /* 00000030 "..d...@." */ + 0x00,0x00,0xF0,0xFD,0x00,0x00,0x00,0x00, /* 00000038 "........" */ + 0x00,0x00,0x00,0x00,0x6F,0x8F,0x04,0x80, /* 00000040 "....o..." */ + 0x03,0x08,0x00,0x00,0x01,0x08,0x00,0x00, /* 00000048 "........" */ + 0x02,0x08,0x00,0x00,0x04,0xFE,0xFF,0x00, /* 00000050 "........" */ + 0x42,0x00,0xFF,0x00,0x00,0xA5,0x00,0x00, /* 00000058 "B......." */ + 0x43,0x00,0xFF,0x00,0x00,0xA5,0x00,0x00, /* 00000060 "C......." */ + 0x46,0x00,0xFF,0x00,0x44,0x33,0x22,0x11, /* 00000068 "F...D3"." */ + 0x47,0x00,0xFF,0x00,0x44,0x33,0x22,0x11, /* 00000070 "G...D3"." */ + 0x04,0xFF,0xFF,0x00,0x48,0x00,0x00,0x00, /* 00000078 "....H..." */ + 0x00,0xA0,0x00,0x02,0x48,0x00,0x00,0xD7, /* 00000080 "....H..." */ + 0x21,0xA0,0x00,0x01,0x48,0x00,0x00,0x00, /* 00000088 "!...H..." */ + 0x22,0x01,0x00,0x01,0x11,0xB0,0x48,0x00, /* 00000090 "".....H." */ + 0x02,0x00,0x40,0x00,0x00,0x00,0xF0,0xFD, /* 00000098 "..@....." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A0 "........" */ + 0x00,0x02,0x04,0x00,0xDE,0x4A,0x25,0x22, /* 000000A8 ".....J%"" */ + 0xEF,0x73,0x6D,0x20,0x00,0x00,0x00,0x00, /* 000000B0 ".sm ...." */ + 0x00,0x00,0x00,0x00,0x03,0x08,0x00,0x00, /* 000000B8 "........" */ + 0x04,0xFE,0xFF,0x00,0x43,0x00,0xFF,0x00, /* 000000C0 "....C..." */ + 0x00,0xA5,0x00,0x00,0x04,0xFF,0xFF,0x00, /* 000000C8 "........" */ + 0x00,0x00,0x00,0x00,0x48,0x00,0x00,0x00, /* 000000D0 "....H..." */ + 0x00,0xA0,0x00,0x02,0x40,0xB0,0xD4,0x00, /* 000000D8 "....@..." */ + 0x02,0x00,0x40,0x00,0x00,0x00,0xF0,0xFD, /* 000000E0 "..@....." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000E8 "........" */ + 0x00,0x02,0x04,0x00,0xDE,0x4A,0x25,0x22, /* 000000F0 ".....J%"" */ + 0xEF,0x73,0x6D,0x20,0x00,0x00,0x00,0x00, /* 000000F8 ".sm ...." */ + 0x00,0x00,0x00,0x00,0x03,0x08,0x00,0x00, /* 00000100 "........" */ + 0x04,0xFE,0xFF,0x00,0x43,0x00,0xFF,0x00, /* 00000108 "....C..." */ + 0x00,0xA5,0x00,0x00,0x04,0xFF,0xFF,0x00, /* 00000110 "........" */ + 0x00,0x00,0x00,0x00,0x48,0x00,0x00,0x00, /* 00000118 "....H..." */ + 0x00,0xA0,0x00,0x02,0x48,0x00,0x00,0xD7, /* 00000120 "....H..." */ + 0x21,0xA0,0x00,0x01,0x48,0x00,0x00,0x00, /* 00000128 "!...H..." */ + 0x22,0x01,0x00,0x01,0xF0,0xA5,0x00,0x40, /* 00000130 ""......@" */ + 0x49,0x4E,0x54,0x43,0x30,0x30,0x32,0x30, /* 00000138 "INTC0020" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000140 "........" */ + 0x02,0x09,0x5C,0x5F,0x53,0x42,0x2E,0x44, /* 00000148 "..\_SB.D" */ + 0x45,0x56,0x30,0xF0,0xA5,0x00,0x40,0x49, /* 00000150 "EV0...@I" */ + 0x4E,0x54,0x43,0x30,0x30,0x32,0x30,0x00, /* 00000158 "NTC0020." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02, /* 00000160 "........" */ + 0x09,0x5C,0x5F,0x53,0x42,0x2E,0x44,0x45, /* 00000168 ".\_SB.DE" */ + 0x56,0x31,0xF0,0xA5,0x00,0x40,0x49,0x4E, /* 00000170 "V1...@IN" */ + 0x54,0x43,0x30,0x30,0x32,0x30,0x00,0x00, /* 00000178 "TC0020.." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x09, /* 00000180 "........" */ + 0x5C,0x5F,0x53,0x42,0x2E,0x44,0x45,0x56, /* 00000188 "\_SB.DEV" */ + 0x32,0xF0,0xA5,0x00,0x40,0x49,0x4E,0x54, /* 00000190 "2...@INT" */ + 0x43,0x30,0x30,0x32,0x30,0x00,0x00,0x00, /* 00000198 "C0020..." */ + 0x00,0x00,0x00,0x00,0x00,0x02,0x09,0x5C, /* 000001A0 ".......\" */ + 0x5F,0x53,0x42,0x2E,0x44,0x45,0x56,0x33, /* 000001A8 "_SB.DEV3" */ + 0x20,0x0D,0x20,0x00,0x22,0x11,0x00,0x00, /* 000001B0 " . ."..." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001B8 "........" */ + 0xCD,0xAB,0x78,0x56,0x34,0x12,0x00,0x00, /* 000001C0 "..xV4..." */ + 0xDC,0xFE,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001C8 "........" */ + 0x21,0x0D,0x20,0x00,0x22,0x11,0x00,0x00, /* 000001D0 "!. ."..." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001D8 "........" */ + 0xCD,0xAB,0x78,0x56,0x34,0x12,0x00,0x00, /* 000001E0 "..xV4..." */ + 0xDC,0xFE,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001E8 "........" */ + 0x22,0x0D,0x20,0x00,0x22,0x11,0x00,0x00, /* 000001F0 "". ."..." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001F8 "........" */ + 0xCD,0xAB,0x78,0x56,0x34,0x12,0x00,0x00, /* 00000200 "..xV4..." */ + 0xDC,0xFE,0x00,0x00,0x00,0x00,0x00,0x00 /* 00000208 "........" */ }; const unsigned char TemplateLpit[] = @@ -1205,6 +1257,97 @@ const unsigned char TemplatePptt[] = 0x00,0x00 /* 00000070 ".." */ }; +const unsigned char TemplatePrmt[] = +{ + 0x50,0x52,0x4D,0x54,0xB8,0x02,0x00,0x00, /* 00000000 "PRMT...." */ + 0x00,0x13,0x4F,0x45,0x4D,0x43,0x41,0x20, /* 00000008 "..OEMCA " */ + 0x4F,0x45,0x4D,0x43,0x41,0x20,0x20,0x20, /* 00000010 "OEMCA " */ + 0x02,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x17,0x07,0x20,0x20,0xA5,0x61,0x6B,0xB6, /* 00000020 ".. .ak." */ + 0x01,0xA1,0x46,0xED,0xA6,0xA3,0xCA,0xC1, /* 00000028 "..F....." */ + 0xC4,0xD1,0x30,0x1E,0x3C,0x00,0x00,0x00, /* 00000030 "..0.<..." */ + 0x04,0x00,0x00,0x00,0x00,0x00,0xAA,0x00, /* 00000038 "........" */ + 0xC2,0xB3,0x52,0x16,0xA1,0xA7,0xAC,0x46, /* 00000040 "..R....F" */ + 0xAF,0x93,0xDD,0x6D,0xEE,0x44,0x66,0x69, /* 00000048 "...m.Dfi" */ + 0x01,0x00,0x00,0x00,0x03,0x00,0x26,0x00, /* 00000050 "......&." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000058 "........" */ + 0x00,0x00,0x00,0x00,0x2C,0x00,0x5F,0xAD, /* 00000060 "....,._." */ + 0xF2,0xD5,0x47,0xA3,0x3E,0x4D,0x87,0xBC, /* 00000068 "..G.>M.." */ + 0xC2,0xCE,0x63,0x02,0x9C,0xC8,0x90,0xC2, /* 00000070 "..c....." */ + 0x5E,0x8A,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000078 "^......." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000080 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000088 "........" */ + 0x2C,0x00,0xC3,0xAD,0xE7,0xA9,0xD0,0x8C, /* 00000090 ",......." */ + 0x9A,0x42,0x89,0x15,0x10,0x94,0x6E,0xBD, /* 00000098 ".B....n." */ + 0xE3,0x18,0xC0,0xC2,0x5E,0x8A,0x00,0x00, /* 000000A0 "....^..." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A8 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B0 "........" */ + 0x00,0x00,0x00,0x00,0x2C,0x00,0x14,0xC2, /* 000000B8 "....,..." */ + 0x88,0xB6,0x81,0x40,0xEB,0x4E,0x8D,0x26, /* 000000C0 "...@.N.&" */ + 0x1E,0xB5,0xA3,0xBC,0xF1,0x1A,0xF0,0xC2, /* 000000C8 "........" */ + 0x5E,0x8A,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000D0 "^......." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000D8 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000E0 "........" */ + 0x52,0x00,0xA6,0x58,0x2A,0xDC,0x27,0x59, /* 000000E8 "R..X*.'Y" */ + 0x76,0x47,0xB9,0x95,0xD1,0x18,0xA2,0x73, /* 000000F0 "vG.....s" */ + 0x35,0xA2,0x01,0x00,0x00,0x00,0x01,0x00, /* 000000F8 "5......." */ + 0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000100 "&......." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x2C,0x00, /* 00000108 "......,." */ + 0x13,0x2D,0x4F,0x2E,0x40,0x62,0xD0,0x4E, /* 00000110 ".-O.@b.N" */ + 0xA4,0x01,0xC7,0x23,0xFB,0xDC,0x34,0xE8, /* 00000118 "...#..4." */ + 0x90,0x32,0x5E,0x8A,0x00,0x00,0x00,0x00, /* 00000120 ".2^....." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000128 "........" */ + 0xF8,0x7F,0x71,0x8A,0x00,0x00,0x00,0x00, /* 00000130 "..q....." */ + 0x00,0x00,0x2E,0x01,0xD7,0x3E,0xF9,0x0E, /* 00000138 ".....>.." */ + 0xAE,0x14,0x5B,0x42,0x92,0x8F,0xB8,0x5A, /* 00000140 "..[B...Z" */ + 0x62,0x13,0xB5,0x7E,0x01,0x00,0x00,0x00, /* 00000148 "b..~...." */ + 0x06,0x00,0x26,0x00,0x00,0x00,0xE0,0x3F, /* 00000150 "..&....?" */ + 0x71,0x8A,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000158 "q......." */ + 0x2C,0x00,0x3C,0xCD,0x20,0x21,0x8B,0x84, /* 00000160 ",.<. !.." */ + 0x8F,0x4D,0xAB,0xBB,0x4B,0x74,0xCE,0x64, /* 00000168 ".M..Kt.d" */ + 0xAC,0x89,0x4C,0xA6,0x5D,0x8A,0x00,0x00, /* 00000170 "..L.]..." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000178 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000180 "........" */ + 0x00,0x00,0x00,0x00,0x2C,0x00,0xA7,0x35, /* 00000188 "....,..5" */ + 0x09,0xEA,0x6B,0x50,0x59,0x41,0xBB,0xBB, /* 00000190 "..kPYA.." */ + 0x48,0xDE,0xEE,0xCB,0x6F,0x58,0x34,0xA7, /* 00000198 "H...oX4." */ + 0x5D,0x8A,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001A0 "]......." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001A8 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001B0 "........" */ + 0x2C,0x00,0xA9,0xBD,0xD1,0x1B,0x9A,0x90, /* 000001B8 ",......." */ + 0x14,0x46,0x96,0x99,0x25,0xEC,0x0C,0x27, /* 000001C0 ".F..%..'" */ + 0x83,0xF7,0x94,0xA7,0x5D,0x8A,0x00,0x00, /* 000001C8 "....]..." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001D0 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001D8 "........" */ + 0x00,0x00,0x00,0x00,0x2C,0x00,0xE7,0xB4, /* 000001E0 "....,..." */ + 0x28,0x5D,0x67,0x38,0xEE,0x4A,0xAA,0x09, /* 000001E8 "(]g8.J.." */ + 0x51,0xFC,0x28,0x2C,0x3B,0x22,0x9C,0xA6, /* 000001F0 "Q.(,;".." */ + 0x5D,0x8A,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001F8 "]......." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000200 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000208 "........" */ + 0x2C,0x00,0x02,0xB7,0x64,0x4B,0x2B,0x4D, /* 00000210 ",...dK+M" */ + 0xFE,0x4D,0xAC,0x5A,0x0B,0x41,0x10,0xA2, /* 00000218 ".M.Z.A.." */ + 0xCA,0x47,0x48,0xA7,0x5D,0x8A,0x00,0x00, /* 00000220 ".GH.]..." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000228 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000230 "........" */ + 0x00,0x00,0x00,0x00,0x2C,0x00,0xDE,0xFD, /* 00000238 "....,..." */ + 0x0E,0x8A,0xD0,0x78,0xF0,0x45,0xAE,0xA0, /* 00000240 "...x.E.." */ + 0xC2,0x82,0x45,0xC7,0xE1,0xDB,0x98,0xA7, /* 00000248 "..E....." */ + 0x5D,0x8A,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000250 "]......." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000258 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000260 "........" */ + 0x52,0x00,0x2B,0xF4,0x6C,0x5A,0xB4,0x8B, /* 00000268 "R.+.lZ.." */ + 0x2C,0x47,0xA2,0x33,0x5C,0x4D,0xC4,0x03, /* 00000270 ",G.3\M.." */ + 0x3D,0xC7,0x01,0x00,0x00,0x00,0x01,0x00, /* 00000278 "=......." */ + 0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000280 "&......." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x2C,0x00, /* 00000288 "......,." */ + 0x81,0x60,0x46,0xE1,0x62,0x75,0x0F,0x43, /* 00000290 ".`F.bu.C" */ + 0x89,0x6B,0xB0,0xE5,0x23,0xDC,0x33,0x5A, /* 00000298 ".k..#.3Z" */ + 0x90,0x12,0x5D,0x8A,0x00,0x00,0x00,0x00, /* 000002A0 "..]....." */ + 0xE0,0x5F,0x71,0x8A,0x00,0x00,0x00,0x00, /* 000002A8 "._q....." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* 000002B0 "........" */ +}; + const unsigned char TemplateRasf[] = { 0x52,0x41,0x53,0x46,0x30,0x00,0x00,0x00, /* 00000000 "RASF0..." */ @@ -1215,6 +1358,20 @@ const unsigned char TemplateRasf[] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* 00000028 "........" */ }; +const unsigned char TemplateRgrt[] = +{ + 0x52,0x47,0x52,0x54,0x50,0x00,0x00,0x00, /* 00000000 "RGRTP..." */ + 0x01,0x33,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 ".3INTEL " */ + 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ + 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x31,0x03,0x21,0x20,0x01,0x00,0x01,0x00, /* 00000020 "1.! ...." */ + 0xAA,0x01,0x02,0x03,0x04,0x05,0x06,0x07, /* 00000028 "........" */ + 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, /* 00000030 "........" */ + 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, /* 00000038 "........" */ + 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, /* 00000040 "........" */ + 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27 /* 00000048 " !"#$%&'" */ +}; + const unsigned char TemplateRsdp[] = { 0x52,0x53,0x44,0x20,0x50,0x54,0x52,0x20, /* 00000000 "RSD PTR " */ @@ -1475,6 +1632,19 @@ const unsigned char TemplateStao[] = 0x31,0x2E,0x50,0x54,0x31,0x00 /* 00000078 "1.PT1." */ }; +const unsigned char TemplateSvkl[] = +{ + 0x53,0x56,0x4B,0x4C,0x48,0x00,0x00,0x00, /* 00000000 "SVKLH..." */ + 0x04,0xDB,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ + 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ + 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x31,0x03,0x21,0x20,0x02,0x00,0x00,0x00, /* 00000020 "1.! ...." */ + 0x00,0x00,0x00,0x00,0x21,0x43,0xAA,0xAA, /* 00000028 "....!C.." */ + 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000030 "....gE#." */ + 0x00,0x00,0x00,0x00,0x21,0x43,0xBB,0xBB, /* 00000038 "....!C.." */ + 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01 /* 00000040 "....gE#." */ +}; + const unsigned char TemplateTcpa[] = { 0x54,0x43,0x50,0x41,0x64,0x00,0x00,0x00, /* 00000000 "TCPAd..." */ diff --git a/source/compiler/dtutils.c b/source/compiler/dtutils.c index d69ad2fbce33..ba454b31e4fa 100644 --- a/source/compiler/dtutils.c +++ b/source/compiler/dtutils.c @@ -426,6 +426,7 @@ DtGetFieldType ( case ACPI_DMT_NAME6: case ACPI_DMT_NAME8: case ACPI_DMT_STRING: + case ACPI_DMT_IVRS_UNTERMINATED_STRING: Type = DT_FIELD_TYPE_STRING; break; @@ -576,11 +577,13 @@ DtGetFieldLength ( case ACPI_DMT_ACCWIDTH: case ACPI_DMT_CEDT: case ACPI_DMT_IVRS: + case ACPI_DMT_IVRS_DE: case ACPI_DMT_GTDT: case ACPI_DMT_MADT: case ACPI_DMT_PCCT: case ACPI_DMT_PMTT: case ACPI_DMT_PPTT: + case ACPI_DMT_RGRT: case ACPI_DMT_SDEV: case ACPI_DMT_SRAT: case ACPI_DMT_ASF: @@ -660,6 +663,22 @@ DtGetFieldLength ( } break; + case ACPI_DMT_IVRS_UNTERMINATED_STRING: + + Value = DtGetFieldValue (Field); + if (Value) + { + ByteLength = strlen (Value); + } + else + { /* At this point, this is a fatal error */ + + sprintf (AslGbl_MsgBuffer, "Expected \"%s\"", Info->Name); + DtFatal (ASL_MSG_COMPILER_INTERNAL, NULL, AslGbl_MsgBuffer); + return (0); + } + break; + case ACPI_DMT_GAS: ByteLength = sizeof (ACPI_GENERIC_ADDRESS); diff --git a/source/components/executer/exfield.c b/source/components/executer/exfield.c index 585d21cc92cc..7871e3502bee 100644 --- a/source/components/executer/exfield.c +++ b/source/components/executer/exfield.c @@ -295,7 +295,8 @@ AcpiExReadDataFromField ( else if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_REGION_FIELD) && (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS || ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GSBUS || - ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_IPMI)) + ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_IPMI || + ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_RT)) { /* SMBus, GSBus, IPMI serial */ @@ -467,7 +468,8 @@ AcpiExWriteDataToField ( else if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_REGION_FIELD) && (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS || ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GSBUS || - ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_IPMI)) + ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_IPMI || + ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_RT)) { /* SMBus, GSBus, IPMI serial */ diff --git a/source/components/executer/exserial.c b/source/components/executer/exserial.c index 69ce5316dd43..776409db718d 100644 --- a/source/components/executer/exserial.c +++ b/source/components/executer/exserial.c @@ -353,6 +353,12 @@ AcpiExReadSerialBus ( Function = ACPI_READ | (AccessorType << 16); break; + case ACPI_ADR_SPACE_PLATFORM_RT: + + BufferLength = ACPI_PRM_INPUT_BUFFER_SIZE; + Function = ACPI_READ; + break; + default: return_ACPI_STATUS (AE_AML_INVALID_SPACE_ID); } @@ -472,6 +478,12 @@ AcpiExWriteSerialBus ( Function = ACPI_WRITE | (AccessorType << 16); break; + case ACPI_ADR_SPACE_PLATFORM_RT: + + BufferLength = ACPI_PRM_INPUT_BUFFER_SIZE; + Function = ACPI_WRITE; + break; + default: return_ACPI_STATUS (AE_AML_INVALID_SPACE_ID); } diff --git a/source/components/namespace/nsrepair2.c b/source/components/namespace/nsrepair2.c index d3dcd3180eee..40f0634de8c0 100644 --- a/source/components/namespace/nsrepair2.c +++ b/source/components/namespace/nsrepair2.c @@ -565,6 +565,13 @@ AcpiNsRepair_CID ( (*ElementPtr)->Common.ReferenceCount = OriginalRefCount; + + /* + * The OriginalElement holds a reference from the package object + * that represents _HID. Since a new element was created by _HID, + * remove the reference from the _CID package. + */ + AcpiUtRemoveReference (OriginalElement); } ElementPtr++; diff --git a/source/components/utilities/utdelete.c b/source/components/utilities/utdelete.c index 2cf71aee3ac5..624aa6870809 100644 --- a/source/components/utilities/utdelete.c +++ b/source/components/utilities/utdelete.c @@ -443,6 +443,14 @@ AcpiUtDeleteInternalObj ( } break; + case ACPI_TYPE_LOCAL_ADDRESS_HANDLER: + + ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, + "***** Address handler %p\n", Object)); + + AcpiOsDeleteMutex (Object->AddressSpace.ContextMutex); + break; + default: break; diff --git a/source/components/utilities/utprint.c b/source/components/utilities/utprint.c index 7fb55cea0fd5..96a9ea5d7c28 100644 --- a/source/components/utilities/utprint.c +++ b/source/components/utilities/utprint.c @@ -730,7 +730,7 @@ vsnprintf ( case 'X': Type |= ACPI_FORMAT_UPPER; - /* FALLTHROUGH */ + ACPI_FALLTHROUGH; case 'x': diff --git a/source/components/utilities/utuuid.c b/source/components/utilities/utuuid.c index 97ae40be1e38..299353ccea87 100644 --- a/source/components/utilities/utuuid.c +++ b/source/components/utilities/utuuid.c @@ -208,4 +208,52 @@ AcpiUtConvertStringToUuid ( InString[AcpiGbl_MapToUuidOffset[i] + 1]); } } + + +/******************************************************************************* + * + * FUNCTION: AcpiUtConvertUuidToString + * + * PARAMETERS: UuidBuffer - 16-byte UUID buffer + * OutString - 36-byte formatted UUID string + * + * RETURN: Status + * + * DESCRIPTION: Convert 16-byte UUID buffer to 36-byte formatted UUID string + * OutString must be 37 bytes to include null terminator. + * + ******************************************************************************/ + +ACPI_STATUS +AcpiUtConvertUuidToString ( + char *UuidBuffer, + char *OutString) +{ + UINT32 i; + + + if (!UuidBuffer || !OutString) + { + return (AE_BAD_PARAMETER); + } + + for (i = 0; i < UUID_BUFFER_LENGTH; i++) + { + OutString[AcpiGbl_MapToUuidOffset[i]] = + AcpiUtHexToAsciiChar (UuidBuffer[i], 4); + + OutString[AcpiGbl_MapToUuidOffset[i] + 1] = + AcpiUtHexToAsciiChar (UuidBuffer[i], 0); + } + + /* Insert required hyphens (dashes) */ + + OutString[UUID_HYPHEN1_OFFSET] = + OutString[UUID_HYPHEN2_OFFSET] = + OutString[UUID_HYPHEN3_OFFSET] = + OutString[UUID_HYPHEN4_OFFSET] = '-'; + + OutString[UUID_STRING_LENGTH] = 0; /* Null terminate */ + return (AE_OK); +} #endif diff --git a/source/include/acbuffer.h b/source/include/acbuffer.h index 3c541751c0f6..1576afa6ff95 100644 --- a/source/include/acbuffer.h +++ b/source/include/acbuffer.h @@ -359,5 +359,14 @@ typedef struct acpi_pld_info #define ACPI_PLD_GET_HORIZ_OFFSET(dword) ACPI_GET_BITS (dword, 16, ACPI_16BIT_MASK) #define ACPI_PLD_SET_HORIZ_OFFSET(dword,value) ACPI_SET_BITS (dword, 16, ACPI_16BIT_MASK, value) /* Offset 128+16=144, Len 16 */ +/* Panel position defined in _PLD section of ACPI Specification 6.3 */ + +#define ACPI_PLD_PANEL_TOP 0 +#define ACPI_PLD_PANEL_BOTTOM 1 +#define ACPI_PLD_PANEL_LEFT 2 +#define ACPI_PLD_PANEL_RIGHT 3 +#define ACPI_PLD_PANEL_FRONT 4 +#define ACPI_PLD_PANEL_BACK 5 +#define ACPI_PLD_PANEL_UNKNOWN 6 #endif /* ACBUFFER_H */ diff --git a/source/include/acconfig.h b/source/include/acconfig.h index b320a97e3a23..a580852698ab 100644 --- a/source/include/acconfig.h +++ b/source/include/acconfig.h @@ -333,6 +333,7 @@ #define ACPI_MAX_GSBUS_DATA_SIZE 255 #define ACPI_MAX_GSBUS_BUFFER_SIZE ACPI_SERIAL_HEADER_SIZE + ACPI_MAX_GSBUS_DATA_SIZE +#define ACPI_PRM_INPUT_BUFFER_SIZE 26 /* _SxD and _SxW control methods */ diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h index f02f32399c07..9b584d674d88 100644 --- a/source/include/acdisasm.h +++ b/source/include/acdisasm.h @@ -266,6 +266,8 @@ typedef enum ACPI_DMT_HMAT, ACPI_DMT_IORTMEM, ACPI_DMT_IVRS, + ACPI_DMT_IVRS_DE, + ACPI_DMT_IVRS_UNTERMINATED_STRING, ACPI_DMT_LPIT, ACPI_DMT_MADT, ACPI_DMT_NFIT, @@ -274,6 +276,7 @@ typedef enum ACPI_DMT_PMTT, ACPI_DMT_PMTT_VENDOR, ACPI_DMT_PPTT, + ACPI_DMT_RGRT, ACPI_DMT_SDEI, ACPI_DMT_SDEV, ACPI_DMT_SLIC, @@ -365,6 +368,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoBdat[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[]; @@ -465,16 +469,20 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortHdr3[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortMap[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortPad[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[]; -extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[]; -extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs01[]; -extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHware1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHware23[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsMemory[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsCidString[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsCidInteger[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHid[]; -extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHid1[]; -extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsUidString[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsUidInteger[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHidString[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHidInteger[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[]; @@ -546,7 +554,12 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPpttHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtModule[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHandler[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRasf[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[]; @@ -580,6 +593,8 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat4[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat5[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoStao[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoStaoStr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoSvkl[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoSvkl0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaClient[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaServer[]; @@ -774,6 +789,14 @@ void AcpiDmDumpPptt ( ACPI_TABLE_HEADER *Table); +void +AcpiDmDumpPrmt ( + ACPI_TABLE_HEADER *Table); + +void +AcpiDmDumpRgrt ( + ACPI_TABLE_HEADER *Table); + UINT32 AcpiDmDumpRsdp ( ACPI_TABLE_HEADER *Table); @@ -806,6 +829,10 @@ void AcpiDmDumpStao ( ACPI_TABLE_HEADER *Table); +void +AcpiDmDumpSvkl ( + ACPI_TABLE_HEADER *Table); + void AcpiDmDumpTcpa ( ACPI_TABLE_HEADER *Table); diff --git a/source/include/acpixf.h b/source/include/acpixf.h index 0733ac413548..dc459c9a0bcc 100644 --- a/source/include/acpixf.h +++ b/source/include/acpixf.h @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20210331 +#define ACPI_CA_VERSION 0x20210604 #include "acconfig.h" #include "actypes.h" diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h index af10c774d4c6..027e6085cbe1 100644 --- a/source/include/actbinfo.h +++ b/source/include/actbinfo.h @@ -156,6 +156,7 @@ #define ACPI_GAS_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_GENERIC_ADDRESS,f) #define ACPI_HDR_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_HEADER,f) #define ACPI_RSDP_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_RSDP,f) +#define ACPI_BDAT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_BDAT,f) #define ACPI_BERT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_BERT,f) #define ACPI_BGRT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_BGRT,f) #define ACPI_BOOT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_BOOT,f) @@ -183,6 +184,7 @@ #define ACPI_PDTT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_PDTT,f) #define ACPI_PMTT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_PMTT,f) #define ACPI_RASF_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_RASF,f) +#define ACPI_RGRT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_RGRT,f) #define ACPI_S3PT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_S3PT,f) #define ACPI_SBST_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_SBST,f) #define ACPI_SDEI_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_SDEI,f) @@ -192,6 +194,7 @@ #define ACPI_SPMI_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_SPMI,f) #define ACPI_SRAT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_SRAT,f) #define ACPI_STAO_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_STAO,f) +#define ACPI_SVKL_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_SVKL,f) #define ACPI_TCPA_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TCPA_HDR,f) #define ACPI_TPM2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TPM2,f) #define ACPI_TPM23_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TPM23,f) @@ -334,6 +337,9 @@ #define ACPI_PPTT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PPTT_CACHE,f) #define ACPI_PPTT1A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PPTT_CACHE_V1,f) #define ACPI_PPTT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PPTT_ID,f) +#define ACPI_PRMTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_PRMT_HEADER,f) +#define ACPI_PRMT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PRMT_MODULE_INFO,f) +#define ACPI_PRMT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PRMT_HANDLER_INFO,f) #define ACPI_S3PTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_FPDT_HEADER,f) #define ACPI_S3PT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_S3PT_RESUME,f) #define ACPI_S3PT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_S3PT_SUSPEND,f) @@ -353,6 +359,7 @@ #define ACPI_SRAT3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SRAT_GICC_AFFINITY,f) #define ACPI_SRAT4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SRAT_GIC_ITS_AFFINITY,f) #define ACPI_SRAT5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SRAT_GENERIC_AFFINITY,f) +#define ACPI_SVKL0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SVKL_KEY,f) #define ACPI_TCPA_CLIENT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TCPA_CLIENT,f) #define ACPI_TCPA_SERVER_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TCPA_SERVER,f) #define ACPI_TPM2A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TPM2_TRAILER,f) @@ -398,6 +405,8 @@ #define ACPI_IORT6_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_RMR,f,o) #define ACPI_IORTA_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_MEMORY_ACCESS,f,o) #define ACPI_IORTM_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_ID_MAPPING,f,o) +#define ACPI_IVRS_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IVRS_HEADER,f,o) +#define ACPI_IVRSDE_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IVRS_DE_HEADER,f,o) #define ACPI_LPITH_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_LPIT_HEADER,f,o) #define ACPI_MADT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_MADT,f,o) #define ACPI_MADT0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_APIC,f,o) diff --git a/source/include/actbl1.h b/source/include/actbl1.h index 437a122b1a6a..136ebf129389 100644 --- a/source/include/actbl1.h +++ b/source/include/actbl1.h @@ -523,9 +523,19 @@ typedef struct acpi_cedt_header enum AcpiCedtType { ACPI_CEDT_TYPE_CHBS = 0, - ACPI_CEDT_TYPE_RESERVED = 1 + ACPI_CEDT_TYPE_CFMWS = 1, + ACPI_CEDT_TYPE_RESERVED = 2, }; +/* Values for version field above */ + +#define ACPI_CEDT_CHBS_VERSION_CXL11 (0) +#define ACPI_CEDT_CHBS_VERSION_CXL20 (1) + +/* Values for length field above */ + +#define ACPI_CEDT_CHBS_LENGTH_CXL11 (0x2000) +#define ACPI_CEDT_CHBS_LENGTH_CXL20 (0x10000) /* * CEDT subtables @@ -545,6 +555,37 @@ typedef struct acpi_cedt_chbs } ACPI_CEDT_CHBS; +/* 1: CXL Fixed Memory Window Structure */ + +typedef struct acpi_cedt_cfmws +{ + ACPI_CEDT_HEADER Header; + UINT32 Reserved1; + UINT64 BaseHpa; + UINT64 WindowSize; + UINT8 InterleaveWays; + UINT8 InterleaveArithmetic; + UINT16 Reserved2; + UINT32 Granularity; + UINT16 Restrictions; + UINT16 QtgId; + UINT32 InterleaveTargets[]; + +} ACPI_CEDT_CFMWS; + +/* Values for Interleave Arithmetic field above */ + +#define ACPI_CEDT_CFMWS_ARITHMETIC_MODULO (0) + +/* Values for Restrictions field above */ + +#define ACPI_CEDT_CFMWS_RESTRICT_TYPE2 (1) +#define ACPI_CEDT_CFMWS_RESTRICT_TYPE3 (1<<1) +#define ACPI_CEDT_CFMWS_RESTRICT_VOLATILE (1<<2) +#define ACPI_CEDT_CFMWS_RESTRICT_PMEM (1<<3) +#define ACPI_CEDT_CFMWS_RESTRICT_FIXED (1<<4) + + /******************************************************************************* * * CPEP - Corrected Platform Error Polling table (ACPI 4.0) diff --git a/source/include/actbl2.h b/source/include/actbl2.h index 71c39e86295c..cb237a6b0076 100644 --- a/source/include/actbl2.h +++ b/source/include/actbl2.h @@ -168,6 +168,7 @@ * file. Useful because they make it more difficult to inadvertently type in * the wrong signature. */ +#define ACPI_SIG_BDAT "BDAT" /* BIOS Data ACPI Table */ #define ACPI_SIG_IORT "IORT" /* IO Remapping Table */ #define ACPI_SIG_IVRS "IVRS" /* I/O Virtualization Reporting Structure */ #define ACPI_SIG_LPIT "LPIT" /* Low Power Idle Table */ @@ -183,11 +184,14 @@ #define ACPI_SIG_PHAT "PHAT" /* Platform Health Assessment Table */ #define ACPI_SIG_PMTT "PMTT" /* Platform Memory Topology Table */ #define ACPI_SIG_PPTT "PPTT" /* Processor Properties Topology Table */ +#define ACPI_SIG_PRMT "PRMT" /* Platform Runtime Mechanism Table */ #define ACPI_SIG_RASF "RASF" /* RAS Feature table */ +#define ACPI_SIG_RGRT "RGRT" /* Regulatory Graphics Resource Table */ #define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */ #define ACPI_SIG_SDEI "SDEI" /* Software Delegated Exception Interface Table */ #define ACPI_SIG_SDEV "SDEV" /* Secure Devices table */ #define ACPI_SIG_NHLT "NHLT" /* Non-HDAudio Link Table */ +#define ACPI_SIG_SVKL "SVKL" /* Storage Volume Key Location Table */ /* @@ -209,6 +213,23 @@ */ +/******************************************************************************* + * + * BDAT - BIOS Data ACPI Table + * + * Conforms to "BIOS Data ACPI Table", Interface Specification v4.0 Draft 5 + * Nov 2020 + * + ******************************************************************************/ + +typedef struct acpi_table_bdat +{ + ACPI_TABLE_HEADER Header; + ACPI_GENERIC_ADDRESS Gas; + +} ACPI_TABLE_BDAT; + + /******************************************************************************* * * IORT - IO Remapping Table @@ -649,6 +670,11 @@ typedef struct acpi_ivrs_device_hid } ACPI_IVRS_DEVICE_HID; +/* Values for UidType above */ + +#define ACPI_IVRS_UID_NOT_PRESENT 0 +#define ACPI_IVRS_UID_IS_INTEGER 1 +#define ACPI_IVRS_UID_IS_STRING 2 /* 0x20, 0x21, 0x22: I/O Virtualization Memory Definition Block (IVMD) */ @@ -1034,6 +1060,22 @@ typedef struct acpi_madt_multiproc_wakeup } ACPI_MADT_MULTIPROC_WAKEUP; +#define ACPI_MULTIPROC_WAKEUP_MB_OS_SIZE 2032 +#define ACPI_MULTIPROC_WAKEUP_MB_FIRMWARE_SIZE 2048 + +typedef struct acpi_madt_multiproc_wakeup_mailbox +{ + UINT16 Command; + UINT16 Reserved; /* reserved - must be zero */ + UINT32 ApicId; + UINT64 WakeupVector; + UINT8 ReservedOs[ACPI_MULTIPROC_WAKEUP_MB_OS_SIZE]; /* reserved for OS use */ + UINT8 ReservedFirmware[ACPI_MULTIPROC_WAKEUP_MB_FIRMWARE_SIZE]; /* reserved for firmware use */ + +} ACPI_MADT_MULTIPROC_WAKEUP_MAILBOX; + +#define ACPI_MP_WAKE_COMMAND_WAKEUP 1 + /* * Common flags fields for MADT subtables @@ -2100,6 +2142,52 @@ typedef struct acpi_pptt_id } ACPI_PPTT_ID; +/******************************************************************************* + * + * PRMT - Platform Runtime Mechanism Table + * Version 1 + * + ******************************************************************************/ + +typedef struct acpi_table_prmt +{ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + +} ACPI_TABLE_PRMT; + +typedef struct acpi_table_prmt_header +{ + UINT8 PlatformGuid[16]; + UINT32 ModuleInfoOffset; + UINT32 ModuleInfoCount; + +} ACPI_TABLE_PRMT_HEADER; + +typedef struct acpi_prmt_module_info +{ + UINT16 Revision; + UINT16 Length; + UINT8 ModuleGuid[16]; + UINT16 MajorRev; + UINT16 MinorRev; + UINT16 HandlerInfoCount; + UINT32 HandlerInfoOffset; + UINT64 MmioListPointer; + +} ACPI_PRMT_MODULE_INFO; + +typedef struct acpi_prmt_handler_info +{ + UINT16 Revision; + UINT16 Length; + UINT8 HandlerGuid[16]; + UINT64 HandlerAddress; + UINT64 StaticDataBufferAddress; + UINT64 AcpiParamBufferAddress; + +} ACPI_PRMT_HANDLER_INFO; + + /******************************************************************************* * * RASF - RAS Feature Table (ACPI 5.0) @@ -2209,6 +2297,36 @@ enum AcpiRasfStatus #define ACPI_RASF_STATUS (0x1F<<3) +/******************************************************************************* + * + * RGRT - Regulatory Graphics Resource Table + * Version 1 + * + * Conforms to "ACPI RGRT" available at: + * https://microsoft.github.io/mu/dyn/mu_plus/MsCorePkg/AcpiRGRT/feature_acpi_rgrt/ + * + ******************************************************************************/ + +typedef struct acpi_table_rgrt +{ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + UINT16 Version; + UINT8 ImageType; + UINT8 Reserved; + UINT8 Image[0]; + +} ACPI_TABLE_RGRT; + +/* ImageType values */ + +enum AcpiRgrtImageType +{ + ACPI_RGRT_TYPE_RESERVED0 = 0, + ACPI_RGRT_IMAGE_TYPE_PNG = 1, + ACPI_RGRT_TYPE_RESERVED = 2 /* 2 and greater are reserved */ +}; + + /******************************************************************************* * * SBST - Smart Battery Specification Table @@ -2371,6 +2489,44 @@ typedef struct acpi_sdev_pcie_path } ACPI_SDEV_PCIE_PATH; +/******************************************************************************* + * + * SVKL - Storage Volume Key Location Table (ACPI 6.4) + * From: "Guest-Host-Communication Interface (GHCI) for Intel + * Trust Domain Extensions (Intel TDX)". + * Version 1 + * + ******************************************************************************/ + +typedef struct acpi_table_svkl +{ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + UINT32 Count; + +} ACPI_TABLE_SVKL; + +typedef struct acpi_svkl_key +{ + UINT16 Type; + UINT16 Format; + UINT32 Size; + UINT64 Address; + +} ACPI_SVKL_KEY; + +enum acpi_svkl_type +{ + ACPI_SVKL_TYPE_MAIN_STORAGE = 0, + ACPI_SVKL_TYPE_RESERVED = 1 /* 1 and greater are reserved */ +}; + +enum acpi_svkl_format +{ + ACPI_SVKL_FORMAT_RAW_BINARY = 0, + ACPI_SVKL_FORMAT_RESERVED = 1 /* 1 and greater are reserved */ +}; + + /* Reset to default packing */ #pragma pack() diff --git a/source/include/acutils.h b/source/include/acutils.h index 4d4854227907..791b7d9ce562 100644 --- a/source/include/acutils.h +++ b/source/include/acutils.h @@ -1268,6 +1268,11 @@ void AcpiUtConvertStringToUuid ( char *InString, UINT8 *UuidBuffer); + +ACPI_STATUS +AcpiUtConvertUuidToString ( + char *UuidBuffer, + char *OutString); #endif #endif /* _ACUTILS_H */ diff --git a/source/tools/acpiexec/aeinstall.c b/source/tools/acpiexec/aeinstall.c index e39c683db265..1d32443b1568 100644 --- a/source/tools/acpiexec/aeinstall.c +++ b/source/tools/acpiexec/aeinstall.c @@ -216,6 +216,7 @@ static ACPI_ADR_SPACE_TYPE SpaceIdList[] = ACPI_ADR_SPACE_GPIO, ACPI_ADR_SPACE_GSBUS, ACPI_ADR_SPACE_PLATFORM_COMM, + ACPI_ADR_SPACE_PLATFORM_RT, ACPI_ADR_SPACE_FIXED_HARDWARE, ACPI_ADR_SPACE_USER_DEFINED1, ACPI_ADR_SPACE_USER_DEFINED2 diff --git a/source/tools/acpiexec/aeregion.c b/source/tools/acpiexec/aeregion.c index faae73472f46..decd17f7fcff 100644 --- a/source/tools/acpiexec/aeregion.c +++ b/source/tools/acpiexec/aeregion.c @@ -205,6 +205,7 @@ AeRegionHandler ( UINT32 Value1; UINT32 Value2; ACPI_RESOURCE *Resource; + char Uuid[ACPI_PRM_INPUT_BUFFER_SIZE + 1]; ACPI_FUNCTION_NAME (AeRegionHandler); @@ -446,6 +447,7 @@ AeRegionHandler ( * default values. Note: ASLTS will depend on these values. */ case ACPI_ADR_SPACE_PLATFORM_COMM: /* ACPI 6.3 */ + if (AcpiGbl_DisplayRegionAccess) { AcpiOsPrintf ("AcpiExec: PCC Write : Addr %.4X Width %X\n", @@ -457,6 +459,21 @@ AeRegionHandler ( } return (AE_OK); + case ACPI_ADR_SPACE_PLATFORM_RT: + + AcpiOsPrintf ("Acpiexec: PRM %s invoked\n", + (Function & ACPI_IO_MASK) ? "Write" : "Read "); + + if ((Function & ACPI_IO_MASK) == ACPI_WRITE) + { + AcpiUtConvertUuidToString((char *) Buffer + 10, Uuid); + AcpiOsPrintf ("Mode: %u GUID: %s\n", Buffer[0], Uuid); + } + + /* Unpack the input buffer and print the contents for debug */ + + break; + default: break; } diff --git a/source/tools/acpisrc/astable.c b/source/tools/acpisrc/astable.c index 7c457f03b7c8..86fe13d8260e 100644 --- a/source/tools/acpisrc/astable.c +++ b/source/tools/acpisrc/astable.c @@ -640,6 +640,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { * Acpi table definition names. */ {"ACPI_TABLE_ASF", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_BDAT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_BERT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_BGRT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_BOOT", SRC_TYPE_STRUCT}, @@ -676,12 +677,15 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_PHAT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_PMTT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_PPTT", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_PRMT", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_RGRT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_RSDP", SRC_TYPE_STRUCT}, {"ACPI_TABLE_RSDT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MCHI", SRC_TYPE_STRUCT}, {"ACPI_TABLE_S3PT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_SBST", SRC_TYPE_STRUCT}, {"ACPI_TABLE_SDEV", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_SVKL", SRC_TYPE_STRUCT}, {"ACPI_TABLE_SLIC", SRC_TYPE_STRUCT}, {"ACPI_TABLE_SLIT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_SPCR", SRC_TYPE_STRUCT}, @@ -804,6 +808,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_MADT_INTERRUPT_SOURCE", SRC_TYPE_STRUCT}, {"ACPI_MADT_NMI_SOURCE", SRC_TYPE_STRUCT}, {"ACPI_MADT_MULTIPROC_WAKEUP", SRC_TYPE_STRUCT}, + {"ACPI_MADT_MULTIPROC_WAKEUP_MAILBOX", SRC_TYPE_STRUCT}, {"ACPI_MADT_PROCESSOR_APIC", SRC_TYPE_STRUCT}, {"ACPI_MPST_COMPONENT", SRC_TYPE_STRUCT}, {"ACPI_MPST_DATA_HDR", SRC_TYPE_STRUCT}, @@ -845,6 +850,9 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_PPTT_CACHE_V1", SRC_TYPE_STRUCT}, {"ACPI_PPTT_ID", SRC_TYPE_STRUCT}, {"ACPI_PPTT_PROCESSOR", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_PRMT_HEADER", SRC_TYPE_STRUCT}, + {"ACPI_PRMT_MODULE_INFO", SRC_TYPE_STRUCT}, + {"ACPI_PRMT_HANDLER_INFO", SRC_TYPE_STRUCT}, {"ACPI_RSDP_COMMON", SRC_TYPE_STRUCT}, {"ACPI_RSDP_EXTENSION", SRC_TYPE_STRUCT}, {"ACPI_S3PT_RESUME", SRC_TYPE_STRUCT}, @@ -853,6 +861,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_SDEV_NAMESPACE", SRC_TYPE_STRUCT}, {"ACPI_SDEV_PCIE", SRC_TYPE_STRUCT}, {"ACPI_SDEV_PCIE_PATH", SRC_TYPE_STRUCT}, + {"ACPI_SVKL_KEY", SRC_TYPE_STRUCT}, {"ACPI_SRAT_CPU_AFFINITY", SRC_TYPE_STRUCT}, {"ACPI_SRAT_HEADER", SRC_TYPE_STRUCT}, {"ACPI_SRAT_GIC_ITS_AFFINITY", SRC_TYPE_STRUCT}, From 34cfdff1f386b2d7bf0a8ea873acf604753991e6 Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Fri, 30 Jul 2021 20:05:50 -0400 Subject: [PATCH 05/10] Import ACPICA 20210730 --- changes.txt | 42 +++++ generate/release/build.sh | 1 - source/common/adisasm.c | 2 +- source/common/ahtable.c | 1 + source/common/dmtable.c | 147 +++++++++++++++++ source/common/dmtbdump1.c | 219 +++++++++++++++++++++++++ source/common/dmtbdump3.c | 14 +- source/common/dmtbinfo1.c | 138 ++++++++++++++++ source/common/dmtbinfo3.c | 3 +- source/compiler/aslmethod.c | 83 +++++++++- source/compiler/aslutils.c | 6 +- source/compiler/dtcompiler.h | 5 + source/compiler/dtfield.c | 4 +- source/compiler/dttable1.c | 217 ++++++++++++++++++++++++ source/compiler/dttable2.c | 26 +-- source/compiler/dttemplate.h | 94 +++++++++++ source/compiler/dtutils.c | 10 +- source/components/dispatcher/dswexec.c | 2 +- source/include/acdisasm.h | 22 +++ source/include/acnames.h | 1 + source/include/acoutput.h | 2 +- source/include/acpixf.h | 2 +- source/include/actbinfo.h | 15 ++ source/include/actbl1.h | 16 +- source/include/actbl2.h | 194 ++++++++++++++++++++++ source/include/actbl3.h | 6 + source/tools/acpihelp/ahdecode.c | 4 +- source/tools/acpisrc/astable.c | 16 ++ 28 files changed, 1260 insertions(+), 32 deletions(-) diff --git a/changes.txt b/changes.txt index 31b4eaff62fb..64ca5cccdce4 100644 --- a/changes.txt +++ b/changes.txt @@ -1,3 +1,45 @@ +---------------------------------------- +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. + + ---------------------------------------- 04 June 2021. Summary of changes for version 20210604: diff --git a/generate/release/build.sh b/generate/release/build.sh index 825f525ee74a..ba73227dd620 100755 --- a/generate/release/build.sh +++ b/generate/release/build.sh @@ -407,7 +407,6 @@ generate_binary_package() # mkdir $TEMP_DIR cp -r documents/changes.txt $TEMP_DIR/changes.txt - cp documents/aslcompiler.pdf $TEMP_DIR cp libraries/acpibin.exe $TEMP_DIR cp libraries/acpidump.exe $TEMP_DIR cp libraries/acpiexec.exe $TEMP_DIR diff --git a/source/common/adisasm.c b/source/common/adisasm.c index 27a175a626b0..f549bd5aa3ea 100644 --- a/source/common/adisasm.c +++ b/source/common/adisasm.c @@ -478,7 +478,7 @@ AdDisassembleOneTable ( AcpiOsPrintf (" * ACPI Data Table [%4.4s]\n *\n", Table->Signature); AcpiOsPrintf (" * Format: [HexOffset DecimalOffset ByteLength] " - "FieldName : FieldValue\n */\n\n"); + "FieldName : FieldValue (in hex)\n */\n\n"); AcpiDmDumpDataTable (Table); fprintf (stderr, "Acpi Data Table [%4.4s] decoded\n", diff --git a/source/common/ahtable.c b/source/common/ahtable.c index 80f248d2e72a..d7ce88a973f2 100644 --- a/source/common/ahtable.c +++ b/source/common/ahtable.c @@ -199,6 +199,7 @@ AcpiAhGetTableInfo ( */ const AH_TABLE AcpiGbl_SupportedTables[] = { + {ACPI_SIG_AEST, "Arm Error Source Table"}, {ACPI_SIG_ASF, "Alert Standard Format Table"}, {ACPI_SIG_BDAT, "BIOS Data ACPI Table"}, {ACPI_SIG_BERT, "Boot Error Record Table"}, diff --git a/source/common/dmtable.c b/source/common/dmtable.c index 7a4e87e123a7..1fa9ba167cee 100644 --- a/source/common/dmtable.c +++ b/source/common/dmtable.c @@ -174,6 +174,55 @@ AcpiAhGetTableInfo ( /* These tables map a subtable type to a description string */ +static const char *AcpiDmAestResourceNames[] = +{ + "Cache Resource", + "TLB Resource", + "Generic Resource", + "Unknown Resource Type" /* Reserved */ +}; + +static const char *AcpiDmAestSubnames[] = +{ + "Processor Error Node", + "Memory Error Node", + "SMMU Error Node", + "Vendor-defined Error Node", + "GIC Error Node", + "Unknown Subtable Type" /* Reserved */ +}; + +static const char *AcpiDmAestCacheNames[] = +{ + "Data Cache", + "Instruction Cache", + "Unified Cache", + "Unknown Cache Type" /* Reserved */ +}; + +static const char *AcpiDmAestGicNames[] = +{ + "GIC CPU", + "GIC Distributor", + "GIC Redistributor", + "GIC ITS", + "Unknown GIC Interface Type" /* Reserved */ +}; + +static const char *AcpiDmAestXfaceNames[] = +{ + "System Register Interface", + "Memory Mapped Interface", + "Unknown Interface Type" /* Reserved */ +}; + +static const char *AcpiDmAestXruptNames[] = +{ + "Fault Handling Interrupt", + "Error Recovery Interrupt", + "Unknown Interrupt Type" /* Reserved */ +}; + static const char *AcpiDmAsfSubnames[] = { "ASF Information", @@ -533,6 +582,7 @@ static const char *AcpiDmGasAccessWidth[] = const ACPI_DMTABLE_DATA AcpiDmTableData[] = { + {ACPI_SIG_AEST, NULL, AcpiDmDumpAest, DtCompileAest, TemplateAest}, {ACPI_SIG_ASF, NULL, AcpiDmDumpAsf, DtCompileAsf, TemplateAsf}, {ACPI_SIG_BDAT, AcpiDmTableInfoBdat, NULL, NULL, TemplateBdat}, {ACPI_SIG_BERT, AcpiDmTableInfoBert, NULL, NULL, TemplateBert}, @@ -1006,6 +1056,10 @@ AcpiDmDumpTable ( case ACPI_DMT_RGRT: case ACPI_DMT_SDEV: case ACPI_DMT_SRAT: + case ACPI_DMT_AEST: + case ACPI_DMT_AEST_RES: + case ACPI_DMT_AEST_XFACE: + case ACPI_DMT_AEST_XRUPT: case ACPI_DMT_ASF: case ACPI_DMT_HESTNTYP: case ACPI_DMT_FADTPM: @@ -1035,6 +1089,8 @@ AcpiDmDumpTable ( break; case ACPI_DMT_UINT32: + case ACPI_DMT_AEST_CACHE: + case ACPI_DMT_AEST_GIC: case ACPI_DMT_NAME4: case ACPI_DMT_SIG: case ACPI_DMT_LPIT: @@ -1087,6 +1143,12 @@ AcpiDmDumpTable ( ByteLength = 128; break; + case ACPI_DMT_WPBT_UNICODE: + + ByteLength = SubtableLength; + CurrentOffset = sizeof (ACPI_TABLE_WPBT); + break; + case ACPI_DMT_UNICODE: case ACPI_DMT_BUFFER: case ACPI_DMT_RAW_BUFFER: @@ -1418,6 +1480,90 @@ AcpiDmDumpTable ( LastOutputBlankLine = TRUE; break; + case ACPI_DMT_AEST: + + /* AEST subtable types */ + + Temp8 = *Target; + if (Temp8 > ACPI_AEST_NODE_TYPE_RESERVED) + { + Temp8 = ACPI_AEST_NODE_TYPE_RESERVED; + } + + AcpiOsPrintf (UINT8_FORMAT, *Target, + AcpiDmAestSubnames[Temp8]); + break; + + case ACPI_DMT_AEST_CACHE: + + /* AEST cache resource subtable */ + + Temp32 = *Target; + if (Temp32 > ACPI_AEST_CACHE_RESERVED) + { + Temp32 = ACPI_AEST_CACHE_RESERVED; + } + + AcpiOsPrintf (UINT32_FORMAT, *Target, + AcpiDmAestCacheNames[Temp32]); + break; + + case ACPI_DMT_AEST_GIC: + + /* AEST GIC error subtable */ + + Temp32 = *Target; + if (Temp32 > ACPI_AEST_GIC_RESERVED) + { + Temp32 = ACPI_AEST_GIC_RESERVED; + } + + AcpiOsPrintf (UINT32_FORMAT, *Target, + AcpiDmAestGicNames[Temp32]); + break; + + case ACPI_DMT_AEST_RES: + + /* AEST resource type subtable */ + + Temp8 = *Target; + if (Temp8 > ACPI_AEST_RESOURCE_RESERVED) + { + Temp8 = ACPI_AEST_RESOURCE_RESERVED; + } + + AcpiOsPrintf (UINT8_FORMAT, *Target, + AcpiDmAestResourceNames[Temp8]); + break; + + case ACPI_DMT_AEST_XFACE: + + /* AEST interface structure types */ + + Temp8 = *Target; + if (Temp8 > ACPI_AEST_XFACE_RESERVED) + { + Temp8 = ACPI_AEST_XFACE_RESERVED; + } + + AcpiOsPrintf (UINT8_FORMAT, *Target, + AcpiDmAestXfaceNames[Temp8]); + break; + + case ACPI_DMT_AEST_XRUPT: + + /* AEST interrupt structure types */ + + Temp8 = *Target; + if (Temp8 > ACPI_AEST_XRUPT_RESERVED) + { + Temp8 = ACPI_AEST_XRUPT_RESERVED; + } + + AcpiOsPrintf (UINT8_FORMAT, *Target, + AcpiDmAestXruptNames[Temp8]); + break; + case ACPI_DMT_ASF: /* ASF subtable types */ @@ -1704,6 +1850,7 @@ AcpiDmDumpTable ( break; case ACPI_DMT_UNICODE: + case ACPI_DMT_WPBT_UNICODE: if (ByteLength == 0) { diff --git a/source/common/dmtbdump1.c b/source/common/dmtbdump1.c index 8fc53acf49d8..3a97af4680f7 100644 --- a/source/common/dmtbdump1.c +++ b/source/common/dmtbdump1.c @@ -160,6 +160,225 @@ ACPI_MODULE_NAME ("dmtbdump1") +/******************************************************************************* + * + * FUNCTION: AcpiDmDumpAest + * + * PARAMETERS: Table - A AEST table + * + * RETURN: None + * + * DESCRIPTION: Format the contents of a AEST table + * + * NOTE: Assumes the following table structure: + * For all AEST Error Nodes: + * 1) An AEST Error Node, followed immediately by: + * 2) Any node-specific data + * 3) An Interface Structure (one) + * 4) A list (array) of Interrupt Structures + * + * AEST - ARM Error Source table. Conforms to: + * ACPI for the Armv8 RAS Extensions 1.1 Platform Design Document Sep 2020 + * + ******************************************************************************/ + +void +AcpiDmDumpAest ( + ACPI_TABLE_HEADER *Table) +{ + ACPI_STATUS Status; + UINT32 Offset = sizeof (ACPI_TABLE_HEADER); + ACPI_AEST_HEADER *Subtable; + ACPI_AEST_HEADER *NodeHeader; + ACPI_AEST_PROCESSOR *ProcessorSubtable; + ACPI_DMTABLE_INFO *InfoTable; + ACPI_SIZE Length; + UINT8 Type; + + + /* Very small, generic main table. AEST consists of mostly subtables */ + + while (Offset < Table->Length) + { + NodeHeader = ACPI_ADD_PTR (ACPI_AEST_HEADER, Table, Offset); + + /* Dump the common error node (subtable) header */ + + Status = AcpiDmDumpTable (Table->Length, Offset, NodeHeader, + NodeHeader->Length, AcpiDmTableInfoAestHdr); + if (ACPI_FAILURE (Status)) + { + return; + } + + Type = NodeHeader->Type; + + /* Setup the node-specific subtable based on the header Type field */ + + switch (Type) + { + case ACPI_AEST_PROCESSOR_ERROR_NODE: + InfoTable = AcpiDmTableInfoAestProcError; + Length = sizeof (ACPI_AEST_PROCESSOR); + break; + + case ACPI_AEST_MEMORY_ERROR_NODE: + InfoTable = AcpiDmTableInfoAestMemError; + Length = sizeof (ACPI_AEST_MEMORY); + break; + + case ACPI_AEST_SMMU_ERROR_NODE: + InfoTable = AcpiDmTableInfoAestSmmuError; + Length = sizeof (ACPI_AEST_SMMU); + break; + + case ACPI_AEST_VENDOR_ERROR_NODE: + InfoTable = AcpiDmTableInfoAestVendorError; + Length = sizeof (ACPI_AEST_VENDOR); + break; + + case ACPI_AEST_GIC_ERROR_NODE: + InfoTable = AcpiDmTableInfoAestGicError; + Length = sizeof (ACPI_AEST_GIC); + break; + + /* Error case below */ + default: + + AcpiOsPrintf ("\n**** Unknown AEST Error Subtable type 0x%X\n", + Type); + return; + } + + /* Point past the common header (to the node-specific data) */ + + Offset += sizeof (ACPI_AEST_HEADER); + Subtable = ACPI_ADD_PTR (ACPI_AEST_HEADER, Table, Offset); + AcpiOsPrintf ("\n"); + + /* Dump the node-specific subtable */ + + Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, Length, + InfoTable); + if (ACPI_FAILURE (Status)) + { + return; + } + AcpiOsPrintf ("\n"); + + if (Type == ACPI_AEST_PROCESSOR_ERROR_NODE) + { + /* + * Special handling for PROCESSOR_ERROR_NODE subtables + * (to handle the Resource Substructure via the ResourceType + * field). + */ + + /* Point past the node-specific data */ + + Offset += Length; + ProcessorSubtable = ACPI_CAST_PTR (ACPI_AEST_PROCESSOR, Subtable); + + switch (ProcessorSubtable->ResourceType) + { + /* Setup the Resource Substructure subtable */ + + case ACPI_AEST_CACHE_RESOURCE: + InfoTable = AcpiDmTableInfoAestCacheRsrc; + Length = sizeof (ACPI_AEST_PROCESSOR_CACHE); + break; + + case ACPI_AEST_TLB_RESOURCE: + InfoTable = AcpiDmTableInfoAestTlbRsrc; + Length = sizeof (ACPI_AEST_PROCESSOR_TLB); + break; + + case ACPI_AEST_GENERIC_RESOURCE: + InfoTable = AcpiDmTableInfoAestGenRsrc; + Length = sizeof (ACPI_AEST_PROCESSOR_GENERIC); + AcpiOsPrintf ("Generic Resource Type (%X) is not supported at this time\n", + ProcessorSubtable->ResourceType); + break; + + /* Error case below */ + default: + AcpiOsPrintf ("\n**** Unknown AEST Processor Resource type 0x%X\n", + ProcessorSubtable->ResourceType); + return; + } + + ProcessorSubtable = ACPI_ADD_PTR (ACPI_AEST_PROCESSOR, Table, + Offset); + + /* Dump the resource substructure subtable */ + + Status = AcpiDmDumpTable (Table->Length, Offset, ProcessorSubtable, + Length, InfoTable); + if (ACPI_FAILURE (Status)) + { + return; + } + + AcpiOsPrintf ("\n"); + } + + /* Point past the resource substructure or the node-specific data */ + + Offset += Length; + + /* Dump the interface structure, required to be present */ + + Subtable = ACPI_ADD_PTR (ACPI_AEST_HEADER, Table, Offset); + if (Subtable->Type >= ACPI_AEST_XFACE_RESERVED) + { + AcpiOsPrintf ("\n**** Unknown AEST Node Interface type 0x%X\n", + Subtable->Type); + return; + } + + Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, + sizeof (ACPI_AEST_NODE_INTERFACE), AcpiDmTableInfoAestXface); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Point past the interface structure */ + + AcpiOsPrintf ("\n"); + Offset += sizeof (ACPI_AEST_NODE_INTERFACE); + + /* Dump the entire interrupt structure array, if present */ + + if (NodeHeader->NodeInterruptOffset) + { + Length = NodeHeader->NodeInterruptCount; + Subtable = ACPI_ADD_PTR (ACPI_AEST_HEADER, Table, Offset); + + while (Length) + { + /* Dump the interrupt structure */ + + Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, + sizeof (ACPI_AEST_NODE_INTERRUPT), + AcpiDmTableInfoAestXrupt); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Point to the next interrupt structure */ + + Offset += sizeof (ACPI_AEST_NODE_INTERRUPT); + Subtable = ACPI_ADD_PTR (ACPI_AEST_HEADER, Table, Offset); + Length--; + AcpiOsPrintf ("\n"); + } + } + } +} + + /******************************************************************************* * * FUNCTION: AcpiDmDumpAsf diff --git a/source/common/dmtbdump3.c b/source/common/dmtbdump3.c index e81a703b43cc..981a51e0e8fb 100644 --- a/source/common/dmtbdump3.c +++ b/source/common/dmtbdump3.c @@ -681,7 +681,7 @@ AcpiDmDumpViot ( ACPI_TABLE_VIOT *Viot; ACPI_VIOT_HEADER *ViotHeader; UINT16 Length; - UINT16 Offset; + UINT32 Offset; ACPI_DMTABLE_INFO *InfoTable; /* Main table */ @@ -833,13 +833,12 @@ AcpiDmDumpWpbt ( { ACPI_STATUS Status; ACPI_TABLE_WPBT *Subtable; - UINT32 Length = Table->Length; UINT16 ArgumentsLength; /* Dump the main table */ - Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoWpbt); + Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoWpbt); if (ACPI_FAILURE (Status)) { return; @@ -850,8 +849,11 @@ AcpiDmDumpWpbt ( Subtable = ACPI_CAST_PTR (ACPI_TABLE_WPBT, Table); ArgumentsLength = Subtable->ArgumentsLength; - /* Dump the arguments buffer */ + /* Dump the arguments buffer if present */ - (void) AcpiDmDumpTable (Table->Length, 0, Table, ArgumentsLength, - AcpiDmTableInfoWpbt0); + if (ArgumentsLength) + { + (void) AcpiDmDumpTable (Table->Length, 0, Table, ArgumentsLength, + AcpiDmTableInfoWpbt0); + } } diff --git a/source/common/dmtbinfo1.c b/source/common/dmtbinfo1.c index fbf3980dec3b..b30cafa9f773 100644 --- a/source/common/dmtbinfo1.c +++ b/source/common/dmtbinfo1.c @@ -191,6 +191,144 @@ */ +/******************************************************************************* + * + * AEST - ARM Error Source table. Conforms to: + * ACPI for the Armv8 RAS Extensions 1.1 Platform Design Document Sep 2020 + * + ******************************************************************************/ + +/* Common Subtable header (one per Subtable) */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoAestHdr[] = +{ + {ACPI_DMT_AEST, ACPI_AESTH_OFFSET (Type), "Subtable Type", 0}, + {ACPI_DMT_UINT16, ACPI_AESTH_OFFSET (Length), "Length", DT_LENGTH}, + {ACPI_DMT_UINT8, ACPI_AESTH_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT32, ACPI_AESTH_OFFSET (NodeSpecificOffset), "Node Specific Offset", 0}, + {ACPI_DMT_UINT32, ACPI_AESTH_OFFSET (NodeInterfaceOffset), "Node Interface Offset", 0}, + {ACPI_DMT_UINT32, ACPI_AESTH_OFFSET (NodeInterruptOffset), "Node Interrupt Array Offset", 0}, + {ACPI_DMT_UINT32, ACPI_AESTH_OFFSET (NodeInterruptCount), "Node Interrupt Array Count", 0}, + {ACPI_DMT_UINT64, ACPI_AESTH_OFFSET (TimestampRate), "Timestamp Rate", 0}, + {ACPI_DMT_UINT64, ACPI_AESTH_OFFSET (Reserved1), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_AESTH_OFFSET (ErrorInjectionRate), "Error Injection Rate", 0}, + ACPI_DMT_TERMINATOR +}; + +/* + * AEST subtables (nodes) + */ + +/* 0: Processor Error */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoAestProcError[] = +{ + {ACPI_DMT_UINT32, ACPI_AEST0_OFFSET (ProcessorId), "Processor ID", 0}, + {ACPI_DMT_AEST_RES, ACPI_AEST0_OFFSET (ResourceType), "Resource Type", 0}, + {ACPI_DMT_UINT8, ACPI_AEST0_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT8, ACPI_AEST0_OFFSET (Flags), "Flags (decoded Below)", 0}, + {ACPI_DMT_FLAG0, ACPI_AEST0_FLAG_OFFSET (Flags, 0), "Global", 0}, + {ACPI_DMT_FLAG1, ACPI_AEST0_FLAG_OFFSET (Flags, 0), "Shared", 0}, + {ACPI_DMT_UINT8, ACPI_AEST0_OFFSET (Revision), "Revision", 0}, + {ACPI_DMT_UINT64, ACPI_AEST0_OFFSET (ProcessorAffinity), "Processor Affinity Structure", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 0RT: Processor Cache Resource */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoAestCacheRsrc[] = +{ + {ACPI_DMT_UINT32, ACPI_AEST0A_OFFSET (CacheReference), "Cache Reference", 0}, + {ACPI_DMT_UINT32, ACPI_AEST0A_OFFSET (Reserved), "Reserved", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 1RT: ProcessorTLB Resource */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoAestTlbRsrc[] = +{ + {ACPI_DMT_UINT32, ACPI_AEST0B_OFFSET (TlbLevel), "TLB Level", 0}, + {ACPI_DMT_UINT32, ACPI_AEST0B_OFFSET (Reserved), "Reserved", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 2RT: Processor Generic Resource */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoAestGenRsrc[] = +{ + {ACPI_DMT_RAW_BUFFER, 0, "Resource", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 1: Memory Error */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoAestMemError[] = +{ + {ACPI_DMT_UINT32, ACPI_AEST1_OFFSET (SratProximityDomain), "Srat Proximity Domain", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 2: Smmu Error */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoAestSmmuError[] = +{ + {ACPI_DMT_UINT32, ACPI_AEST2_OFFSET (IortNodeReference), "Iort Node Reference", 0}, + {ACPI_DMT_UINT32, ACPI_AEST2_OFFSET (SubcomponentReference), "Subcomponent Reference", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 3: Vendor Defined */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoAestVendorError[] = +{ + {ACPI_DMT_UINT32, ACPI_AEST3_OFFSET (AcpiHid), "ACPI HID", 0}, + {ACPI_DMT_UINT32, ACPI_AEST3_OFFSET (AcpiUid), "ACPI UID", 0}, + {ACPI_DMT_BUF16, ACPI_AEST3_OFFSET (VendorSpecificData), "Vendor Specific Data", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 4: Gic Error */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoAestGicError[] = +{ + {ACPI_DMT_AEST_GIC, ACPI_AEST4_OFFSET (InterfaceType), "GIC Interface Type", 0}, + {ACPI_DMT_UINT32, ACPI_AEST4_OFFSET (InstanceId), "Instance ID", 0}, + ACPI_DMT_TERMINATOR +}; + +/* AestXface: Node Interface Structure */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface[] = +{ + {ACPI_DMT_AEST_XFACE, ACPI_AEST0D_OFFSET (Type), "Interface Type", 0}, + {ACPI_DMT_UINT24, ACPI_AEST0D_OFFSET (Reserved[0]), "Reserved", 0}, + {ACPI_DMT_UINT32, ACPI_AEST0D_OFFSET (Flags), "Flags (decoded below)", 0}, + {ACPI_DMT_FLAG0, ACPI_AEST0D_FLAG_OFFSET (Flags, 0), "Shared Interface", 0}, + {ACPI_DMT_FLAG1, ACPI_AEST0D_FLAG_OFFSET (Flags, 0), "Clear MISCx Registers", 0}, + {ACPI_DMT_UINT64, ACPI_AEST0D_OFFSET (Address), "Address", 0}, + {ACPI_DMT_UINT32, ACPI_AEST0D_OFFSET (ErrorRecordIndex), "Error Record Index", 0}, + {ACPI_DMT_UINT32, ACPI_AEST0D_OFFSET (ErrorRecordCount), "Error Record Count", 0}, + {ACPI_DMT_UINT64, ACPI_AEST0D_OFFSET (ErrorRecordImplemented),"Error Record Implemented", 0}, + {ACPI_DMT_UINT64, ACPI_AEST0D_OFFSET (ErrorStatusReporting), "Error Status Reporting", 0}, + {ACPI_DMT_UINT64, ACPI_AEST0D_OFFSET (AddressingMode), "Addressing Mode", 0}, + ACPI_DMT_TERMINATOR +}; + +/* AestXrupt: Node Interrupt Structure */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoAestXrupt[] = +{ + {ACPI_DMT_AEST_XRUPT, ACPI_AEST0E_OFFSET (Type), "Interrupt Type", 0}, + {ACPI_DMT_UINT16, ACPI_AEST0E_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT8, ACPI_AEST0E_OFFSET (Flags), "Flags (decoded below)", 0}, + {ACPI_DMT_FLAG0, ACPI_AEST0E_FLAG_OFFSET (Flags, 0), "Level Triggered", 0}, + {ACPI_DMT_UINT32, ACPI_AEST0E_OFFSET (Gsiv), "Gsiv", 0}, + {ACPI_DMT_UINT8, ACPI_AEST0E_OFFSET (IortId), "IortId", 0}, + {ACPI_DMT_UINT24, ACPI_AEST0E_OFFSET (Reserved1[0]), "Reserved", 0}, + ACPI_DMT_TERMINATOR +}; + + /******************************************************************************* * * ASF - Alert Standard Format table (Signature "ASF!") diff --git a/source/common/dmtbinfo3.c b/source/common/dmtbinfo3.c index b04350198590..e573676a8882 100644 --- a/source/common/dmtbinfo3.c +++ b/source/common/dmtbinfo3.c @@ -759,7 +759,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoWpbt[] = ACPI_DMTABLE_INFO AcpiDmTableInfoWpbt0[] = { - {ACPI_DMT_UNICODE, sizeof (ACPI_TABLE_WPBT), "Command-line Arguments", 0}, + {ACPI_DMT_WPBT_UNICODE, ACPI_WPBT2_OFFSET (UnicodeString), "Command-line Arguments", DT_DESCRIBES_OPTIONAL}, ACPI_DMT_TERMINATOR }; @@ -834,6 +834,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoGeneric[][2] = ACPI_DM_GENERIC_ENTRY (ACPI_DMT_STRING, "String"), ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UNICODE, "Unicode"), ACPI_DM_GENERIC_ENTRY (ACPI_DMT_BUFFER, "Buffer"), + ACPI_DM_GENERIC_ENTRY (ACPI_DMT_BUF16, "BUF16"), ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UUID, "GUID"), ACPI_DM_GENERIC_ENTRY (ACPI_DMT_STRING, "DevicePath"), ACPI_DM_GENERIC_ENTRY (ACPI_DMT_LABEL, "Label"), diff --git a/source/compiler/aslmethod.c b/source/compiler/aslmethod.c index e9aa7f2dd0c2..5bec65e86be6 100644 --- a/source/compiler/aslmethod.c +++ b/source/compiler/aslmethod.c @@ -205,6 +205,10 @@ MtMethodAnalysisWalkBegin ( UINT8 ActualArgs = 0; BOOLEAN HidExists; BOOLEAN AdrExists; + BOOLEAN PrsExists; + BOOLEAN CrsExists; + BOOLEAN SrsExists; + BOOLEAN DisExists; /* Build cross-reference output file if requested */ @@ -536,8 +540,8 @@ MtMethodAnalysisWalkBegin ( if (!HidExists && !AdrExists) { - AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op, - "Device object requires a _HID or _ADR in same scope"); + AslError (ASL_ERROR, ASL_MSG_MISSING_DEPENDENCY, Op, + "Device object requires a _HID or _ADR"); } else if (HidExists && AdrExists) { @@ -549,6 +553,81 @@ MtMethodAnalysisWalkBegin ( AslError (ASL_WARNING, ASL_MSG_MULTIPLE_TYPES, Op, "Device object requires either a _HID or _ADR, but not both"); } + + /* + * Check usage of _CRS, _DIS, _PRS, and _SRS objects (July 2021). + * + * Under the Device Object: + * + * 1) If _DIS is present, must have a _CRS, _PRS, and _SRS + * 2) If _PRS is present, must have a _CRS and _SRS + * 3) If _SRS is present, must have a _CRS and _PRS + */ + CrsExists = ApFindNameInDeviceTree (METHOD_NAME__CRS, Op); + DisExists = ApFindNameInDeviceTree (METHOD_NAME__DIS, Op); + PrsExists = ApFindNameInDeviceTree (METHOD_NAME__PRS, Op); + SrsExists = ApFindNameInDeviceTree (METHOD_NAME__SRS, Op); + + /* 1) If _DIS is present, must have a _CRS, _PRS, and _SRS */ + + if (DisExists) + { + if (!CrsExists) + { + AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op, + "_DIS is missing a _CRS, requires a _CRS, _PRS, and a _SRS"); + } + + if (!PrsExists) + { + AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op, + "_DIS is missing a _PRS, requires a _CRS, _PRS, and a _SRS"); + } + + if (!SrsExists) + { + AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op, + "_DIS is missing a _SRS, requires a _CRS, _PRS, and a _SRS"); + } + } + + /* 2) If _PRS is present, must have a _CRS and _SRS */ + + if (PrsExists) + { + if (!CrsExists) + { + AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op, + "_PRS is missing a _CRS, requires a _CRS and a _SRS"); + } + + if (!SrsExists) + { + AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op, + "_PRS is missing a _SRS, requires a _CRS and a _SRS"); + } + } + + /* 3) If _SRS is present, must have a _CRS and _PRS */ + + if (SrsExists) + { + if (!CrsExists) + { + AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op, + "_SRS is missing a _CRS, requires a _CRS and a _PRS"); + } + if (!PrsExists) + { + AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op, + "_SRS is missing a _PRS, requires a _CRS and a _PRS"); + } + if (!DisExists) + { + AslError (ASL_REMARK, ASL_MSG_MISSING_DEPENDENCY, Op, + "_SRS is missing a _DIS"); + } + } break; case PARSEOP_EVENT: diff --git a/source/compiler/aslutils.c b/source/compiler/aslutils.c index 44631957ca8e..c4325c3b253a 100644 --- a/source/compiler/aslutils.c +++ b/source/compiler/aslutils.c @@ -434,18 +434,20 @@ UtDisplaySupportedTables ( printf ("\nACPI tables supported by iASL version %8.8X:\n" - " (Compiler, Disassembler, Template Generator)\n\n", + " (Compiler, Disassembler, Template Generator)\n", ACPI_CA_VERSION); /* All ACPI tables with the common table header */ - printf ("\n Supported ACPI tables:\n"); + printf ("\nKnown/Supported ACPI tables:\n"); for (TableData = AcpiGbl_SupportedTables, i = 1; TableData->Signature; TableData++, i++) { printf ("%8u) %s %s\n", i, TableData->Signature, TableData->Description); } + + printf ("\nTotal %u ACPI tables\n\n", i-1); } diff --git a/source/compiler/dtcompiler.h b/source/compiler/dtcompiler.h index 4f96680843fd..6d3dbefaa85d 100644 --- a/source/compiler/dtcompiler.h +++ b/source/compiler/dtcompiler.h @@ -565,6 +565,10 @@ ACPI_STATUS DtCompileRsdp ( DT_FIELD **PFieldList); +ACPI_STATUS +DtCompileAest ( + void **PFieldList); + ACPI_STATUS DtCompileAsf ( void **PFieldList); @@ -753,6 +757,7 @@ DtGetGenericTableInfo ( /* ACPI Table templates */ +extern const unsigned char TemplateAest[]; extern const unsigned char TemplateAsf[]; extern const unsigned char TemplateBoot[]; extern const unsigned char TemplateBdat[]; diff --git a/source/compiler/dtfield.c b/source/compiler/dtfield.c index 729791d7acde..f4c7114743cb 100644 --- a/source/compiler/dtfield.c +++ b/source/compiler/dtfield.c @@ -434,14 +434,14 @@ DtCompileInteger ( { if (Value != 1) { - DtError (ASL_WARNING, ASL_MSG_RESERVED_FIELD, Field, + DtError (ASL_ERROR, ASL_MSG_RESERVED_FIELD, Field, "Must be one, setting to one"); Value = 1; } } else if (Value != 0) { - DtError (ASL_WARNING, ASL_MSG_RESERVED_FIELD, Field, + DtError (ASL_ERROR, ASL_MSG_RESERVED_FIELD, Field, "Must be zero, setting to zero"); Value = 0; } diff --git a/source/compiler/dttable1.c b/source/compiler/dttable1.c index bf710e31c133..2e6a856912cd 100644 --- a/source/compiler/dttable1.c +++ b/source/compiler/dttable1.c @@ -170,6 +170,223 @@ static ACPI_DMTABLE_INFO TableInfoDmarPciPath[] = }; +/****************************************************************************** + * + * FUNCTION: DtCompileAest + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile AEST. + * + * NOTE: Assumes the following table structure: + * For all AEST Error Nodes: + * 1) An AEST Error Node, followed immediately by: + * 2) Any node-specific data + * 3) An Interface Structure (one) + * 4) A list (array) of Interrupt Structures, the count as specified + * in the NodeInterruptCount field of the Error Node header. + * + * AEST - ARM Error Source table. Conforms to: + * ACPI for the Armv8 RAS Extensions 1.1 Platform Design Document Sep 2020 + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileAest ( + void **List) +{ + ACPI_AEST_HEADER *ErrorNodeHeader; + ACPI_AEST_PROCESSOR *AestProcessor; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + ACPI_DMTABLE_INFO *InfoTable; + ACPI_STATUS Status; + UINT32 i; + UINT32 Offset; + DT_FIELD **PFieldList = (DT_FIELD **) List; + + + while (*PFieldList) + { + /* Compile the common error node header */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoAestHdr, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + /* Everything past the error node header will be a subtable */ + + DtPushSubtable (Subtable); + + /* + * Compile the node-specific structure (Based on the error + * node header Type field) + */ + ErrorNodeHeader = ACPI_CAST_PTR (ACPI_AEST_HEADER, Subtable->Buffer); + + /* Point past the common error node header */ + + Offset = sizeof (ACPI_AEST_HEADER); + ErrorNodeHeader->NodeSpecificOffset = Offset; + + /* Decode the error node type */ + + switch (ErrorNodeHeader->Type) + { + case ACPI_AEST_PROCESSOR_ERROR_NODE: + + InfoTable = AcpiDmTableInfoAestProcError; + break; + + case ACPI_AEST_MEMORY_ERROR_NODE: + + InfoTable = AcpiDmTableInfoAestMemError; + break; + + case ACPI_AEST_SMMU_ERROR_NODE: + + InfoTable = AcpiDmTableInfoAestSmmuError; + break; + + case ACPI_AEST_VENDOR_ERROR_NODE: + + InfoTable = AcpiDmTableInfoAestVendorError; + break; + + case ACPI_AEST_GIC_ERROR_NODE: + + InfoTable = AcpiDmTableInfoAestGicError; + break; + + /* Error case below */ + default: + AcpiOsPrintf ("Unknown AEST Subtable Type: %X\n", + ErrorNodeHeader->Type); + return (AE_ERROR); + } + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + /* Point past the node-specific structure */ + + Offset += Subtable->Length; + ErrorNodeHeader->NodeInterfaceOffset = Offset; + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + /* Compile any additional node-specific substructures */ + + if (ErrorNodeHeader->Type == ACPI_AEST_PROCESSOR_ERROR_NODE) + { + /* + * Special handling for PROCESSOR_ERROR_NODE subtables + * (to handle the Resource Substructure via the ResourceType + * field). + */ + AestProcessor = ACPI_CAST_PTR (ACPI_AEST_PROCESSOR, + Subtable->Buffer); + + switch (AestProcessor->ResourceType) + { + case ACPI_AEST_CACHE_RESOURCE: + + InfoTable = AcpiDmTableInfoAestCacheRsrc; + break; + + case ACPI_AEST_TLB_RESOURCE: + + InfoTable = AcpiDmTableInfoAestTlbRsrc; + break; + + case ACPI_AEST_GENERIC_RESOURCE: + + InfoTable = AcpiDmTableInfoAestGenRsrc; + AcpiOsPrintf ("Generic Resource Type (%X) is not supported at this time\n", + AestProcessor->ResourceType); + return (AE_ERROR); + + /* Error case below */ + default: + AcpiOsPrintf ("Unknown AEST Processor Resource Type: %X\n", + AestProcessor->ResourceType); + return (AE_ERROR); + } + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + /* Point past the resource substructure subtable */ + + Offset += Subtable->Length; + ErrorNodeHeader->NodeInterfaceOffset = Offset; + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + } + + /* Compile the (required) node interface structure */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoAestXface, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ErrorNodeHeader->NodeInterruptOffset = 0; + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + /* Compile each of the node interrupt structures */ + + if (ErrorNodeHeader->NodeInterruptCount) + { + /* Point to the first interrupt structure */ + + Offset += Subtable->Length; + ErrorNodeHeader->NodeInterruptOffset = Offset; + } + + /* Compile each of the interrupt structures */ + + for (i = 0; i < ErrorNodeHeader->NodeInterruptCount; i++) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoAestXrupt, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + } + + /* Prepare for the next AEST Error node */ + + DtPopSubtable (); + } + + return (AE_OK); +} + + /****************************************************************************** * * FUNCTION: DtCompileAsf diff --git a/source/compiler/dttable2.c b/source/compiler/dttable2.c index 3a0d8a22607b..fb41ac87dc6e 100644 --- a/source/compiler/dttable2.c +++ b/source/compiler/dttable2.c @@ -2678,13 +2678,11 @@ DtCompileWpbt ( DT_SUBTABLE *ParentTable; ACPI_TABLE_WPBT *Table; ACPI_STATUS Status; - UINT16 Length; /* Compile the main table */ - Status = DtCompileTable (PFieldList, AcpiDmTableInfoWpbt, - &Subtable); + Status = DtCompileTable (PFieldList, AcpiDmTableInfoWpbt, &Subtable); if (ACPI_FAILURE (Status)) { return (Status); @@ -2692,11 +2690,23 @@ DtCompileWpbt ( ParentTable = DtPeekSubtable (); DtInsertSubtable (ParentTable, Subtable); + Table = ACPI_CAST_PTR (ACPI_TABLE_WPBT, ParentTable->Buffer); + + /* + * Exit now if there are no arguments specified. This is indicated by: + * The "Command-line Arguments" field has not been specified (if specified, + * it will be the last field in the field list -- after the main table). + * Set the Argument Length in the main table to zero. + */ + if (!*PFieldList) + { + Table->ArgumentsLength = 0; + return (AE_OK); + } /* Compile the argument list subtable */ - Status = DtCompileTable (PFieldList, AcpiDmTableInfoWpbt0, - &Subtable); + Status = DtCompileTable (PFieldList, AcpiDmTableInfoWpbt0, &Subtable); if (ACPI_FAILURE (Status)) { return (Status); @@ -2704,11 +2714,7 @@ DtCompileWpbt ( /* Extract the length of the Arguments buffer, insert into main table */ - Length = (UINT16) Subtable->TotalLength; - Table = ACPI_CAST_PTR (ACPI_TABLE_WPBT, ParentTable->Buffer); - Table->ArgumentsLength = Length; - - ParentTable = DtPeekSubtable (); + Table->ArgumentsLength = (UINT16) Subtable->TotalLength; DtInsertSubtable (ParentTable, Subtable); return (AE_OK); } diff --git a/source/compiler/dttemplate.h b/source/compiler/dttemplate.h index 224a6a111dc2..24c8c6f93e5d 100644 --- a/source/compiler/dttemplate.h +++ b/source/compiler/dttemplate.h @@ -155,6 +155,100 @@ /* Templates for ACPI data tables */ +const unsigned char TemplateAest[] = +{ + 0x41,0x45,0x53,0x54,0xCC,0x02,0x00,0x00, /* 00000000 "AEST...." */ + 0x01,0x2A,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 ".*INTEL " */ + 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ + 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x04,0x06,0x21,0x20,0x00,0x80,0x00,0x00, /* 00000020 "..! ...." */ + 0x2C,0x00,0x00,0x00,0x44,0x00,0x00,0x00, /* 00000028 ",...D..." */ + 0x74,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000030 "t......." */ + 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000038 "....gE#." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000040 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000048 "........" */ + 0xCD,0xFE,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000050 "........" */ + 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000058 "....gE#." */ + 0x33,0x33,0x22,0x22,0x00,0x00,0x00,0x00, /* 00000060 "33""...." */ + 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00, /* 00000068 "........" */ + 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000070 "....gE#." */ + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000078 "........" */ + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000080 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000088 "........" */ + 0x11,0x11,0x11,0x01,0x00,0x00,0x00,0x00, /* 00000090 "........" */ + 0x01,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x78, /* 00000098 ".......x" */ + 0x56,0x00,0x00,0x00,0x00,0x74,0x00,0x00, /* 000000A0 "V....t.." */ + 0x2C,0x00,0x00,0x00,0x44,0x00,0x00,0x00, /* 000000A8 ",...D..." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B0 "........" */ + 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 000000B8 "....gE#." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000C0 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000C8 "........" */ + 0x11,0x11,0x00,0x00,0x01,0x00,0x01,0x00, /* 000000D0 "........" */ + 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 000000D8 "....gE#." */ + 0x67,0x67,0x67,0x67,0x00,0x00,0x00,0x00, /* 000000E0 "gggg...." */ + 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, /* 000000E8 "........" */ + 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 000000F0 "....gE#." */ + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000000F8 "........" */ + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000100 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000108 "........" */ + 0x11,0x11,0x11,0x01,0x00,0x00,0x00,0x00, /* 00000110 "........" */ + 0x01,0x60,0x00,0x00,0x2C,0x00,0x00,0x00, /* 00000118 ".`..,..." */ + 0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000120 "0......." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000128 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000130 "........" */ + 0x00,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x89, /* 00000138 "........" */ + 0x67,0x45,0x23,0x01,0xAA,0xAA,0x00,0x00, /* 00000140 "gE#....." */ + 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000148 "........" */ + 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000150 "....gE#." */ + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000158 "........" */ + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000160 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000168 "........" */ + 0x11,0x11,0x11,0x01,0x00,0x00,0x00,0x00, /* 00000170 "........" */ + 0x02,0x64,0x00,0x00,0x2C,0x00,0x00,0x00, /* 00000178 ".d..,..." */ + 0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000180 "4......." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000188 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000190 "........" */ + 0x00,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x89, /* 00000198 "........" */ + 0x67,0x45,0x23,0x01,0x55,0x55,0x55,0x55, /* 000001A0 "gE#.UUUU" */ + 0x66,0x66,0x66,0x66,0x01,0x00,0x00,0x00, /* 000001A8 "ffff...." */ + 0x03,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x89, /* 000001B0 "........" */ + 0x67,0x45,0x23,0x01,0x00,0x00,0x00,0x00, /* 000001B8 "gE#....." */ + 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000001C0 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001C8 "........" */ + 0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x01, /* 000001D0 "........" */ + 0x00,0x00,0x00,0x00,0x03,0x74,0x00,0x00, /* 000001D8 ".....t.." */ + 0x2C,0x00,0x00,0x00,0x44,0x00,0x00,0x00, /* 000001E0 ",...D..." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001E8 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001F0 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001F8 "........" */ + 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000200 "....gE#." */ + 0x33,0x33,0x33,0x33,0x44,0x44,0x44,0x44, /* 00000208 "3333DDDD" */ + 0x12,0x23,0x34,0x45,0x56,0x67,0x78,0x89, /* 00000210 ".#4EVgx." */ + 0x9A,0xAB,0xBC,0xCD,0xDE,0xEF,0xFF,0x55, /* 00000218 ".......U" */ + 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00, /* 00000220 "........" */ + 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000228 "....gE#." */ + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000230 "........" */ + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000238 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000240 "........" */ + 0x11,0x11,0x11,0x01,0x00,0x00,0x00,0x00, /* 00000248 "........" */ + 0x04,0x7C,0x00,0x00,0x2C,0x00,0x00,0x00, /* 00000250 ".|..,..." */ + 0x34,0x00,0x00,0x00,0x64,0x00,0x00,0x00, /* 00000258 "4...d..." */ + 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000260 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000268 "........" */ + 0x00,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x89, /* 00000270 "........" */ + 0x67,0x45,0x23,0x01,0x03,0x00,0x00,0x00, /* 00000278 "gE#....." */ + 0x88,0x88,0x77,0x77,0x00,0x00,0x00,0x00, /* 00000280 "..ww...." */ + 0x03,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x89, /* 00000288 "........" */ + 0x67,0x45,0x23,0x01,0x00,0x00,0x00,0x00, /* 00000290 "gE#....." */ + 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000298 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000002A0 "........" */ + 0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x01, /* 000002A8 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000002B0 "........" */ + 0xBB,0xBB,0xAA,0xAA,0xCC,0x00,0x00,0x00, /* 000002B8 "........" */ + 0x01,0x00,0x00,0x01,0xEF,0xCD,0xAB,0x78, /* 000002C0 ".......x" */ + 0x56,0x00,0x00,0x00 /* 000002C8 "V..." */ +}; + const unsigned char TemplateAsf[] = { 0x41,0x53,0x46,0x21,0x72,0x00,0x00,0x00, /* 00000000 "ASF!r..." */ diff --git a/source/compiler/dtutils.c b/source/compiler/dtutils.c index ba454b31e4fa..7d706da6f0fa 100644 --- a/source/compiler/dtutils.c +++ b/source/compiler/dtutils.c @@ -452,6 +452,7 @@ DtGetFieldType ( break; case ACPI_DMT_UNICODE: + case ACPI_DMT_WPBT_UNICODE: Type = DT_FIELD_TYPE_UNICODE; break; @@ -586,6 +587,10 @@ DtGetFieldLength ( case ACPI_DMT_RGRT: case ACPI_DMT_SDEV: case ACPI_DMT_SRAT: + case ACPI_DMT_AEST: + case ACPI_DMT_AEST_RES: + case ACPI_DMT_AEST_XFACE: + case ACPI_DMT_AEST_XRUPT: case ACPI_DMT_ASF: case ACPI_DMT_HESTNTYP: case ACPI_DMT_FADTPM: @@ -616,6 +621,8 @@ DtGetFieldLength ( break; case ACPI_DMT_UINT32: + case ACPI_DMT_AEST_CACHE: + case ACPI_DMT_AEST_GIC: case ACPI_DMT_NAME4: case ACPI_DMT_SIG: case ACPI_DMT_LPIT: @@ -734,12 +741,13 @@ DtGetFieldLength ( break; case ACPI_DMT_UNICODE: + case ACPI_DMT_WPBT_UNICODE: Value = DtGetFieldValue (Field); /* TBD: error if Value is NULL? (as below?) */ - ByteLength = (strlen (Value) + 1) * sizeof(UINT16); + ByteLength = (strlen (Value) + 1) * sizeof (UINT16); break; default: diff --git a/source/components/dispatcher/dswexec.c b/source/components/dispatcher/dswexec.c index addc06e13136..636067bfe75e 100644 --- a/source/components/dispatcher/dswexec.c +++ b/source/components/dispatcher/dswexec.c @@ -737,7 +737,7 @@ AcpiDsExecEndOp ( if (ACPI_SUCCESS (Status)) { Status = AcpiExWriteDataToField (ObjDesc, Op->Common.Node->Object, NULL); - if ACPI_FAILURE (Status) + if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, "While writing to buffer field")); } diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h index 9b584d674d88..839c0edddef6 100644 --- a/source/include/acdisasm.h +++ b/source/include/acdisasm.h @@ -250,6 +250,12 @@ typedef enum /* Types that are specific to particular ACPI tables */ + ACPI_DMT_AEST, + ACPI_DMT_AEST_CACHE, + ACPI_DMT_AEST_GIC, + ACPI_DMT_AEST_RES, + ACPI_DMT_AEST_XFACE, + ACPI_DMT_AEST_XRUPT, ACPI_DMT_ASF, ACPI_DMT_CEDT, ACPI_DMT_DMAR, @@ -283,6 +289,7 @@ typedef enum ACPI_DMT_SRAT, ACPI_DMT_TPM2, ACPI_DMT_VIOT, + ACPI_DMT_WPBT_UNICODE, /* Special opcodes */ @@ -360,6 +367,17 @@ extern const char *AcpiGbl_AccessTypes[]; extern const char *AcpiGbl_UpdateRules[]; extern const char *AcpiGbl_MatchOps[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestProcError[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestCacheRsrc[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestTlbRsrc[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestGenRsrc[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestMemError[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestSmmuError[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestVendorError[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestGicError[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXrupt[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[]; @@ -681,6 +699,10 @@ AcpiDmDumpUnicode ( UINT32 BufferOffset, UINT32 ByteLength); +void +AcpiDmDumpAest ( + ACPI_TABLE_HEADER *Table); + void AcpiDmDumpAsf ( ACPI_TABLE_HEADER *Table); diff --git a/source/include/acnames.h b/source/include/acnames.h index 5e7629069fbe..9075ca740116 100644 --- a/source/include/acnames.h +++ b/source/include/acnames.h @@ -162,6 +162,7 @@ #define METHOD_NAME__CLS "_CLS" #define METHOD_NAME__CRS "_CRS" #define METHOD_NAME__DDN "_DDN" +#define METHOD_NAME__DIS "_DIS" #define METHOD_NAME__DMA "_DMA" #define METHOD_NAME__HID "_HID" #define METHOD_NAME__INI "_INI" diff --git a/source/include/acoutput.h b/source/include/acoutput.h index 46774ad0fa66..b72c9a949620 100644 --- a/source/include/acoutput.h +++ b/source/include/acoutput.h @@ -561,7 +561,7 @@ /* Conditional execution */ #define ACPI_DEBUG_EXEC(a) a -#define ACPI_DEBUG_ONLY_MEMBERS(a) a; +#define ACPI_DEBUG_ONLY_MEMBERS(a) a #define _VERBOSE_STRUCTURES diff --git a/source/include/acpixf.h b/source/include/acpixf.h index dc459c9a0bcc..7610f2e30ef2 100644 --- a/source/include/acpixf.h +++ b/source/include/acpixf.h @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20210604 +#define ACPI_CA_VERSION 0x20210730 #include "acconfig.h" #include "actypes.h" diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h index 027e6085cbe1..f2a1a48cd214 100644 --- a/source/include/actbinfo.h +++ b/source/include/actbinfo.h @@ -205,11 +205,23 @@ #define ACPI_WDDT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_WDDT,f) #define ACPI_WDRT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_WDRT,f) #define ACPI_WPBT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_WPBT,f) +#define ACPI_WPBT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_WPBT_UNICODE,f) #define ACPI_WSMT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_WSMT,f) #define ACPI_XENV_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_XENV,f) /* Subtables */ +#define ACPI_AESTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_HEADER,f) +#define ACPI_AEST0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_PROCESSOR,f) +#define ACPI_AEST0A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_PROCESSOR_CACHE,f) +#define ACPI_AEST0B_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_PROCESSOR_TLB,f) +#define ACPI_AEST0C_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_PROCESSOR_GENERIC,f) +#define ACPI_AEST1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_MEMORY,f) +#define ACPI_AEST2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_SMMU,f) +#define ACPI_AEST3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_VENDOR,f) +#define ACPI_AEST4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_GIC,f) +#define ACPI_AEST0D_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERFACE,f) +#define ACPI_AEST0E_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERRUPT,f) #define ACPI_ASF0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_INFO,f) #define ACPI_ASF1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_ALERT,f) #define ACPI_ASF1a_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_ALERT_DATA,f) @@ -379,6 +391,9 @@ /* Flags */ +#define ACPI_AEST0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_AEST_PROCESSOR,f,o) +#define ACPI_AEST0D_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_AEST_NODE_INTERFACE,f,o) +#define ACPI_AEST0E_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_AEST_NODE_INTERRUPT,f,o) #define ACPI_BGRT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_BGRT,f,o) #define ACPI_DRTM_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_DRTM,f,o) #define ACPI_DRTM1a_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_DRTM_RESOURCE,f,o) diff --git a/source/include/actbl1.h b/source/include/actbl1.h index 136ebf129389..09e68293ada2 100644 --- a/source/include/actbl1.h +++ b/source/include/actbl1.h @@ -168,6 +168,7 @@ * file. Useful because they make it more difficult to inadvertently type in * the wrong signature. */ +#define ACPI_SIG_AEST "AEST" /* Arm Error Source Table */ #define ACPI_SIG_ASF "ASF!" /* Alert Standard Format table */ #define ACPI_SIG_BERT "BERT" /* Boot Error Record Table */ #define ACPI_SIG_BGRT "BGRT" /* Boot Graphics Resource Table */ @@ -701,7 +702,7 @@ typedef struct acpi_csrt_descriptor * DBG2 - Debug Port Table 2 * Version 0 (Both main table and subtables) * - * Conforms to "Microsoft Debug Port Table 2 (DBG2)", December 10, 2015 + * Conforms to "Microsoft Debug Port Table 2 (DBG2)", September 21, 2020 * ******************************************************************************/ @@ -758,11 +759,24 @@ typedef struct acpi_dbg2_device #define ACPI_DBG2_16550_COMPATIBLE 0x0000 #define ACPI_DBG2_16550_SUBSET 0x0001 +#define ACPI_DBG2_MAX311XE_SPI 0x0002 #define ACPI_DBG2_ARM_PL011 0x0003 +#define ACPI_DBG2_MSM8X60 0x0004 +#define ACPI_DBG2_16550_NVIDIA 0x0005 +#define ACPI_DBG2_TI_OMAP 0x0006 +#define ACPI_DBG2_APM88XXXX 0x0008 +#define ACPI_DBG2_MSM8974 0x0009 +#define ACPI_DBG2_SAM5250 0x000A +#define ACPI_DBG2_INTEL_USIF 0x000B +#define ACPI_DBG2_IMX6 0x000C #define ACPI_DBG2_ARM_SBSA_32BIT 0x000D #define ACPI_DBG2_ARM_SBSA_GENERIC 0x000E #define ACPI_DBG2_ARM_DCC 0x000F #define ACPI_DBG2_BCM2835 0x0010 +#define ACPI_DBG2_SDM845_1_8432MHZ 0x0011 +#define ACPI_DBG2_16550_WITH_GAS 0x0012 +#define ACPI_DBG2_SDM845_7_372MHZ 0x0013 +#define ACPI_DBG2_INTEL_LPSS 0x0014 #define ACPI_DBG2_1394_STANDARD 0x0000 diff --git a/source/include/actbl2.h b/source/include/actbl2.h index cb237a6b0076..58c1570c805c 100644 --- a/source/include/actbl2.h +++ b/source/include/actbl2.h @@ -213,6 +213,193 @@ */ +/******************************************************************************* + * + * AEST - Arm Error Source Table + * + * Conforms to: ACPI for the Armv8 RAS Extensions 1.1 Platform Design Document + * September 2020. + * + ******************************************************************************/ + +typedef struct acpi_table_aest +{ + ACPI_TABLE_HEADER Header; + void *NodeArray[]; + +} ACPI_TABLE_AEST; + +/* Common Subtable header - one per Node Structure (Subtable) */ + +typedef struct acpi_aest_hdr +{ + UINT8 Type; + UINT16 Length; + UINT8 Reserved; + UINT32 NodeSpecificOffset; + UINT32 NodeInterfaceOffset; + UINT32 NodeInterruptOffset; + UINT32 NodeInterruptCount; + UINT64 TimestampRate; + UINT64 Reserved1; + UINT64 ErrorInjectionRate; + +} ACPI_AEST_HEADER; + +/* Values for Type above */ + +#define ACPI_AEST_PROCESSOR_ERROR_NODE 0 +#define ACPI_AEST_MEMORY_ERROR_NODE 1 +#define ACPI_AEST_SMMU_ERROR_NODE 2 +#define ACPI_AEST_VENDOR_ERROR_NODE 3 +#define ACPI_AEST_GIC_ERROR_NODE 4 +#define ACPI_AEST_NODE_TYPE_RESERVED 5 /* 5 and above are reserved */ + + +/* + * AEST subtables (Error nodes) + */ + +/* 0: Processor Error */ + +typedef struct acpi_aest_processor +{ + UINT32 ProcessorId; + UINT8 ResourceType; + UINT8 Reserved; + UINT8 Flags; + UINT8 Revision; + UINT64 ProcessorAffinity; + +} ACPI_AEST_PROCESSOR; + +/* Values for ResourceType above, related structs below */ + +#define ACPI_AEST_CACHE_RESOURCE 0 +#define ACPI_AEST_TLB_RESOURCE 1 +#define ACPI_AEST_GENERIC_RESOURCE 2 +#define ACPI_AEST_RESOURCE_RESERVED 3 /* 3 and above are reserved */ + +/* 0R: Processor Cache Resource Substructure */ + +typedef struct acpi_aest_processor_cache +{ + UINT32 CacheReference; + UINT32 Reserved; + +} ACPI_AEST_PROCESSOR_CACHE; + +/* Values for CacheType above */ + +#define ACPI_AEST_CACHE_DATA 0 +#define ACPI_AEST_CACHE_INSTRUCTION 1 +#define ACPI_AEST_CACHE_UNIFIED 2 +#define ACPI_AEST_CACHE_RESERVED 3 /* 3 and above are reserved */ + +/* 1R: Processor TLB Resource Substructure */ + +typedef struct acpi_aest_processor_tlb +{ + UINT32 TlbLevel; + UINT32 Reserved; + +} ACPI_AEST_PROCESSOR_TLB; + +/* 2R: Processor Generic Resource Substructure */ + +typedef struct acpi_aest_processor_generic +{ + UINT8 *Resource; + +} ACPI_AEST_PROCESSOR_GENERIC; + +/* 1: Memory Error */ + +typedef struct acpi_aest_memory +{ + UINT32 SratProximityDomain; + +} ACPI_AEST_MEMORY; + +/* 2: Smmu Error */ + +typedef struct acpi_aest_smmu +{ + UINT32 IortNodeReference; + UINT32 SubcomponentReference; + +} ACPI_AEST_SMMU; + +/* 3: Vendor Defined */ + +typedef struct acpi_aest_vendor +{ + UINT32 AcpiHid; + UINT32 AcpiUid; + UINT8 VendorSpecificData[16]; + +} ACPI_AEST_VENDOR; + +/* 4: Gic Error */ + +typedef struct acpi_aest_gic +{ + UINT32 InterfaceType; + UINT32 InstanceId; + +} ACPI_AEST_GIC; + +/* Values for InterfaceType above */ + +#define ACPI_AEST_GIC_CPU 0 +#define ACPI_AEST_GIC_DISTRIBUTOR 1 +#define ACPI_AEST_GIC_REDISTRIBUTOR 2 +#define ACPI_AEST_GIC_ITS 3 +#define ACPI_AEST_GIC_RESERVED 4 /* 4 and above are reserved */ + + +/* Node Interface Structure */ + +typedef struct acpi_aest_node_interface +{ + UINT8 Type; + UINT8 Reserved[3]; + UINT32 Flags; + UINT64 Address; + UINT32 ErrorRecordIndex; + UINT32 ErrorRecordCount; + UINT64 ErrorRecordImplemented; + UINT64 ErrorStatusReporting; + UINT64 AddressingMode; + +} ACPI_AEST_NODE_INTERFACE; + +/* Values for Type field above */ + +#define ACPI_AEST_NODE_SYSTEM_REGISTER 0 +#define ACPI_AEST_NODE_MEMORY_MAPPED 1 +#define ACPI_AEST_XFACE_RESERVED 2 /* 2 and above are reserved */ + +/* Node Interrupt Structure */ + +typedef struct acpi_aest_node_interrupt +{ + UINT8 Type; + UINT8 Reserved[2]; + UINT8 Flags; + UINT32 Gsiv; + UINT8 IortId; + UINT8 Reserved1[3]; + +} ACPI_AEST_NODE_INTERRUPT; + +/* Values for Type field above */ + +#define ACPI_AEST_NODE_FAULT_HANDLING 0 +#define ACPI_AEST_NODE_ERROR_RECOVERY 1 +#define ACPI_AEST_XRUPT_RESERVED 2 /* 2 and above are reserved */ + + /******************************************************************************* * * BDAT - BIOS Data ACPI Table @@ -2163,6 +2350,13 @@ typedef struct acpi_table_prmt_header } ACPI_TABLE_PRMT_HEADER; +typedef struct acpi_prmt_module_header +{ + UINT16 Revision; + UINT16 Length; + +} ACPI_PRMT_MODULE_HEADER; + typedef struct acpi_prmt_module_info { UINT16 Revision; diff --git a/source/include/actbl3.h b/source/include/actbl3.h index d4260a1d98b2..d0f7025fab54 100644 --- a/source/include/actbl3.h +++ b/source/include/actbl3.h @@ -955,6 +955,12 @@ typedef struct acpi_table_wpbt } ACPI_TABLE_WPBT; +typedef struct acpi_wpbt_unicode +{ + UINT16 *UnicodeString; + +} ACPI_WPBT_UNICODE; + /******************************************************************************* * diff --git a/source/tools/acpihelp/ahdecode.c b/source/tools/acpihelp/ahdecode.c index ac3e65cbadfe..150ef6c05b43 100644 --- a/source/tools/acpihelp/ahdecode.c +++ b/source/tools/acpihelp/ahdecode.c @@ -709,11 +709,11 @@ AhDisplayTables ( UINT32 i = 0; - printf ("Known ACPI tables:\n"); + printf ("Known/Supported ACPI tables:\n"); for (Info = AcpiGbl_SupportedTables; Info->Signature; Info++) { - printf ("%8s : %s\n", Info->Signature, Info->Description); + printf ("%8u) %s : %s\n", i + 1, Info->Signature, Info->Description); i++; } diff --git a/source/tools/acpisrc/astable.c b/source/tools/acpisrc/astable.c index 86fe13d8260e..5cf240bbe9cb 100644 --- a/source/tools/acpisrc/astable.c +++ b/source/tools/acpisrc/astable.c @@ -639,6 +639,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { /* * Acpi table definition names. */ + {"ACPI_TABLE_AEST", SRC_TYPE_STRUCT}, {"ACPI_TABLE_ASF", SRC_TYPE_STRUCT}, {"ACPI_TABLE_BDAT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_BERT", SRC_TYPE_STRUCT}, @@ -706,6 +707,19 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_XENV", SRC_TYPE_STRUCT}, {"ACPI_TABLE_XSDT", SRC_TYPE_STRUCT}, + /* Individual per-table names (typically subtables) */ + + {"ACPI_AEST_GIC", SRC_TYPE_STRUCT}, + {"ACPI_AEST_HEADER", SRC_TYPE_STRUCT}, + {"ACPI_AEST_MEMORY", SRC_TYPE_STRUCT}, + {"ACPI_AEST_NODE_INTERFACE", SRC_TYPE_STRUCT}, + {"ACPI_AEST_NODE_INTERRUPT", SRC_TYPE_STRUCT}, + {"ACPI_AEST_PROCESSOR", SRC_TYPE_STRUCT}, + {"ACPI_AEST_PROCESSOR_CACHE", SRC_TYPE_STRUCT}, + {"ACPI_AEST_PROCESSOR_GENERIC", SRC_TYPE_STRUCT}, + {"ACPI_AEST_PROCESSOR_TLB", SRC_TYPE_STRUCT}, + {"ACPI_AEST_SMMU", SRC_TYPE_STRUCT}, + {"ACPI_AEST_VENDOR", SRC_TYPE_STRUCT}, {"ACPI_ASF_ADDRESS", SRC_TYPE_STRUCT}, {"ACPI_ASF_ALERT", SRC_TYPE_STRUCT}, {"ACPI_ASF_ALERT_DATA", SRC_TYPE_STRUCT}, @@ -851,6 +865,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_PPTT_ID", SRC_TYPE_STRUCT}, {"ACPI_PPTT_PROCESSOR", SRC_TYPE_STRUCT}, {"ACPI_TABLE_PRMT_HEADER", SRC_TYPE_STRUCT}, + {"ACPI_PRMT_MODULE_HEADER", SRC_TYPE_STRUCT}, {"ACPI_PRMT_MODULE_INFO", SRC_TYPE_STRUCT}, {"ACPI_PRMT_HANDLER_INFO", SRC_TYPE_STRUCT}, {"ACPI_RSDP_COMMON", SRC_TYPE_STRUCT}, @@ -880,6 +895,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_VIOT_VIRTIO_IOMMU_PCI", SRC_TYPE_STRUCT}, {"ACPI_VIOT_VIRTIO_IOMMU_MMIO", SRC_TYPE_STRUCT}, {"ACPI_WDAT_ENTRY", SRC_TYPE_STRUCT}, + {"ACPI_WPBT_UNICODE", SRC_TYPE_STRUCT}, /* Data Table compiler */ From c509b6ab0d7e5bafc5348b08653b8738bd40716e Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Thu, 30 Sep 2021 16:23:21 -0400 Subject: [PATCH 06/10] Import ACPICA 20210930 --- changes.txt | 50 +++++ source/common/dmtable.c | 58 +++++ source/common/dmtbdump2.c | 300 +++++++++++++++++++++++++ source/common/dmtbdump3.c | 5 + source/common/dmtbinfo2.c | 183 +++++++++++++++ source/common/dmtbinfo3.c | 28 ++- source/compiler/aslmethod.c | 76 +++---- source/compiler/dtcompiler.h | 4 + source/compiler/dttable2.c | 5 + source/compiler/dtutils.c | 2 + source/compiler/preprocess.h | 2 +- source/components/dispatcher/dsfield.c | 2 +- source/components/hardware/hwesleep.c | 7 +- source/components/hardware/hwsleep.c | 10 +- source/components/hardware/hwxfsleep.c | 6 + source/components/utilities/utosi.c | 1 + source/include/acdisasm.h | 25 ++- source/include/acglobal.h | 2 + source/include/acpixf.h | 2 +- source/include/actbinfo.h | 14 ++ source/include/actbl2.h | 289 +++++++++++++++++++++++- source/include/actbl3.h | 10 +- source/include/actypes.h | 1 + source/tools/acpisrc/astable.c | 32 ++- 24 files changed, 1033 insertions(+), 81 deletions(-) diff --git a/changes.txt b/changes.txt index 64ca5cccdce4..ad2323971aea 100644 --- a/changes.txt +++ b/changes.txt @@ -1,3 +1,53 @@ +---------------------------------------- +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: diff --git a/source/common/dmtable.c b/source/common/dmtable.c index 1fa9ba167cee..dff1c6139cd7 100644 --- a/source/common/dmtable.c +++ b/source/common/dmtable.c @@ -417,6 +417,26 @@ static const char *AcpiDmNfitSubnames[] = "Unknown Subtable Type" /* Reserved */ }; +static const char *AcpiDmNhltLinkTypeNames[] = +{ + "Reserved for HD-Audio", /* ACPI_NHLT_RESERVED_HD_AUDIO */ + "Reserved for DSP", /* ACPI_NHLT_RESERVED_DSP */ + "Type PDM", /* ACPI_NHLT_PDM */ + "Type SSP", /* ACPI_NHLT_SSP */ + "Reserved for SlimBus", /* ACPI_NHLT_RESERVED_SLIMBUS */ + "Reserved for SoundWire", /* ACPI_NHLT_RESERVED_SOUNDWIRE */ + "Unknown Link Type" /* Reserved */ +}; + +static const char *AcpiDmNhltDirectionNames[] = +{ + "Render", /* ACPI_NHLT_DIR_RENDER */ + "Capture", /* ACPI_NHLT_DIR_CAPTURE */ + "Render with Loopback", /* ACPI_NHLT_DIR_RENDER_LOOPBACK */ + "Feedback for Render", /* ACPI_NHLT_DIR_RENDER_FEEDBACK */ + "Unknown Direction" /* Reserved */ +}; + static const char *AcpiDmPcctSubnames[] = { "Generic Communications Subspace", /* ACPI_PCCT_TYPE_GENERIC_SUBSPACE */ @@ -473,6 +493,7 @@ static const char *AcpiDmSratSubnames[] = "GICC Affinity", "GIC ITS Affinity", /* Acpi 6.2 */ "Generic Initiator Affinity", /* Acpi 6.3 */ + "Generic Port Affinity", /* Acpi 6.4 */ "Unknown Subtable Type" /* Reserved */ }; @@ -614,6 +635,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = {ACPI_SIG_MSCT, NULL, AcpiDmDumpMsct, DtCompileMsct, TemplateMsct}, {ACPI_SIG_MSDM, NULL, AcpiDmDumpSlic, DtCompileSlic, TemplateMsdm}, {ACPI_SIG_NFIT, AcpiDmTableInfoNfit, AcpiDmDumpNfit, DtCompileNfit, TemplateNfit}, + {ACPI_SIG_NHLT, AcpiDmTableInfoNhlt, AcpiDmDumpNhlt, NULL, NULL}, {ACPI_SIG_PCCT, AcpiDmTableInfoPcct, AcpiDmDumpPcct, DtCompilePcct, TemplatePcct}, {ACPI_SIG_PDTT, AcpiDmTableInfoPdtt, AcpiDmDumpPdtt, DtCompilePdtt, TemplatePdtt}, {ACPI_SIG_PHAT, NULL, AcpiDmDumpPhat, DtCompilePhat, TemplatePhat}, @@ -1050,6 +1072,8 @@ AcpiDmDumpTable ( case ACPI_DMT_IVRS_DE: case ACPI_DMT_GTDT: case ACPI_DMT_MADT: + case ACPI_DMT_NHLT1: + case ACPI_DMT_NHLT1a: case ACPI_DMT_PCCT: case ACPI_DMT_PMTT: case ACPI_DMT_PPTT: @@ -1138,6 +1162,11 @@ AcpiDmDumpTable ( ByteLength = 16; break; + case ACPI_DMT_BUF18: + + ByteLength = 18; + break; + case ACPI_DMT_BUF128: ByteLength = 128; @@ -1343,6 +1372,7 @@ AcpiDmDumpTable ( case ACPI_DMT_BUF10: case ACPI_DMT_BUF12: case ACPI_DMT_BUF16: + case ACPI_DMT_BUF18: case ACPI_DMT_BUF128: /* * Buffer: Size depends on the opcode and was set above. @@ -1790,6 +1820,34 @@ AcpiDmDumpTable ( AcpiDmNfitSubnames[Temp16]); break; + case ACPI_DMT_NHLT1: + + /* NHLT link types */ + + Temp8 = *Target; + if (Temp8 > ACPI_NHLT_TYPE_RESERVED) + { + Temp8 = ACPI_NHLT_TYPE_RESERVED; + } + + AcpiOsPrintf (UINT8_FORMAT, *Target, + AcpiDmNhltLinkTypeNames[Temp8]); + break; + + case ACPI_DMT_NHLT1a: + + /* NHLT direction */ + + Temp8 = *Target; + if (Temp8 > ACPI_NHLT_DIR_RESERVED) + { + Temp8 = ACPI_NHLT_DIR_RESERVED; + } + + AcpiOsPrintf (UINT8_FORMAT, *Target, + AcpiDmNhltDirectionNames[Temp8]); + break; + case ACPI_DMT_PCCT: /* PCCT subtable types */ diff --git a/source/common/dmtbdump2.c b/source/common/dmtbdump2.c index 1b3cdf76926a..118b96eeab0f 100644 --- a/source/common/dmtbdump2.c +++ b/source/common/dmtbdump2.c @@ -1467,6 +1467,306 @@ AcpiDmDumpNfit ( } +/******************************************************************************* + * + * FUNCTION: AcpiDmDumpNhlt + * + * PARAMETERS: Table - A NHLT table + * + * RETURN: None + * + * DESCRIPTION: Format the contents of an NHLT. + * + ******************************************************************************/ + +void +AcpiDmDumpNhlt ( + ACPI_TABLE_HEADER *Table) +{ + ACPI_STATUS Status; + UINT32 Offset; + UINT32 TableLength = Table->Length; + UINT32 EndpointCount; + UINT8 FormatsCount; + ACPI_NHLT_ENDPOINT *Subtable; + ACPI_NHLT_FORMAT_CONFIG *FormatSubtable; + ACPI_TABLE_NHLT *InfoTable; + UINT32 CapabilitiesSize; + UINT32 i; + UINT32 j; + UINT32 k; + UINT32 EndpointEndOffset; + UINT8 ConfigType = 0; + UINT8 ArrayType; + ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A *DevSpecific; + ACPI_NHLT_FORMATS_CONFIG *FormatsConfig; + ACPI_NHLT_LINUX_SPECIFIC_COUNT *Count; + ACPI_NHLT_LINUX_SPECIFIC_DATA *LinuxData; + + + /* Main table */ + + AcpiOsPrintf ("/* Main table */\n"); + + Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoNhlt); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Get the Endpoint Descriptor Count */ + + InfoTable = ACPI_ADD_PTR (ACPI_TABLE_NHLT, Table, 0); + EndpointCount = InfoTable->EndpointCount; + + /* Subtables */ + + Offset = sizeof (ACPI_TABLE_NHLT); + + while (Offset < TableLength) + { + /* A variable number of Endpoint Descriptors - process each */ + + for (i = 0; i < EndpointCount; i++) + { + /* Do the Endpoint Descriptor table */ + + Subtable = ACPI_ADD_PTR (ACPI_NHLT_ENDPOINT, Table, Offset); + if (Subtable->DescriptorLength > TableLength) + { + Offset += 1; + AcpiOsPrintf ("\n/* Endpoint Descriptor Length larger than" + " table size: %X, table %X, adjusting table offset (+1) */\n", + Subtable->DescriptorLength, TableLength); + + Subtable = ACPI_ADD_PTR (ACPI_NHLT_ENDPOINT, Table, Offset); + } + + AcpiOsPrintf ("\n/* Endpoint Descriptor #%u */\n", i+1); + Status = AcpiDmDumpTable (TableLength, Offset, Subtable, + Subtable->DescriptorLength, AcpiDmTableInfoNhlt0); + if (ACPI_FAILURE (Status)) + { + return; + } + EndpointEndOffset = Subtable->DescriptorLength + Offset; + + /* Check for endpoint descriptor beyond end-of-table */ + + if (Subtable->DescriptorLength > TableLength) + { + AcpiOsPrintf ("\n/* Endpoint Descriptor Length larger than table size: %X, table %X */\n", + Subtable->DescriptorLength, TableLength); + } + Offset += sizeof (ACPI_NHLT_ENDPOINT); + Subtable = ACPI_ADD_PTR (ACPI_NHLT_ENDPOINT, Table, Offset); + + /* Do the Device Specific table */ + + AcpiOsPrintf ("\n/* Endpoint Device_Specific_Config table */\n"); + DevSpecific = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A, Subtable); + CapabilitiesSize = DevSpecific->CapabilitiesSize; + + /* Different subtables based upon capabilities_size */ + + switch (CapabilitiesSize) + { + case 0: + Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific, + sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B), AcpiDmTableInfoNhlt5b); + if (ACPI_FAILURE (Status)) + { + return; + } + Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B); + break; + + case 1: + Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific, + sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_C), AcpiDmTableInfoNhlt5c); + if (ACPI_FAILURE (Status)) + { + return; + } + Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_C); + break; + + case 2: + Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific, + sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG), AcpiDmTableInfoNhlt5); + if (ACPI_FAILURE (Status)) + { + return; + } + Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG); + break; + + case 3: + ConfigType = DevSpecific->ConfigType; + ArrayType = DevSpecific->ArrayType; + + Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific, + sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A), AcpiDmTableInfoNhlt5a); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Capabilities Size == 3 */ + Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A); + + /* Check for a vendor-defined mic array */ + + if ((ConfigType == ACPI_NHLT_TYPE_MIC_ARRAY) && ((ArrayType & ARRAY_TYPE_MASK) == VENDOR_DEFINED)) + { + /* Vendor-defined microphone array */ + + AcpiOsPrintf ("\n/* Vendor-defined microphone array */\n"); + + Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific, + sizeof (ACPI_NHLT_VENDOR_MIC_CONFIG), AcpiDmTableInfoNhlt6); + if (ACPI_FAILURE (Status)) + { + return; + } + Offset += sizeof (ACPI_NHLT_VENDOR_MIC_CONFIG); + } + break; + + default: + Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific, + sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B), AcpiDmTableInfoNhlt5b); + if (ACPI_FAILURE (Status)) + { + return; + } + + Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B); + Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific, + CapabilitiesSize, AcpiDmTableInfoNhlt3a); + if (ACPI_FAILURE (Status)) + { + return; + } + Offset += CapabilitiesSize; + break; + } + + /* Do the Formats_Config table */ + + FormatsConfig = ACPI_ADD_PTR (ACPI_NHLT_FORMATS_CONFIG, Table, Offset); + FormatsCount = FormatsConfig->FormatsCount; + + AcpiOsPrintf ("\n/* Formats_Config table */\n"); + + Status = AcpiDmDumpTable (TableLength, Offset, FormatsConfig, + sizeof (ACPI_NHLT_FORMATS_CONFIG), AcpiDmTableInfoNhlt4); + if (ACPI_FAILURE (Status)) + { + return; + } + Offset += sizeof (ACPI_NHLT_FORMATS_CONFIG); + + /* A variable number of Format_Config Descriptors - process each */ + + for (j = 0; j < FormatsCount; j++) + { + FormatSubtable = ACPI_ADD_PTR (ACPI_NHLT_FORMAT_CONFIG, Table, Offset); + CapabilitiesSize = FormatSubtable->CapabilitySize; + + /* Do the Wave_extensible struct */ + + AcpiOsPrintf ("\n/* Wave_Format_Extensible table #%u */\n", j+1); + Status = AcpiDmDumpTable (TableLength, Offset, FormatSubtable, + sizeof (ACPI_NHLT_FORMAT_CONFIG), AcpiDmTableInfoNhlt3); + if (ACPI_FAILURE (Status)) + { + return; + } + Offset += sizeof (ACPI_NHLT_WAVE_EXTENSIBLE); + + /* Do the Capabilities array */ + + Offset += sizeof (UINT32); + AcpiOsPrintf ("\n/* Specific_Config table #%u */\n", j+1); + FormatSubtable = ACPI_ADD_PTR (ACPI_NHLT_FORMAT_CONFIG, Table, Offset); + Status = AcpiDmDumpTable (TableLength, Offset, FormatSubtable, + CapabilitiesSize, AcpiDmTableInfoNhlt3a); + if (ACPI_FAILURE (Status)) + { + return; + } + Offset += CapabilitiesSize; + } + + /* + * If we are not done with the Endpoint(s) yet, then there must be + * some Linux-specific structure(s) yet to be processed. + */ + if (Offset < EndpointEndOffset) + { + AcpiOsPrintf ("\n"); + Count = ACPI_ADD_PTR (ACPI_NHLT_LINUX_SPECIFIC_COUNT, Table, Offset); + Status = AcpiDmDumpTable (TableLength, Offset, Count, + sizeof (ACPI_NHLT_LINUX_SPECIFIC_COUNT), AcpiDmTableInfoNhlt7); + if (ACPI_FAILURE (Status)) + { + return; + } + Offset += sizeof (ACPI_NHLT_LINUX_SPECIFIC_COUNT); + + /* Variable number of linux-specific structures */ + + for (k = 0; k < Count->StructureCount; k++) + { + LinuxData = ACPI_ADD_PTR (ACPI_NHLT_LINUX_SPECIFIC_DATA, Table, Offset); + + AcpiOsPrintf ("\n/* Linux-specific structure #%u */\n", k+1); + + Status = AcpiDmDumpTable (TableLength, Offset, LinuxData, + sizeof (ACPI_NHLT_LINUX_SPECIFIC_DATA), AcpiDmTableInfoNhlt7a); + if (ACPI_FAILURE (Status)) + { + return; + } + + Offset += sizeof (ACPI_NHLT_LINUX_SPECIFIC_DATA); + } + + /* Should be at the end of the Endpoint structure. Skip any extra bytes */ + + if (Offset < EndpointEndOffset) + { + AcpiOsPrintf ("\n/* Endpoint descriptor ended before endpoint size was reached. " + "skipped %X input bytes, current offset: %X, Endpoint End Offset: %X */\n", + EndpointEndOffset - Offset, Offset, EndpointEndOffset); + AcpiUtDumpBuffer (((UINT8 *)Table)+Offset, + EndpointEndOffset - Offset, DB_BYTE_DISPLAY, Offset); + Offset = EndpointEndOffset; + } + } + } + + /* Emit the table terminator (if present) */ + + if (Offset == TableLength - sizeof (ACPI_NHLT_TABLE_TERMINATOR)) + { + LinuxData = ACPI_ADD_PTR (ACPI_NHLT_LINUX_SPECIFIC_DATA, Table, Offset); + AcpiOsPrintf ("\n/* Table terminator structure */\n"); + + Status = AcpiDmDumpTable (TableLength, Offset, LinuxData, + sizeof (ACPI_NHLT_TABLE_TERMINATOR), AcpiDmTableInfoNhlt8); + if (ACPI_FAILURE (Status)) + { + return; + } + } + + return; + } +} + + /******************************************************************************* * * FUNCTION: AcpiDmDumpPcct diff --git a/source/common/dmtbdump3.c b/source/common/dmtbdump3.c index 981a51e0e8fb..63b6d2d5e2e2 100644 --- a/source/common/dmtbdump3.c +++ b/source/common/dmtbdump3.c @@ -338,6 +338,11 @@ AcpiDmDumpSrat ( InfoTable = AcpiDmTableInfoSrat5; break; + case ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY: + + InfoTable = AcpiDmTableInfoSrat6; + break; + default: AcpiOsPrintf ("\n**** Unknown SRAT subtable type 0x%X\n", Subtable->Type); diff --git a/source/common/dmtbinfo2.c b/source/common/dmtbinfo2.c index 00cf2e4d3755..4cbe112eb0ad 100644 --- a/source/common/dmtbinfo2.c +++ b/source/common/dmtbinfo2.c @@ -1194,6 +1194,189 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoNfit7[] = }; +/******************************************************************************* + * + * NHLT - Non HD Audio Link Table. Conforms to Intel Smart Sound Technology + * NHLT Specification, January 2020 Revision 0.8.1 + * + ******************************************************************************/ + +/* Main table */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt[] = +{ + {ACPI_DMT_UINT8, ACPI_NHLT_OFFSET (EndpointCount), "Endpoint Count", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Endpoint config */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt0[] = +{ + {ACPI_DMT_UINT32, ACPI_NHLT0_OFFSET (DescriptorLength), "Descriptor Length", DT_LENGTH}, + {ACPI_DMT_NHLT1, ACPI_NHLT0_OFFSET (LinkType), "Link Type", 0}, + {ACPI_DMT_UINT8, ACPI_NHLT0_OFFSET (InstanceId), "Instance Id", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT0_OFFSET (VendorId), "Vendor Id", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT0_OFFSET (DeviceId), "Device Id", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT0_OFFSET (RevisionId), "Revision Id", 0}, + {ACPI_DMT_UINT32, ACPI_NHLT0_OFFSET (SubsystemId), "Subsystem Id", 0}, + {ACPI_DMT_UINT8, ACPI_NHLT0_OFFSET (DeviceType), "Device Type", 0}, + {ACPI_DMT_NHLT1a, ACPI_NHLT0_OFFSET (Direction), "Direction", 0}, + {ACPI_DMT_UINT8, ACPI_NHLT0_OFFSET (VirtualBusId), "Virtual Bus Id", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Device_Specific config */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt1[] = +{ + {ACPI_DMT_UINT32, ACPI_NHLT1_OFFSET (CapabilitiesSize), "Capabilities Size", DT_LENGTH}, + {ACPI_DMT_UINT8, ACPI_NHLT1_OFFSET (VirtualSlot), "Virtual Slot", 0}, + {ACPI_DMT_UINT8, ACPI_NHLT1_OFFSET (ConfigType), "Config Type", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Wave Format Extensible */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt2[] = +{ + {ACPI_DMT_UINT16, ACPI_NHLT2_OFFSET (FormatTag), "Format Tag", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT2_OFFSET (ChannelCount), "Channel Count", 0}, + {ACPI_DMT_UINT32, ACPI_NHLT2_OFFSET (SamplesPerSec), "Samples Per Second", 0}, + {ACPI_DMT_UINT32, ACPI_NHLT2_OFFSET (AvgBytesPerSec), "Average Bytes Per Second", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT2_OFFSET (BlockAlign), "Block Alignment", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT2_OFFSET (BitsPerSample), "Bits Per Sample", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT2_OFFSET (ExtraFormatSize), "Extra Format Size", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT2_OFFSET (ValidBitsPerSample), "Valid Bits Per Sample", 0}, + {ACPI_DMT_UINT32, ACPI_NHLT2_OFFSET (ChannelMask), "Channel Mask", 0}, + {ACPI_DMT_UUID, ACPI_NHLT2_OFFSET (SubFormatGuid), "SubFormat GUID", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Format Config */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3[] = +{ + {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.FormatTag), "Format Tag", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.ChannelCount), "Channel Count", 0}, + {ACPI_DMT_UINT32, ACPI_NHLT3_OFFSET (Format.SamplesPerSec), "Samples Per Second", 0}, + {ACPI_DMT_UINT32, ACPI_NHLT3_OFFSET (Format.AvgBytesPerSec), "Average Bytes Per Second", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.BlockAlign), "Block Alignment", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.BitsPerSample), "Bits Per Sample", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.ExtraFormatSize), "Extra Format Size", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.ValidBitsPerSample), "Valid Bits Per Sample", 0}, + {ACPI_DMT_UINT32, ACPI_NHLT3_OFFSET (Format.ChannelMask), "Channel Mask", 0}, + {ACPI_DMT_UUID, ACPI_NHLT3_OFFSET (Format.SubFormatGuid), "SubFormat GUID", 0}, + {ACPI_DMT_UINT32, ACPI_NHLT3_OFFSET (CapabilitySize), "Capabilities Length", DT_LENGTH}, + ACPI_DMT_TERMINATOR +}; + +/* + * We treat the binary Capabilities field as its own subtable (to make + * ACPI_DMT_RAW_BUFFER work properly). + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3a[] = +{ + {ACPI_DMT_RAW_BUFFER, 0, "Capabilities", 0}, + ACPI_DMT_TERMINATOR +}; + + +/* Formats Config */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt4[] = +{ + {ACPI_DMT_UINT8, ACPI_NHLT4_OFFSET (FormatsCount), "Formats Count", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Specific Config, CapabilitiesSize == 2 */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5[] = +{ + {ACPI_DMT_UINT32, ACPI_NHLT5_OFFSET (CapabilitiesSize), "Capabilities Size", DT_LENGTH}, + {ACPI_DMT_UINT8, ACPI_NHLT5_OFFSET (VirtualSlot), "Virtual Slot", 0}, + {ACPI_DMT_UINT8, ACPI_NHLT5_OFFSET (ConfigType), "Config Type", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Specific Config, CapabilitiesSize == 3 */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5a[] = +{ + {ACPI_DMT_UINT32, ACPI_NHLT5A_OFFSET (CapabilitiesSize), "Capabilities Size", DT_LENGTH}, + {ACPI_DMT_UINT8, ACPI_NHLT5A_OFFSET (VirtualSlot), "Virtual Slot", 0}, + {ACPI_DMT_UINT8, ACPI_NHLT5A_OFFSET (ConfigType), "Config Type", 0}, + {ACPI_DMT_UINT8, ACPI_NHLT5A_OFFSET (ArrayType), "Array Type", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Specific Config, CapabilitiesSize == 0 */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5b[] = +{ + {ACPI_DMT_UINT32, ACPI_NHLT5B_OFFSET (CapabilitiesSize), "Capabilities Size", DT_LENGTH}, + ACPI_DMT_TERMINATOR +}; + +/* Specific Config, CapabilitiesSize == 1 */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5c[] = +{ + {ACPI_DMT_UINT32, ACPI_NHLT5C_OFFSET (CapabilitiesSize), "Capabilities Size", DT_LENGTH}, + {ACPI_DMT_UINT8, ACPI_NHLT5C_OFFSET (VirtualSlot), "Virtual Slot", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Microphone array Config */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6[] = +{ + {ACPI_DMT_UINT8, ACPI_NHLT6_OFFSET (Type), "Type", 0}, + {ACPI_DMT_UINT8, ACPI_NHLT6_OFFSET (Panel), "Panel", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (SpeakerPositionDistance), "Speaker Position Distance", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (HorizontalOffset), "Horizontal Offset", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (VerticalOffset), "Vertical Offset", 0}, + {ACPI_DMT_UINT8, ACPI_NHLT6_OFFSET (FrequencyLowBand), "Frequency Low Band", 0}, + {ACPI_DMT_UINT8, ACPI_NHLT6_OFFSET (FrequencyHighBand), "Frequency High Band", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (DirectionAngle), "Direction Angle", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (ElevationAngle), "Elevation Angle", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (WorkVerticalAngleBegin), "Work Vertical Angle Begin", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (WorkVerticalAngleEnd), "Work Vertical Angle End", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (WorkHorizontalAngleBegin), "Work Horizontal Angle Begin", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (WorkHorizontalAngleEnd), "Work Horizontal Angle End", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Number of Linux-specific structures */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7[] = +{ + {ACPI_DMT_UINT8, ACPI_NHLT7_OFFSET (StructureCount), "Linux-specific struct count", 0}, + ACPI_DMT_TERMINATOR +}; + +/* The Linux-specific structure */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7a[] = +{ + {ACPI_DMT_BUF16, ACPI_NHLT7A_OFFSET (DeviceId), "Device ID", 0}, + {ACPI_DMT_UINT8, ACPI_NHLT7A_OFFSET (DeviceInstanceId), "Device Instance ID", 0}, + {ACPI_DMT_UINT8, ACPI_NHLT7A_OFFSET (DevicePortId), "Device Port ID", 0}, + {ACPI_DMT_BUF18, ACPI_NHLT7A_OFFSET (Filler), "Specific Data", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Table terminator (may or may not be present) */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt8[] = +{ + {ACPI_DMT_UINT32, ACPI_NHLT8_OFFSET (TerminatorValue), "Terminator Value", 0}, + {ACPI_DMT_UINT32, ACPI_NHLT8_OFFSET (TerminatorSignature), "Terminator Signature", 0}, + ACPI_DMT_TERMINATOR +}; + + /******************************************************************************* * * PCCT - Platform Communications Channel Table (ACPI 5.0) diff --git a/source/common/dmtbinfo3.c b/source/common/dmtbinfo3.c index e573676a8882..12e1be4cacc5 100644 --- a/source/common/dmtbinfo3.c +++ b/source/common/dmtbinfo3.c @@ -368,21 +368,33 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoSrat4[] = ACPI_DMT_TERMINATOR }; +/* Common SRAT structure for Generic Affinity Subtables */ + +#define ACPI_DM_SRAT_GENERIC_AFFINITY \ + {ACPI_DMT_UINT8, ACPI_SRAT5_OFFSET (Reserved), "Reserved1", 0}, \ + {ACPI_DMT_UINT8, ACPI_SRAT5_OFFSET (DeviceHandleType), "Device Handle Type", 0}, \ + {ACPI_DMT_UINT32, ACPI_SRAT5_OFFSET (ProximityDomain), "Proximity Domain", 0}, \ + {ACPI_DMT_BUF16, ACPI_SRAT5_OFFSET (DeviceHandle), "Device Handle", 0}, \ + {ACPI_DMT_UINT32, ACPI_SRAT5_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, \ + {ACPI_DMT_FLAG0, ACPI_SRAT5_FLAG_OFFSET (Flags,0), "Enabled", 0}, \ + {ACPI_DMT_FLAG1, ACPI_SRAT5_FLAG_OFFSET (Flags,0), "Architectural Transactions", 0}, \ + {ACPI_DMT_UINT32, ACPI_SRAT5_OFFSET (Reserved1), "Reserved2", 0} + /* 5: Generic Initiator Affinity Structure (ACPI 6.3) */ ACPI_DMTABLE_INFO AcpiDmTableInfoSrat5[] = { - {ACPI_DMT_UINT8, ACPI_SRAT5_OFFSET (Reserved), "Reserved1", 0}, - {ACPI_DMT_UINT8, ACPI_SRAT5_OFFSET (DeviceHandleType), "Device Handle Type", 0}, - {ACPI_DMT_UINT32, ACPI_SRAT5_OFFSET (ProximityDomain), "Proximity Domain", 0}, - {ACPI_DMT_BUF16, ACPI_SRAT5_OFFSET (DeviceHandle), "Device Handle", 0}, - {ACPI_DMT_UINT32, ACPI_SRAT5_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, - {ACPI_DMT_FLAG0, ACPI_SRAT5_FLAG_OFFSET (Flags,0), "Enabled", 0}, - {ACPI_DMT_FLAG1, ACPI_SRAT5_FLAG_OFFSET (Flags,0), "Architectural Transactions", 0}, - {ACPI_DMT_UINT32, ACPI_SRAT5_OFFSET (Reserved1), "Reserved2", 0}, + ACPI_DM_SRAT_GENERIC_AFFINITY, ACPI_DMT_TERMINATOR }; +/* 6: Generic Port Affinity Structure (ACPI 6.4) */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoSrat6[] = +{ + ACPI_DM_SRAT_GENERIC_AFFINITY, + ACPI_DMT_TERMINATOR +}; /******************************************************************************* * diff --git a/source/compiler/aslmethod.c b/source/compiler/aslmethod.c index 5bec65e86be6..4b3b66a5ab40 100644 --- a/source/compiler/aslmethod.c +++ b/source/compiler/aslmethod.c @@ -559,74 +559,56 @@ MtMethodAnalysisWalkBegin ( * * Under the Device Object: * - * 1) If _DIS is present, must have a _CRS, _PRS, and _SRS - * 2) If _PRS is present, must have a _CRS and _SRS - * 3) If _SRS is present, must have a _CRS and _PRS + * 1) If _PRS present, must have _CRS and _SRS + * 2) If _SRS present, must have _PRS (_PRS requires _CRS and _SRS) + * 3) If _DIS present, must have _SRS (_SRS requires _PRS, _PRS requires _CRS and _SRS) + * 4) If _SRS present, probably should have a _DIS (Remark only) */ CrsExists = ApFindNameInDeviceTree (METHOD_NAME__CRS, Op); DisExists = ApFindNameInDeviceTree (METHOD_NAME__DIS, Op); PrsExists = ApFindNameInDeviceTree (METHOD_NAME__PRS, Op); SrsExists = ApFindNameInDeviceTree (METHOD_NAME__SRS, Op); - /* 1) If _DIS is present, must have a _CRS, _PRS, and _SRS */ - - if (DisExists) - { - if (!CrsExists) - { - AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op, - "_DIS is missing a _CRS, requires a _CRS, _PRS, and a _SRS"); - } - - if (!PrsExists) - { - AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op, - "_DIS is missing a _PRS, requires a _CRS, _PRS, and a _SRS"); - } - - if (!SrsExists) - { - AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op, - "_DIS is missing a _SRS, requires a _CRS, _PRS, and a _SRS"); - } - } - - /* 2) If _PRS is present, must have a _CRS and _SRS */ + /* 1) If _PRS is present, must have a _CRS and _SRS */ if (PrsExists) { if (!CrsExists) { AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op, - "_PRS is missing a _CRS, requires a _CRS and a _SRS"); + "Device has a _PRS, missing a _CRS, required"); } - if (!SrsExists) { AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op, - "_PRS is missing a _SRS, requires a _CRS and a _SRS"); + "Device has a _PRS, missing a _SRS, required"); } } - /* 3) If _SRS is present, must have a _CRS and _PRS */ + /* 2) If _SRS is present, must have _PRS (_PRS requires _CRS and _SRS) */ - if (SrsExists) + if ((SrsExists) && (!PrsExists)) { - if (!CrsExists) - { - AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op, - "_SRS is missing a _CRS, requires a _CRS and a _PRS"); - } - if (!PrsExists) - { - AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op, - "_SRS is missing a _PRS, requires a _CRS and a _PRS"); - } - if (!DisExists) - { - AslError (ASL_REMARK, ASL_MSG_MISSING_DEPENDENCY, Op, - "_SRS is missing a _DIS"); - } + AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op, + "Device has a _SRS, missing a _PRS, required"); + } + + /* 3) If _DIS is present, must have a _SRS */ + + if ((DisExists) && (!SrsExists)) + { + AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op, + "Device has a _DIS, missing a _SRS, required"); + } + + /* + * 4) If _SRS is present, should have a _DIS (_PRS requires _CRS + * and _SRS) Remark only. + */ + if ((SrsExists) && (!DisExists)) + { + AslError (ASL_REMARK, ASL_MSG_MISSING_DEPENDENCY, Op, + "Device has a _SRS, no corresponding _DIS"); } break; diff --git a/source/compiler/dtcompiler.h b/source/compiler/dtcompiler.h index 6d3dbefaa85d..614a686f1ad4 100644 --- a/source/compiler/dtcompiler.h +++ b/source/compiler/dtcompiler.h @@ -657,6 +657,10 @@ ACPI_STATUS DtCompileNfit ( void **PFieldList); +ACPI_STATUS +DtCompileNhlt ( + void **PFieldList); + ACPI_STATUS DtCompilePcct ( void **PFieldList); diff --git a/source/compiler/dttable2.c b/source/compiler/dttable2.c index fb41ac87dc6e..b94451229e47 100644 --- a/source/compiler/dttable2.c +++ b/source/compiler/dttable2.c @@ -2062,6 +2062,11 @@ DtCompileSrat ( InfoTable = AcpiDmTableInfoSrat5; break; + case ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY: + + InfoTable = AcpiDmTableInfoSrat6; + break; + default: DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "SRAT"); diff --git a/source/compiler/dtutils.c b/source/compiler/dtutils.c index 7d706da6f0fa..52180fb3fd10 100644 --- a/source/compiler/dtutils.c +++ b/source/compiler/dtutils.c @@ -581,6 +581,8 @@ DtGetFieldLength ( case ACPI_DMT_IVRS_DE: case ACPI_DMT_GTDT: case ACPI_DMT_MADT: + case ACPI_DMT_NHLT1: + case ACPI_DMT_NHLT1a: case ACPI_DMT_PCCT: case ACPI_DMT_PMTT: case ACPI_DMT_PPTT: diff --git a/source/compiler/preprocess.h b/source/compiler/preprocess.h index 6343a49c1ff2..f4c8c30966a2 100644 --- a/source/compiler/preprocess.h +++ b/source/compiler/preprocess.h @@ -355,7 +355,7 @@ PrEvaluateExpression ( /* - * prutils - Preprocesor utilities + * prutils - Preprocessor utilities */ char * PrGetNextToken ( diff --git a/source/components/dispatcher/dsfield.c b/source/components/dispatcher/dsfield.c index 90f895b759e4..bd2755aec29b 100644 --- a/source/components/dispatcher/dsfield.c +++ b/source/components/dispatcher/dsfield.c @@ -797,7 +797,7 @@ AcpiDsInitFieldObjects ( } #ifdef ACPI_EXEC_APP - Flags |= ACPI_NS_OVERRIDE_IF_FOUND; + Flags |= ACPI_NS_OVERRIDE_IF_FOUND; #endif /* * Walk the list of entries in the FieldList diff --git a/source/components/hardware/hwesleep.c b/source/components/hardware/hwesleep.c index fcc28581ef72..e8db4d26dc9e 100644 --- a/source/components/hardware/hwesleep.c +++ b/source/components/hardware/hwesleep.c @@ -312,18 +312,15 @@ ACPI_STATUS AcpiHwExtendedWakePrep ( UINT8 SleepState) { - ACPI_STATUS Status; UINT8 SleepTypeValue; ACPI_FUNCTION_TRACE (HwExtendedWakePrep); - Status = AcpiGetSleepTypeData (ACPI_STATE_S0, - &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB); - if (ACPI_SUCCESS (Status)) + if (AcpiGbl_SleepTypeAS0 != ACPI_SLEEP_TYPE_INVALID) { - SleepTypeValue = ((AcpiGbl_SleepTypeA << ACPI_X_SLEEP_TYPE_POSITION) & + SleepTypeValue = ((AcpiGbl_SleepTypeAS0 << ACPI_X_SLEEP_TYPE_POSITION) & ACPI_X_SLEEP_TYPE_MASK); (void) AcpiWrite ((UINT64) (SleepTypeValue | ACPI_X_SLEEP_ENABLE), diff --git a/source/components/hardware/hwsleep.c b/source/components/hardware/hwsleep.c index d85d04785fcd..2b857d970e9f 100644 --- a/source/components/hardware/hwsleep.c +++ b/source/components/hardware/hwsleep.c @@ -339,7 +339,7 @@ ACPI_STATUS AcpiHwLegacyWakePrep ( UINT8 SleepState) { - ACPI_STATUS Status; + ACPI_STATUS Status = AE_OK; ACPI_BIT_REGISTER_INFO *SleepTypeRegInfo; ACPI_BIT_REGISTER_INFO *SleepEnableRegInfo; UINT32 Pm1aControl; @@ -353,9 +353,7 @@ AcpiHwLegacyWakePrep ( * This is unclear from the ACPI Spec, but it is required * by some machines. */ - Status = AcpiGetSleepTypeData (ACPI_STATE_S0, - &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB); - if (ACPI_SUCCESS (Status)) + if (AcpiGbl_SleepTypeAS0 != ACPI_SLEEP_TYPE_INVALID) { SleepTypeRegInfo = AcpiHwGetBitRegisterInfo (ACPI_BITREG_SLEEP_TYPE); @@ -376,9 +374,9 @@ AcpiHwLegacyWakePrep ( /* Insert the SLP_TYP bits */ - Pm1aControl |= (AcpiGbl_SleepTypeA << + Pm1aControl |= (AcpiGbl_SleepTypeAS0 << SleepTypeRegInfo->BitPosition); - Pm1bControl |= (AcpiGbl_SleepTypeB << + Pm1aControl |= (AcpiGbl_SleepTypeBS0 << SleepTypeRegInfo->BitPosition); /* Write the control registers and ignore any errors */ diff --git a/source/components/hardware/hwxfsleep.c b/source/components/hardware/hwxfsleep.c index 26b48ccbef7d..f1a1344c744a 100644 --- a/source/components/hardware/hwxfsleep.c +++ b/source/components/hardware/hwxfsleep.c @@ -471,6 +471,12 @@ AcpiEnterSleepStatePrep ( return_ACPI_STATUS (Status); } + Status = AcpiGetSleepTypeData (ACPI_STATE_S0, + &AcpiGbl_SleepTypeAS0, &AcpiGbl_SleepTypeBS0); + if (ACPI_FAILURE (Status)) { + AcpiGbl_SleepTypeAS0 = ACPI_SLEEP_TYPE_INVALID; + } + /* Execute the _PTS method (Prepare To Sleep) */ ArgList.Count = 1; diff --git a/source/components/utilities/utosi.c b/source/components/utilities/utosi.c index 61867f719139..756ca35c35b1 100644 --- a/source/components/utilities/utosi.c +++ b/source/components/utilities/utosi.c @@ -220,6 +220,7 @@ static ACPI_INTERFACE_INFO AcpiDefaultSupportedInterfaces[] = {"Windows 2018", NULL, 0, ACPI_OSI_WIN_10_RS4}, /* Windows 10 version 1803 - Added 11/2018 */ {"Windows 2018.2", NULL, 0, ACPI_OSI_WIN_10_RS5}, /* Windows 10 version 1809 - Added 11/2018 */ {"Windows 2019", NULL, 0, ACPI_OSI_WIN_10_19H1}, /* Windows 10 version 1903 - Added 08/2019 */ + {"Windows 2020", NULL, 0, ACPI_OSI_WIN_10_20H1}, /* Windows 10 version 2004 - Added 08/2021 */ /* Feature Group Strings */ diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h index 839c0edddef6..6e162d6a4c86 100644 --- a/source/include/acdisasm.h +++ b/source/include/acdisasm.h @@ -224,6 +224,7 @@ typedef enum ACPI_DMT_BUF10, ACPI_DMT_BUF12, ACPI_DMT_BUF16, + ACPI_DMT_BUF18, ACPI_DMT_BUF128, ACPI_DMT_SIG, ACPI_DMT_STRING, @@ -277,6 +278,8 @@ typedef enum ACPI_DMT_LPIT, ACPI_DMT_MADT, ACPI_DMT_NFIT, + ACPI_DMT_NHLT1, + ACPI_DMT_NHLT1a, ACPI_DMT_PCCT, ACPI_DMT_PHAT, ACPI_DMT_PMTT, @@ -544,7 +547,21 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit5[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit7[]; -extern ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt0[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt2[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3a[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt4[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5a[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5b[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5c[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7a[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt8[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhatHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0a[]; @@ -565,6 +582,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct3[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct4[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct5[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt0a[]; @@ -609,6 +627,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat3[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat4[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat5[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat6[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoStao[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoStaoStr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSvkl[]; @@ -791,6 +810,10 @@ void AcpiDmDumpNfit ( ACPI_TABLE_HEADER *Table); +void +AcpiDmDumpNhlt ( + ACPI_TABLE_HEADER *Table); + void AcpiDmDumpPcct ( ACPI_TABLE_HEADER *Table); diff --git a/source/include/acglobal.h b/source/include/acglobal.h index c2107df0e1cc..354268655220 100644 --- a/source/include/acglobal.h +++ b/source/include/acglobal.h @@ -365,6 +365,8 @@ ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE, *AcpiGbl_LastListHead, NULL); extern ACPI_BIT_REGISTER_INFO AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG]; ACPI_GLOBAL (UINT8, AcpiGbl_SleepTypeA); ACPI_GLOBAL (UINT8, AcpiGbl_SleepTypeB); +ACPI_GLOBAL (UINT8, AcpiGbl_SleepTypeAS0); +ACPI_GLOBAL (UINT8, AcpiGbl_SleepTypeBS0); /***************************************************************************** diff --git a/source/include/acpixf.h b/source/include/acpixf.h index 7610f2e30ef2..7f4b31ee45a8 100644 --- a/source/include/acpixf.h +++ b/source/include/acpixf.h @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20210730 +#define ACPI_CA_VERSION 0x20210930 #include "acconfig.h" #include "actypes.h" diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h index f2a1a48cd214..8a9ff736c9da 100644 --- a/source/include/actbinfo.h +++ b/source/include/actbinfo.h @@ -180,6 +180,7 @@ #define ACPI_MPST_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_MPST,f) #define ACPI_MSCT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_MSCT,f) #define ACPI_NFIT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_NFIT,f) +#define ACPI_NHLT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_NHLT,f) #define ACPI_PCCT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_PCCT,f) #define ACPI_PDTT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_PDTT,f) #define ACPI_PMTT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_PMTT,f) @@ -328,6 +329,19 @@ #define ACPI_NFIT5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NFIT_DATA_REGION,f) #define ACPI_NFIT6_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NFIT_FLUSH_ADDRESS,f) #define ACPI_NFIT7_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NFIT_CAPABILITIES,f) +#define ACPI_NHLT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_ENDPOINT,f) +#define ACPI_NHLT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG,f) +#define ACPI_NHLT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_WAVE_EXTENSIBLE,f) +#define ACPI_NHLT3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_FORMAT_CONFIG,f) +#define ACPI_NHLT4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_FORMATS_CONFIG,f) +#define ACPI_NHLT5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG,f) +#define ACPI_NHLT5A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A,f) +#define ACPI_NHLT5B_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B,f) +#define ACPI_NHLT5C_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_C,f) +#define ACPI_NHLT6_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_VENDOR_MIC_CONFIG,f) +#define ACPI_NHLT7_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_LINUX_SPECIFIC_COUNT,f) +#define ACPI_NHLT7A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_LINUX_SPECIFIC_DATA,f) +#define ACPI_NHLT8_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_TABLE_TERMINATOR,f) #define ACPI_PCCT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PCCT_SUBSPACE,f) #define ACPI_PCCT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PCCT_HW_REDUCED,f) #define ACPI_PCCT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PCCT_HW_REDUCED_TYPE2,f) diff --git a/source/include/actbl2.h b/source/include/actbl2.h index 58c1570c805c..0c80aae24f99 100644 --- a/source/include/actbl2.h +++ b/source/include/actbl2.h @@ -179,6 +179,7 @@ #define ACPI_SIG_MSCT "MSCT" /* Maximum System Characteristics Table */ #define ACPI_SIG_MSDM "MSDM" /* Microsoft Data Management Table */ #define ACPI_SIG_NFIT "NFIT" /* NVDIMM Firmware Interface Table */ +#define ACPI_SIG_NHLT "NHLT" /* Non HD Audio Link Table */ #define ACPI_SIG_PCCT "PCCT" /* Platform Communications Channel Table */ #define ACPI_SIG_PDTT "PDTT" /* Platform Debug Trigger Table */ #define ACPI_SIG_PHAT "PHAT" /* Platform Health Assessment Table */ @@ -190,7 +191,6 @@ #define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */ #define ACPI_SIG_SDEI "SDEI" /* Software Delegated Exception Interface Table */ #define ACPI_SIG_SDEV "SDEV" /* Secure Devices table */ -#define ACPI_SIG_NHLT "NHLT" /* Non-HDAudio Link Table */ #define ACPI_SIG_SVKL "SVKL" /* Storage Volume Key Location Table */ @@ -1271,6 +1271,7 @@ typedef struct acpi_madt_multiproc_wakeup_mailbox /* MADT Local APIC flags */ #define ACPI_MADT_ENABLED (1) /* 00: Processor is usable if set */ +#define ACPI_MADT_ONLINE_CAPABLE (2) /* 01: System HW supports enabling processor at runtime */ /* MADT MPS INTI flags (IntiFlags) */ @@ -1777,6 +1778,292 @@ typedef struct nfit_device_handle (((handle) & ACPI_NFIT_NODE_ID_MASK) >> ACPI_NFIT_NODE_ID_OFFSET) +/******************************************************************************* + * + * NHLT - Non HD Audio Link Table + * + * Conforms to: Intel Smart Sound Technology NHLT Specification + * Version 0.8.1, January 2020. + * + ******************************************************************************/ + +/* Main table */ + +typedef struct acpi_table_nhlt +{ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + UINT8 EndpointCount; + +} ACPI_TABLE_NHLT; + +typedef struct acpi_nhlt_endpoint +{ + UINT32 DescriptorLength; + UINT8 LinkType; + UINT8 InstanceId; + UINT16 VendorId; + UINT16 DeviceId; + UINT16 RevisionId; + UINT32 SubsystemId; + UINT8 DeviceType; + UINT8 Direction; + UINT8 VirtualBusId; + +} ACPI_NHLT_ENDPOINT; + +/* Types for LinkType field above */ + +#define ACPI_NHLT_RESERVED_HD_AUDIO 0 +#define ACPI_NHLT_RESERVED_DSP 1 +#define ACPI_NHLT_PDM 2 +#define ACPI_NHLT_SSP 3 +#define ACPI_NHLT_RESERVED_SLIMBUS 4 +#define ACPI_NHLT_RESERVED_SOUNDWIRE 5 +#define ACPI_NHLT_TYPE_RESERVED 6 /* 6 and above are reserved */ + +/* All other values above are reserved */ + +/* Values for DeviceId field above */ + +#define ACPI_NHLT_PDM_DMIC 0xAE20 +#define ACPI_NHLT_BT_SIDEBAND 0xAE30 +#define ACPI_NHLT_I2S_TDM_CODECS 0xAE23 + +/* Values for DeviceType field above */ + +/* SSP Link */ + +#define ACPI_NHLT_LINK_BT_SIDEBAND 0 +#define ACPI_NHLT_LINK_FM 1 +#define ACPI_NHLT_LINK_MODEM 2 +/* 3 is reserved */ +#define ACPI_NHLT_LINK_SSP_ANALOG_CODEC 4 + +/* PDM Link */ + +#define ACPI_NHLT_PDM_ON_CAVS_1P8 0 +#define ACPI_NHLT_PDM_ON_CAVS_1P5 1 + +/* Values for Direction field above */ + +#define ACPI_NHLT_DIR_RENDER 0 +#define ACPI_NHLT_DIR_CAPTURE 1 +#define ACPI_NHLT_DIR_RENDER_LOOPBACK 2 +#define ACPI_NHLT_DIR_RENDER_FEEDBACK 3 +#define ACPI_NHLT_DIR_RESERVED 4 /* 4 and above are reserved */ + +typedef struct acpi_nhlt_device_specific_config +{ + UINT32 CapabilitiesSize; + UINT8 VirtualSlot; + UINT8 ConfigType; + +} ACPI_NHLT_DEVICE_SPECIFIC_CONFIG; + +typedef struct acpi_nhlt_device_specific_config_a +{ + UINT32 CapabilitiesSize; + UINT8 VirtualSlot; + UINT8 ConfigType; + UINT8 ArrayType; + +} ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A; + +/* Values for Config Type above */ + +#define ACPI_NHLT_TYPE_MIC_ARRAY 0x01 +#define ACPI_NHLT_TYPE_GENERIC 0x00 + +/* Mask for Extension field of ArrayType */ + +#define ACPI_NHLT_ARRAY_TYPE_MASK 0x10 + +typedef struct acpi_nhlt_device_specific_config_b +{ + UINT32 CapabilitiesSize; + +} ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B; + +typedef struct acpi_nhlt_device_specific_config_c +{ + UINT32 CapabilitiesSize; + UINT8 VirtualSlot; + +} ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_C; + +typedef struct acpi_nhlt_wave_extensible +{ + UINT16 FormatTag; + UINT16 ChannelCount; + UINT32 SamplesPerSec; + UINT32 AvgBytesPerSec; + UINT16 BlockAlign; + UINT16 BitsPerSample; + UINT16 ExtraFormatSize; + UINT16 ValidBitsPerSample; + UINT32 ChannelMask; + UINT8 SubFormatGuid[16]; + +} ACPI_NHLT_WAVE_EXTENSIBLE; + +/* Values for ChannelMask above */ + +#define ACPI_NHLT_SPKR_FRONT_LEFT 0x1 +#define ACPI_NHLT_SPKR_FRONT_RIGHT 0x2 +#define ACPI_NHLT_SPKR_FRONT_CENTER 0x4 +#define ACPI_NHLT_SPKR_LOW_FREQ 0x8 +#define ACPI_NHLT_SPKR_BACK_LEFT 0x10 +#define ACPI_NHLT_SPKR_BACK_RIGHT 0x20 +#define ACPI_NHLT_SPKR_FRONT_LEFT_OF_CENTER 0x40 +#define ACPI_NHLT_SPKR_FRONT_RIGHT_OF_CENTER 0x80 +#define ACPI_NHLT_SPKR_BACK_CENTER 0x100 +#define ACPI_NHLT_SPKR_SIDE_LEFT 0x200 +#define ACPI_NHLT_SPKR_SIDE_RIGHT 0x400 +#define ACPI_NHLT_SPKR_TOP_CENTER 0x800 +#define ACPI_NHLT_SPKR_TOP_FRONT_LEFT 0x1000 +#define ACPI_NHLT_SPKR_TOP_FRONT_CENTER 0x2000 +#define ACPI_NHLT_SPKR_TOP_FRONT_RIGHT 0x4000 +#define ACPI_NHLT_SPKR_TOP_BACK_LEFT 0x8000 +#define ACPI_NHLT_SPKR_TOP_BACK_CENTER 0x10000 +#define ACPI_NHLT_SPKR_TOP_BACK_RIGHT 0x20000 + +typedef struct acpi_nhlt_format_config +{ + ACPI_NHLT_WAVE_EXTENSIBLE Format; + UINT32 CapabilitySize; + UINT8 Capabilities[]; + +} ACPI_NHLT_FORMAT_CONFIG; + +typedef struct acpi_nhlt_formats_config +{ + UINT8 FormatsCount; + +} ACPI_NHLT_FORMATS_CONFIG; + +typedef struct acpi_nhlt_device_specific_hdr +{ + UINT8 VirtualSlot; + UINT8 ConfigType; + +} ACPI_NHLT_DEVICE_SPECIFIC_HDR; + +/* Types for ConfigType above */ + +#define ACPI_NHLT_GENERIC 0 +#define ACPI_NHLT_MIC 1 +#define ACPI_NHLT_RENDER 3 + +typedef struct acpi_nhlt_mic_device_specific_config +{ + ACPI_NHLT_DEVICE_SPECIFIC_HDR DeviceConfig; + UINT8 ArrayTypeExt; + +} ACPI_NHLT_MIC_DEVICE_SPECIFIC_CONFIG; + +/* Values for ArrayTypeExt above */ + +#define SMALL_LINEAR_2ELEMENT 0x0A +#define BIG_LINEAR_2ELEMENT 0x0B +#define FIRST_GEOMETRY_LINEAR_4ELEMENT 0x0C +#define PLANAR_LSHAPED_4ELEMENT 0x0D +#define SECOND_GEOMETRY_LINEAR_4ELEMENT 0x0E +#define VENDOR_DEFINED 0x0F +#define ARRAY_TYPE_MASK 0x0F +#define ARRAY_TYPE_EXT_MASK 0x10 + +#define NO_EXTENSION 0x0 +#define MIC_SNR_SENSITIVITY_EXT 0x1 + + +typedef struct acpi_nhlt_vendor_mic_config +{ + UINT8 Type; + UINT8 Panel; + UINT16 SpeakerPositionDistance; // mm + UINT16 HorizontalOffset; // mm + UINT16 VerticalOffset; // mm + UINT8 FrequencyLowBand; // 5*Hz + UINT8 FrequencyHighBand; // 500*Hz + UINT16 DirectionAngle; // -180 - + 180 + UINT16 ElevationAngle; // -180 - + 180 + UINT16 WorkVerticalAngleBegin; // -180 - + 180 with 2 deg step + UINT16 WorkVerticalAngleEnd; // -180 - + 180 with 2 deg step + UINT16 WorkHorizontalAngleBegin; // -180 - + 180 with 2 deg step + UINT16 WorkHorizontalAngleEnd; // -180 - + 180 with 2 deg step + +} ACPI_NHLT_VENDOR_MIC_CONFIG; + +/* Values for Type field above */ + +#define MIC_OMNIDIRECTIONAL 0 +#define MIC_SUBCARDIOID 1 +#define MIC_CARDIOID 2 +#define MIC_SUPER_CARDIOID 3 +#define MIC_HYPER_CARDIOID 4 +#define MIC_8_SHAPED 5 +#define MIC_VENDOR_DEFINED 7 + +/* Values for Panel field above */ + +#define MIC_TOP 0 +#define MIC_BOTTOM 1 +#define MIC_LEFT 2 +#define MIC_RIGHT 3 +#define MIC_FRONT 4 +#define MIC_REAR 5 + +typedef struct acpi_nhlt_vendor_mic_device_specific_config +{ + ACPI_NHLT_MIC_DEVICE_SPECIFIC_CONFIG MicArrayDeviceConfig; + UINT8 NumberOfMicrophones; + ACPI_NHLT_VENDOR_MIC_CONFIG MicConfig[]; // Indexed by NumberOfMicrophones + +} ACPI_NHLT_VENDOR_MIC_DEVICE_SPECIFIC_CONFIG; + +/* Microphone SNR and Sensitivity extension */ + +typedef struct acpi_nhlt_mic_snr_sensitivity_extension +{ + UINT32 SNR; + UINT32 Sensitivity; + +} ACPI_NHLT_MIC_SNR_SENSITIVITY_EXTENSION; + +typedef struct acpi_nhlt_render_feedback_device_specific_config +{ + ACPI_NHLT_DEVICE_SPECIFIC_CONFIG DeviceConfig; + UINT8 FeedbackVirtualSlot; // Render slot in case of capture + UINT16 FeedbackChannels; // Informative only + UINT16 FeedbackValidBitsPerSample; + +} ACPI_NHLT_RENDER_FEEDBACK_DEVICE_SPECIFIC_CONFIG; + +/* Linux-specific structures */ + +typedef struct acpi_nhlt_linux_specific_count +{ + UINT8 StructureCount; + +} ACPI_NHLT_LINUX_SPECIFIC_COUNT; + +typedef struct acpi_nhlt_linux_specific_data +{ + UINT8 DeviceId[16]; + UINT8 DeviceInstanceId; + UINT8 DevicePortId; + UINT8 Filler[18]; + +} ACPI_NHLT_LINUX_SPECIFIC_DATA; + +typedef struct acpi_nhlt_table_terminator +{ + UINT32 TerminatorValue; + UINT32 TerminatorSignature; + +} ACPI_NHLT_TABLE_TERMINATOR; + + /******************************************************************************* * * PCCT - Platform Communications Channel Table (ACPI 5.0) diff --git a/source/include/actbl3.h b/source/include/actbl3.h index d0f7025fab54..40cf71306af4 100644 --- a/source/include/actbl3.h +++ b/source/include/actbl3.h @@ -352,7 +352,8 @@ enum AcpiSratType ACPI_SRAT_TYPE_GICC_AFFINITY = 3, ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, /* ACPI 6.2 */ ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5, /* ACPI 6.3 */ - ACPI_SRAT_TYPE_RESERVED = 6 /* 5 and greater are reserved */ + ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY = 6, /* ACPI 6.4 */ + ACPI_SRAT_TYPE_RESERVED = 7 /* 7 and greater are reserved */ }; /* @@ -447,8 +448,11 @@ typedef struct acpi_srat_gic_its_affinity } ACPI_SRAT_GIC_ITS_AFFINITY; - -/* 5: Generic Initiator Affinity Structure (ACPI 6.3) */ +/* + * Common structure for SRAT subtable types: + * 5: ACPI_SRAT_TYPE_GENERIC_AFFINITY + * 6: ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY + */ typedef struct acpi_srat_generic_affinity { diff --git a/source/include/actypes.h b/source/include/actypes.h index e98e636a36a8..5138342c990a 100644 --- a/source/include/actypes.h +++ b/source/include/actypes.h @@ -1531,6 +1531,7 @@ typedef enum #define ACPI_OSI_WIN_10_RS4 0x12 #define ACPI_OSI_WIN_10_RS5 0x13 #define ACPI_OSI_WIN_10_19H1 0x14 +#define ACPI_OSI_WIN_10_20H1 0x15 /* Definitions of getopt */ diff --git a/source/tools/acpisrc/astable.c b/source/tools/acpisrc/astable.c index 5cf240bbe9cb..59f1ab8bd4dc 100644 --- a/source/tools/acpisrc/astable.c +++ b/source/tools/acpisrc/astable.c @@ -673,6 +673,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_MSCT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MSDM", SRC_TYPE_STRUCT}, {"ACPI_TABLE_NFIT", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_NHLT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_PCCT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_PDTT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_PHAT", SRC_TYPE_STRUCT}, @@ -824,23 +825,40 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_MADT_MULTIPROC_WAKEUP", SRC_TYPE_STRUCT}, {"ACPI_MADT_MULTIPROC_WAKEUP_MAILBOX", SRC_TYPE_STRUCT}, {"ACPI_MADT_PROCESSOR_APIC", SRC_TYPE_STRUCT}, + {"ACPI_MCFG_ALLOCATION", SRC_TYPE_STRUCT}, {"ACPI_MPST_COMPONENT", SRC_TYPE_STRUCT}, {"ACPI_MPST_DATA_HDR", SRC_TYPE_STRUCT}, {"ACPI_MPST_POWER_DATA", SRC_TYPE_STRUCT}, {"ACPI_MPST_POWER_NODE", SRC_TYPE_STRUCT}, {"ACPI_MPST_POWER_STATE", SRC_TYPE_STRUCT}, - {"ACPI_MCFG_ALLOCATION", SRC_TYPE_STRUCT}, {"ACPI_MSCT_PROXIMITY", SRC_TYPE_STRUCT}, {"ACPI_NFIT_CAPABILITIES", SRC_TYPE_STRUCT}, - {"ACPI_NFIT_DEVICE_HANDLE", SRC_TYPE_STRUCT}, - {"ACPI_NFIT_HEADER", SRC_TYPE_STRUCT}, - {"ACPI_NFIT_SYSTEM_ADDRESS", SRC_TYPE_STRUCT}, - {"ACPI_NFIT_MEMORY_MAP", SRC_TYPE_STRUCT}, - {"ACPI_NFIT_INTERLEAVE", SRC_TYPE_STRUCT}, - {"ACPI_NFIT_SMBIOS", SRC_TYPE_STRUCT}, {"ACPI_NFIT_CONTROL_REGION", SRC_TYPE_STRUCT}, {"ACPI_NFIT_DATA_REGION", SRC_TYPE_STRUCT}, + {"ACPI_NFIT_DEVICE_HANDLE", SRC_TYPE_STRUCT}, {"ACPI_NFIT_FLUSH_ADDRESS", SRC_TYPE_STRUCT}, + {"ACPI_NFIT_HEADER", SRC_TYPE_STRUCT}, + {"ACPI_NFIT_INTERLEAVE", SRC_TYPE_STRUCT}, + {"ACPI_NFIT_MEMORY_MAP", SRC_TYPE_STRUCT}, + {"ACPI_NFIT_SMBIOS", SRC_TYPE_STRUCT}, + {"ACPI_NFIT_SYSTEM_ADDRESS", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_DEVICE_SPECIFIC_CONFIG", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_C", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_DEVICE_SPECIFIC_HDR", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_ENDPOINT", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_FORMAT_CONFIG", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_FORMATS_CONFIG", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_LINUX_SPECIFIC_COUNT", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_LINUX_SPECIFIC_DATA", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_MIC_DEVICE_SPECIFIC_CONFIG", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_MIC_SNR_SENSITIVITY_EXTENSION", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_RENDER_FEEDBACK_DEVICE_SPECIFIC_CONFIG",SRC_TYPE_STRUCT}, + {"ACPI_NHLT_TABLE_TERMINATOR", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_VENDOR_MIC_CONFIG", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_VENDOR_MIC_DEVICE_SPECIFIC_CONFIG", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_WAVE_EXTENSIBLE", SRC_TYPE_STRUCT}, {"ACPI_PCCT_EXT_PCC_SHARED_MEMORY", SRC_TYPE_STRUCT}, {"ACPI_PCCT_HW_REDUCED", SRC_TYPE_STRUCT}, {"ACPI_PCCT_HW_REDUCED_TYPE2", SRC_TYPE_STRUCT}, From ca1c95cc699a25d891e62ef863c8268c93b35cf8 Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Thu, 31 Mar 2022 18:06:25 -0400 Subject: [PATCH 07/10] Import ACPICA 20220331 --- changes.txt | 126 ++++++ source/common/acfileio.c | 13 +- source/common/acgetline.c | 2 +- source/common/adfile.c | 2 +- source/common/adisasm.c | 2 +- source/common/adwalk.c | 2 +- source/common/ahids.c | 2 +- source/common/ahpredef.c | 2 +- source/common/ahtable.c | 5 +- source/common/ahuuids.c | 2 +- source/common/cmfsize.c | 2 +- source/common/dmextern.c | 2 +- source/common/dmrestag.c | 2 +- source/common/dmswitch.c | 2 +- source/common/dmtable.c | 179 +++++++- source/common/dmtables.c | 2 +- source/common/dmtbdump.c | 72 +++- source/common/dmtbdump1.c | 118 ++++- source/common/dmtbdump2.c | 354 ++++++++++----- source/common/dmtbdump3.c | 2 +- source/common/dmtbinfo.c | 8 +- source/common/dmtbinfo1.c | 33 +- source/common/dmtbinfo2.c | 136 ++++-- source/common/dmtbinfo3.c | 16 +- source/common/getopt.c | 2 +- source/compiler/aslallocate.c | 2 +- source/compiler/aslanalyze.c | 2 +- source/compiler/aslascii.c | 2 +- source/compiler/aslbtypes.c | 2 +- source/compiler/aslcache.c | 7 +- source/compiler/aslcodegen.c | 2 +- source/compiler/aslcompile.c | 5 +- source/compiler/aslcompiler.h | 2 +- source/compiler/aslcompiler.l | 2 +- source/compiler/aslcstyle.y | 2 +- source/compiler/asldebug.c | 2 +- source/compiler/asldefine.h | 2 +- source/compiler/aslerror.c | 5 +- source/compiler/aslexternal.c | 2 +- source/compiler/aslfileio.c | 2 +- source/compiler/aslfiles.c | 6 +- source/compiler/aslfold.c | 2 +- source/compiler/aslglobal.h | 2 +- source/compiler/aslhelp.c | 2 +- source/compiler/aslhelpers.y | 2 +- source/compiler/aslhex.c | 2 +- source/compiler/aslkeywords.y | 2 +- source/compiler/asllength.c | 2 +- source/compiler/asllisting.c | 2 +- source/compiler/asllistsup.c | 2 +- source/compiler/aslload.c | 2 +- source/compiler/asllookup.c | 2 +- source/compiler/aslmain.c | 4 +- source/compiler/aslmap.c | 6 +- source/compiler/aslmapenter.c | 2 +- source/compiler/aslmapoutput.c | 2 +- source/compiler/aslmaputils.c | 2 +- source/compiler/aslmessages.c | 7 +- source/compiler/aslmessages.h | 4 +- source/compiler/aslmethod.c | 2 +- source/compiler/aslnamesp.c | 2 +- source/compiler/asloffset.c | 2 +- source/compiler/aslopcodes.c | 2 +- source/compiler/asloperands.c | 8 +- source/compiler/aslopt.c | 2 +- source/compiler/asloptions.c | 2 +- source/compiler/aslparseop.c | 2 +- source/compiler/aslparser.y | 2 +- source/compiler/aslpld.c | 2 +- source/compiler/aslpredef.c | 2 +- source/compiler/aslprepkg.c | 2 +- source/compiler/aslprimaries.y | 4 +- source/compiler/aslprintf.c | 2 +- source/compiler/aslprune.c | 2 +- source/compiler/aslresource.c | 2 +- source/compiler/aslresources.y | 2 +- source/compiler/aslrestype1.c | 2 +- source/compiler/aslrestype1i.c | 2 +- source/compiler/aslrestype2.c | 2 +- source/compiler/aslrestype2d.c | 2 +- source/compiler/aslrestype2e.c | 2 +- source/compiler/aslrestype2q.c | 2 +- source/compiler/aslrestype2s.c | 2 +- source/compiler/aslrestype2w.c | 2 +- source/compiler/aslrules.y | 8 +- source/compiler/aslstartup.c | 25 +- source/compiler/aslstubs.c | 2 +- source/compiler/aslsupport.l | 2 +- source/compiler/aslsupport.y | 2 +- source/compiler/asltokens.y | 2 +- source/compiler/asltransform.c | 2 +- source/compiler/asltree.c | 2 +- source/compiler/asltypes.h | 2 +- source/compiler/asltypes.y | 4 +- source/compiler/aslutils.c | 2 +- source/compiler/asluuid.c | 3 +- source/compiler/aslwalks.c | 2 +- source/compiler/aslxref.c | 2 +- source/compiler/aslxrefout.c | 2 +- source/compiler/cvcompiler.c | 2 +- source/compiler/cvdisasm.c | 2 +- source/compiler/cvparser.c | 2 +- source/compiler/dtcompile.c | 2 +- source/compiler/dtcompiler.h | 10 +- source/compiler/dtcompilerparser.l | 2 +- source/compiler/dtcompilerparser.y | 2 +- source/compiler/dtexpress.c | 2 +- source/compiler/dtfield.c | 8 +- source/compiler/dtio.c | 2 +- source/compiler/dtparser.l | 2 +- source/compiler/dtparser.y | 2 +- source/compiler/dtsubtable.c | 2 +- source/compiler/dttable.c | 61 ++- source/compiler/dttable1.c | 181 +++++++- source/compiler/dttable2.c | 404 +++++++++++++++++- source/compiler/dttemplate.c | 2 +- source/compiler/dttemplate.h | 205 +++++++-- source/compiler/dtutils.c | 15 +- source/compiler/preprocess.h | 2 +- source/compiler/prexpress.c | 2 +- source/compiler/prmacros.c | 2 +- source/compiler/prparser.l | 2 +- source/compiler/prparser.y | 2 +- source/compiler/prscan.c | 2 +- source/compiler/prutils.c | 2 +- source/components/debugger/dbcmds.c | 2 +- source/components/debugger/dbconvert.c | 2 +- source/components/debugger/dbdisply.c | 2 +- source/components/debugger/dbexec.c | 2 +- source/components/debugger/dbfileio.c | 2 +- source/components/debugger/dbhistry.c | 2 +- source/components/debugger/dbinput.c | 2 +- source/components/debugger/dbmethod.c | 2 +- source/components/debugger/dbnames.c | 2 +- source/components/debugger/dbobject.c | 2 +- source/components/debugger/dbstats.c | 2 +- source/components/debugger/dbtest.c | 2 +- source/components/debugger/dbutils.c | 2 +- source/components/debugger/dbxface.c | 2 +- source/components/disassembler/dmbuffer.c | 2 +- source/components/disassembler/dmcstyle.c | 2 +- source/components/disassembler/dmdeferred.c | 2 +- source/components/disassembler/dmnames.c | 2 +- source/components/disassembler/dmopcode.c | 2 +- source/components/disassembler/dmresrc.c | 2 +- source/components/disassembler/dmresrcl.c | 2 +- source/components/disassembler/dmresrcl2.c | 2 +- source/components/disassembler/dmresrcs.c | 2 +- source/components/disassembler/dmutils.c | 2 +- source/components/disassembler/dmwalk.c | 12 +- source/components/dispatcher/dsargs.c | 2 +- source/components/dispatcher/dscontrol.c | 2 +- source/components/dispatcher/dsdebug.c | 2 +- source/components/dispatcher/dsfield.c | 2 +- source/components/dispatcher/dsinit.c | 2 +- source/components/dispatcher/dsmethod.c | 2 +- source/components/dispatcher/dsmthdat.c | 2 +- source/components/dispatcher/dsobject.c | 2 +- source/components/dispatcher/dsopcode.c | 3 +- source/components/dispatcher/dspkginit.c | 2 +- source/components/dispatcher/dsutils.c | 2 +- source/components/dispatcher/dswexec.c | 4 +- source/components/dispatcher/dswload.c | 2 +- source/components/dispatcher/dswload2.c | 2 +- source/components/dispatcher/dswscope.c | 2 +- source/components/dispatcher/dswstate.c | 2 +- source/components/events/evevent.c | 2 +- source/components/events/evglock.c | 2 +- source/components/events/evgpe.c | 2 +- source/components/events/evgpeblk.c | 2 +- source/components/events/evgpeinit.c | 2 +- source/components/events/evgpeutil.c | 2 +- source/components/events/evhandler.c | 4 +- source/components/events/evmisc.c | 2 +- source/components/events/evregion.c | 11 +- source/components/events/evrgnini.c | 60 ++- source/components/events/evsci.c | 2 +- source/components/events/evxface.c | 2 +- source/components/events/evxfevnt.c | 2 +- source/components/events/evxfgpe.c | 2 +- source/components/events/evxfregn.c | 2 +- source/components/executer/exconcat.c | 2 +- source/components/executer/exconfig.c | 65 +-- source/components/executer/exconvrt.c | 2 +- source/components/executer/excreate.c | 3 +- source/components/executer/exdebug.c | 2 +- source/components/executer/exdump.c | 2 +- source/components/executer/exfield.c | 6 +- source/components/executer/exfldio.c | 4 +- source/components/executer/exmisc.c | 2 +- source/components/executer/exmutex.c | 2 +- source/components/executer/exnames.c | 2 +- source/components/executer/exoparg1.c | 24 +- source/components/executer/exoparg2.c | 2 +- source/components/executer/exoparg3.c | 2 +- source/components/executer/exoparg6.c | 2 +- source/components/executer/exprep.c | 2 +- source/components/executer/exregion.c | 16 +- source/components/executer/exresnte.c | 2 +- source/components/executer/exresolv.c | 2 +- source/components/executer/exresop.c | 2 +- source/components/executer/exserial.c | 2 +- source/components/executer/exstore.c | 2 +- source/components/executer/exstoren.c | 2 +- source/components/executer/exstorob.c | 2 +- source/components/executer/exsystem.c | 41 +- source/components/executer/extrace.c | 2 +- source/components/executer/exutils.c | 2 +- source/components/hardware/hwacpi.c | 2 +- source/components/hardware/hwesleep.c | 7 +- source/components/hardware/hwgpe.c | 2 +- source/components/hardware/hwpci.c | 2 +- source/components/hardware/hwregs.c | 4 +- source/components/hardware/hwsleep.c | 9 +- source/components/hardware/hwtimer.c | 2 +- source/components/hardware/hwvalid.c | 2 +- source/components/hardware/hwxface.c | 2 +- source/components/hardware/hwxfsleep.c | 4 +- source/components/namespace/nsaccess.c | 2 +- source/components/namespace/nsalloc.c | 2 +- source/components/namespace/nsarguments.c | 2 +- source/components/namespace/nsconvert.c | 2 +- source/components/namespace/nsdump.c | 2 +- source/components/namespace/nsdumpdv.c | 2 +- source/components/namespace/nseval.c | 2 +- source/components/namespace/nsinit.c | 2 +- source/components/namespace/nsload.c | 2 +- source/components/namespace/nsnames.c | 2 +- source/components/namespace/nsobject.c | 2 +- source/components/namespace/nsparse.c | 2 +- source/components/namespace/nspredef.c | 2 +- source/components/namespace/nsprepkg.c | 2 +- source/components/namespace/nsrepair.c | 2 +- source/components/namespace/nsrepair2.c | 2 +- source/components/namespace/nssearch.c | 2 +- source/components/namespace/nsutils.c | 2 +- source/components/namespace/nswalk.c | 6 +- source/components/namespace/nsxfeval.c | 2 +- source/components/namespace/nsxfname.c | 2 +- source/components/namespace/nsxfobj.c | 2 +- source/components/parser/psargs.c | 2 +- source/components/parser/psloop.c | 2 +- source/components/parser/psobject.c | 2 +- source/components/parser/psopcode.c | 4 +- source/components/parser/psopinfo.c | 2 +- source/components/parser/psparse.c | 2 +- source/components/parser/psscope.c | 2 +- source/components/parser/pstree.c | 2 +- source/components/parser/psutils.c | 2 +- source/components/parser/pswalk.c | 2 +- source/components/parser/psxface.c | 2 +- source/components/resources/rsaddr.c | 2 +- source/components/resources/rscalc.c | 2 +- source/components/resources/rscreate.c | 2 +- source/components/resources/rsdump.c | 2 +- source/components/resources/rsdumpinfo.c | 2 +- source/components/resources/rsinfo.c | 2 +- source/components/resources/rsio.c | 2 +- source/components/resources/rsirq.c | 2 +- source/components/resources/rslist.c | 2 +- source/components/resources/rsmemory.c | 2 +- source/components/resources/rsmisc.c | 2 +- source/components/resources/rsserial.c | 2 +- source/components/resources/rsutils.c | 2 +- source/components/resources/rsxface.c | 2 +- source/components/tables/tbdata.c | 87 ++-- source/components/tables/tbfadt.c | 8 +- source/components/tables/tbfind.c | 2 +- source/components/tables/tbinstal.c | 14 +- source/components/tables/tbprint.c | 5 +- source/components/tables/tbutils.c | 5 +- source/components/tables/tbxface.c | 2 +- source/components/tables/tbxfload.c | 59 ++- source/components/tables/tbxfroot.c | 2 +- source/components/utilities/utaddress.c | 2 +- source/components/utilities/utalloc.c | 2 +- source/components/utilities/utascii.c | 2 +- source/components/utilities/utbuffer.c | 2 +- source/components/utilities/utcache.c | 2 +- source/components/utilities/utclib.c | 2 +- source/components/utilities/utcopy.c | 2 +- source/components/utilities/utdebug.c | 2 +- source/components/utilities/utdecode.c | 2 +- source/components/utilities/utdelete.c | 3 +- source/components/utilities/uterror.c | 2 +- source/components/utilities/uteval.c | 2 +- source/components/utilities/utexcep.c | 2 +- source/components/utilities/utglobal.c | 2 +- source/components/utilities/uthex.c | 2 +- source/components/utilities/utids.c | 2 +- source/components/utilities/utinit.c | 2 +- source/components/utilities/utlock.c | 2 +- source/components/utilities/utmath.c | 2 +- source/components/utilities/utmisc.c | 2 +- source/components/utilities/utmutex.c | 2 +- source/components/utilities/utnonansi.c | 2 +- source/components/utilities/utobject.c | 2 +- source/components/utilities/utosi.c | 3 +- source/components/utilities/utownerid.c | 2 +- source/components/utilities/utpredef.c | 2 +- source/components/utilities/utprint.c | 2 +- source/components/utilities/utresdecode.c | 2 +- source/components/utilities/utresrc.c | 2 +- source/components/utilities/utstate.c | 2 +- source/components/utilities/utstring.c | 2 +- source/components/utilities/utstrsuppt.c | 2 +- source/components/utilities/utstrtoul64.c | 2 +- source/components/utilities/uttrack.c | 2 +- source/components/utilities/utuuid.c | 2 +- source/components/utilities/utxface.c | 2 +- source/components/utilities/utxferror.c | 2 +- source/components/utilities/utxfinit.c | 2 +- source/components/utilities/utxfmutex.c | 2 +- source/include/acapps.h | 4 +- source/include/acbuffer.h | 2 +- source/include/acclib.h | 2 +- source/include/accommon.h | 2 +- source/include/acconfig.h | 2 +- source/include/acconvert.h | 2 +- source/include/acdebug.h | 2 +- source/include/acdisasm.h | 29 +- source/include/acdispat.h | 2 +- source/include/acevents.h | 9 +- source/include/acexcep.h | 2 +- source/include/acglobal.h | 2 +- source/include/achware.h | 2 +- source/include/acinterp.h | 2 +- source/include/aclocal.h | 2 +- source/include/acmacros.h | 2 +- source/include/acnames.h | 2 +- source/include/acnamesp.h | 2 +- source/include/acobject.h | 3 +- source/include/acopcode.h | 2 +- source/include/acoutput.h | 2 +- source/include/acparser.h | 2 +- source/include/acpi.h | 2 +- source/include/acpiosxf.h | 2 +- source/include/acpixf.h | 12 +- source/include/acpredef.h | 2 +- source/include/acresrc.h | 2 +- source/include/acrestyp.h | 2 +- source/include/acstruct.h | 2 +- source/include/actables.h | 7 +- source/include/actbinfo.h | 19 +- source/include/actbl.h | 2 +- source/include/actbl1.h | 35 +- source/include/actbl2.h | 316 +++++++++++--- source/include/actbl3.h | 2 +- source/include/actypes.h | 33 +- source/include/acutils.h | 2 +- source/include/acuuid.h | 2 +- source/include/amlcode.h | 2 +- source/include/amlresrc.h | 2 +- source/include/platform/accygwin.h | 2 +- source/include/platform/acdragonflyex.h | 2 +- source/include/platform/acefi.h | 2 +- source/include/platform/acefiex.h | 2 +- source/include/platform/acenv.h | 2 +- source/include/platform/acenvex.h | 2 +- source/include/platform/acfreebsd.h | 2 +- source/include/platform/acgcc.h | 2 +- source/include/platform/acgccex.h | 2 +- source/include/platform/achaiku.h | 2 +- source/include/platform/acintel.h | 2 +- source/include/platform/aclinux.h | 7 +- source/include/platform/aclinuxex.h | 2 +- source/include/platform/acmacosx.h | 2 +- source/include/platform/acmsvc.h | 2 +- source/include/platform/acmsvcex.h | 2 +- source/include/platform/acnetbsd.h | 2 +- source/include/platform/acos2.h | 2 +- source/include/platform/acqnx.h | 2 +- source/include/platform/acwin.h | 2 +- source/include/platform/acwin64.h | 2 +- source/os_specific/service_layers/osbsdtbl.c | 2 +- .../os_specific/service_layers/oslinuxtbl.c | 2 +- source/os_specific/service_layers/osunixdir.c | 2 +- source/os_specific/service_layers/osunixmap.c | 2 +- source/os_specific/service_layers/osunixxf.c | 2 +- source/os_specific/service_layers/oswindir.c | 2 +- source/os_specific/service_layers/oswintbl.c | 2 +- source/os_specific/service_layers/oswinxf.c | 2 +- source/tools/acpibin/abcompare.c | 2 +- source/tools/acpibin/abmain.c | 2 +- source/tools/acpibin/acpibin.h | 2 +- source/tools/acpidump/acpidump.h | 2 +- source/tools/acpidump/apdump.c | 2 +- source/tools/acpidump/apfiles.c | 2 +- source/tools/acpidump/apmain.c | 2 +- source/tools/acpiexec/aecommon.h | 2 +- source/tools/acpiexec/aeexception.c | 6 +- source/tools/acpiexec/aeexec.c | 2 +- source/tools/acpiexec/aehandlers.c | 2 +- source/tools/acpiexec/aeinitfile.c | 2 +- source/tools/acpiexec/aeinstall.c | 2 +- source/tools/acpiexec/aemain.c | 2 +- source/tools/acpiexec/aeregion.c | 2 +- source/tools/acpiexec/aetables.c | 2 +- source/tools/acpiexec/aetables.h | 2 +- source/tools/acpiexec/aetests.c | 2 +- source/tools/acpihelp/acpihelp.h | 2 +- source/tools/acpihelp/ahaml.c | 2 +- source/tools/acpihelp/ahamlops.c | 2 +- source/tools/acpihelp/ahasl.c | 2 +- source/tools/acpihelp/ahaslkey.c | 2 +- source/tools/acpihelp/ahaslops.c | 2 +- source/tools/acpihelp/ahdecode.c | 2 +- source/tools/acpihelp/ahgrammar.c | 2 +- source/tools/acpihelp/ahmain.c | 2 +- source/tools/acpisrc/acpisrc.h | 2 +- source/tools/acpisrc/ascase.c | 2 +- source/tools/acpisrc/asconvrt.c | 4 +- source/tools/acpisrc/asfile.c | 2 +- source/tools/acpisrc/asmain.c | 2 +- source/tools/acpisrc/asremove.c | 2 +- source/tools/acpisrc/astable.c | 36 +- source/tools/acpisrc/asutils.c | 2 +- source/tools/acpixtract/acpixtract.c | 2 +- source/tools/acpixtract/acpixtract.h | 2 +- source/tools/acpixtract/axmain.c | 2 +- source/tools/acpixtract/axutils.c | 2 +- source/tools/efihello/efihello.c | 2 +- source/tools/examples/examples.c | 2 +- source/tools/examples/examples.h | 2 +- source/tools/examples/exstubs.c | 2 +- source/tools/examples/extables.c | 2 +- 426 files changed, 2873 insertions(+), 864 deletions(-) diff --git a/changes.txt b/changes.txt index ad2323971aea..cf3c21898c51 100644 --- a/changes.txt +++ b/changes.txt @@ -1,3 +1,129 @@ +---------------------------------------- +31 March 2022. Summary of changes for version 20220331: + +0) Global changes: + +Update all copyright notices to the year 2022. This effects all source +modules, as well as utility signons. + + +1) ACPICA kernel-resident subsystem: + +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. + + +2) iASL Compiler/Disassembler and ACPICA tools: + +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. + +---------------------------------------- +17 December 2021. Summary of changes for version 20211217: + +1) ACPICA kernel-resident subsystem: + +Hardware: Do not flush CPU cache when entering S4 and S5. According to +ACPI 6.4, Section 16.2, the CPU cache flushing is required on entering to +S1, S2, and S3, but the ACPICA code flushes the CPU cache regardless of +the sleep state. Blind cache flush on entering S5 causes problems for +TDX. + +Avoid subobject buffer overflow when validating RSDP signature. Since the +Signature member is accessed through an ACPI_TABLE_HEADER, the pointer to +it is only to a 4-char array, and so trying to read past the 4th +character, as will be done when it is an RSDP, reads beyond the bounds of +the accessed member. Contributed by jrtc27. + +Add support for PCC Opregion special context data. PCC Opregion added in +ACPIC 6.3 requires special context data similar to GPIO and Generic +Serial Bus as it needs to know the internal PCC buffer and its length as +well as the PCC channel index when the opregion handler is being executed +by the OSPM. Adds support for the special context data needed by PCC +Opregion. Submitted by Sudeep Holla + +2) iASL Compiler/Disassembler and ACPICA tools: + +iASL: Completed compiler support for the NHLT ACPI table. + +iASL/NHLT table: Fixed a reported problem where a fault would occur +during disassembly of a "Linux-Specific" section if the "Specific Data" +part was not present. + +iASL: Added full support (compiler and disassembler) for the AGDI ACPI +table. Contributed by: Ilkka Koskinen . + +iASL: Added full support for the TDEL ACPI table. + +iASL table compiler: FADT support updates: +1) Allow the 32-bit DSDT address to be zero. +2) Issue error if both the 32-bit and 64-bit DSDT addresses are zero. + +iASL: Fix unaligned accesses to local cache allocations. Contributed by +jrtc27. + +iASL: Open binary input files in binary mode, not text mode Affects +binary input AML files, as well as binary data table files, for +disassembly. + ---------------------------------------- 30 September 2021. Summary of changes for version 20210930: diff --git a/source/common/acfileio.c b/source/common/acfileio.c index 99f8972985ec..7c624f5d3644 100644 --- a/source/common/acfileio.c +++ b/source/common/acfileio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -552,10 +552,15 @@ AcValidateTableHeader ( /* Read a potential table header */ OriginalOffset = ftell (File); - fseek (File, TableOffset, SEEK_SET); - + if (fseek (File, TableOffset, SEEK_SET)) + { + fprintf (stderr, "SEEK error\n"); + } Actual = fread (&TableHeader, 1, sizeof (ACPI_TABLE_HEADER), File); - fseek (File, OriginalOffset, SEEK_SET); + if (fseek (File, OriginalOffset, SEEK_SET)) + { + fprintf (stderr, "SEEK error\n"); + } if (Actual < sizeof (ACPI_TABLE_HEADER)) { diff --git a/source/common/acgetline.c b/source/common/acgetline.c index 88479d619a64..e5d0bf560fae 100644 --- a/source/common/acgetline.c +++ b/source/common/acgetline.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/adfile.c b/source/common/adfile.c index db6bcabc1efa..647333d9d682 100644 --- a/source/common/adfile.c +++ b/source/common/adfile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/adisasm.c b/source/common/adisasm.c index f549bd5aa3ea..ecb984858388 100644 --- a/source/common/adisasm.c +++ b/source/common/adisasm.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/adwalk.c b/source/common/adwalk.c index c4d149e3d4d6..6d51c7e17748 100644 --- a/source/common/adwalk.c +++ b/source/common/adwalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/ahids.c b/source/common/ahids.c index b58bc082054a..05c31bf50fd0 100644 --- a/source/common/ahids.c +++ b/source/common/ahids.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/ahpredef.c b/source/common/ahpredef.c index d92417d16ca4..724abe6a33d0 100644 --- a/source/common/ahpredef.c +++ b/source/common/ahpredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/ahtable.c b/source/common/ahtable.c index d7ce88a973f2..bff8ae79080b 100644 --- a/source/common/ahtable.c +++ b/source/common/ahtable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -200,6 +200,7 @@ AcpiAhGetTableInfo ( const AH_TABLE AcpiGbl_SupportedTables[] = { {ACPI_SIG_AEST, "Arm Error Source Table"}, + {ACPI_SIG_AGDI, "Arm Generic Diagnostic Dump and Reset Device Interface Table"}, {ACPI_SIG_ASF, "Alert Standard Format Table"}, {ACPI_SIG_BDAT, "BIOS Data ACPI Table"}, {ACPI_SIG_BERT, "Boot Error Record Table"}, @@ -233,6 +234,7 @@ const AH_TABLE AcpiGbl_SupportedTables[] = {ACPI_SIG_MSCT, "Maximum System Characteristics Table"}, {ACPI_SIG_MSDM, "Microsoft Data Management Table"}, {ACPI_SIG_NFIT, "NVDIMM Firmware Interface Table"}, + {ACPI_SIG_NHLT, "Non HD Audio Link Table"}, {ACPI_SIG_PCCT, "Platform Communications Channel Table"}, {ACPI_SIG_PDTT, "Platform Debug Trigger Table"}, {ACPI_SIG_PHAT, "Platform Health Assessment Table"}, @@ -256,6 +258,7 @@ const AH_TABLE AcpiGbl_SupportedTables[] = {ACPI_SIG_STAO, "Status Override Table"}, {ACPI_SIG_SVKL, "Storage Volume Key Location Table"}, {ACPI_SIG_TCPA, "Trusted Computing Platform Alliance Table"}, + {ACPI_SIG_TDEL, "TD-Event Log Table"}, {ACPI_SIG_TPM2, "Trusted Platform Module hardware interface Table"}, {ACPI_SIG_UEFI, "UEFI Boot Optimization Table"}, {ACPI_SIG_VIOT, "Virtual I/O Translation Table"}, diff --git a/source/common/ahuuids.c b/source/common/ahuuids.c index eef1c5688cfd..909698c572a9 100644 --- a/source/common/ahuuids.c +++ b/source/common/ahuuids.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/cmfsize.c b/source/common/cmfsize.c index 38ec915a989d..474ccd9501f8 100644 --- a/source/common/cmfsize.c +++ b/source/common/cmfsize.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmextern.c b/source/common/dmextern.c index 36d586008cb6..806daa33f94b 100644 --- a/source/common/dmextern.c +++ b/source/common/dmextern.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmrestag.c b/source/common/dmrestag.c index 59d5c4f4faeb..b677298436fc 100644 --- a/source/common/dmrestag.c +++ b/source/common/dmrestag.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmswitch.c b/source/common/dmswitch.c index 2b894c65dcd5..4a4347368c9e 100644 --- a/source/common/dmswitch.c +++ b/source/common/dmswitch.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtable.c b/source/common/dmtable.c index dff1c6139cd7..440c5fb409fd 100644 --- a/source/common/dmtable.c +++ b/source/common/dmtable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -167,10 +167,11 @@ AcpiAhGetTableInfo ( /* Common format strings for commented values */ -#define UINT8_FORMAT "%2.2X [%s]\n" -#define UINT16_FORMAT "%4.4X [%s]\n" -#define UINT32_FORMAT "%8.8X [%s]\n" -#define STRING_FORMAT "[%s]\n" +#define UINT8_FORMAT "%2.2X [%s]\n" +#define UINT8_FORMAT_NO_NEWLINE "%2.2X [%s]" +#define UINT16_FORMAT "%4.4X [%s]\n" +#define UINT32_FORMAT "%8.8X [%s]\n" +#define STRING_FORMAT "[%s]\n" /* These tables map a subtable type to a description string */ @@ -247,6 +248,7 @@ static const char *AcpiDmDmarSubnames[] = "Root Port ATS Capability", "Remapping Hardware Static Affinity", "ACPI Namespace Device Declaration", + "SoC Integrated Address Translation Cache", "Unknown Subtable Type" /* Reserved */ }; @@ -401,7 +403,8 @@ static const char *AcpiDmMadtSubnames[] = "Generic Interrupt Redistributor", /* ACPI_MADT_GENERIC_REDISTRIBUTOR */ "Generic Interrupt Translator", /* ACPI_MADT_GENERIC_TRANSLATOR */ "Mutiprocessor Wakeup", /* ACPI_MADT_TYPE_MULTIPROC_WAKEUP */ - "Unknown Subtable Type" /* Reserved */ + "Unknown Subtable Type", /* Reserved */ + "Types 80-FF are used for OEM data" /* Reserved for OEM data */ }; static const char *AcpiDmNfitSubnames[] = @@ -437,6 +440,50 @@ static const char *AcpiDmNhltDirectionNames[] = "Unknown Direction" /* Reserved */ }; +static const char *AcpiDmNhltMicTypeNames[] = +{ + "Omnidirectional", /* ACPI_NHLT_MIC_OMNIDIRECTIONAL */ + "Subcardioid", /* ACPI_NHLT_MIC_SUBCARDIOID */ + "Cardioid", /* ACPI_NHLT_MIC_CARDIOID */ + "SuperCardioid", /* ACPI_NHLT_MIC_SUPER_CARDIOID */ + "HyperCardioid", /* ACPI_NHLT_MIC_HYPER_CARDIOID */ + "8 Shaped", /* ACPI_NHLT_MIC_8_SHAPED */ + "Reserved Mic Type", /* Reserved */ + "Vendor Defined", /* ACPI_NHLT_MIC_VENDOR_DEFINED */ + "Unknown Mic Type" /* ACPI_NHLT_MIC_RESERVED */ +}; + +static const char *AcpiDmNhltMicPositionNames[] = +{ + "Top", /* ACPI_NHLT_MIC_POSITION_TOP */ + "Bottom", /* ACPI_NHLT_MIC_POSITION_BOTTOM */ + "Left", /* ACPI_NHLT_MIC_POSITION_LEFT */ + "Right", /* ACPI_NHLT_MIC_POSITION_RIGHT */ + "Front", /* ACPI_NHLT_MIC_POSITION_FRONT */ + "Back", /* ACPI_NHLT_MIC_POSITION_BACK */ + "Unknown Mic Position" /* 6 and above are reserved */ +}; + +static const char *AcpiDmNhltMicArrayTypeNames[] = +{ + "Unknown Array Type", /* ACPI_NHLT_ARRAY_TYPE_RESERVED */ + "Small Linear 2-element", /* ACPI_NHLT_SMALL_LINEAR_2ELEMENT */ + "Big Linear 2-element", /* ACPI_NHLT_BIG_LINEAR_2ELEMENT */ + "Linear 4-element 1st Geometry", /* ACPI_NHLT_FIRST_GEOMETRY_LINEAR_4ELEMENT */ + "Planar L-shaped 4-element", /* ACPI_NHLT_PLANAR_LSHAPED_4ELEMENT */ + "Linear 4-element 2nd Geometry", /* ACPI_NHLT_SECOND_GEOMETRY_LINEAR_4ELEMENT */ + "Vendor Defined" /* ACPI_NHLT_VENDOR_DEFINED */ +}; + +static const char *AcpiDmNhltConfigTypeNames[] = +{ + "Generic Type", /* ACPI_NHLT_CONFIG_TYPE_GENERIC */ + "Microphone Array", /* ACPI_NHLT_CONFIG_TYPE_MIC_ARRAY */ + "Reserved", /* ACPI_NHLT_CONFIG_TYPE_RESERVED */ + "Render Feedback", /* ACPI_NHLT_CONFIG_TYPE_RENDER_FEEDBACK */ + "Unknown Config Type" /* ACPI_NHLT_CONFIG_TYPE_RESERVED */ +}; + static const char *AcpiDmPcctSubnames[] = { "Generic Communications Subspace", /* ACPI_PCCT_TYPE_GENERIC_SUBSPACE */ @@ -604,6 +651,8 @@ static const char *AcpiDmGasAccessWidth[] = const ACPI_DMTABLE_DATA AcpiDmTableData[] = { {ACPI_SIG_AEST, NULL, AcpiDmDumpAest, DtCompileAest, TemplateAest}, + {ACPI_SIG_AGDI, AcpiDmTableInfoAgdi, NULL, NULL, TemplateAgdi}, + {ACPI_SIG_APMT, NULL, AcpiDmDumpApmt, DtCompileApmt, TemplateApmt}, {ACPI_SIG_ASF, NULL, AcpiDmDumpAsf, DtCompileAsf, TemplateAsf}, {ACPI_SIG_BDAT, AcpiDmTableInfoBdat, NULL, NULL, TemplateBdat}, {ACPI_SIG_BERT, AcpiDmTableInfoBert, NULL, NULL, TemplateBert}, @@ -635,7 +684,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = {ACPI_SIG_MSCT, NULL, AcpiDmDumpMsct, DtCompileMsct, TemplateMsct}, {ACPI_SIG_MSDM, NULL, AcpiDmDumpSlic, DtCompileSlic, TemplateMsdm}, {ACPI_SIG_NFIT, AcpiDmTableInfoNfit, AcpiDmDumpNfit, DtCompileNfit, TemplateNfit}, - {ACPI_SIG_NHLT, AcpiDmTableInfoNhlt, AcpiDmDumpNhlt, NULL, NULL}, + {ACPI_SIG_NHLT, AcpiDmTableInfoNhlt, AcpiDmDumpNhlt, DtCompileNhlt, TemplateNhlt}, {ACPI_SIG_PCCT, AcpiDmTableInfoPcct, AcpiDmDumpPcct, DtCompilePcct, TemplatePcct}, {ACPI_SIG_PDTT, AcpiDmTableInfoPdtt, AcpiDmDumpPdtt, DtCompilePdtt, TemplatePdtt}, {ACPI_SIG_PHAT, NULL, AcpiDmDumpPhat, DtCompilePhat, TemplatePhat}, @@ -657,6 +706,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = {ACPI_SIG_STAO, NULL, AcpiDmDumpStao, DtCompileStao, TemplateStao}, {ACPI_SIG_SVKL, AcpiDmTableInfoSvkl, AcpiDmDumpSvkl, DtCompileSvkl, TemplateSvkl}, {ACPI_SIG_TCPA, NULL, AcpiDmDumpTcpa, DtCompileTcpa, TemplateTcpa}, + {ACPI_SIG_TDEL, AcpiDmTableInfoTdel, NULL, NULL, TemplateTdel}, {ACPI_SIG_TPM2, AcpiDmTableInfoTpm2, AcpiDmDumpTpm2, DtCompileTpm2, TemplateTpm2}, {ACPI_SIG_UEFI, AcpiDmTableInfoUefi, NULL, DtCompileUefi, TemplateUefi}, {ACPI_SIG_VIOT, AcpiDmTableInfoViot, AcpiDmDumpViot, DtCompileViot, TemplateViot}, @@ -795,7 +845,8 @@ AcpiDmDumpDataTable ( return; } } - else if (ACPI_VALIDATE_RSDP_SIG (Table->Signature)) + else if (ACPI_VALIDATE_RSDP_SIG (ACPI_CAST_PTR (ACPI_TABLE_RSDP, + Table)->Signature)) { Length = AcpiDmDumpRsdp (Table); } @@ -1040,7 +1091,7 @@ AcpiDmDumpTable ( /* Check for beyond subtable end or (worse) beyond EOT */ - if (SubtableLength && (Info->Offset >= SubtableLength)) + if (SubtableLength && (Info->Offset > SubtableLength)) { AcpiOsPrintf ( "/**** ACPI subtable terminates early (Len %u) - " @@ -1074,6 +1125,10 @@ AcpiDmDumpTable ( case ACPI_DMT_MADT: case ACPI_DMT_NHLT1: case ACPI_DMT_NHLT1a: + case ACPI_DMT_NHLT1b: + case ACPI_DMT_NHLT1c: + case ACPI_DMT_NHLT1d: + case ACPI_DMT_NHLT1f: case ACPI_DMT_PCCT: case ACPI_DMT_PMTT: case ACPI_DMT_PPTT: @@ -1102,6 +1157,7 @@ AcpiDmDumpTable ( case ACPI_DMT_HEST: case ACPI_DMT_HMAT: case ACPI_DMT_NFIT: + case ACPI_DMT_NHLT1e: case ACPI_DMT_PHAT: ByteLength = 2; @@ -1308,7 +1364,12 @@ AcpiDmDumpTable ( AcpiOsPrintf ("%1.1X\n", (*Target >> 2) & 0x03); break; - case ACPI_DMT_FLAGS4: + case ACPI_DMT_FLAGS8_2: + + AcpiOsPrintf ("%2.2X\n", (*Target >> 2) & 0xFF); + break; + + case ACPI_DMT_FLAGS4: AcpiOsPrintf ("%1.1X\n", (*Target >> 4) & 0x03); break; @@ -1797,11 +1858,14 @@ AcpiDmDumpTable ( /* MADT subtable types */ Temp8 = *Target; - if (Temp8 > ACPI_MADT_TYPE_RESERVED) + if ((Temp8 >= ACPI_MADT_TYPE_RESERVED) && (Temp8 < ACPI_MADT_TYPE_OEM_RESERVED)) { Temp8 = ACPI_MADT_TYPE_RESERVED; } - + else if (Temp8 >= ACPI_MADT_TYPE_OEM_RESERVED) + { + Temp8 = ACPI_MADT_TYPE_RESERVED + 1; + } AcpiOsPrintf (UINT8_FORMAT, *Target, AcpiDmMadtSubnames[Temp8]); break; @@ -1848,6 +1912,95 @@ AcpiDmDumpTable ( AcpiDmNhltDirectionNames[Temp8]); break; + case ACPI_DMT_NHLT1b: + + /* NHLT microphone type */ + + Temp8 = *Target; + if (Temp8 > ACPI_NHLT_MIC_RESERVED) + { + Temp8 = ACPI_NHLT_MIC_RESERVED; + } + + AcpiOsPrintf (UINT8_FORMAT, *Target, + AcpiDmNhltMicTypeNames[Temp8]); + break; + + case ACPI_DMT_NHLT1c: + + /* NHLT microphone position */ + + Temp8 = *Target; + if (Temp8 > ACPI_NHLT_MIC_POSITION_RESERVED) + { + Temp8 = ACPI_NHLT_MIC_POSITION_RESERVED; + } + + AcpiOsPrintf (UINT8_FORMAT, *Target, + AcpiDmNhltMicPositionNames[Temp8]); + break; + + case ACPI_DMT_NHLT1d: + + /* NHLT microphone array type */ + + Temp8 = *Target & ACPI_NHLT_ARRAY_TYPE_MASK; + if (Temp8 < ACPI_NHLT_ARRAY_TYPE_RESERVED) + { + Temp8 = ACPI_NHLT_ARRAY_TYPE_RESERVED; + } + + AcpiOsPrintf (UINT8_FORMAT_NO_NEWLINE, *Target, + AcpiDmNhltMicArrayTypeNames[Temp8 - ACPI_NHLT_ARRAY_TYPE_RESERVED]); + + Temp8 = *Target; + if (Temp8 & ACPI_NHLT_MIC_SNR_SENSITIVITY_EXT) + { + AcpiOsPrintf (" [%s]", "SNR and Sensitivity"); + } + + AcpiOsPrintf ("\n"); + break; + + case ACPI_DMT_NHLT1e: + + /* NHLT Endpoint Device ID */ + + Temp16 = ACPI_GET16 (Target); + if (Temp16 == 0xAE20) + { + Name = "PDM DMIC"; + } + else if (Temp16 == 0xAE30) + { + Name = "BT Sideband"; + } + else if (Temp16 == 0xAE34) + { + Name = "I2S/TDM Codecs"; + } + else + { + Name = "Unknown Device ID"; + } + + AcpiOsPrintf (UINT16_FORMAT, Temp16, Name); + break; + + case ACPI_DMT_NHLT1f: + + /* NHLT ConfigType field */ + + Temp8 = *Target; + if (Temp8 > ACPI_NHLT_CONFIG_TYPE_RESERVED) + { + Temp8 = ACPI_NHLT_CONFIG_TYPE_RESERVED; + } + + AcpiOsPrintf (UINT8_FORMAT, *Target, + AcpiDmNhltConfigTypeNames[Temp8]); + break; + case ACPI_DMT_PCCT: /* PCCT subtable types */ @@ -1929,7 +2082,7 @@ AcpiDmDumpTable ( break; } - AcpiDmDumpBuffer (Target, 0, ByteLength, 0, NULL); + AcpiDmDumpBuffer (Target, 0, ByteLength, CurrentOffset, NULL); break; case ACPI_DMT_RGRT: diff --git a/source/common/dmtables.c b/source/common/dmtables.c index fa04e0c88979..6f42bcb3bf66 100644 --- a/source/common/dmtables.c +++ b/source/common/dmtables.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbdump.c b/source/common/dmtbdump.c index abeb06fa5c38..b4faf68316ff 100644 --- a/source/common/dmtbdump.c +++ b/source/common/dmtbdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -195,7 +195,9 @@ AcpiDmDumpBuffer ( char *Header) { UINT8 *Buffer; + UINT8 BufChar; UINT32 i; + UINT32 j; if (!Length) @@ -208,20 +210,72 @@ AcpiDmDumpBuffer ( while (i < Length) { - if (!(i % 16)) + if ((Length > 16) && (i != 0)) { - /* Insert a backslash - line continuation character */ + if ((Length - i) < 16) + AcpiOsPrintf ("\n/* %3.3Xh %4.4u %3u */ ", AbsoluteOffset, AbsoluteOffset, Length - i); + else + AcpiOsPrintf ("\n/* %3.3Xh %4.4u 16 */ ", AbsoluteOffset, AbsoluteOffset); + } + AbsoluteOffset += 16; - if (Length > 16) + /* Emit the raw data bytes*/ + + for (j = 0; j < 16; j++) + { + if (i + j >= Length) { - AcpiOsPrintf ("\\\n "); + /* Dump fill spaces */ + + AcpiOsPrintf ("%*s", (48 - (3 * (Length -i))), " "); + break; + } + AcpiOsPrintf ("%.02X ", Buffer[(ACPI_SIZE) i + j]); + } + + /* Emit the ASCII equivalent to the raw data bytes */ + + for (j = 0; j < 16; j++) + { + if (i + j >= Length) + { + AcpiOsPrintf (" */\\\n"); + return; + } + + /* + * Add comment characters so rest of line is ignored when + * compiled + */ + if (j == 0) + { + AcpiOsPrintf ("/* "); + } + + BufChar = Buffer[(ACPI_SIZE) i + j]; + if (isprint (BufChar)) + { + AcpiOsPrintf ("%c", BufChar); + } + else + { + AcpiOsPrintf ("."); } } - AcpiOsPrintf ("%.02X ", *Buffer); - i++; - Buffer++; - AbsoluteOffset++; + /* Done with that line. */ + /* Close the comment and insert a backslash - line continuation character */ + + if (Length > 16) + { + AcpiOsPrintf (" */\\"); + } + else + { + AcpiOsPrintf (" */\\"); + } + + i += 16; /* Point to next line */ } AcpiOsPrintf ("\n"); diff --git a/source/common/dmtbdump1.c b/source/common/dmtbdump1.c index 3a97af4680f7..13662611e0a6 100644 --- a/source/common/dmtbdump1.c +++ b/source/common/dmtbdump1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -296,8 +296,6 @@ AcpiDmDumpAest ( case ACPI_AEST_GENERIC_RESOURCE: InfoTable = AcpiDmTableInfoAestGenRsrc; Length = sizeof (ACPI_AEST_PROCESSOR_GENERIC); - AcpiOsPrintf ("Generic Resource Type (%X) is not supported at this time\n", - ProcessorSubtable->ResourceType); break; /* Error case below */ @@ -378,6 +376,68 @@ AcpiDmDumpAest ( } } +/******************************************************************************* + * + * FUNCTION: AcpiDmDumpApmt + * + * PARAMETERS: Table - A APMT table + * + * RETURN: None + * + * DESCRIPTION: Format the contents of a APMT. This table type consists + * of an open-ended number of subtables. + * + * + * APMT - ARM Performance Monitoring Unit table. Conforms to: + * ARM Performance Monitoring Unit Architecture 1.0 Platform Design Document + * ARM DEN0117 v1.0 November 25, 2021 + * + ******************************************************************************/ + +void +AcpiDmDumpApmt ( + ACPI_TABLE_HEADER *Table) +{ + ACPI_STATUS Status; + ACPI_APMT_NODE *Subtable; + UINT32 Length = Table->Length; + UINT32 Offset = sizeof (ACPI_TABLE_APMT); + UINT32 NodeNum = 0; + + /* There is no main table (other than the standard ACPI header) */ + + /* Subtables */ + + Subtable = ACPI_ADD_PTR (ACPI_APMT_NODE, Table, Offset); + while (Offset < Table->Length) + { + AcpiOsPrintf ("\n"); + + if (Subtable->Type >= ACPI_APMT_NODE_TYPE_COUNT) + { + AcpiOsPrintf ("\n**** Unknown APMT subtable type 0x%X\n", + Subtable->Type); + return; + } + + AcpiOsPrintf ("/* APMT Node-%u */\n", NodeNum++); + + Status = AcpiDmDumpTable (Length, Offset, Subtable, + Subtable->Length, AcpiDmTableInfoApmtNode); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Point to next subtable */ + + Offset += Subtable->Length; + Subtable = ACPI_ADD_PTR (ACPI_APMT_NODE, Subtable, + Subtable->Length); + AcpiOsPrintf ("\n"); + } +} + /******************************************************************************* * @@ -569,7 +629,6 @@ AcpiDmDumpCedt ( ACPI_CEDT_HEADER *Subtable; UINT32 Length = Table->Length; UINT32 Offset = sizeof (ACPI_TABLE_CEDT); - ACPI_DMTABLE_INFO *InfoTable; /* There is no main table (other than the standard ACPI header) */ @@ -590,35 +649,52 @@ AcpiDmDumpCedt ( switch (Subtable->Type) { case ACPI_CEDT_TYPE_CHBS: - - InfoTable = AcpiDmTableInfoCedt0; + Status = AcpiDmDumpTable (Length, Offset, Subtable, + Subtable->Length, AcpiDmTableInfoCedt0); + if (ACPI_FAILURE (Status)) { + return; + } break; - default: + case ACPI_CEDT_TYPE_CFMWS: { + ACPI_CEDT_CFMWS *ptr = (ACPI_CEDT_CFMWS *) Subtable; + unsigned int i, max = 0x01 << (ptr->InterleaveWays); + /* print out table with first "Interleave target" */ + + Status = AcpiDmDumpTable (Length, Offset, Subtable, + Subtable->Length, AcpiDmTableInfoCedt1); + if (ACPI_FAILURE (Status)) { + return; + } + + /* Now, print out any interleave targets beyond the first. */ + + for (i = 1; i < max; i++) { + unsigned int loc_offset = Offset + (i * 4) + ACPI_OFFSET(ACPI_CEDT_CFMWS, InterleaveTargets); + unsigned int *trg = &(ptr->InterleaveTargets[i]); + Status = AcpiDmDumpTable (Length, loc_offset, trg, + Subtable->Length, AcpiDmTableInfoCedt1_te); + if (ACPI_FAILURE (Status)) { + return; + } + } + break; + } + + default: AcpiOsPrintf ("\n**** Unknown CEDT subtable type 0x%X\n\n", Subtable->Type); /* Attempt to continue */ - if (!Subtable->Length) { AcpiOsPrintf ("Invalid zero length subtable\n"); return; } - goto NextSubtable; } - Status = AcpiDmDumpTable (Length, Offset, Subtable, - Subtable->Length, InfoTable); - if (ACPI_FAILURE (Status)) - { - return; - } - -NextSubtable: /* Point to next subtable */ - Offset += Subtable->Length; Subtable = ACPI_ADD_PTR (ACPI_CEDT_HEADER, Subtable, Subtable->Length); @@ -990,6 +1066,12 @@ AcpiDmDumpDmar ( ScopeOffset = sizeof (ACPI_DMAR_ANDD); break; + case ACPI_DMAR_TYPE_SATC: + + InfoTable = AcpiDmTableInfoDmar5; + ScopeOffset = sizeof (ACPI_DMAR_SATC); + break; + default: AcpiOsPrintf ("\n**** Unknown DMAR subtable type 0x%X\n\n", diff --git a/source/common/dmtbdump2.c b/source/common/dmtbdump2.c index 118b96eeab0f..c50a6a2470bd 100644 --- a/source/common/dmtbdump2.c +++ b/source/common/dmtbdump2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -203,9 +203,9 @@ AcpiDmDumpIort ( Revision = Table->Revision; - /* Both IORT Rev E and E.a have known issues and are not supported */ + /* IORT Revisions E, E.a and E.c have known issues and are not supported */ - if (Revision == 1 || Revision == 2) + if (Revision == 1 || Revision == 2 || Revision == 4) { AcpiOsPrintf ("\n**** Unsupported IORT revision 0x%X\n", Revision); @@ -445,7 +445,7 @@ AcpiDmDumpIort ( } break; - default: + default: break; } @@ -887,6 +887,8 @@ AcpiDmDumpMadt ( /* Subtables */ Subtable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset); + DbgPrint (ASL_PARSE_OUTPUT, "//0B) Offset %X, from table start: 0x%8.8X%8.8X\n", + Offset, ACPI_FORMAT_UINT64 (ACPI_CAST_PTR (char, Subtable) - ACPI_CAST_PTR (char, Table))); while (Offset < Table->Length) { /* Common subtable header */ @@ -899,6 +901,7 @@ AcpiDmDumpMadt ( return; } + DbgPrint (ASL_PARSE_OUTPUT, "subtableType: %X\n", Subtable->Type); switch (Subtable->Type) { case ACPI_MADT_TYPE_LOCAL_APIC: @@ -988,8 +991,23 @@ AcpiDmDumpMadt ( default: - AcpiOsPrintf ("\n**** Unknown MADT subtable type 0x%X\n\n", - Subtable->Type); + if ((Subtable->Type >= ACPI_MADT_TYPE_RESERVED) && + (Subtable->Type < ACPI_MADT_TYPE_OEM_RESERVED)) + { + AcpiOsPrintf ("\n**** Unknown MADT subtable type 0x%X\n\n", + Subtable->Type); + goto NextSubtable; + } + else if (Subtable->Type >= ACPI_MADT_TYPE_OEM_RESERVED) + { + DbgPrint (ASL_PARSE_OUTPUT, "//[Found an OEM structure, type = %0x]\n", + Subtable->Type); + Offset += sizeof (ACPI_SUBTABLE_HEADER); + DbgPrint (ASL_PARSE_OUTPUT, "//[0) Subtable->Length = %X, Subtable = %p, Offset = %X]\n", + Subtable->Length, Subtable, Offset); + DbgPrint (ASL_PARSE_OUTPUT, "//[0A) Offset from table start: 0x%8.8X%8.8X]\n", + ACPI_FORMAT_UINT64 (ACPI_CAST_PTR (char, Subtable) - ACPI_CAST_PTR (char, Table))); + } /* Attempt to continue */ @@ -999,9 +1017,24 @@ AcpiDmDumpMadt ( return; } + /* Dump the OEM data */ + + Status = AcpiDmDumpTable (Length, Offset, ACPI_CAST_PTR (UINT8, Table) + Offset, + Subtable->Length - sizeof (ACPI_SUBTABLE_HEADER), AcpiDmTableInfoMadt17); + if (ACPI_FAILURE (Status)) + { + return; + } + + DbgPrint (ASL_PARSE_OUTPUT, "//[1) Subtable->Length = %X, Offset = %X]\n", + Subtable->Length, Offset); + Offset -= sizeof (ACPI_SUBTABLE_HEADER); + goto NextSubtable; } + DbgPrint (ASL_PARSE_OUTPUT, "//[2) Subtable->Length = %X, Offset = %X]\n", + Subtable->Length, Offset); Status = AcpiDmDumpTable (Length, Offset, Subtable, Subtable->Length, InfoTable); if (ACPI_FAILURE (Status)) @@ -1012,9 +1045,28 @@ AcpiDmDumpMadt ( NextSubtable: /* Point to next subtable */ - Offset += Subtable->Length; + DbgPrint (ASL_PARSE_OUTPUT, "//[3) Subtable->Length = %X, Offset = %X]\n", + Subtable->Length, Offset); + DbgPrint (ASL_PARSE_OUTPUT, "//[4) Offset from table start: 0x%8.8X%8.8X (%p) %p]\n", + ACPI_FORMAT_UINT64 (ACPI_CAST_PTR (UINT8, Subtable) - ACPI_CAST_PTR (UINT8, Table)), Subtable, Table); + if (Offset > Table->Length) + { + return; + } + Subtable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Subtable, Subtable->Length); + + DbgPrint (ASL_PARSE_OUTPUT, "//[5) Next Subtable %p, length %X]\n", + Subtable, Subtable->Length); + DbgPrint (ASL_PARSE_OUTPUT, "//[5B) Offset from table start: 0x%8.8X%8.8X (%p)]\n", + ACPI_FORMAT_UINT64 (ACPI_CAST_PTR (char, Subtable) - ACPI_CAST_PTR (char, Table)), Subtable); + + Offset = ACPI_CAST_PTR (char, Subtable) - ACPI_CAST_PTR (char, Table); + if (Offset >= Table->Length) + { + return; + } } } @@ -1494,19 +1546,21 @@ AcpiDmDumpNhlt ( UINT32 CapabilitiesSize; UINT32 i; UINT32 j; - UINT32 k; UINT32 EndpointEndOffset; UINT8 ConfigType = 0; UINT8 ArrayType; + UINT8 MicrophoneCount; + ACPI_NHLT_VENDOR_MIC_COUNT *MicCount; ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A *DevSpecific; ACPI_NHLT_FORMATS_CONFIG *FormatsConfig; - ACPI_NHLT_LINUX_SPECIFIC_COUNT *Count; - ACPI_NHLT_LINUX_SPECIFIC_DATA *LinuxData; + ACPI_NHLT_DEVICE_INFO_COUNT *Count; + ACPI_NHLT_DEVICE_INFO *DeviceInfo; + ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B *Capabilities; /* Main table */ - AcpiOsPrintf ("/* Main table */\n"); + AcpiOsPrintf (" /* Main table */\n"); Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoNhlt); if (ACPI_FAILURE (Status)) @@ -1532,52 +1586,59 @@ AcpiDmDumpNhlt ( /* Do the Endpoint Descriptor table */ Subtable = ACPI_ADD_PTR (ACPI_NHLT_ENDPOINT, Table, Offset); + + /* Check for endpoint descriptor length beyond end-of-table */ + if (Subtable->DescriptorLength > TableLength) { Offset += 1; - AcpiOsPrintf ("\n/* Endpoint Descriptor Length larger than" + AcpiOsPrintf ("\n /* Endpoint Descriptor Length larger than" " table size: %X, table %X, adjusting table offset (+1) */\n", Subtable->DescriptorLength, TableLength); Subtable = ACPI_ADD_PTR (ACPI_NHLT_ENDPOINT, Table, Offset); } - AcpiOsPrintf ("\n/* Endpoint Descriptor #%u */\n", i+1); + AcpiOsPrintf ("\n /* Endpoint Descriptor #%u */\n", i+1); Status = AcpiDmDumpTable (TableLength, Offset, Subtable, Subtable->DescriptorLength, AcpiDmTableInfoNhlt0); if (ACPI_FAILURE (Status)) { return; } + EndpointEndOffset = Subtable->DescriptorLength + Offset; /* Check for endpoint descriptor beyond end-of-table */ if (Subtable->DescriptorLength > TableLength) { - AcpiOsPrintf ("\n/* Endpoint Descriptor Length larger than table size: %X, table %X */\n", + AcpiOsPrintf ("\n /* Endpoint Descriptor Length larger than table size: %X, table %X */\n", Subtable->DescriptorLength, TableLength); } + Offset += sizeof (ACPI_NHLT_ENDPOINT); Subtable = ACPI_ADD_PTR (ACPI_NHLT_ENDPOINT, Table, Offset); /* Do the Device Specific table */ - AcpiOsPrintf ("\n/* Endpoint Device_Specific_Config table */\n"); + AcpiOsPrintf ("\n /* Endpoint Device_Specific_Config table */\n"); DevSpecific = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A, Subtable); CapabilitiesSize = DevSpecific->CapabilitiesSize; + Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific, + sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B), AcpiDmTableInfoNhlt5b); + if (ACPI_FAILURE (Status)) + { + return; + } + + ArrayType = 0; /* Different subtables based upon capabilities_size */ switch (CapabilitiesSize) { case 0: - Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific, - sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B), AcpiDmTableInfoNhlt5b); - if (ACPI_FAILURE (Status)) - { - return; - } Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B); break; @@ -1602,6 +1663,9 @@ AcpiDmDumpNhlt ( break; case 3: + default: + /* Extract the ConfigType and ArrayType */ + ConfigType = DevSpecific->ConfigType; ArrayType = DevSpecific->ArrayType; @@ -1614,56 +1678,113 @@ AcpiDmDumpNhlt ( /* Capabilities Size == 3 */ Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A); + break; - /* Check for a vendor-defined mic array */ + case 7: + ConfigType = DevSpecific->ConfigType; + Subtable = ACPI_ADD_PTR (ACPI_NHLT_ENDPOINT, Table, Offset); + DevSpecific = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A, Subtable); - if ((ConfigType == ACPI_NHLT_TYPE_MIC_ARRAY) && ((ArrayType & ARRAY_TYPE_MASK) == VENDOR_DEFINED)) + AcpiOsPrintf ("\n /* Render Feedback Device-Specific table */\n"); + Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific, + sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG), AcpiDmTableInfoNhlt5); + if (ACPI_FAILURE (Status)) { - /* Vendor-defined microphone array */ + return; + } - AcpiOsPrintf ("\n/* Vendor-defined microphone array */\n"); + /* Capabilities Size = 7 */ + Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG); + + if (ConfigType == ACPI_NHLT_CONFIG_TYPE_RENDER_FEEDBACK) + { + Subtable = ACPI_ADD_PTR (ACPI_NHLT_ENDPOINT, Table, Offset); + DevSpecific = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A, Subtable); Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific, - sizeof (ACPI_NHLT_VENDOR_MIC_CONFIG), AcpiDmTableInfoNhlt6); + sizeof (ACPI_NHLT_RENDER_FEEDBACK_DEVICE_SPECIFIC_CONFIG), AcpiDmTableInfoNhlt6b); if (ACPI_FAILURE (Status)) { return; } - Offset += sizeof (ACPI_NHLT_VENDOR_MIC_CONFIG); + Offset += sizeof (ACPI_NHLT_RENDER_FEEDBACK_DEVICE_SPECIFIC_CONFIG); } break; + } - default: - Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific, - sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B), AcpiDmTableInfoNhlt5b); - if (ACPI_FAILURE (Status)) - { - return; - } + /* Check for a vendor-defined mic array */ - Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B); - Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific, - CapabilitiesSize, AcpiDmTableInfoNhlt3a); - if (ACPI_FAILURE (Status)) + if (ConfigType == ACPI_NHLT_CONFIG_TYPE_MIC_ARRAY) + { + if ((ArrayType & ACPI_NHLT_ARRAY_TYPE_MASK) == ACPI_NHLT_VENDOR_DEFINED) { - return; + /* Vendor-defined microphone array; get the microphone count first */ + + AcpiOsPrintf ("\n /* Vendor-defined microphone count */\n"); + MicCount = ACPI_ADD_PTR (ACPI_NHLT_VENDOR_MIC_COUNT, Table, Offset); + MicrophoneCount = MicCount->MicrophoneCount; + + Status = AcpiDmDumpTable (TableLength, Offset, MicCount, + sizeof (ACPI_NHLT_VENDOR_MIC_COUNT), AcpiDmTableInfoNhlt6a); + Offset += sizeof (ACPI_NHLT_VENDOR_MIC_COUNT); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Get the vendor microphone config structure(s) */ + + for (j = 0; j < MicrophoneCount; j++) + { + AcpiOsPrintf ("\n /* Vendor-defined microphone array #%u*/\n", j+1); + DevSpecific = ACPI_ADD_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A, Table, Offset); + + Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific, + sizeof (ACPI_NHLT_VENDOR_MIC_CONFIG), AcpiDmTableInfoNhlt6); + if (ACPI_FAILURE (Status)) + { + return; + } + + Offset += sizeof (ACPI_NHLT_VENDOR_MIC_CONFIG); + } + + /* Check for Microphone SNR and sensitivity extension */ + + if ((ArrayType & ACPI_NHLT_ARRAY_TYPE_EXT_MASK) == ACPI_NHLT_MIC_SNR_SENSITIVITY_EXT) + { + AcpiOsPrintf ("\n /* Microphone SNR and sensitivity array */\n"); + DevSpecific = ACPI_ADD_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A, Table, Offset); + + Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific, + sizeof (ACPI_NHLT_MIC_SNR_SENSITIVITY_EXTENSION), AcpiDmTableInfoNhlt9); + if (ACPI_FAILURE (Status)) + { + return; + } + + Offset += sizeof (ACPI_NHLT_MIC_SNR_SENSITIVITY_EXTENSION); + } } - Offset += CapabilitiesSize; - break; } - /* Do the Formats_Config table */ + /* Do the Formats_Config table - starts with the FormatsCount field */ FormatsConfig = ACPI_ADD_PTR (ACPI_NHLT_FORMATS_CONFIG, Table, Offset); FormatsCount = FormatsConfig->FormatsCount; - AcpiOsPrintf ("\n/* Formats_Config table */\n"); + AcpiOsPrintf ("\n /* Formats_Config table */\n"); - Status = AcpiDmDumpTable (TableLength, Offset, FormatsConfig, - sizeof (ACPI_NHLT_FORMATS_CONFIG), AcpiDmTableInfoNhlt4); - if (ACPI_FAILURE (Status)) + /* Dump the FormatsCount value */ + + if (FormatsCount > 0) { - return; + Status = AcpiDmDumpTable (TableLength, Offset, FormatsConfig, + sizeof (ACPI_NHLT_FORMATS_CONFIG), AcpiDmTableInfoNhlt4); + if (ACPI_FAILURE (Status)) + { + return; + } } Offset += sizeof (ACPI_NHLT_FORMATS_CONFIG); @@ -1676,90 +1797,125 @@ AcpiDmDumpNhlt ( /* Do the Wave_extensible struct */ - AcpiOsPrintf ("\n/* Wave_Format_Extensible table #%u */\n", j+1); + AcpiOsPrintf ("\n /* Wave_Format_Extensible table #%u */\n", j+1); Status = AcpiDmDumpTable (TableLength, Offset, FormatSubtable, sizeof (ACPI_NHLT_FORMAT_CONFIG), AcpiDmTableInfoNhlt3); if (ACPI_FAILURE (Status)) { return; } - Offset += sizeof (ACPI_NHLT_WAVE_EXTENSIBLE); - /* Do the Capabilities array */ + Offset += sizeof (ACPI_NHLT_FORMAT_CONFIG); - Offset += sizeof (UINT32); - AcpiOsPrintf ("\n/* Specific_Config table #%u */\n", j+1); - FormatSubtable = ACPI_ADD_PTR (ACPI_NHLT_FORMAT_CONFIG, Table, Offset); - Status = AcpiDmDumpTable (TableLength, Offset, FormatSubtable, - CapabilitiesSize, AcpiDmTableInfoNhlt3a); - if (ACPI_FAILURE (Status)) + if (CapabilitiesSize > 0) { - return; - } - Offset += CapabilitiesSize; - } + UINT8* CapabilitiesBuf = ACPI_ADD_PTR (UINT8, Table, Offset); + /* Do the Capabilities array (of bytes) */ - /* - * If we are not done with the Endpoint(s) yet, then there must be - * some Linux-specific structure(s) yet to be processed. - */ - if (Offset < EndpointEndOffset) - { - AcpiOsPrintf ("\n"); - Count = ACPI_ADD_PTR (ACPI_NHLT_LINUX_SPECIFIC_COUNT, Table, Offset); - Status = AcpiDmDumpTable (TableLength, Offset, Count, - sizeof (ACPI_NHLT_LINUX_SPECIFIC_COUNT), AcpiDmTableInfoNhlt7); - if (ACPI_FAILURE (Status)) - { - return; - } - Offset += sizeof (ACPI_NHLT_LINUX_SPECIFIC_COUNT); + AcpiOsPrintf ("\n /* Specific_Config table #%u */\n", j+1); - /* Variable number of linux-specific structures */ - - for (k = 0; k < Count->StructureCount; k++) - { - LinuxData = ACPI_ADD_PTR (ACPI_NHLT_LINUX_SPECIFIC_DATA, Table, Offset); - - AcpiOsPrintf ("\n/* Linux-specific structure #%u */\n", k+1); - - Status = AcpiDmDumpTable (TableLength, Offset, LinuxData, - sizeof (ACPI_NHLT_LINUX_SPECIFIC_DATA), AcpiDmTableInfoNhlt7a); + Status = AcpiDmDumpTable (TableLength, Offset, CapabilitiesBuf, + CapabilitiesSize, AcpiDmTableInfoNhlt3a); if (ACPI_FAILURE (Status)) { return; } - Offset += sizeof (ACPI_NHLT_LINUX_SPECIFIC_DATA); + Offset += CapabilitiesSize; /* + sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B); */ } - /* Should be at the end of the Endpoint structure. Skip any extra bytes */ + } /* for (j = 0; j < FormatsCount; j++) */ + /* + * If we are not done with the current Endpoint yet, then there must be + * some non documented structure(s) yet to be processed. First, get + * the count of such structure(s). + */ + if (Offset < EndpointEndOffset) + { + AcpiOsPrintf ("\n /* Structures that are not part of NHLT spec */\n"); + Count = ACPI_ADD_PTR (ACPI_NHLT_DEVICE_INFO_COUNT, Table, Offset); + Status = AcpiDmDumpTable (TableLength, Offset, Count, + sizeof (ACPI_NHLT_DEVICE_INFO_COUNT), AcpiDmTableInfoNhlt7); + if (ACPI_FAILURE (Status)) + { + return; + } + Offset += sizeof (ACPI_NHLT_DEVICE_INFO_COUNT); + + /* Variable number of device structures */ + + for (j = 0; j < Count->StructureCount; j++) + { + DeviceInfo = ACPI_ADD_PTR (ACPI_NHLT_DEVICE_INFO, Table, Offset); + AcpiOsPrintf ("\n /* Device Info structure #%u (not part of NHLT spec) */\n", j+1); + + /* + * Dump the following Device Info fields: + * 1) Device ID + * 2) Device Instance ID + * 3) Device Port ID + */ + Status = AcpiDmDumpTable (TableLength, Offset, DeviceInfo, + sizeof (ACPI_NHLT_DEVICE_INFO), AcpiDmTableInfoNhlt7a); + if (ACPI_FAILURE (Status)) + { + return; + } + + Offset += sizeof (ACPI_NHLT_DEVICE_INFO); + } + + /* + * Check that the current offset is not beyond the end of + * this endpoint descriptor. If it is not, print those + * undocumented bytes. + */ if (Offset < EndpointEndOffset) { - AcpiOsPrintf ("\n/* Endpoint descriptor ended before endpoint size was reached. " - "skipped %X input bytes, current offset: %X, Endpoint End Offset: %X */\n", - EndpointEndOffset - Offset, Offset, EndpointEndOffset); - AcpiUtDumpBuffer (((UINT8 *)Table)+Offset, - EndpointEndOffset - Offset, DB_BYTE_DISPLAY, Offset); + /* Unknown data at the end of the Endpoint */ + UINT32 size = EndpointEndOffset - Offset; + UINT8* buffer = ACPI_ADD_PTR (UINT8, Table, Offset); + AcpiOsPrintf ("\n /* Unknown data at the end of the Endpoint, size: %X */\n", size); + Status = AcpiDmDumpTable (TableLength, Offset, buffer, + size, AcpiDmTableInfoNhlt7b); Offset = EndpointEndOffset; } + + /* Should be at the end of the Endpoint structure. */ } - } - /* Emit the table terminator (if present) */ + } /* for (i = 0; i < EndpointCount; i++) */ - if (Offset == TableLength - sizeof (ACPI_NHLT_TABLE_TERMINATOR)) + + /* + * Done with all of the Endpoint Descriptors, Emit the table terminator + * (if such a legacy structure is present -- not in NHLT specification) + */ + if (Offset < TableLength) { - LinuxData = ACPI_ADD_PTR (ACPI_NHLT_LINUX_SPECIFIC_DATA, Table, Offset); - AcpiOsPrintf ("\n/* Table terminator structure */\n"); + Capabilities = ACPI_ADD_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B, Table, Offset); + AcpiOsPrintf ("\n/* Terminating specific config (not part of NHLT spec) */\n"); - Status = AcpiDmDumpTable (TableLength, Offset, LinuxData, - sizeof (ACPI_NHLT_TABLE_TERMINATOR), AcpiDmTableInfoNhlt8); + Status = AcpiDmDumpTable (TableLength, Offset, Capabilities, + sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B), AcpiDmTableInfoNhlt5b); if (ACPI_FAILURE (Status)) { return; } + Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B); + + if (Capabilities->CapabilitiesSize > 0) + { + UINT32 remainingBytes = TableLength - Offset; + UINT8* buffer = ACPI_ADD_PTR (UINT8, Table, Offset); + + if (remainingBytes != Capabilities->CapabilitiesSize) + AcpiOsPrintf ("\n/* Incorrect config size, should be %X, is %X */\n", + Capabilities->CapabilitiesSize, remainingBytes); + Status = AcpiDmDumpTable (TableLength, Offset, buffer, + remainingBytes, AcpiDmTableInfoNhlt3a); + } } return; diff --git a/source/common/dmtbdump3.c b/source/common/dmtbdump3.c index 63b6d2d5e2e2..cbcd9e7f0e11 100644 --- a/source/common/dmtbdump3.c +++ b/source/common/dmtbdump3.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbinfo.c b/source/common/dmtbinfo.c index 347f9d367b17..4053996992e4 100644 --- a/source/common/dmtbinfo.c +++ b/source/common/dmtbinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -292,7 +292,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[] = ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[] = { {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Facs), "FACS Address", 0}, - {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Dsdt), "DSDT Address", DT_NON_ZERO}, + {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Dsdt), "DSDT Address", 0}, {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Model), "Model", 0}, {ACPI_DMT_FADTPM, ACPI_FADT_OFFSET (PreferredProfile), "PM Profile", 0}, {ACPI_DMT_UINT16, ACPI_FADT_OFFSET (SciInterrupt), "SCI Interrupt", 0}, @@ -408,7 +408,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[] = ACPI_DMT_TERMINATOR }; -/* ACPI 5.0 Extensions (FADT version 5) */ +/* Extensions for FADT version 5 */ ACPI_DMTABLE_INFO AcpiDmTableInfoFadt5[] = { @@ -417,7 +417,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoFadt5[] = ACPI_DMT_TERMINATOR }; -/* ACPI 6.0 Extensions (FADT version 6) */ +/* Extensions for FADT version 6 */ ACPI_DMTABLE_INFO AcpiDmTableInfoFadt6[] = { diff --git a/source/common/dmtbinfo1.c b/source/common/dmtbinfo1.c index b30cafa9f773..d6a94bfc1025 100644 --- a/source/common/dmtbinfo1.c +++ b/source/common/dmtbinfo1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -521,6 +521,28 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoCedt0[] = ACPI_DMT_TERMINATOR }; +/* 1: CXL Fixed Memory Window Structure */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1[] = +{ + {ACPI_DMT_UINT32, ACPI_CEDT1_OFFSET (Reserved1), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_CEDT1_OFFSET (BaseHpa), "Window base address", 0}, + {ACPI_DMT_UINT64, ACPI_CEDT1_OFFSET (WindowSize), "Window size", 0}, + {ACPI_DMT_UINT8, ACPI_CEDT1_OFFSET (InterleaveWays), "Interleave Members (2^n)", 0}, + {ACPI_DMT_UINT8, ACPI_CEDT1_OFFSET (InterleaveArithmetic), "Interleave Arithmetic", 0}, + {ACPI_DMT_UINT16, ACPI_CEDT1_OFFSET (Reserved2), "Reserved", 0}, + {ACPI_DMT_UINT32, ACPI_CEDT1_OFFSET (Granularity), "Granularity", 0}, + {ACPI_DMT_UINT16, ACPI_CEDT1_OFFSET (Restrictions), "Restrictions", 0}, + {ACPI_DMT_UINT16, ACPI_CEDT1_OFFSET (QtgId), "QtgId", 0}, + {ACPI_DMT_UINT32, ACPI_CEDT1_OFFSET (InterleaveTargets), "First Target", 0}, + ACPI_DMT_TERMINATOR +}; + +ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1_te[] = +{ + {ACPI_DMT_UINT32, ACPI_CEDT1_TE_OFFSET (InterleaveTarget), "Next Target", 0}, + ACPI_DMT_TERMINATOR +}; /******************************************************************************* * @@ -768,6 +790,15 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoDmar4[] = ACPI_DMT_TERMINATOR }; +/* 5: Hardware Unit Definition */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoDmar5[] = +{ + {ACPI_DMT_UINT8, ACPI_DMAR5_OFFSET (Flags), "Flags", 0}, + {ACPI_DMT_UINT8, ACPI_DMAR5_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT16, ACPI_DMAR5_OFFSET (Segment), "PCI Segment Number", 0}, + ACPI_DMT_TERMINATOR +}; /******************************************************************************* * diff --git a/source/common/dmtbinfo2.c b/source/common/dmtbinfo2.c index 4cbe112eb0ad..2c7d81785086 100644 --- a/source/common/dmtbinfo2.c +++ b/source/common/dmtbinfo2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -188,6 +188,59 @@ * Remaining tables are not consumed directly by the ACPICA subsystem */ +/******************************************************************************* + * + * AGDI - Arm Generic Diagnostic Dump and Reset Device Interface + * + * Conforms to "ACPI for Arm Components 1.1, Platform Design Document" + * ARM DEN0093 v1.1 + * + ******************************************************************************/ + +ACPI_DMTABLE_INFO AcpiDmTableInfoAgdi[] = +{ + {ACPI_DMT_UINT8, ACPI_AGDI_OFFSET (Flags), "Flags (decoded below)", 0}, + {ACPI_DMT_FLAG0, ACPI_AGDI_FLAG_OFFSET (Flags, 0), "Signalling mode", 0}, + {ACPI_DMT_UINT24, ACPI_AGDI_OFFSET (Reserved[0]), "Reserved", 0}, + {ACPI_DMT_UINT32, ACPI_AGDI_OFFSET (SdeiEvent), "SdeiEvent", 0}, + {ACPI_DMT_UINT32, ACPI_AGDI_OFFSET (Gsiv), "Gsiv", 0}, + ACPI_DMT_TERMINATOR +}; + + +/******************************************************************************* + * + * APMT - ARM Performance Monitoring Unit Table + * + * Conforms to: + * ARM Performance Monitoring Unit Architecture 1.0 Platform Design Document + * ARM DEN0117 v1.0 November 25, 2021 + * + ******************************************************************************/ + +ACPI_DMTABLE_INFO AcpiDmTableInfoApmtNode[] = +{ + {ACPI_DMT_UINT16, ACPI_APMTN_OFFSET (Length), "Length of APMT Node", 0}, + {ACPI_DMT_UINT8, ACPI_APMTN_OFFSET (Flags), "Node Flags", 0}, + {ACPI_DMT_FLAG0, ACPI_APMTN_FLAG_OFFSET (Flags, 0), "Dual Page Extension", 0}, + {ACPI_DMT_FLAG1, ACPI_APMTN_FLAG_OFFSET (Flags, 0), "Processor Affinity Type", 0}, + {ACPI_DMT_FLAG2, ACPI_APMTN_FLAG_OFFSET (Flags, 0), "64-bit Atomic Support", 0}, + {ACPI_DMT_UINT8, ACPI_APMTN_OFFSET (Type), "Node Type", 0}, + {ACPI_DMT_UINT32, ACPI_APMTN_OFFSET (Id), "Unique Node Identifier", 0}, + {ACPI_DMT_UINT64, ACPI_APMTN_OFFSET (InstPrimary), "Primary Node Instance", 0}, + {ACPI_DMT_UINT32, ACPI_APMTN_OFFSET (InstSecondary), "Secondary Node Instance", 0}, + {ACPI_DMT_UINT64, ACPI_APMTN_OFFSET (BaseAddress0), "Page 0 Base Address", 0}, + {ACPI_DMT_UINT64, ACPI_APMTN_OFFSET (BaseAddress1), "Page 1 Base Address", 0}, + {ACPI_DMT_UINT32, ACPI_APMTN_OFFSET (OvflwIrq), "Overflow Interrupt ID", 0}, + {ACPI_DMT_UINT32, ACPI_APMTN_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT32, ACPI_APMTN_OFFSET (OvflwIrqFlags), "Overflow Interrupt Flags", 0}, + {ACPI_DMT_FLAG0, ACPI_APMTN_FLAG_OFFSET (OvflwIrqFlags, 0), "Interrupt Mode", 0}, + {ACPI_DMT_FLAG1, ACPI_APMTN_FLAG_OFFSET (OvflwIrqFlags, 0), "Interrupt Type", 0}, + {ACPI_DMT_UINT32, ACPI_APMTN_OFFSET (ProcAffinity), "Processor Affinity", 0}, + {ACPI_DMT_UINT32, ACPI_APMTN_OFFSET (ImplId), "Implementation ID", 0}, + ACPI_DMT_TERMINATOR +}; + /******************************************************************************* * @@ -304,7 +357,8 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoIort2[] = {ACPI_DMT_UINT32, ACPI_IORT2_OFFSET (AtsAttribute), "ATS Attribute", 0}, {ACPI_DMT_UINT32, ACPI_IORT2_OFFSET (PciSegmentNumber), "PCI Segment Number", 0}, {ACPI_DMT_UINT8, ACPI_IORT2_OFFSET (MemoryAddressLimit), "Memory Size Limit", 0}, - {ACPI_DMT_UINT24, ACPI_IORT2_OFFSET (Reserved[0]), "Reserved", 0}, + {ACPI_DMT_UINT16, ACPI_IORT2_OFFSET (PasidCapabilities), "PASID Capabilities", 0}, + {ACPI_DMT_UINT8, ACPI_IORT2_OFFSET (Reserved[0]), "Reserved", 0}, ACPI_DMT_TERMINATOR }; @@ -388,6 +442,8 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoIort6[] = { {ACPI_DMT_UINT32, ACPI_IORT6_OFFSET (Flags), "Flags (decoded below)", 0}, {ACPI_DMT_FLAG0, ACPI_IORT6_FLAG_OFFSET (Flags, 0), "Remapping Permitted", 0}, + {ACPI_DMT_FLAG1, ACPI_IORT6_FLAG_OFFSET (Flags, 0), "Access Privileged", 0}, + {ACPI_DMT_FLAGS8_2, ACPI_IORT6_FLAG_OFFSET (Flags, 0), "Access Attributes", 0}, {ACPI_DMT_UINT32, ACPI_IORT6_OFFSET (RmrCount), "Number of RMR Descriptors", 0}, {ACPI_DMT_UINT32, ACPI_IORT6_OFFSET (RmrOffset), "RMR Descriptor Offset", 0}, ACPI_DMT_TERMINATOR @@ -868,6 +924,13 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMadt16[] = ACPI_DMT_TERMINATOR }; +/* 17: OEM data structure */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt17[] = +{ + {ACPI_DMT_RAW_BUFFER, 0, "OEM Data", 0}, + ACPI_DMT_TERMINATOR +}; /******************************************************************************* * @@ -1217,7 +1280,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt0[] = {ACPI_DMT_NHLT1, ACPI_NHLT0_OFFSET (LinkType), "Link Type", 0}, {ACPI_DMT_UINT8, ACPI_NHLT0_OFFSET (InstanceId), "Instance Id", 0}, {ACPI_DMT_UINT16, ACPI_NHLT0_OFFSET (VendorId), "Vendor Id", 0}, - {ACPI_DMT_UINT16, ACPI_NHLT0_OFFSET (DeviceId), "Device Id", 0}, + {ACPI_DMT_NHLT1e, ACPI_NHLT0_OFFSET (DeviceId), "Device Id", 0}, {ACPI_DMT_UINT16, ACPI_NHLT0_OFFSET (RevisionId), "Revision Id", 0}, {ACPI_DMT_UINT32, ACPI_NHLT0_OFFSET (SubsystemId), "Subsystem Id", 0}, {ACPI_DMT_UINT8, ACPI_NHLT0_OFFSET (DeviceType), "Device Type", 0}, @@ -1230,9 +1293,9 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt0[] = ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt1[] = { - {ACPI_DMT_UINT32, ACPI_NHLT1_OFFSET (CapabilitiesSize), "Capabilities Size", DT_LENGTH}, + {ACPI_DMT_UINT32, ACPI_NHLT1_OFFSET (CapabilitiesSize), "Capabilities Size", 0}, {ACPI_DMT_UINT8, ACPI_NHLT1_OFFSET (VirtualSlot), "Virtual Slot", 0}, - {ACPI_DMT_UINT8, ACPI_NHLT1_OFFSET (ConfigType), "Config Type", 0}, + {ACPI_DMT_NHLT1f, ACPI_NHLT1_OFFSET (ConfigType), "Config Type", 0}, ACPI_DMT_TERMINATOR }; @@ -1253,7 +1316,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt2[] = ACPI_DMT_TERMINATOR }; -/* Format Config */ +/* Format Config (wave_format_extensible structure) */ ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3[] = { @@ -1267,7 +1330,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3[] = {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.ValidBitsPerSample), "Valid Bits Per Sample", 0}, {ACPI_DMT_UINT32, ACPI_NHLT3_OFFSET (Format.ChannelMask), "Channel Mask", 0}, {ACPI_DMT_UUID, ACPI_NHLT3_OFFSET (Format.SubFormatGuid), "SubFormat GUID", 0}, - {ACPI_DMT_UINT32, ACPI_NHLT3_OFFSET (CapabilitySize), "Capabilities Length", DT_LENGTH}, + {ACPI_DMT_UINT32, ACPI_NHLT3_OFFSET (CapabilitySize), "Capabilities Length", 0}, ACPI_DMT_TERMINATOR }; @@ -1281,7 +1344,6 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3a[] = ACPI_DMT_TERMINATOR }; - /* Formats Config */ ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt4[] = @@ -1294,9 +1356,8 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt4[] = ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5[] = { - {ACPI_DMT_UINT32, ACPI_NHLT5_OFFSET (CapabilitiesSize), "Capabilities Size", DT_LENGTH}, {ACPI_DMT_UINT8, ACPI_NHLT5_OFFSET (VirtualSlot), "Virtual Slot", 0}, - {ACPI_DMT_UINT8, ACPI_NHLT5_OFFSET (ConfigType), "Config Type", 0}, + {ACPI_DMT_NHLT1f, ACPI_NHLT5_OFFSET (ConfigType), "Config Type", 0}, ACPI_DMT_TERMINATOR }; @@ -1304,10 +1365,9 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5[] = ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5a[] = { - {ACPI_DMT_UINT32, ACPI_NHLT5A_OFFSET (CapabilitiesSize), "Capabilities Size", DT_LENGTH}, {ACPI_DMT_UINT8, ACPI_NHLT5A_OFFSET (VirtualSlot), "Virtual Slot", 0}, - {ACPI_DMT_UINT8, ACPI_NHLT5A_OFFSET (ConfigType), "Config Type", 0}, - {ACPI_DMT_UINT8, ACPI_NHLT5A_OFFSET (ArrayType), "Array Type", 0}, + {ACPI_DMT_NHLT1f, ACPI_NHLT5A_OFFSET (ConfigType), "Config Type", 0}, + {ACPI_DMT_NHLT1d, ACPI_NHLT5A_OFFSET (ArrayType), "Array Type", 0}, ACPI_DMT_TERMINATOR }; @@ -1315,7 +1375,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5a[] = ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5b[] = { - {ACPI_DMT_UINT32, ACPI_NHLT5B_OFFSET (CapabilitiesSize), "Capabilities Size", DT_LENGTH}, + {ACPI_DMT_UINT32, ACPI_NHLT5B_OFFSET (CapabilitiesSize), "Capabilities Size", 0}, ACPI_DMT_TERMINATOR }; @@ -1323,17 +1383,32 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5b[] = ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5c[] = { - {ACPI_DMT_UINT32, ACPI_NHLT5C_OFFSET (CapabilitiesSize), "Capabilities Size", DT_LENGTH}, {ACPI_DMT_UINT8, ACPI_NHLT5C_OFFSET (VirtualSlot), "Virtual Slot", 0}, ACPI_DMT_TERMINATOR }; /* Microphone array Config */ +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6a[] = +{ + {ACPI_DMT_UINT8, ACPI_NHLT6A_OFFSET (MicrophoneCount), "Microphone Count", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Render Feedback Device Config, CapabilitiesSize == 7 */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6b[] = +{ + {ACPI_DMT_UINT8, ACPI_NHLT6B_OFFSET (FeedbackVirtualSlot), "Feedback Virtual Slot", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT6B_OFFSET (FeedbackChannels), "Feedback Channels", 0}, + {ACPI_DMT_UINT16, ACPI_NHLT6B_OFFSET (FeedbackValidBitsPerSample),"Valid Bits Per Sample", 0}, + ACPI_DMT_TERMINATOR +}; + ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6[] = { - {ACPI_DMT_UINT8, ACPI_NHLT6_OFFSET (Type), "Type", 0}, - {ACPI_DMT_UINT8, ACPI_NHLT6_OFFSET (Panel), "Panel", 0}, + {ACPI_DMT_NHLT1b, ACPI_NHLT6_OFFSET (Type), "Type", 0}, + {ACPI_DMT_NHLT1c, ACPI_NHLT6_OFFSET (Panel), "Panel", 0}, {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (SpeakerPositionDistance), "Speaker Position Distance", 0}, {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (HorizontalOffset), "Horizontal Offset", 0}, {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (VerticalOffset), "Vertical Offset", 0}, @@ -1348,31 +1423,36 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6[] = ACPI_DMT_TERMINATOR }; -/* Number of Linux-specific structures */ +/* Number of DeviceInfo structures */ ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7[] = { - {ACPI_DMT_UINT8, ACPI_NHLT7_OFFSET (StructureCount), "Linux-specific struct count", 0}, + {ACPI_DMT_UINT8, ACPI_NHLT7_OFFSET (StructureCount), "Device Info struct count", 0}, ACPI_DMT_TERMINATOR }; -/* The Linux-specific structure */ +/* The DeviceInfo structure */ ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7a[] = { - {ACPI_DMT_BUF16, ACPI_NHLT7A_OFFSET (DeviceId), "Device ID", 0}, + {ACPI_DMT_UUID, ACPI_NHLT7A_OFFSET (DeviceId), "Device ID GUID", 0}, {ACPI_DMT_UINT8, ACPI_NHLT7A_OFFSET (DeviceInstanceId), "Device Instance ID", 0}, {ACPI_DMT_UINT8, ACPI_NHLT7A_OFFSET (DevicePortId), "Device Port ID", 0}, - {ACPI_DMT_BUF18, ACPI_NHLT7A_OFFSET (Filler), "Specific Data", 0}, ACPI_DMT_TERMINATOR }; -/* Table terminator (may or may not be present) */ - -ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt8[] = +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7b[] = { - {ACPI_DMT_UINT32, ACPI_NHLT8_OFFSET (TerminatorValue), "Terminator Value", 0}, - {ACPI_DMT_UINT32, ACPI_NHLT8_OFFSET (TerminatorSignature), "Terminator Signature", 0}, + {ACPI_DMT_RAW_BUFFER, 0, "Bytes", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Sensitivity Extension */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt9[] = +{ + {ACPI_DMT_UINT32, ACPI_NHLT9_OFFSET (SNR), "Signal-to-noise ratio", 0}, + {ACPI_DMT_UINT32, ACPI_NHLT9_OFFSET (Sensitivity), "Mic Sensitivity", 0}, ACPI_DMT_TERMINATOR }; @@ -1950,7 +2030,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoSdevHdr[] = {ACPI_DMT_UINT8, ACPI_SDEVH_OFFSET (Flags), "Flags (decoded below)", 0}, {ACPI_DMT_FLAG0, ACPI_SDEVH_FLAG_OFFSET (Flags,0), "Allow handoff to unsecure OS", 0}, {ACPI_DMT_FLAG1, ACPI_SDEVH_FLAG_OFFSET (Flags,0), "Secure access components present", 0}, - {ACPI_DMT_UINT16, ACPI_SDEVH_OFFSET (Length), "Length", 0}, + {ACPI_DMT_UINT16, ACPI_SDEVH_OFFSET (Length), "Length", DT_LENGTH}, ACPI_DMT_TERMINATOR }; diff --git a/source/common/dmtbinfo3.c b/source/common/dmtbinfo3.c index 12e1be4cacc5..fa698d2f40e5 100644 --- a/source/common/dmtbinfo3.c +++ b/source/common/dmtbinfo3.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -491,6 +491,20 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaServer[] = }; +/******************************************************************************* + * + * TDEL - TD-Event Log Table + * + ******************************************************************************/ + +ACPI_DMTABLE_INFO AcpiDmTableInfoTdel[] = +{ + {ACPI_DMT_UINT32, ACPI_TDEL_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_TDEL_OFFSET (LogAreaMinimumLength), "Log Area Minimum Length", 0}, + {ACPI_DMT_UINT64, ACPI_TDEL_OFFSET (LogAreaStartAddress), "Log Area Start Address", 0}, + ACPI_DMT_TERMINATOR +}; + /******************************************************************************* * * TPM2 - Trusted Platform Module (TPM) 2.0 Hardware Interface Table diff --git a/source/common/getopt.c b/source/common/getopt.c index 766ab8e35448..772b66c0d932 100644 --- a/source/common/getopt.c +++ b/source/common/getopt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslallocate.c b/source/compiler/aslallocate.c index 8be711b2c017..d697d059e6d1 100644 --- a/source/compiler/aslallocate.c +++ b/source/compiler/aslallocate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslanalyze.c b/source/compiler/aslanalyze.c index c54ff8a215e4..9db7d4fbe81a 100644 --- a/source/compiler/aslanalyze.c +++ b/source/compiler/aslanalyze.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslascii.c b/source/compiler/aslascii.c index 0e8c4d4e0f40..6c0e62c41177 100644 --- a/source/compiler/aslascii.c +++ b/source/compiler/aslascii.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslbtypes.c b/source/compiler/aslbtypes.c index ebb798a7d8b5..f7b3fb1bec75 100644 --- a/source/compiler/aslbtypes.c +++ b/source/compiler/aslbtypes.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcache.c b/source/compiler/aslcache.c index 51e6f4c46f86..9cc707e207d3 100644 --- a/source/compiler/aslcache.c +++ b/source/compiler/aslcache.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -183,6 +183,11 @@ UtLocalCacheCalloc ( UINT32 CacheSize = ASL_STRING_CACHE_SIZE; +#ifdef ACPI_MISALIGNMENT_NOT_SUPPORTED + /* Used for objects other than strings, so keep allocations aligned */ + Length = ACPI_ROUND_UP_TO_NATIVE_WORD (Length); +#endif + if (Length > CacheSize) { CacheSize = Length; diff --git a/source/compiler/aslcodegen.c b/source/compiler/aslcodegen.c index 757886893b42..6ae3a0aa202b 100644 --- a/source/compiler/aslcodegen.c +++ b/source/compiler/aslcodegen.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcompile.c b/source/compiler/aslcompile.c index ffb7496dd6fe..c17e219c1a4c 100644 --- a/source/compiler/aslcompile.c +++ b/source/compiler/aslcompile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -915,10 +915,11 @@ CmCleanupAndExit ( if (AslGbl_ExceptionCount[ASL_ERROR] > ASL_MAX_ERROR_COUNT) { - printf ("\nMaximum error count (%d) exceeded\n", + printf ("\nMaximum error count (%d) exceeded (aslcompile.c)\n", ASL_MAX_ERROR_COUNT); } + AslGbl_ExceptionCount[ASL_ERROR] = 0; UtDisplaySummary (ASL_FILE_STDOUT); /* diff --git a/source/compiler/aslcompiler.h b/source/compiler/aslcompiler.h index 5112ea49695c..d52f60f2180b 100644 --- a/source/compiler/aslcompiler.h +++ b/source/compiler/aslcompiler.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcompiler.l b/source/compiler/aslcompiler.l index e0985362fb94..881096ad5bbf 100644 --- a/source/compiler/aslcompiler.l +++ b/source/compiler/aslcompiler.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcstyle.y b/source/compiler/aslcstyle.y index 2f032fac9d2f..b4e9065fee0f 100644 --- a/source/compiler/aslcstyle.y +++ b/source/compiler/aslcstyle.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asldebug.c b/source/compiler/asldebug.c index 636fe0518209..5ac6a4ed6059 100644 --- a/source/compiler/asldebug.c +++ b/source/compiler/asldebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asldefine.h b/source/compiler/asldefine.h index 9149ff60377b..12b2899e4062 100644 --- a/source/compiler/asldefine.h +++ b/source/compiler/asldefine.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslerror.c b/source/compiler/aslerror.c index d73d7de903a1..a0ebe7b34e7d 100644 --- a/source/compiler/aslerror.c +++ b/source/compiler/aslerror.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -1025,7 +1025,7 @@ AslLogNewError ( AslGbl_ExceptionCount[ModifiedLevel]++; if (!AslGbl_IgnoreErrors && AslGbl_ExceptionCount[ASL_ERROR] > ASL_MAX_ERROR_COUNT) { - printf ("\nMaximum error count (%u) exceeded\n", ASL_MAX_ERROR_COUNT); + printf ("\nMaximum error count (%u) exceeded (aslerror.c)\n", ASL_MAX_ERROR_COUNT); AslGbl_SourceLine = 0; AslGbl_NextError = AslGbl_ErrorLog; @@ -1033,6 +1033,7 @@ AslLogNewError ( exit(1); } + AslGbl_ExceptionCount[ASL_ERROR] = 0; return; } diff --git a/source/compiler/aslexternal.c b/source/compiler/aslexternal.c index 80edfd2bf9fd..a7d2c9c3d36d 100644 --- a/source/compiler/aslexternal.c +++ b/source/compiler/aslexternal.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslfileio.c b/source/compiler/aslfileio.c index a55b2dbc293a..88b9def907f2 100644 --- a/source/compiler/aslfileio.c +++ b/source/compiler/aslfileio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslfiles.c b/source/compiler/aslfiles.c index a93417c6de5b..2479b404ee41 100644 --- a/source/compiler/aslfiles.c +++ b/source/compiler/aslfiles.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -835,8 +835,8 @@ FlOpenIncludeFile ( * RETURN: Status * * DESCRIPTION: Open the specified input file, and save the directory path to - * the file so that include files can be opened in - * the same directory. + * the file so that include files can be opened in the same + * directory. NOTE: File is opened in text mode. * ******************************************************************************/ diff --git a/source/compiler/aslfold.c b/source/compiler/aslfold.c index d9cc88035efb..316890c4ac06 100644 --- a/source/compiler/aslfold.c +++ b/source/compiler/aslfold.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslglobal.h b/source/compiler/aslglobal.h index 540d7dd9d361..ff00b92ef1ea 100644 --- a/source/compiler/aslglobal.h +++ b/source/compiler/aslglobal.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslhelp.c b/source/compiler/aslhelp.c index 3131b9db037d..d83d41e3d584 100644 --- a/source/compiler/aslhelp.c +++ b/source/compiler/aslhelp.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslhelpers.y b/source/compiler/aslhelpers.y index abb729c33320..2764bf65b9f7 100644 --- a/source/compiler/aslhelpers.y +++ b/source/compiler/aslhelpers.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslhex.c b/source/compiler/aslhex.c index 95b364ff2268..a6e80fdf57ac 100644 --- a/source/compiler/aslhex.c +++ b/source/compiler/aslhex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslkeywords.y b/source/compiler/aslkeywords.y index 54314e64504e..661cfc9397b0 100644 --- a/source/compiler/aslkeywords.y +++ b/source/compiler/aslkeywords.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asllength.c b/source/compiler/asllength.c index a2a550949e3b..b1c06246411c 100644 --- a/source/compiler/asllength.c +++ b/source/compiler/asllength.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asllisting.c b/source/compiler/asllisting.c index 6ed161390c43..290d506210e5 100644 --- a/source/compiler/asllisting.c +++ b/source/compiler/asllisting.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asllistsup.c b/source/compiler/asllistsup.c index 60d304230596..b03560d3612a 100644 --- a/source/compiler/asllistsup.c +++ b/source/compiler/asllistsup.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslload.c b/source/compiler/aslload.c index f73135f336b0..3f827d0ba4d5 100644 --- a/source/compiler/aslload.c +++ b/source/compiler/aslload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asllookup.c b/source/compiler/asllookup.c index 50f087d705ed..44bf9a38667a 100644 --- a/source/compiler/asllookup.c +++ b/source/compiler/asllookup.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmain.c b/source/compiler/aslmain.c index 1df36a2b312d..3c2ce58ea0b2 100644 --- a/source/compiler/aslmain.c +++ b/source/compiler/aslmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -417,7 +417,7 @@ AslSignalHandler ( } printf (ASL_PREFIX "Terminating\n"); - exit (0); + _exit (0); } diff --git a/source/compiler/aslmap.c b/source/compiler/aslmap.c index 7b591bc6e8fa..782d0d96cfb4 100644 --- a/source/compiler/aslmap.c +++ b/source/compiler/aslmap.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -379,8 +379,8 @@ const ASL_MAPPING_ENTRY AslKeywordMapping [] = /* LLESSEQUAL */ OP_TABLE_ENTRY (AML_LOGICAL_LESS_EQUAL_OP, 0, 0, ACPI_BTYPE_INTEGER), /* LNOT */ OP_TABLE_ENTRY (AML_LOGICAL_NOT_OP, 0, 0, ACPI_BTYPE_INTEGER), /* LNOTEQUAL */ OP_TABLE_ENTRY (AML_LOGICAL_NOT_EQUAL_OP, 0, 0, ACPI_BTYPE_INTEGER), -/* LOAD */ OP_TABLE_ENTRY (AML_LOAD_OP, 0, 0, 0), -/* LOADTABLE */ OP_TABLE_ENTRY (AML_LOAD_TABLE_OP, 0, 0, ACPI_BTYPE_DDB_HANDLE), +/* LOAD */ OP_TABLE_ENTRY (AML_LOAD_OP, 0, 0, ACPI_BTYPE_INTEGER), +/* LOADTABLE */ OP_TABLE_ENTRY (AML_LOAD_TABLE_OP, 0, 0, ACPI_BTYPE_INTEGER), /* LOCAL0 */ OP_TABLE_ENTRY (AML_LOCAL0, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS), /* LOCAL1 */ OP_TABLE_ENTRY (AML_LOCAL1, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS), /* LOCAL2 */ OP_TABLE_ENTRY (AML_LOCAL2, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS), diff --git a/source/compiler/aslmapenter.c b/source/compiler/aslmapenter.c index 7ade1a31dbba..5dae3e9ea86b 100644 --- a/source/compiler/aslmapenter.c +++ b/source/compiler/aslmapenter.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmapoutput.c b/source/compiler/aslmapoutput.c index 0fe7b1173dc9..95146ea65fbb 100644 --- a/source/compiler/aslmapoutput.c +++ b/source/compiler/aslmapoutput.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmaputils.c b/source/compiler/aslmaputils.c index c376bc0a2888..0b2c7e2615e9 100644 --- a/source/compiler/aslmaputils.c +++ b/source/compiler/aslmaputils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmessages.c b/source/compiler/aslmessages.c index 4dd6422ba75a..990e376f76bd 100644 --- a/source/compiler/aslmessages.c +++ b/source/compiler/aslmessages.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -193,7 +193,8 @@ const char *AslErrorLevelIde [ASL_NUM_REPORT_LEVELS] = { * * NOTE2: With the introduction of the -vw option to disable specific messages, * new messages should only be added to the end of this list, so that values - * for existing messages are not disturbed. + * for existing messages are not disturbed. As important, obsolete messages + * cannot be removed from this list, as it will affect the -vw option. */ /* ASL compiler */ @@ -410,6 +411,8 @@ const char *AslTableCompilerMsgs [] = /* ASL_MSG_ENTRY_LIST */ "Invalid entry initializer list", /* ASL_MSG_UNKNOWN_FORMAT */ "Unknown format value", /* ASL_MSG_RESERVED_VALUE */ "Value for field is reserved or unknown", +/* ASL_MSG_TWO_ZERO_VALUES */ "32-bit DSDT Address and 64-bit X_DSDT Address cannot both be zero", +/* ASL_MSG_BAD_PARSE_TREE */ "Parse tree appears to be ill-defined" }; /* Preprocessor */ diff --git a/source/compiler/aslmessages.h b/source/compiler/aslmessages.h index 69c2561bad0f..197e9e2276c0 100644 --- a/source/compiler/aslmessages.h +++ b/source/compiler/aslmessages.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -412,6 +412,8 @@ typedef enum ASL_MSG_ENTRY_LIST, ASL_MSG_UNKNOWN_FORMAT, ASL_MSG_RESERVED_VALUE, + ASL_MSG_TWO_ZERO_VALUES, + ASL_MSG_BAD_PARSE_TREE, /* These messages are used by the Preprocessor only */ diff --git a/source/compiler/aslmethod.c b/source/compiler/aslmethod.c index 4b3b66a5ab40..517ba778cd8e 100644 --- a/source/compiler/aslmethod.c +++ b/source/compiler/aslmethod.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslnamesp.c b/source/compiler/aslnamesp.c index 6f9bb65a4d6c..60c488db05a0 100644 --- a/source/compiler/aslnamesp.c +++ b/source/compiler/aslnamesp.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asloffset.c b/source/compiler/asloffset.c index 5f2661e42107..b0954c70105c 100644 --- a/source/compiler/asloffset.c +++ b/source/compiler/asloffset.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslopcodes.c b/source/compiler/aslopcodes.c index 2f2c77446c22..e07910b1f5f6 100644 --- a/source/compiler/aslopcodes.c +++ b/source/compiler/aslopcodes.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asloperands.c b/source/compiler/asloperands.c index ae3b918dffda..9330fdfb4244 100644 --- a/source/compiler/asloperands.c +++ b/source/compiler/asloperands.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -429,6 +429,11 @@ OpnDoFieldCommon ( Next->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG; PkgLengthNode->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG; } +#ifdef _OBSOLETE_CODE + /* + * January 2022: removed this check due to complaints by users + * for too many (invalid) remarks. + */ else if (NewBitOffset == CurrentBitOffset) { /* @@ -459,6 +464,7 @@ OpnDoFieldCommon ( CurrentBitOffset = NewBitOffset; } } +#endif else { /* diff --git a/source/compiler/aslopt.c b/source/compiler/aslopt.c index 0246b312a9f6..916aebfba1cd 100644 --- a/source/compiler/aslopt.c +++ b/source/compiler/aslopt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asloptions.c b/source/compiler/asloptions.c index ab9daa4046d4..2808650e3dd0 100644 --- a/source/compiler/asloptions.c +++ b/source/compiler/asloptions.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslparseop.c b/source/compiler/aslparseop.c index 92eeb0fb6260..ab81ac286e7d 100644 --- a/source/compiler/aslparseop.c +++ b/source/compiler/aslparseop.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslparser.y b/source/compiler/aslparser.y index 0a6fb64d62d8..dff15619283b 100644 --- a/source/compiler/aslparser.y +++ b/source/compiler/aslparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslpld.c b/source/compiler/aslpld.c index 0939c5c62d8c..9faa8c263d6f 100644 --- a/source/compiler/aslpld.c +++ b/source/compiler/aslpld.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslpredef.c b/source/compiler/aslpredef.c index aa1a95704dfe..c52295ee854b 100644 --- a/source/compiler/aslpredef.c +++ b/source/compiler/aslpredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprepkg.c b/source/compiler/aslprepkg.c index 380c48b01ab0..f562dbe6b820 100644 --- a/source/compiler/aslprepkg.c +++ b/source/compiler/aslprepkg.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprimaries.y b/source/compiler/aslprimaries.y index dd1310b07469..69565defe405 100644 --- a/source/compiler/aslprimaries.y +++ b/source/compiler/aslprimaries.y @@ -11,7 +11,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -843,7 +843,7 @@ LoadTerm : PARSEOP_LOAD PARSEOP_OPEN_PAREN {$$ = TrCreateLeafOp (PARSEOP_LOAD);} NameString - RequiredTarget + Target PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($3,2,$4,$5);} | PARSEOP_LOAD PARSEOP_OPEN_PAREN diff --git a/source/compiler/aslprintf.c b/source/compiler/aslprintf.c index 04f2d31eaee5..3f270fec9da8 100644 --- a/source/compiler/aslprintf.c +++ b/source/compiler/aslprintf.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprune.c b/source/compiler/aslprune.c index 78b2e34f5c61..4626a1eef08d 100644 --- a/source/compiler/aslprune.c +++ b/source/compiler/aslprune.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslresource.c b/source/compiler/aslresource.c index a2d855684d6b..104a48357372 100644 --- a/source/compiler/aslresource.c +++ b/source/compiler/aslresource.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslresources.y b/source/compiler/aslresources.y index 86c8981f79b6..a5752b01c04f 100644 --- a/source/compiler/aslresources.y +++ b/source/compiler/aslresources.y @@ -11,7 +11,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype1.c b/source/compiler/aslrestype1.c index 6751444a2afc..a6625c08c9cd 100644 --- a/source/compiler/aslrestype1.c +++ b/source/compiler/aslrestype1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype1i.c b/source/compiler/aslrestype1i.c index c880a7400221..84d5b653fe8b 100644 --- a/source/compiler/aslrestype1i.c +++ b/source/compiler/aslrestype1i.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2.c b/source/compiler/aslrestype2.c index 4c308aaacf4f..387e85c80e41 100644 --- a/source/compiler/aslrestype2.c +++ b/source/compiler/aslrestype2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2d.c b/source/compiler/aslrestype2d.c index c1cafe207d73..6b597e257758 100644 --- a/source/compiler/aslrestype2d.c +++ b/source/compiler/aslrestype2d.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2e.c b/source/compiler/aslrestype2e.c index 63db785270e2..414b2d23f851 100644 --- a/source/compiler/aslrestype2e.c +++ b/source/compiler/aslrestype2e.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2q.c b/source/compiler/aslrestype2q.c index ec64da2b3616..ce79659720ee 100644 --- a/source/compiler/aslrestype2q.c +++ b/source/compiler/aslrestype2q.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2s.c b/source/compiler/aslrestype2s.c index 607aca8be350..ea832da3db2c 100644 --- a/source/compiler/aslrestype2s.c +++ b/source/compiler/aslrestype2s.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2w.c b/source/compiler/aslrestype2w.c index 3c3fed7b06a7..a758e0581d38 100644 --- a/source/compiler/aslrestype2w.c +++ b/source/compiler/aslrestype2w.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrules.y b/source/compiler/aslrules.y index a944308e39c2..79aa2210abb8 100644 --- a/source/compiler/aslrules.y +++ b/source/compiler/aslrules.y @@ -11,7 +11,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -261,11 +261,11 @@ Target | ',' {$$ = TrCreateNullTargetOp ();} /* Placeholder is a ZeroOp object */ | ',' SuperName {$$ = TrSetOpFlags ($2, OP_IS_TARGET);} ; - +/* RequiredTarget : ',' SuperName {$$ = TrSetOpFlags ($2, OP_IS_TARGET);} ; - +*/ TermArg : SimpleName {$$ = TrSetOpFlags ($1, OP_IS_TERM_ARG);} | Type2Opcode {$$ = TrSetOpFlags ($1, OP_IS_TERM_ARG);} @@ -715,7 +715,6 @@ Type1Opcode | FatalTerm {} | ForTerm {} | ElseIfTerm {} - | LoadTerm {} | NoOpTerm {} | NotifyTerm {} | ReleaseTerm {} @@ -734,6 +733,7 @@ Type2Opcode | CondRefOfTerm {} | CopyObjectTerm {} | DerefOfTerm {} + | LoadTerm {} /* Moved from Type1 -- now returns an integer (ACPI 6.4) */ | ObjectTypeTerm {} | RefOfTerm {} | SizeOfTerm {} diff --git a/source/compiler/aslstartup.c b/source/compiler/aslstartup.c index 97881e14d288..45462adf9519 100644 --- a/source/compiler/aslstartup.c +++ b/source/compiler/aslstartup.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -293,9 +293,17 @@ AslDetectSourceFileType ( goto Cleanup; } - /* We have some sort of binary table, check for valid ACPI table */ - - fseek (Info->Handle, 0, SEEK_SET); + /* + * We have some sort of binary table; reopen in binary mode, then + * check for valid ACPI table + */ + fclose (Info->Handle); + Info->Handle = fopen (Info->Filename, "rb"); + if (!Info->Handle) + { + fprintf (stderr, "Could not open input file %s\n", + Info->Filename); + } Status = AcValidateTableHeader (Info->Handle, 0); if (ACPI_SUCCESS (Status)) @@ -446,8 +454,9 @@ AslDoOneFile ( UtConvertBackslashes (AslGbl_Files[ASL_FILE_INPUT].Filename); /* - * Open the input file. Here, this should be an ASCII source file, - * either an ASL file or a Data Table file + * Open the input file. Here, this could be an ASCII source file, + * either an ASL file or a Data Table file, or a binary AML file + * or binary data table file (For disassembly). */ Status = FlOpenInputFile (AslGbl_Files[ASL_FILE_INPUT].Filename); if (ACPI_FAILURE (Status)) @@ -458,8 +467,6 @@ AslDoOneFile ( FileNode = FlGetCurrentFileNode(); - FileNode->OriginalInputFileSize = FlGetFileSize (ASL_FILE_INPUT); - /* Determine input file type */ AslGbl_FileType = AslDetectSourceFileType (&AslGbl_Files[ASL_FILE_INPUT]); @@ -469,6 +476,8 @@ AslDoOneFile ( return (AE_ERROR); } + FileNode->OriginalInputFileSize = FlGetFileSize (ASL_FILE_INPUT); + /* * If -p not specified, we will use the input filename as the * output filename prefix diff --git a/source/compiler/aslstubs.c b/source/compiler/aslstubs.c index be3337ab8a99..0e6cd56f48e7 100644 --- a/source/compiler/aslstubs.c +++ b/source/compiler/aslstubs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslsupport.l b/source/compiler/aslsupport.l index a507e99b3327..0daec602e148 100644 --- a/source/compiler/aslsupport.l +++ b/source/compiler/aslsupport.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslsupport.y b/source/compiler/aslsupport.y index dfc427a9d796..3f19af2f48b1 100644 --- a/source/compiler/aslsupport.y +++ b/source/compiler/aslsupport.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltokens.y b/source/compiler/asltokens.y index 5e205e01de3c..c43561e7a4a3 100644 --- a/source/compiler/asltokens.y +++ b/source/compiler/asltokens.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltransform.c b/source/compiler/asltransform.c index 91655420fee8..573ddad1565f 100644 --- a/source/compiler/asltransform.c +++ b/source/compiler/asltransform.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltree.c b/source/compiler/asltree.c index 91db420f949a..9cf49269f377 100644 --- a/source/compiler/asltree.c +++ b/source/compiler/asltree.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltypes.h b/source/compiler/asltypes.h index 760995f59fea..d5689dea58b0 100644 --- a/source/compiler/asltypes.h +++ b/source/compiler/asltypes.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltypes.y b/source/compiler/asltypes.y index aaa732f4dc45..ba98362cd323 100644 --- a/source/compiler/asltypes.y +++ b/source/compiler/asltypes.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -175,7 +175,9 @@ NoEcho(' %type ParameterTypePackageList %type ParameterTypesPackage %type ParameterTypesPackageList +/* %type RequiredTarget +*/ %type SimpleName %type StringData %type StringLiteral diff --git a/source/compiler/aslutils.c b/source/compiler/aslutils.c index c4325c3b253a..e91fd4602c26 100644 --- a/source/compiler/aslutils.c +++ b/source/compiler/aslutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asluuid.c b/source/compiler/asluuid.c index 30540acdaeaa..0eb36050e882 100644 --- a/source/compiler/asluuid.c +++ b/source/compiler/asluuid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -211,4 +211,3 @@ AuValidateUuid ( return (AE_OK); } - diff --git a/source/compiler/aslwalks.c b/source/compiler/aslwalks.c index 8ee5122c21f1..6e32f0818725 100644 --- a/source/compiler/aslwalks.c +++ b/source/compiler/aslwalks.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslxref.c b/source/compiler/aslxref.c index ef99a971de5b..3a00f5a92cbc 100644 --- a/source/compiler/aslxref.c +++ b/source/compiler/aslxref.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslxrefout.c b/source/compiler/aslxrefout.c index 843504a02543..dd3fe80c275f 100644 --- a/source/compiler/aslxrefout.c +++ b/source/compiler/aslxrefout.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/cvcompiler.c b/source/compiler/cvcompiler.c index 633a31d893ff..b51a688b3a59 100644 --- a/source/compiler/cvcompiler.c +++ b/source/compiler/cvcompiler.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/cvdisasm.c b/source/compiler/cvdisasm.c index be3378ba9ae4..250c009ac315 100644 --- a/source/compiler/cvdisasm.c +++ b/source/compiler/cvdisasm.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/cvparser.c b/source/compiler/cvparser.c index 62d981fbdd1f..66b04e9a8597 100644 --- a/source/compiler/cvparser.c +++ b/source/compiler/cvparser.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtcompile.c b/source/compiler/dtcompile.c index 84d8e5c1b629..89eb937d5fc3 100644 --- a/source/compiler/dtcompile.c +++ b/source/compiler/dtcompile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtcompiler.h b/source/compiler/dtcompiler.h index 614a686f1ad4..3b3683cc6b74 100644 --- a/source/compiler/dtcompiler.h +++ b/source/compiler/dtcompiler.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -569,6 +569,10 @@ ACPI_STATUS DtCompileAest ( void **PFieldList); +ACPI_STATUS +DtCompileApmt ( + void **PFieldList); + ACPI_STATUS DtCompileAsf ( void **PFieldList); @@ -762,6 +766,8 @@ DtGetGenericTableInfo ( /* ACPI Table templates */ extern const unsigned char TemplateAest[]; +extern const unsigned char TemplateAgdi[]; +extern const unsigned char TemplateApmt[]; extern const unsigned char TemplateAsf[]; extern const unsigned char TemplateBoot[]; extern const unsigned char TemplateBdat[]; @@ -793,6 +799,7 @@ extern const unsigned char TemplateMpst[]; extern const unsigned char TemplateMsct[]; extern const unsigned char TemplateMsdm[]; extern const unsigned char TemplateNfit[]; +extern const unsigned char TemplateNhlt[]; extern const unsigned char TemplatePcct[]; extern const unsigned char TemplatePdtt[]; extern const unsigned char TemplatePhat[]; @@ -814,6 +821,7 @@ extern const unsigned char TemplateSrat[]; extern const unsigned char TemplateStao[]; extern const unsigned char TemplateSvkl[]; extern const unsigned char TemplateTcpa[]; +extern const unsigned char TemplateTdel[]; extern const unsigned char TemplateTpm2[]; extern const unsigned char TemplateUefi[]; extern const unsigned char TemplateViot[]; diff --git a/source/compiler/dtcompilerparser.l b/source/compiler/dtcompilerparser.l index bd128bed71ad..a00ef56e2481 100644 --- a/source/compiler/dtcompilerparser.l +++ b/source/compiler/dtcompilerparser.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtcompilerparser.y b/source/compiler/dtcompilerparser.y index 3b1a67a0707a..30ead3afa9ad 100644 --- a/source/compiler/dtcompilerparser.y +++ b/source/compiler/dtcompilerparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtexpress.c b/source/compiler/dtexpress.c index c9705c9d0f7e..fd292d8fec76 100644 --- a/source/compiler/dtexpress.c +++ b/source/compiler/dtexpress.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtfield.c b/source/compiler/dtfield.c index f4c7114743cb..f931631955c2 100644 --- a/source/compiler/dtfield.c +++ b/source/compiler/dtfield.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -676,6 +676,12 @@ DtCompileFlag ( BitLength = 2; break; + case ACPI_DMT_FLAGS8_2: + + BitPosition = 2; + BitLength = 8; + break; + case ACPI_DMT_FLAGS4: BitPosition = 4; diff --git a/source/compiler/dtio.c b/source/compiler/dtio.c index e1776f3f2919..1a00424c6abf 100644 --- a/source/compiler/dtio.c +++ b/source/compiler/dtio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtparser.l b/source/compiler/dtparser.l index 9d2e3afe4283..b7cb26e2ba32 100644 --- a/source/compiler/dtparser.l +++ b/source/compiler/dtparser.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtparser.y b/source/compiler/dtparser.y index 1b6f6df6138f..fc8275cc209c 100644 --- a/source/compiler/dtparser.y +++ b/source/compiler/dtparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtsubtable.c b/source/compiler/dtsubtable.c index 6ea538e6c66b..3c2798b64dbd 100644 --- a/source/compiler/dtsubtable.c +++ b/source/compiler/dtsubtable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dttable.c b/source/compiler/dttable.c index 702c83ee2196..dfc34c134667 100644 --- a/source/compiler/dttable.c +++ b/source/compiler/dttable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -223,10 +223,12 @@ DtCompileRsdp ( * * RETURN: Status * - * DESCRIPTION: Compile FADT. + * DESCRIPTION: Compile FADT (signature FACP). * *****************************************************************************/ +#define ACPI_XDSDT_LOCATION_IN_LIST 11 + ACPI_STATUS DtCompileFadt ( void **List) @@ -235,10 +237,17 @@ DtCompileFadt ( DT_SUBTABLE *Subtable; DT_SUBTABLE *ParentTable; DT_FIELD **PFieldList = (DT_FIELD **) List; - ACPI_TABLE_HEADER *Table; + DT_FIELD *DsdtFieldList; + ACPI_TABLE_FADT *Table; UINT8 Revision; + UINT32 DsdtAddress; + UINT64 X_DsdtAddress; + UINT32 i; + /* Get the table revision and 32-bit DSDT Address definition */ + + DsdtFieldList = (*PFieldList)->Next; Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt1, &Subtable); if (ACPI_FAILURE (Status)) @@ -249,8 +258,16 @@ DtCompileFadt ( ParentTable = DtPeekSubtable (); DtInsertSubtable (ParentTable, Subtable); - Table = ACPI_CAST_PTR (ACPI_TABLE_HEADER, ParentTable->Buffer); - Revision = Table->Revision; + Table = ACPI_CAST_PTR (ACPI_TABLE_FADT, ParentTable->Buffer); + Revision = Table->Header.Revision; + DsdtAddress = Table->Dsdt; + + /* FADT version 1 has only 32-bit addresses - error if DSDT address is NULL */ + + if ((Revision == 1) && (!DsdtAddress)) + { + DtError (ASL_ERROR, ASL_MSG_ZERO_VALUE, DsdtFieldList, NULL); + } if (Revision == 2) { @@ -263,8 +280,24 @@ DtCompileFadt ( DtInsertSubtable (ParentTable, Subtable); } - else if (Revision >= 2) + + else if (Revision > 2) { + /* + * Rev 3 and greater have 64-bit addresses (as well as 32-bit). + * Get the 64-bit DSDT (X_DSDT) Address definition. Note: This + * appears at field list offset 11 within AcpiDmTableInfoFadt3. + */ + DsdtFieldList = *PFieldList; + for (i = 0; i < ACPI_XDSDT_LOCATION_IN_LIST; i++) + { + DsdtFieldList = DsdtFieldList->Next; + if (!DsdtFieldList) + { + return (ASL_MSG_BAD_PARSE_TREE); + } + } + Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt3, &Subtable); if (ACPI_FAILURE (Status)) @@ -274,6 +307,20 @@ DtCompileFadt ( DtInsertSubtable (ParentTable, Subtable); + Table = ACPI_CAST_PTR (ACPI_TABLE_FADT, ParentTable->Buffer); + X_DsdtAddress = Table->XDsdt; + + /* + * Error if both the 32-bit DSDT address and the + * 64-bit X_DSDT address are zero. + */ + if ((!X_DsdtAddress) && (!DsdtAddress)) + { + DtError (ASL_ERROR, ASL_MSG_TWO_ZERO_VALUES, DsdtFieldList, NULL); + } + + /* Fields specific to FADT Revision 5 (appended to previous) */ + if (Revision >= 5) { Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt5, @@ -286,6 +333,8 @@ DtCompileFadt ( DtInsertSubtable (ParentTable, Subtable); } + /* Fields specific to FADT Revision 6 (appended to previous) */ + if (Revision >= 6) { Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt6, diff --git a/source/compiler/dttable1.c b/source/compiler/dttable1.c index 2e6a856912cd..9ac0435069f6 100644 --- a/source/compiler/dttable1.c +++ b/source/compiler/dttable1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -387,6 +387,102 @@ DtCompileAest ( } +/****************************************************************************** + * + * FUNCTION: DtCompileApmt + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile APMT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileApmt ( + void **List) +{ + ACPI_STATUS Status; + ACPI_TABLE_HEADER *Header; + ACPI_APMT_NODE *ApmtNode; + ACPI_APMT_NODE *PeerApmtNode; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *PeerSubtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD**)List; + DT_FIELD *SubtableStart; + UINT32 CurLength; + char MsgBuffer[64] = ""; + + ParentTable = DtPeekSubtable(); + + Header = ACPI_CAST_PTR(ACPI_TABLE_HEADER, ParentTable->Buffer); + + CurLength = sizeof(ACPI_TABLE_HEADER); + + /* Walk the parse tree */ + + while (*PFieldList) + { + /* APMT Node Subtable */ + + SubtableStart = *PFieldList; + + Status = DtCompileTable(PFieldList, AcpiDmTableInfoApmtNode, &Subtable); + + if (ACPI_FAILURE(Status)) + { + return (Status); + } + + ApmtNode = ACPI_CAST_PTR(ACPI_APMT_NODE, Subtable->Buffer); + + if (ApmtNode->Length != sizeof(ACPI_APMT_NODE)) + { + DtFatal(ASL_MSG_INVALID_LENGTH, SubtableStart, "APMT"); + return (AE_ERROR); + } + + if (ApmtNode->Type >= ACPI_APMT_NODE_TYPE_COUNT) + { + snprintf(MsgBuffer, 64, "Node Type : 0x%X", ApmtNode->Type); + DtFatal(ASL_MSG_INVALID_TYPE, SubtableStart, MsgBuffer); + return (AE_ERROR); + } + + PeerSubtable = DtGetNextSubtable(ParentTable, NULL); + + /* Validate the node id needs to be unique. */ + while(PeerSubtable) + { + PeerApmtNode = ACPI_CAST_PTR(ACPI_APMT_NODE, PeerSubtable->Buffer); + if (PeerApmtNode->Id == ApmtNode->Id) + { + snprintf(MsgBuffer, 64, "Node Id : 0x%X existed", ApmtNode->Id); + DtFatal(ASL_MSG_DUPLICATE_ITEM, SubtableStart, MsgBuffer); + return (AE_ERROR); + } + + PeerSubtable = DtGetNextSubtable(ParentTable, PeerSubtable); + } + + CurLength += ApmtNode->Length; + + DtInsertSubtable(ParentTable, Subtable); + } + + if (Header->Length != CurLength) + { + snprintf(MsgBuffer, 64, " - APMT Length : %u (expected: %u)", + Header->Length, CurLength); + DtFatal(ASL_MSG_INVALID_LENGTH, NULL, MsgBuffer); + return (AE_ERROR); + } + + return (AE_OK); +} + /****************************************************************************** * * FUNCTION: DtCompileAsf @@ -587,6 +683,9 @@ DtCompileCedt ( while (*PFieldList) { + /* if CFMWS and has more than one target, then set to zero later */ + + int InsertFlag = 1; SubtableStart = *PFieldList; /* CEDT Header */ @@ -607,25 +706,72 @@ DtCompileCedt ( switch (CedtHeader->Type) { case ACPI_CEDT_TYPE_CHBS: - + Status = DtCompileTable (PFieldList, AcpiDmTableInfoCedt0, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } break; + case ACPI_CEDT_TYPE_CFMWS: { + unsigned char *dump; + unsigned int idx, offset, max = 0; + + /* Compile table with first "Interleave target" */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoCedt1, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + /* Look in buffer for the number of targets */ + offset = (unsigned int) ACPI_OFFSET (ACPI_CEDT_CFMWS, InterleaveWays); + dump = (unsigned char *) Subtable->Buffer - 4; /* place at beginning of cedt1 */ + max = 0x01 << dump[offset]; /* 2^max, so 0=1, 1=2, 2=4, 3=8. 8 is MAX */ + if (max > 8) max=1; /* Error in encoding Interleaving Ways. */ + if (max == 1) /* if only one target, then break here. */ + break; /* break if only one target. */ + + /* We need to add more interleave targets, so write the current Subtable. */ + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); /* Insert AcpiDmTableInfoCedt1 table so we can put in */ + DtPushSubtable (Subtable); /* the targets > the first. */ + + /* Now, find out all interleave targets beyond the first. */ + + for (idx = 1; idx < max; idx++) { + ParentTable = DtPeekSubtable (); + + if (*PFieldList) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoCedt1_te, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + if (Subtable) + { + DtInsertSubtable (ParentTable, Subtable); /* got a target, so insert table. */ + InsertFlag = 0; + } + } + } + + DtPopSubtable (); + ParentTable = DtPeekSubtable (); + break; + } default: - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "CEDT"); return (AE_ERROR); } - /* CEDT Subtable */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoCedt0, &Subtable); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); + if (InsertFlag == 1) { + DtInsertSubtable (ParentTable, Subtable); + } DtPopSubtable (); } @@ -1005,6 +1151,11 @@ DtCompileDmar ( InfoTable = AcpiDmTableInfoDmar4; break; + case ACPI_DMAR_TYPE_SATC: + + InfoTable = AcpiDmTableInfoDmar5; + break; + default: DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "DMAR"); @@ -1903,9 +2054,9 @@ DtCompileIort ( Table = ACPI_CAST_PTR (ACPI_TABLE_HEADER, ParentTable->Buffer); Revision = Table->Revision; - /* Both IORT Rev E and E.a have known issues and are not supported */ + /* IORT Revisions E, E.a & E.c have known issues and are not supported */ - if (Revision == 1 || Revision == 2) + if (Revision == 1 || Revision == 2 || Revision == 4) { DtError (ASL_ERROR, ASL_MSG_UNSUPPORTED, NULL, "IORT table revision"); return (AE_ERROR); @@ -2218,7 +2369,7 @@ DtCompileIort ( IortRmr->RmrCount = RmrCount; break; - default: + default: DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "IORT"); return (AE_ERROR); diff --git a/source/compiler/dttable2.c b/source/compiler/dttable2.c index b94451229e47..1798a963e744 100644 --- a/source/compiler/dttable2.c +++ b/source/compiler/dttable2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -373,8 +373,17 @@ DtCompileMadt ( default: - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "MADT"); - return (AE_ERROR); + if (MadtHeader->Type >= ACPI_MADT_TYPE_OEM_RESERVED) + { + InfoTable = AcpiDmTableInfoMadt17; + } + else + { + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "MADT"); + return (AE_ERROR); + } + + break; } Status = DtCompileTable (PFieldList, InfoTable, &Subtable); @@ -781,6 +790,394 @@ DtCompileNfit ( } +/****************************************************************************** + * + * FUNCTION: DtCompileNhlt + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile NHLT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileNhlt ( + void **List) +{ + ACPI_STATUS Status; + UINT32 EndpointCount; + UINT32 MicrophoneCount; + UINT32 FormatsCount; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + UINT32 CapabilitiesSize; + UINT8 ArrayType; + UINT8 ConfigType; + UINT8 DeviceInfoCount; + UINT32 i; + UINT32 j; + ACPI_TABLE_NHLT_ENDPOINT_COUNT *MainTable; + ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A *DevSpecific; + ACPI_NHLT_VENDOR_MIC_COUNT *MicCount; + ACPI_NHLT_FORMATS_CONFIG *FormatsConfig; + ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_D *ConfigSpecific; + ACPI_NHLT_DEVICE_INFO_COUNT *DeviceInfo; + + + /* Main table */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + /* Get the Endpoint Descriptor count */ + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + MainTable = ACPI_CAST_PTR (ACPI_TABLE_NHLT_ENDPOINT_COUNT, Subtable->Buffer); + EndpointCount = MainTable->EndpointCount; + + /* Subtables */ + + while (*PFieldList) + { + /* Variable number of Endpoint descriptors */ + + for (i = 0; i < EndpointCount; i++) + { + /* Do the Endpoint Descriptor */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt0, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + /* Do the Device Specific table */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt5b, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + DevSpecific = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A, Subtable->Buffer); + CapabilitiesSize = DevSpecific->CapabilitiesSize; + + ArrayType = 0; + ConfigType = 0; + + switch (CapabilitiesSize) + { + case 0: + break; + + case 1: + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt5c, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + break; + + case 2: + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt5, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + break; + + case 3: + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt5a, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + ConfigSpecific = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_D, Subtable->Buffer); + ArrayType = ConfigSpecific->ArrayType; + ConfigType = ConfigSpecific->ConfigType; + break; + + case 7: + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt5, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt6b, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + ConfigSpecific = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_D, Subtable->Buffer); + ArrayType = ConfigSpecific->ArrayType; + ConfigType = ConfigSpecific->ConfigType; + break; + + default: + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt5a, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + ConfigSpecific = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_D, Subtable->Buffer); + ArrayType = ConfigSpecific->ArrayType; + ConfigType = ConfigSpecific->ConfigType; + break; + + } /* switch (CapabilitiesSize) */ + + if (CapabilitiesSize >= 3) + { + /* Check for a vendor-defined mic array */ + + if (ConfigType == ACPI_NHLT_CONFIG_TYPE_MIC_ARRAY) + { + if ((ArrayType & ACPI_NHLT_ARRAY_TYPE_MASK) == ACPI_NHLT_VENDOR_DEFINED) + { + /* Get the microphone count */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt6a, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + MicCount = ACPI_CAST_PTR (ACPI_NHLT_VENDOR_MIC_COUNT, Subtable->Buffer); + MicrophoneCount = MicCount->MicrophoneCount; + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + /* Variable number of microphones */ + + for (j = 0; j < MicrophoneCount; j++) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt6, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + } + + /* Do the MIC_SNR_SENSITIVITY_EXTENSION, if present */ + + if (ArrayType & ACPI_NHLT_ARRAY_TYPE_EXT_MASK) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt9, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + } + } + } + } + + /* Get the formats count */ + + DtPopSubtable (); + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt4, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + FormatsConfig = ACPI_CAST_PTR (ACPI_NHLT_FORMATS_CONFIG, Subtable->Buffer); + FormatsCount = FormatsConfig->FormatsCount; + + /* Variable number of wave_format_extensible structs */ + + for (j = 0; j < FormatsCount; j++) + { + /* Do the main wave_format_extensible structure */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt3, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + /* Do the capabilities list */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt3a, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtPopSubtable (); + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + } /* for (j = 0; j < FormatsCount; j++) */ + + /* + * If we are not done with the current Endpoint yet, then there must be + * some non documeneted structure(s) yet to be processed. First, get + * the count of such structure(s). + */ + if (*PFieldList && (strcmp ((const char *) (*PFieldList)->Name, "Descriptor Length"))) + { + /* Get the count of non documented structures */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt7, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + DeviceInfo = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_INFO_COUNT, Subtable->Buffer); + DeviceInfoCount = DeviceInfo->StructureCount; + + for (j = 0; j < DeviceInfoCount; j++) + { + /* + * Compile the following Device Info fields: + * 1) Device ID + * 2) Device Instance ID + * 3) Device Port ID + */ + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt7a, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + } /* for (j = 0; j < LinuxSpecificCount; j++) */ + + + /* Undocumented data at the end of endpoint */ + if (*PFieldList && (strcmp ((const char *) (*PFieldList)->Name, "Descriptor Length"))) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt7b, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + } + } + + DtPopSubtable (); + + } /* for (i = 0; i < EndpointCount; i++) */ + + /* + * All Endpoint Descriptors are completed. + * Do the table terminator specific config (not in NHLT spec, optional) + */ + if (*PFieldList && (strcmp ((const char *) (*PFieldList)->Name, "Descriptor Length"))) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt5b, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt3a, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + } + + return (AE_OK); + } + + return (AE_OK); +} + + /****************************************************************************** * * FUNCTION: DtCompilePcct @@ -2141,7 +2538,6 @@ DtCompileStao ( } - /****************************************************************************** * * FUNCTION: DtCompileSvkl diff --git a/source/compiler/dttemplate.c b/source/compiler/dttemplate.c index 8154abb58ec3..1bcc4a12cbf1 100644 --- a/source/compiler/dttemplate.c +++ b/source/compiler/dttemplate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dttemplate.h b/source/compiler/dttemplate.h index 24c8c6f93e5d..ad5af70748dc 100644 --- a/source/compiler/dttemplate.h +++ b/source/compiler/dttemplate.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -249,6 +249,39 @@ const unsigned char TemplateAest[] = 0x56,0x00,0x00,0x00 /* 000002C8 "V..." */ }; +const unsigned char TemplateAgdi[] = +{ + 0x41,0x47,0x44,0x49,0x30,0x00,0x00,0x00, /* 00000000 "AGDI0..." */ + 0x01,0xE4,0x41,0x4D,0x50,0x45,0x52,0x45, /* 00000008 "..AMPERE" */ + 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */ + 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x05,0x01,0x21,0x20,0x00,0x00,0x00,0x00, /* 00000020 "..! ...." */ + 0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x00 /* 00000028 "...@...." */ +}; + +const unsigned char TemplateApmt[] = +{ + 0x41,0x50,0x4D,0x54,0x94,0x00,0x00,0x00, /* 00000000 "APMT...." */ + 0x00,0x79,0x4E,0x56,0x49,0x44,0x49,0x41, /* 00000008 ".yNVIDIA" */ + 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */ + 0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x17,0x12,0x21,0x20,0x38,0x00,0x04,0x03, /* 00000020 "..! 8..." */ + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000028 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000030 "........" */ + 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 ". ......" */ + 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000040 ". ......" */ + 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000048 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000050 "........" */ + 0x6B,0x03,0x00,0x00,0x38,0x00,0x06,0x03, /* 00000058 "k...8..." */ + 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00, /* 00000060 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000068 "........" */ + 0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000070 ".0......" */ + 0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000078 ".0......" */ + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000080 "........" */ + 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000088 "........" */ + 0x6B,0x03,0x00,0x00 /* 00000090 "k..." */ +}; + const unsigned char TemplateAsf[] = { 0x41,0x53,0x46,0x21,0x72,0x00,0x00,0x00, /* 00000000 "ASF!r..." */ @@ -310,23 +343,58 @@ const unsigned char TemplateBoot[] = const unsigned char TemplateCedt[] = { - 0x43,0x45,0x44,0x54,0x84,0x00,0x00,0x00, /* 00000000 "CEDT...." */ - 0x01,0x8B,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ - 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */ - 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ - 0x05,0x01,0x21,0x20,0x00,0x00,0x20,0x00, /* 00000020 "..! .. ." */ - 0x33,0x33,0xCD,0xAB,0x01,0x00,0x00,0x00, /* 00000028 "33......" */ - 0x00,0x00,0x00,0x00,0x00,0x21,0x43,0xD5, /* 00000030 ".....!C." */ - 0x00,0x00,0x00,0x00,0x45,0x23,0x01,0x00, /* 00000038 "....E#.." */ + 0x43,0x45,0x44,0x54,0x9c,0x01,0x00,0x00, /* 00000000 "CEDT...." */ + 0x01,0x87,0x49,0x4e,0x54,0x45,0x4c,0x20, /* 00000008 "..INTEL " */ + 0x54,0x45,0x4d,0x50,0x4c,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */ + 0x00,0x00,0x00,0x00,0x49,0x4e,0x54,0x4c, /* 00000018 "....INTL" */ + 0x17,0x12,0x21,0x20,0x00,0x00,0x20,0x00, /* 00000020 "..! .. ." */ + 0x00,0x5e,0xba,0x00,0x00,0x00,0x00,0x00, /* 00000028 ".^......" */ + 0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00, /* 00000030 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00, /* 00000038 "..... .." */ 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00, /* 00000040 "...... ." */ - 0x44,0x44,0xCD,0xAB,0x01,0x00,0x00,0x00, /* 00000048 "DD......" */ - 0x00,0x00,0x00,0x00,0x00,0x21,0x43,0xA5, /* 00000050 ".....!C." */ - 0x00,0x00,0x00,0x00,0x45,0x23,0xB1,0x00, /* 00000058 "....E#.." */ + 0x01,0x5e,0xba,0x00,0x00,0x00,0x00,0x00, /* 00000048 ".^......" */ + 0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00, /* 00000050 "..... .." */ + 0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00, /* 00000058 "..... .." */ 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00, /* 00000060 "...... ." */ - 0x55,0x55,0xCD,0xAB,0x01,0x00,0x00,0x00, /* 00000068 "UU......" */ - 0x00,0x00,0x00,0x00,0x00,0x21,0x43,0xB5, /* 00000070 ".....!C." */ - 0x00,0x00,0x00,0x00,0x45,0x23,0xB1,0x00, /* 00000078 "....E#.." */ - 0x00,0x00,0x00,0x00 /* 00000080 "...." */ + 0x02,0x5e,0xba,0x00,0x00,0x00,0x00,0x00, /* 00000068 ".^......" */ + 0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00, /* 00000070 ".....0.." */ + 0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00, /* 00000078 "..... .." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00, /* 00000080 "...... ." */ + 0x03,0x5e,0xba,0x00,0x00,0x00,0x00,0x00, /* 00000088 ".^......" */ + 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00, /* 00000090 ".....@.." */ + 0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00, /* 00000098 "..... .." */ + 0x00,0x00,0x00,0x00,0x01,0x00,0x28,0x00, /* 000000a0 "......(." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000a8 "........" */ + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000b0 "........" */ + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000b8 "........" */ + 0x03,0x00,0x00,0x00,0x06,0x00,0x01,0x00, /* 000000c0 "........" */ + 0x00,0x5e,0xba,0x00,0x01,0x00,0x28,0x00, /* 000000c8 ".^....(." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000d0 "........" */ + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000d8 "........" */ + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000e0 "........" */ + 0x03,0x00,0x00,0x00,0x06,0x00,0x01,0x00, /* 000000e8 "........" */ + 0x01,0x5e,0xba,0x00,0x01,0x00,0x28,0x00, /* 000000f0 ".^....(." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000f8 "........" */ + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000100 "........" */ + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000108 "........" */ + 0x03,0x00,0x00,0x00,0x06,0x00,0x01,0x00, /* 00000110 "........" */ + 0x02,0x5e,0xba,0x00,0x01,0x00,0x28,0x00, /* 00000118 ".^....(." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000120 "........" */ + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000128 "........" */ + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000130 "........" */ + 0x03,0x00,0x00,0x00,0x06,0x00,0x01,0x00, /* 00000138 "........" */ + 0x03,0x5e,0xba,0x00,0x01,0x00,0x2c,0x00, /* 00000140 ".^....,." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000148 "........" */ + 0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000150 "........" */ + 0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000158 "........" */ + 0x03,0x00,0x00,0x00,0x06,0x00,0x01,0x00, /* 00000160 "........" */ + 0x00,0x5e,0xba,0x00,0x01,0x5e,0xba,0x00, /* 00000160 ".^...^.." */ + 0x01,0x00,0x2c,0x00,0x00,0x00,0x00,0x00, /* 00000170 "..,....." */ + 0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00, /* 00000178 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, /* 00000180 "........" */ + 0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00, /* 00000188 "........" */ + 0x0a,0x00,0x01,0x00,0x02,0x5e,0xba,0x00, /* 00000190 ".....^.." */ + 0x03,0x5e,0xba,0x00 /* 00000198 ".^.." */ }; const unsigned char TemplateCpep[] = @@ -426,11 +494,11 @@ const unsigned char TemplateDbgp[] = const unsigned char TemplateDmar[] = { - 0x44,0x4D,0x41,0x52,0x8C,0x00,0x00,0x00, /* 00000000 "DMAR...." */ - 0x01,0x03,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ + 0x44,0x4D,0x41,0x52,0x9C,0x00,0x00,0x00, /* 00000000 "DMAR...." */ + 0x01,0xB8,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */ 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ - 0x17,0x05,0x13,0x20,0x2F,0x01,0x00,0x00, /* 00000020 "... /..." */ + 0x17,0x12,0x21,0x20,0x2F,0x01,0x00,0x00, /* 00000020 "..! /..." */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000028 "........" */ 0x00,0x00,0x18,0x00,0x01,0x00,0x00,0x00, /* 00000030 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */ @@ -443,7 +511,9 @@ const unsigned char TemplateDmar[] = 0x02,0x08,0x00,0x00,0x00,0x00,0x00,0x03, /* 00000070 "........" */ 0x03,0x00,0x14,0x00,0x00,0x00,0x00,0x00, /* 00000078 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000080 "........" */ - 0x00,0x00,0x00,0x00 /* 00000088 "...." */ + 0x00,0x00,0x00,0x00,0x05,0x00,0x10,0x00, /* 00000088 "........" */ + 0x00,0x00,0x00,0x00,0x01,0x08,0x00,0x00, /* 00000090 "........" */ + 0x00,0x00,0x00,0x02 /* 00000098 "...." */ }; const unsigned char TemplateDrtm[] = @@ -823,10 +893,10 @@ const unsigned char TemplateHpet[] = const unsigned char TemplateIort[] = { 0x49,0x4F,0x52,0x54,0x3C,0x02,0x00,0x00, /* 00000000 "IORT<..." */ - 0x03,0xF1,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ + 0x05,0xCB,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ 0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ - 0x05,0x01,0x21,0x20,0x07,0x00,0x00,0x00, /* 00000020 "..! ...." */ + 0x17,0x12,0x21,0x20,0x07,0x00,0x00,0x00, /* 00000020 "..! ...." */ 0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000028 "4......." */ 0x49,0x4F,0x52,0x54,0x00,0x18,0x00,0x01, /* 00000030 "IORT...." */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */ @@ -838,7 +908,7 @@ const unsigned char TemplateIort[] = 0x00,0x5C,0x5F,0x53,0x42,0x2E,0x50,0x43, /* 00000068 ".\_SB.PC" */ 0x49,0x30,0x2E,0x44,0x45,0x56,0x30,0x00, /* 00000070 "I0.DEV0." */ 0x49,0x4F,0x52,0x54,0x3C,0x02,0x00,0x00, /* 00000078 "IORT<..." */ - 0x03,0xF2,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000080 "..INTEL " */ + 0x03,0xF1,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000080 "..INTEL " */ 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000088 "Template" */ 0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000090 "....INTL" */ 0x05,0x01,0x21,0x20,0x07,0x00,0x00,0x00, /* 00000098 "..! ...." */ @@ -847,7 +917,7 @@ const unsigned char TemplateIort[] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B0 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B8 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000C0 "........" */ - 0x00,0x00,0x00,0x00,0x02,0x38,0x00,0x03, /* 000000C8 ".....8.." */ + 0x00,0x00,0x00,0x00,0x02,0x38,0x00,0x04, /* 000000C8 ".....8.." */ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000000D0 "........" */ 0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000D8 "$......." */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000E0 "........" */ @@ -885,7 +955,7 @@ const unsigned char TemplateIort[] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001E0 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001E8 "........" */ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000001F0 "........" */ - 0x06,0x44,0x00,0x01,0x00,0x00,0x00,0x00, /* 000001F8 ".D......" */ + 0x06,0x44,0x00,0x03,0x00,0x00,0x00,0x00, /* 000001F8 ".D......" */ 0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00, /* 00000200 "....0..." */ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000208 "........" */ 0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000210 "........" */ @@ -893,7 +963,7 @@ const unsigned char TemplateIort[] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000220 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000228 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000230 "........" */ - 0x01,0x00,0x00,0x00 /* 00000238 "...." */ + 0x00,0x00,0x00,0x00 /* 00000238 "...." */ }; const unsigned char TemplateIvrs[] = @@ -1185,6 +1255,78 @@ const unsigned char TemplateNfit[] = 0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* 00000180 "........" */ }; +const unsigned char TemplateNhlt[] = +{ + 0x4E,0x48,0x4C,0x54,0x1E,0x02,0x00,0x00, /* 00000000 "NHLT...." */ + 0x01,0xF7,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ + 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */ + 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x30,0x09,0x21,0x20,0x04,0xAD,0x00,0x00, /* 00000020 "0.! ...." */ + 0x00,0x02,0x06,0x07,0x00,0x30,0xAE,0x09, /* 00000028 ".....0.." */ + 0x00,0x0A,0x00,0x00,0x00,0x02,0x03,0x0D, /* 00000030 "........" */ + 0x38,0x00,0x00,0x00,0xCC,0x01,0x1F,0x02, /* 00000038 "8......." */ + 0x04,0x00,0x13,0x00,0x09,0x00,0x11,0x00, /* 00000040 "........" */ + 0x04,0x20,0x07,0x00,0x09,0x00,0x18,0x00, /* 00000048 ". ......" */ + 0x22,0x00,0x11,0x00,0x15,0x00,0x05,0x03, /* 00000050 ""......." */ + 0x13,0x00,0x09,0x00,0x11,0x00,0x04,0x20, /* 00000058 "....... " */ + 0x07,0x00,0x09,0x00,0x18,0x00,0x22,0x00, /* 00000060 "......"." */ + 0x11,0x00,0x15,0x00,0xAA,0xAA,0x99,0x99, /* 00000068 "........" */ + 0x78,0x56,0x34,0x12,0x02,0xFE,0xFF,0x78, /* 00000070 "xV4....x" */ + 0x56,0x44,0x33,0x00,0x00,0x66,0x55,0x00, /* 00000078 "VD3..fU." */ + 0x00,0x00,0x80,0x16,0x00,0x32,0x00,0x04, /* 00000080 ".....2.." */ + 0x00,0x99,0x99,0x88,0x88,0x6E,0x88,0x9F, /* 00000088 ".....n.." */ + 0xA6,0xEB,0x6C,0x94,0x45,0xA4,0x1F,0x7B, /* 00000090 "..l.E..{" */ + 0x5D,0xCE,0x24,0xC5,0x53,0x02,0x00,0x00, /* 00000098 "].$.S..." */ + 0x00,0x30,0x40,0xFE,0xFF,0x78,0x56,0x44, /* 000000A0 ".0@..xVD" */ + 0x33,0x00,0x00,0x66,0x55,0x00,0x00,0x00, /* 000000A8 "3..fU..." */ + 0x80,0x16,0x00,0x32,0x00,0x04,0x00,0x99, /* 000000B0 "...2...." */ + 0x99,0x88,0x88,0x6E,0x88,0x9F,0xA6,0xEB, /* 000000B8 "...n...." */ + 0x6C,0x94,0x45,0xA4,0x1F,0x7B,0x5D,0xCE, /* 000000C0 "l.E..{]." */ + 0x24,0xC5,0x53,0x03,0x00,0x00,0x00,0x50, /* 000000C8 "$.S....P" */ + 0x60,0x70,0x48,0x00,0x00,0x00,0x05,0x06, /* 000000D0 "`pH....." */ + 0x07,0x00,0x34,0xAE,0x09,0x00,0x0A,0x00, /* 000000D8 "..4....." */ + 0x00,0x00,0x02,0x00,0x0D,0x02,0x00,0x00, /* 000000E0 "........" */ + 0x00,0xCC,0x00,0x01,0xFE,0xFF,0x78,0x56, /* 000000E8 "......xV" */ + 0x44,0x33,0x00,0x00,0x66,0x55,0x00,0x00, /* 000000F0 "D3..fU.." */ + 0x00,0x80,0x16,0x00,0x32,0x00,0x04,0x00, /* 000000F8 "....2..." */ + 0x99,0x99,0x88,0x88,0x6E,0x88,0x9F,0xA6, /* 00000100 "....n..." */ + 0xEB,0x6C,0x94,0x45,0xA4,0x1F,0x7B,0x5D, /* 00000108 ".l.E..{]" */ + 0xCE,0x24,0xC5,0x53,0x02,0x00,0x00,0x00, /* 00000110 ".$.S...." */ + 0x70,0x80,0x80,0x00,0x00,0x00,0x02,0x06, /* 00000118 "p......." */ + 0x07,0x00,0x30,0xAE,0x09,0x00,0x0A,0x00, /* 00000120 "..0....." */ + 0x00,0x00,0x02,0x03,0x0D,0x07,0x00,0x00, /* 00000128 "........" */ + 0x00,0xCC,0x03,0x09,0x34,0x12,0x28,0x01, /* 00000130 "....4.(." */ + 0x02,0xFE,0xFF,0x78,0x56,0x44,0x33,0x00, /* 00000138 "...xVD3." */ + 0x00,0x66,0x55,0x00,0x00,0x00,0x80,0x16, /* 00000140 ".fU....." */ + 0x00,0x32,0x00,0x04,0x00,0x99,0x99,0x88, /* 00000148 ".2......" */ + 0x88,0x6E,0x88,0x9F,0xA6,0xEB,0x6C,0x94, /* 00000150 ".n....l." */ + 0x45,0xA4,0x1F,0x7B,0x5D,0xCE,0x24,0xC5, /* 00000158 "E..{].$." */ + 0x53,0x04,0x00,0x00,0x00,0x70,0x80,0x90, /* 00000160 "S....p.." */ + 0xA0,0xFE,0xFF,0x78,0x56,0x44,0x33,0x00, /* 00000168 "...xVD3." */ + 0x00,0x66,0x55,0x00,0x00,0x00,0x80,0x16, /* 00000170 ".fU....." */ + 0x00,0x32,0x00,0x04,0x00,0x99,0x99,0x88, /* 00000178 ".2......" */ + 0x88,0x6E,0x88,0x9F,0xA6,0xEB,0x6C,0x94, /* 00000180 ".n....l." */ + 0x45,0xA4,0x1F,0x7B,0x5D,0xCE,0x24,0xC5, /* 00000188 "E..{].$." */ + 0x53,0x05,0x00,0x00,0x00,0x70,0x80,0x90, /* 00000190 "S....p.." */ + 0xA0,0xB0,0x7C,0x00,0x00,0x00,0x05,0x06, /* 00000198 "..|....." */ + 0x07,0x00,0x34,0xAE,0x09,0x00,0x0A,0x00, /* 000001A0 "..4....." */ + 0x00,0x00,0x02,0x00,0x0D,0x02,0x00,0x00, /* 000001A8 "........" */ + 0x00,0xCC,0x00,0x01,0xFE,0xFF,0x78,0x56, /* 000001B0 "......xV" */ + 0x44,0x33,0x00,0x00,0x66,0x55,0x00,0x00, /* 000001B8 "D3..fU.." */ + 0x00,0x80,0x16,0x00,0x32,0x00,0x04,0x00, /* 000001C0 "....2..." */ + 0x99,0x99,0x88,0x88,0x6E,0x88,0x9F,0xA6, /* 000001C8 "....n..." */ + 0xEB,0x6C,0x94,0x45,0xA4,0x1F,0x7B,0x5D, /* 000001D0 ".l.E..{]" */ + 0xCE,0x24,0xC5,0x53,0x11,0x00,0x00,0x00, /* 000001D8 ".$.S...." */ + 0x00,0x01,0x32,0x03,0x04,0x05,0x06,0x37, /* 000001E0 "..2....7" */ + 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x3F, /* 000001E8 ".......?" */ + 0x0A,0x01,0x00,0x01,0x32,0x03,0x04,0x05, /* 000001F0 "....2..." */ + 0x06,0x37,0x08,0x09,0x0A,0x0B,0x0C,0x0D, /* 000001F8 ".7......" */ + 0x0E,0x3F,0x44,0x9A,0x00,0x01,0x32,0x03, /* 00000200 ".?D...2." */ + 0x04,0x05,0x06,0x37,0x08,0x09,0x0A,0x0B, /* 00000208 "...7...." */ + 0x0C,0x0D,0x0E,0x3F,0x0A,0x0B,0x04,0x00, /* 00000210 "...?...." */ + 0x00,0x00,0xEF,0xBE,0xAD,0xDE /* 00000218 "......" */ +}; + const unsigned char TemplatePcct[] = { 0x50,0x43,0x43,0x54,0xAE,0x02,0x00,0x00, /* 00000000 "PCCT...." */ @@ -1756,6 +1898,17 @@ const unsigned char TemplateTcpa[] = 0x01,0x01,0x01,0x01 /* 00000060 "...." */ }; +const unsigned char TemplateTdel[] = +{ + 0x54,0x44,0x45,0x4C,0x38,0x00,0x00,0x00, /* 00000000 "TDEL8..." */ + 0x04,0x1C,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ + 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ + 0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x30,0x09,0x21,0x20,0x00,0x00,0x00,0x00, /* 00000020 "0.! ...." */ + 0xEF,0xCD,0xAB,0x78,0x56,0x34,0x12,0x00, /* 00000028 "...xV4.." */ + 0x78,0x56,0x34,0x12,0xEF,0xCD,0xAB,0x00 /* 00000030 "xV4....." */ +}; + const unsigned char TemplateTpm2[] = { 0x54,0x50,0x4D,0x32,0x4C,0x00,0x00,0x00, /* 00000000 "TPM2L..." */ diff --git a/source/compiler/dtutils.c b/source/compiler/dtutils.c index 52180fb3fd10..e950763e7d1c 100644 --- a/source/compiler/dtutils.c +++ b/source/compiler/dtutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -411,6 +411,7 @@ DtGetFieldType ( case ACPI_DMT_FLAGS0: case ACPI_DMT_FLAGS1: case ACPI_DMT_FLAGS2: + case ACPI_DMT_FLAGS8_2: case ACPI_DMT_FLAGS4: case ACPI_DMT_FLAGS4_0: case ACPI_DMT_FLAGS4_4: @@ -437,6 +438,7 @@ DtGetFieldType ( case ACPI_DMT_BUF10: case ACPI_DMT_BUF12: case ACPI_DMT_BUF16: + case ACPI_DMT_BUF18: case ACPI_DMT_BUF128: case ACPI_DMT_PCI_PATH: case ACPI_DMT_PMTT_VENDOR: @@ -560,6 +562,7 @@ DtGetFieldLength ( case ACPI_DMT_FLAGS0: case ACPI_DMT_FLAGS1: case ACPI_DMT_FLAGS2: + case ACPI_DMT_FLAGS8_2: case ACPI_DMT_FLAGS4: case ACPI_DMT_FLAGS4_0: case ACPI_DMT_FLAGS4_4: @@ -583,6 +586,10 @@ DtGetFieldLength ( case ACPI_DMT_MADT: case ACPI_DMT_NHLT1: case ACPI_DMT_NHLT1a: + case ACPI_DMT_NHLT1b: + case ACPI_DMT_NHLT1c: + case ACPI_DMT_NHLT1d: + case ACPI_DMT_NHLT1f: case ACPI_DMT_PCCT: case ACPI_DMT_PMTT: case ACPI_DMT_PPTT: @@ -611,6 +618,7 @@ DtGetFieldLength ( case ACPI_DMT_HEST: case ACPI_DMT_HMAT: case ACPI_DMT_NFIT: + case ACPI_DMT_NHLT1e: case ACPI_DMT_PCI_PATH: case ACPI_DMT_PHAT: @@ -737,6 +745,11 @@ DtGetFieldLength ( ByteLength = 16; break; + case ACPI_DMT_BUF18: + + ByteLength = 18; + break; + case ACPI_DMT_BUF128: ByteLength = 128; diff --git a/source/compiler/preprocess.h b/source/compiler/preprocess.h index f4c8c30966a2..9c25dd132a74 100644 --- a/source/compiler/preprocess.h +++ b/source/compiler/preprocess.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prexpress.c b/source/compiler/prexpress.c index db2e76ec87f9..8ac1fd88767e 100644 --- a/source/compiler/prexpress.c +++ b/source/compiler/prexpress.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prmacros.c b/source/compiler/prmacros.c index ab1255f665eb..5b3669784204 100644 --- a/source/compiler/prmacros.c +++ b/source/compiler/prmacros.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prparser.l b/source/compiler/prparser.l index febcc3192541..828d81b263f2 100644 --- a/source/compiler/prparser.l +++ b/source/compiler/prparser.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prparser.y b/source/compiler/prparser.y index f7e052d910ee..3854d989126f 100644 --- a/source/compiler/prparser.y +++ b/source/compiler/prparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prscan.c b/source/compiler/prscan.c index 7672ef895ef2..0d9af86ea475 100644 --- a/source/compiler/prscan.c +++ b/source/compiler/prscan.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prutils.c b/source/compiler/prutils.c index e793b4c470e7..eea42f890b00 100644 --- a/source/compiler/prutils.c +++ b/source/compiler/prutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbcmds.c b/source/components/debugger/dbcmds.c index 1b10f161ac0b..6f55147633b5 100644 --- a/source/components/debugger/dbcmds.c +++ b/source/components/debugger/dbcmds.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbconvert.c b/source/components/debugger/dbconvert.c index 55307d0871d9..9d1e1dddc9c6 100644 --- a/source/components/debugger/dbconvert.c +++ b/source/components/debugger/dbconvert.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbdisply.c b/source/components/debugger/dbdisply.c index b434cdc6b834..276217f58ef3 100644 --- a/source/components/debugger/dbdisply.c +++ b/source/components/debugger/dbdisply.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbexec.c b/source/components/debugger/dbexec.c index 26cc73f98e32..eed0aa35cd4c 100644 --- a/source/components/debugger/dbexec.c +++ b/source/components/debugger/dbexec.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbfileio.c b/source/components/debugger/dbfileio.c index 70b9650ac9ba..09f8f2271d39 100644 --- a/source/components/debugger/dbfileio.c +++ b/source/components/debugger/dbfileio.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbhistry.c b/source/components/debugger/dbhistry.c index d5ae07f9edac..31bfc3c56a37 100644 --- a/source/components/debugger/dbhistry.c +++ b/source/components/debugger/dbhistry.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbinput.c b/source/components/debugger/dbinput.c index d0b77e7729a2..0f21b731c67b 100644 --- a/source/components/debugger/dbinput.c +++ b/source/components/debugger/dbinput.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbmethod.c b/source/components/debugger/dbmethod.c index 4e9a8b53c924..82202e8e2cbe 100644 --- a/source/components/debugger/dbmethod.c +++ b/source/components/debugger/dbmethod.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbnames.c b/source/components/debugger/dbnames.c index b7b45ecf37f1..963f81251e8d 100644 --- a/source/components/debugger/dbnames.c +++ b/source/components/debugger/dbnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbobject.c b/source/components/debugger/dbobject.c index 5b98319a505a..b8bade432f62 100644 --- a/source/components/debugger/dbobject.c +++ b/source/components/debugger/dbobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbstats.c b/source/components/debugger/dbstats.c index 7cca32f76f0f..30a686dc6d42 100644 --- a/source/components/debugger/dbstats.c +++ b/source/components/debugger/dbstats.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbtest.c b/source/components/debugger/dbtest.c index cb9c721419e6..23690ed67bc7 100644 --- a/source/components/debugger/dbtest.c +++ b/source/components/debugger/dbtest.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbutils.c b/source/components/debugger/dbutils.c index 338d1fc28b5a..ef649b2c12d1 100644 --- a/source/components/debugger/dbutils.c +++ b/source/components/debugger/dbutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbxface.c b/source/components/debugger/dbxface.c index 472e30df0285..c44e1d0d5e49 100644 --- a/source/components/debugger/dbxface.c +++ b/source/components/debugger/dbxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmbuffer.c b/source/components/disassembler/dmbuffer.c index 208fb84f84ae..d5d813c83bc8 100644 --- a/source/components/disassembler/dmbuffer.c +++ b/source/components/disassembler/dmbuffer.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmcstyle.c b/source/components/disassembler/dmcstyle.c index 991b87141435..f0bef68ef982 100644 --- a/source/components/disassembler/dmcstyle.c +++ b/source/components/disassembler/dmcstyle.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmdeferred.c b/source/components/disassembler/dmdeferred.c index 23e1c58fa3d9..82ce2bec3bf8 100644 --- a/source/components/disassembler/dmdeferred.c +++ b/source/components/disassembler/dmdeferred.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmnames.c b/source/components/disassembler/dmnames.c index 85da99645186..8852921f9478 100644 --- a/source/components/disassembler/dmnames.c +++ b/source/components/disassembler/dmnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmopcode.c b/source/components/disassembler/dmopcode.c index 80cf72f904d4..1cfe710d7c05 100644 --- a/source/components/disassembler/dmopcode.c +++ b/source/components/disassembler/dmopcode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmresrc.c b/source/components/disassembler/dmresrc.c index 12cf5e6bcb01..0a183e9c5b87 100644 --- a/source/components/disassembler/dmresrc.c +++ b/source/components/disassembler/dmresrc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmresrcl.c b/source/components/disassembler/dmresrcl.c index b30316b8b603..9aa6ac1fbe5f 100644 --- a/source/components/disassembler/dmresrcl.c +++ b/source/components/disassembler/dmresrcl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmresrcl2.c b/source/components/disassembler/dmresrcl2.c index ae15e3d8aa7f..59d00f6c3967 100644 --- a/source/components/disassembler/dmresrcl2.c +++ b/source/components/disassembler/dmresrcl2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmresrcs.c b/source/components/disassembler/dmresrcs.c index f323329f4dd9..db5ce5db984f 100644 --- a/source/components/disassembler/dmresrcs.c +++ b/source/components/disassembler/dmresrcs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmutils.c b/source/components/disassembler/dmutils.c index 1c1e400e32c8..2a7b7b330e55 100644 --- a/source/components/disassembler/dmutils.c +++ b/source/components/disassembler/dmutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmwalk.c b/source/components/disassembler/dmwalk.c index 75d75eab3d75..7d2429b721e6 100644 --- a/source/components/disassembler/dmwalk.c +++ b/source/components/disassembler/dmwalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -959,7 +959,15 @@ AcpiDmDescendingOp ( NextOp->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE; ASL_CV_CLOSE_PAREN (Op, Level); - /* Emit description comment for Name() with a predefined ACPI name */ + if (Op->Asl.Parent->Common.AmlOpcode == AML_NAME_OP) + { + /* + * Emit description comment showing the full ACPI name + * of the ResourceTemplate only if it was defined using a + * Name statement. + */ + AcpiDmPredefinedDescription (Op->Asl.Parent); + } AcpiDmPredefinedDescription (Op->Asl.Parent); diff --git a/source/components/dispatcher/dsargs.c b/source/components/dispatcher/dsargs.c index 4a24160c596a..52246693997d 100644 --- a/source/components/dispatcher/dsargs.c +++ b/source/components/dispatcher/dsargs.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dscontrol.c b/source/components/dispatcher/dscontrol.c index 8b860a553fe2..1d7d676c2c30 100644 --- a/source/components/dispatcher/dscontrol.c +++ b/source/components/dispatcher/dscontrol.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsdebug.c b/source/components/dispatcher/dsdebug.c index 26504c5a9cf5..9111a215696e 100644 --- a/source/components/dispatcher/dsdebug.c +++ b/source/components/dispatcher/dsdebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsfield.c b/source/components/dispatcher/dsfield.c index bd2755aec29b..2d3851ff9d7d 100644 --- a/source/components/dispatcher/dsfield.c +++ b/source/components/dispatcher/dsfield.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsinit.c b/source/components/dispatcher/dsinit.c index 82857cb68ecb..5f941f0c94cc 100644 --- a/source/components/dispatcher/dsinit.c +++ b/source/components/dispatcher/dsinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsmethod.c b/source/components/dispatcher/dsmethod.c index fd56bd509ef7..d5fc3038f643 100644 --- a/source/components/dispatcher/dsmethod.c +++ b/source/components/dispatcher/dsmethod.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsmthdat.c b/source/components/dispatcher/dsmthdat.c index ab0a9d118fc0..af156790166d 100644 --- a/source/components/dispatcher/dsmthdat.c +++ b/source/components/dispatcher/dsmthdat.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsobject.c b/source/components/dispatcher/dsobject.c index 20dd20c11a12..5ffd198ba0bd 100644 --- a/source/components/dispatcher/dsobject.c +++ b/source/components/dispatcher/dsobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsopcode.c b/source/components/dispatcher/dsopcode.c index 153cd89adfd1..190be1b3f7d1 100644 --- a/source/components/dispatcher/dsopcode.c +++ b/source/components/dispatcher/dsopcode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -707,6 +707,7 @@ AcpiDsEvalTableRegionOperands ( ObjDesc->Region.Address = ACPI_PTR_TO_PHYSADDR (Table); ObjDesc->Region.Length = Table->Length; + ObjDesc->Region.Pointer = Table; ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "RgnObj %p Addr %8.8X%8.8X Len %X\n", ObjDesc, ACPI_FORMAT_UINT64 (ObjDesc->Region.Address), diff --git a/source/components/dispatcher/dspkginit.c b/source/components/dispatcher/dspkginit.c index 06c0341458f1..bd2bf2e32a63 100644 --- a/source/components/dispatcher/dspkginit.c +++ b/source/components/dispatcher/dspkginit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsutils.c b/source/components/dispatcher/dsutils.c index 0bb4fb2d330d..b159b34c3fa4 100644 --- a/source/components/dispatcher/dsutils.c +++ b/source/components/dispatcher/dsutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswexec.c b/source/components/dispatcher/dswexec.c index 636067bfe75e..686f03c8cc59 100644 --- a/source/components/dispatcher/dswexec.c +++ b/source/components/dispatcher/dswexec.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -173,7 +173,7 @@ static ACPI_EXECUTE_OP AcpiGbl_OpTypeDispatch [] = AcpiExOpcode_0A_0T_1R, AcpiExOpcode_1A_0T_0R, AcpiExOpcode_1A_0T_1R, - AcpiExOpcode_1A_1T_0R, + NULL, /* Was: AcpiExOpcode_1A_0T_0R (Was for Load operator) */ AcpiExOpcode_1A_1T_1R, AcpiExOpcode_2A_0T_0R, AcpiExOpcode_2A_0T_1R, diff --git a/source/components/dispatcher/dswload.c b/source/components/dispatcher/dswload.c index a9b22dd15acc..4fdf955a5a61 100644 --- a/source/components/dispatcher/dswload.c +++ b/source/components/dispatcher/dswload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswload2.c b/source/components/dispatcher/dswload2.c index 0311d0d991f8..496ee91fbc06 100644 --- a/source/components/dispatcher/dswload2.c +++ b/source/components/dispatcher/dswload2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswscope.c b/source/components/dispatcher/dswscope.c index bc360b66ec6e..dad0c4974a48 100644 --- a/source/components/dispatcher/dswscope.c +++ b/source/components/dispatcher/dswscope.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswstate.c b/source/components/dispatcher/dswstate.c index 9f79601fa1ae..68b7f3d10378 100644 --- a/source/components/dispatcher/dswstate.c +++ b/source/components/dispatcher/dswstate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evevent.c b/source/components/events/evevent.c index b935960835f6..8b08338a21b7 100644 --- a/source/components/events/evevent.c +++ b/source/components/events/evevent.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evglock.c b/source/components/events/evglock.c index 1eb740d94fb3..79b519a0f75d 100644 --- a/source/components/events/evglock.c +++ b/source/components/events/evglock.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpe.c b/source/components/events/evgpe.c index 45c506ab7560..b246567d34c5 100644 --- a/source/components/events/evgpe.c +++ b/source/components/events/evgpe.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpeblk.c b/source/components/events/evgpeblk.c index 03bb0b053f9f..4dac205ee1c4 100644 --- a/source/components/events/evgpeblk.c +++ b/source/components/events/evgpeblk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpeinit.c b/source/components/events/evgpeinit.c index 7a41fae0e969..6f0472cf1963 100644 --- a/source/components/events/evgpeinit.c +++ b/source/components/events/evgpeinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpeutil.c b/source/components/events/evgpeutil.c index 679ca6986291..1f66717df278 100644 --- a/source/components/events/evgpeutil.c +++ b/source/components/events/evgpeutil.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evhandler.c b/source/components/events/evhandler.c index 39171014ee54..e0859c30a599 100644 --- a/source/components/events/evhandler.c +++ b/source/components/events/evhandler.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -563,7 +563,7 @@ AcpiEvInstallSpaceHandler ( case ACPI_ADR_SPACE_DATA_TABLE: Handler = AcpiExDataTableSpaceHandler; - Setup = NULL; + Setup = AcpiEvDataTableRegionSetup; break; default: diff --git a/source/components/events/evmisc.c b/source/components/events/evmisc.c index 5052a1fdce65..b6c6eb6ad33e 100644 --- a/source/components/events/evmisc.c +++ b/source/components/events/evmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evregion.c b/source/components/events/evregion.c index 2624cd65d38a..6cf77791f105 100644 --- a/source/components/events/evregion.c +++ b/source/components/events/evregion.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -320,6 +320,15 @@ AcpiEvAddressSpaceDispatch ( return_ACPI_STATUS (AE_NOT_EXIST); } + if (RegionObj->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_COMM) + { + ACPI_PCC_INFO *Ctx = HandlerDesc->AddressSpace.Context; + + Ctx->InternalBuffer = FieldObj->Field.InternalPccBuffer; + Ctx->Length = (UINT16) RegionObj->Region.Length; + Ctx->SubspaceId = (UINT8) RegionObj->Region.Address; + } + /* * We must exit the interpreter because the region setup will * potentially execute control methods (for example, the _REG method diff --git a/source/components/events/evrgnini.c b/source/components/events/evrgnini.c index 9327d8f7ff81..7cbbe30c069b 100644 --- a/source/components/events/evrgnini.c +++ b/source/components/events/evrgnini.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -599,6 +599,64 @@ AcpiEvCmosRegionSetup ( } +/******************************************************************************* + * + * FUNCTION: AcpiEvDataTableRegionSetup + * + * PARAMETERS: Handle - Region we are interested in + * Function - Start or stop + * HandlerContext - Address space handler context + * RegionContext - Region specific context + * + * RETURN: Status + * + * DESCRIPTION: Setup a DataTableRegion + * + * MUTEX: Assumes namespace is not locked + * + ******************************************************************************/ + +ACPI_STATUS +AcpiEvDataTableRegionSetup ( + ACPI_HANDLE Handle, + UINT32 Function, + void *HandlerContext, + void **RegionContext) +{ + ACPI_OPERAND_OBJECT *RegionDesc = (ACPI_OPERAND_OBJECT *) Handle; + ACPI_DATA_TABLE_MAPPING *LocalRegionContext; + + + ACPI_FUNCTION_TRACE (EvDataTableRegionSetup); + + + if (Function == ACPI_REGION_DEACTIVATE) + { + if (*RegionContext) + { + ACPI_FREE (*RegionContext); + *RegionContext = NULL; + } + return_ACPI_STATUS (AE_OK); + } + + /* Create a new context */ + + LocalRegionContext = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_DATA_TABLE_MAPPING)); + if (!(LocalRegionContext)) + { + return_ACPI_STATUS (AE_NO_MEMORY); + } + + /* Save the data table pointer for use in the handler */ + + LocalRegionContext->Pointer = RegionDesc->Region.Pointer; + + *RegionContext = LocalRegionContext; + return_ACPI_STATUS (AE_OK); +} + + /******************************************************************************* * * FUNCTION: AcpiEvDefaultRegionSetup diff --git a/source/components/events/evsci.c b/source/components/events/evsci.c index 47ac23f81608..26891925293c 100644 --- a/source/components/events/evsci.c +++ b/source/components/events/evsci.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxface.c b/source/components/events/evxface.c index 01d5f00fbe72..245ca8a41fb5 100644 --- a/source/components/events/evxface.c +++ b/source/components/events/evxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxfevnt.c b/source/components/events/evxfevnt.c index a34547117092..3384e0982e82 100644 --- a/source/components/events/evxfevnt.c +++ b/source/components/events/evxfevnt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxfgpe.c b/source/components/events/evxfgpe.c index 1fe27e759322..87dab0f8119f 100644 --- a/source/components/events/evxfgpe.c +++ b/source/components/events/evxfgpe.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxfregn.c b/source/components/events/evxfregn.c index 3febc81c216c..ee44e10d5784 100644 --- a/source/components/events/evxfregn.c +++ b/source/components/events/evxfregn.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exconcat.c b/source/components/executer/exconcat.c index bd7374e88769..335d78f19671 100644 --- a/source/components/executer/exconcat.c +++ b/source/components/executer/exconcat.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exconfig.c b/source/components/executer/exconfig.c index 301e883072e6..a87316ba866a 100644 --- a/source/components/executer/exconfig.c +++ b/source/components/executer/exconfig.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -244,6 +244,7 @@ AcpiExLoadTableOp ( ACPI_NAMESPACE_NODE *ParentNode; ACPI_NAMESPACE_NODE *StartNode; ACPI_NAMESPACE_NODE *ParameterNode = NULL; + ACPI_OPERAND_OBJECT *ReturnObj; ACPI_OPERAND_OBJECT *DdbHandle; UINT32 TableIndex; @@ -251,6 +252,16 @@ AcpiExLoadTableOp ( ACPI_FUNCTION_TRACE (ExLoadTableOp); + /* Create the return object */ + + ReturnObj = AcpiUtCreateIntegerObject ((UINT64) 0); + if (!ReturnObj) + { + return_ACPI_STATUS (AE_NO_MEMORY); + } + + *ReturnDesc = ReturnObj; + /* Find the ACPI table in the RSDT/XSDT */ AcpiExExitInterpreter (); @@ -268,13 +279,6 @@ AcpiExLoadTableOp ( /* Table not found, return an Integer=0 and AE_OK */ - DdbHandle = AcpiUtCreateIntegerObject ((UINT64) 0); - if (!DdbHandle) - { - return_ACPI_STATUS (AE_NO_MEMORY); - } - - *ReturnDesc = DdbHandle; return_ACPI_STATUS (AE_OK); } @@ -365,7 +369,13 @@ AcpiExLoadTableOp ( } } - *ReturnDesc = DdbHandle; + /* Remove the reference to DdbHandle created by AcpiExAddTable above */ + + AcpiUtRemoveReference (DdbHandle); + + /* Return -1 (non-zero) indicates success */ + + ReturnObj->Integer.Value = 0xFFFFFFFFFFFFFFFF; return_ACPI_STATUS (Status); } @@ -423,7 +433,7 @@ AcpiExRegionRead ( * * PARAMETERS: ObjDesc - Region or Buffer/Field where the table will be * obtained - * Target - Where a handle to the table will be stored + * Target - Where the status of the load will be stored * WalkState - Current state * * RETURN: Status @@ -455,6 +465,18 @@ AcpiExLoadOp ( ACPI_FUNCTION_TRACE (ExLoadOp); + if (Target->Common.DescriptorType == ACPI_DESC_TYPE_NAMED) + { + Target = AcpiNsGetAttachedObject (ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Target)); + } + if (Target->Common.Type != ACPI_TYPE_INTEGER) + { + fprintf (stderr, "Type not integer: %X\n", Target->Common.Type); + return_ACPI_STATUS (AE_AML_OPERAND_TYPE); + } + + Target->Integer.Value = 0; + /* Source Object can be either an OpRegion or a Buffer/Field */ switch (ObjDesc->Common.Type) @@ -596,7 +618,7 @@ AcpiExLoadOp ( ACPI_INFO (("Dynamic OEM Table Load:")); AcpiExExitInterpreter (); Status = AcpiTbInstallAndLoadTable (ACPI_PTR_TO_PHYSADDR (Table), - ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL, TRUE, &TableIndex); + ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL, Table, TRUE, &TableIndex); AcpiExEnterInterpreter (); if (ACPI_FAILURE (Status)) { @@ -616,8 +638,6 @@ AcpiExLoadOp ( Status = AcpiExAddTable (TableIndex, &DdbHandle); if (ACPI_FAILURE (Status)) { - /* On error, TablePtr was deallocated above */ - return_ACPI_STATUS (Status); } @@ -627,22 +647,13 @@ AcpiExLoadOp ( AcpiNsInitializeObjects (); AcpiExEnterInterpreter (); - /* Store the DdbHandle into the Target operand */ - - Status = AcpiExStore (DdbHandle, Target, WalkState); - if (ACPI_FAILURE (Status)) - { - (void) AcpiExUnloadTable (DdbHandle); - - /* TablePtr was deallocated above */ - - AcpiUtRemoveReference (DdbHandle); - return_ACPI_STATUS (Status); - } - - /* Remove the reference by added by AcpiExStore above */ + /* Remove the reference to DdbHandle created by AcpiExAddTable above */ AcpiUtRemoveReference (DdbHandle); + + /* Return -1 (non-zero) indicates success */ + + Target->Integer.Value = 0xFFFFFFFFFFFFFFFF; return_ACPI_STATUS (Status); } diff --git a/source/components/executer/exconvrt.c b/source/components/executer/exconvrt.c index 4f6077ff0665..c9572e90bbb7 100644 --- a/source/components/executer/exconvrt.c +++ b/source/components/executer/exconvrt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/excreate.c b/source/components/executer/excreate.c index 8afae43c7cd7..e83810810e36 100644 --- a/source/components/executer/excreate.c +++ b/source/components/executer/excreate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -451,6 +451,7 @@ AcpiExCreateRegion ( ObjDesc->Region.SpaceId = SpaceId; ObjDesc->Region.Address = 0; ObjDesc->Region.Length = 0; + ObjDesc->Region.Pointer = NULL; ObjDesc->Region.Node = Node; ObjDesc->Region.Handler = NULL; ObjDesc->Common.Flags &= diff --git a/source/components/executer/exdebug.c b/source/components/executer/exdebug.c index 39fc73521c12..88f75966d848 100644 --- a/source/components/executer/exdebug.c +++ b/source/components/executer/exdebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exdump.c b/source/components/executer/exdump.c index b14cfe8443f6..e72ac01fc0a5 100644 --- a/source/components/executer/exdump.c +++ b/source/components/executer/exdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exfield.c b/source/components/executer/exfield.c index 7871e3502bee..2834e7b3800a 100644 --- a/source/components/executer/exfield.c +++ b/source/components/executer/exfield.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -492,9 +492,7 @@ AcpiExWriteDataToField ( ObjDesc->Field.BaseByteOffset, SourceDesc->Buffer.Pointer, DataLength); - if ((ObjDesc->Field.RegionObj->Region.Address == PCC_MASTER_SUBSPACE && - MASTER_SUBSPACE_COMMAND (ObjDesc->Field.BaseByteOffset)) || - GENERIC_SUBSPACE_COMMAND (ObjDesc->Field.BaseByteOffset)) + if (MASTER_SUBSPACE_COMMAND (ObjDesc->Field.BaseByteOffset)) { /* Perform the write */ diff --git a/source/components/executer/exfldio.c b/source/components/executer/exfldio.c index 6a5a5fe1b8b3..30d17c196be4 100644 --- a/source/components/executer/exfldio.c +++ b/source/components/executer/exfldio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -262,7 +262,7 @@ AcpiExSetupRegion ( #ifdef ACPI_UNDER_DEVELOPMENT /* * If the Field access is AnyAcc, we can now compute the optimal - * access (because we know know the length of the parent region) + * access (because we know the length of the parent region) */ if (!(ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)) { diff --git a/source/components/executer/exmisc.c b/source/components/executer/exmisc.c index 220417b99348..4a1e2ff25239 100644 --- a/source/components/executer/exmisc.c +++ b/source/components/executer/exmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exmutex.c b/source/components/executer/exmutex.c index 010f5bdd66d3..8b335680dc30 100644 --- a/source/components/executer/exmutex.c +++ b/source/components/executer/exmutex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exnames.c b/source/components/executer/exnames.c index 025907281978..6045bc6b3176 100644 --- a/source/components/executer/exnames.c +++ b/source/components/executer/exnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exoparg1.c b/source/components/executer/exoparg1.c index bf40b69770c6..2d9bbddf271f 100644 --- a/source/components/executer/exoparg1.c +++ b/source/components/executer/exoparg1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -323,6 +323,7 @@ AcpiExOpcode_1A_0T_0R ( } +#ifdef _OBSOLETE_CODE /* Was originally used for Load() operator */ /******************************************************************************* * * FUNCTION: AcpiExOpcode_1A_1T_0R @@ -352,10 +353,12 @@ AcpiExOpcode_1A_1T_0R ( switch (WalkState->Opcode) { +#ifdef _OBSOLETE_CODE case AML_LOAD_OP: Status = AcpiExLoadOp (Operand[0], Operand[1], WalkState); break; +#endif default: /* Unknown opcode */ @@ -370,7 +373,7 @@ AcpiExOpcode_1A_1T_0R ( return_ACPI_STATUS (Status); } - +#endif /******************************************************************************* * @@ -382,6 +385,8 @@ AcpiExOpcode_1A_1T_0R ( * * DESCRIPTION: Execute opcode with one argument, one target, and a * return value. + * January 2022: Added Load operator, with new ACPI 6.4 + * semantics. * ******************************************************************************/ @@ -411,6 +416,7 @@ AcpiExOpcode_1A_1T_1R ( case AML_FIND_SET_LEFT_BIT_OP: case AML_FIND_SET_RIGHT_BIT_OP: case AML_FROM_BCD_OP: + case AML_LOAD_OP: case AML_TO_BCD_OP: case AML_CONDITIONAL_REF_OF_OP: @@ -512,6 +518,18 @@ AcpiExOpcode_1A_1T_1R ( } break; + case AML_LOAD_OP: /* Result1 = Load (Operand[0], Result1) */ + + ReturnDesc->Integer.Value = 0; + Status = AcpiExLoadOp (Operand[0], ReturnDesc, WalkState); + if (ACPI_SUCCESS (Status)) + { + /* Return -1 (non-zero) indicates success */ + + ReturnDesc->Integer.Value = 0xFFFFFFFFFFFFFFFF; + } + break; + case AML_TO_BCD_OP: /* ToBcd (Operand, Result) */ ReturnDesc->Integer.Value = 0; @@ -1193,7 +1211,7 @@ AcpiExOpcode_1A_0T_1R ( WalkState, ReturnDesc, &TempDesc); if (ACPI_FAILURE (Status)) { - goto Cleanup; + return_ACPI_STATUS (Status); } ReturnDesc = TempDesc; diff --git a/source/components/executer/exoparg2.c b/source/components/executer/exoparg2.c index d1fc7c1160eb..8b63d615fa51 100644 --- a/source/components/executer/exoparg2.c +++ b/source/components/executer/exoparg2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exoparg3.c b/source/components/executer/exoparg3.c index 02e73bd4de0e..7b74d32ef374 100644 --- a/source/components/executer/exoparg3.c +++ b/source/components/executer/exoparg3.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exoparg6.c b/source/components/executer/exoparg6.c index 23f8e2956045..5506b2c1a75b 100644 --- a/source/components/executer/exoparg6.c +++ b/source/components/executer/exoparg6.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exprep.c b/source/components/executer/exprep.c index c7b55c547b70..6d239d7a78f6 100644 --- a/source/components/executer/exprep.c +++ b/source/components/executer/exprep.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exregion.c b/source/components/executer/exregion.c index 2f49eb0a2bc5..01d49065ddd4 100644 --- a/source/components/executer/exregion.c +++ b/source/components/executer/exregion.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -692,9 +692,17 @@ AcpiExDataTableSpaceHandler ( void *HandlerContext, void *RegionContext) { + ACPI_DATA_TABLE_MAPPING *Mapping; + char *Pointer; + + ACPI_FUNCTION_TRACE (ExDataTableSpaceHandler); + Mapping = (ACPI_DATA_TABLE_MAPPING *) RegionContext; + Pointer = ACPI_CAST_PTR (char, Mapping->Pointer) + + (Address - ACPI_PTR_TO_PHYSADDR (Mapping->Pointer)); + /* * Perform the memory read or write. The BitWidth was already * validated. @@ -703,14 +711,12 @@ AcpiExDataTableSpaceHandler ( { case ACPI_READ: - memcpy (ACPI_CAST_PTR (char, Value), ACPI_PHYSADDR_TO_PTR (Address), - ACPI_DIV_8 (BitWidth)); + memcpy (ACPI_CAST_PTR (char, Value), Pointer, ACPI_DIV_8 (BitWidth)); break; case ACPI_WRITE: - memcpy (ACPI_PHYSADDR_TO_PTR (Address), ACPI_CAST_PTR (char, Value), - ACPI_DIV_8 (BitWidth)); + memcpy (Pointer, ACPI_CAST_PTR (char, Value), ACPI_DIV_8 (BitWidth)); break; default: diff --git a/source/components/executer/exresnte.c b/source/components/executer/exresnte.c index 445a1b5e085b..6801b25beef9 100644 --- a/source/components/executer/exresnte.c +++ b/source/components/executer/exresnte.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exresolv.c b/source/components/executer/exresolv.c index 78b26041948d..af5202ab8e05 100644 --- a/source/components/executer/exresolv.c +++ b/source/components/executer/exresolv.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exresop.c b/source/components/executer/exresop.c index 619da90fb6f7..4abe93766ae7 100644 --- a/source/components/executer/exresop.c +++ b/source/components/executer/exresop.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exserial.c b/source/components/executer/exserial.c index 776409db718d..4dfd65992ab2 100644 --- a/source/components/executer/exserial.c +++ b/source/components/executer/exserial.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exstore.c b/source/components/executer/exstore.c index 79564db35379..ba1a05d94561 100644 --- a/source/components/executer/exstore.c +++ b/source/components/executer/exstore.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exstoren.c b/source/components/executer/exstoren.c index f43e67cdb31b..df4a6f405cea 100644 --- a/source/components/executer/exstoren.c +++ b/source/components/executer/exstoren.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exstorob.c b/source/components/executer/exstorob.c index 1ed937340c0e..56d048a7e5c6 100644 --- a/source/components/executer/exstorob.c +++ b/source/components/executer/exstorob.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exsystem.c b/source/components/executer/exsystem.c index cf10a5e7bdab..62768bcf010f 100644 --- a/source/components/executer/exsystem.c +++ b/source/components/executer/exsystem.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -265,7 +265,7 @@ AcpiExSystemWaitMutex ( * * FUNCTION: AcpiExSystemDoStall * - * PARAMETERS: HowLong - The amount of time to stall, + * PARAMETERS: HowLongUs - The amount of time to stall, * in microseconds * * RETURN: Status @@ -280,7 +280,7 @@ AcpiExSystemWaitMutex ( ACPI_STATUS AcpiExSystemDoStall ( - UINT32 HowLong) + UINT32 HowLongUs) { ACPI_STATUS Status = AE_OK; @@ -288,21 +288,26 @@ AcpiExSystemDoStall ( ACPI_FUNCTION_ENTRY (); - if (HowLong > 255) /* 255 microseconds */ + if (HowLongUs > 255) { /* - * Longer than 255 usec, this is an error + * Longer than 255 microseconds, this is an error * * (ACPI specifies 100 usec as max, but this gives some slack in * order to support existing BIOSs) */ ACPI_ERROR ((AE_INFO, - "Time parameter is too large (%u)", HowLong)); + "Time parameter is too large (%u)", HowLongUs)); Status = AE_AML_OPERAND_VALUE; } else { - AcpiOsStall (HowLong); + if (HowLongUs > 100) + { + ACPI_WARNING ((AE_INFO, + "Time parameter %u us > 100 us violating ACPI spec, please fix the firmware.", HowLongUs)); + } + AcpiOsStall (HowLongUs); } return (Status); @@ -313,7 +318,7 @@ AcpiExSystemDoStall ( * * FUNCTION: AcpiExSystemDoSleep * - * PARAMETERS: HowLong - The amount of time to sleep, + * PARAMETERS: HowLongMs - The amount of time to sleep, * in milliseconds * * RETURN: None @@ -324,7 +329,7 @@ AcpiExSystemDoStall ( ACPI_STATUS AcpiExSystemDoSleep ( - UINT64 HowLong) + UINT64 HowLongMs) { ACPI_FUNCTION_ENTRY (); @@ -333,16 +338,28 @@ AcpiExSystemDoSleep ( AcpiExExitInterpreter (); + /* + * Warn users about excessive sleep times, so ASL code can be improved to + * use polling or similar techniques. + */ + if (HowLongMs > 10) + { + ACPI_WARNING ((AE_INFO, + "Firmware issue: Excessive sleep time (0x%8.8X%8.8X ms > 10 ms)" + " in ACPI Control Method", + ACPI_FORMAT_UINT64 (HowLongMs))); + } + /* * For compatibility with other ACPI implementations and to prevent * accidental deep sleeps, limit the sleep time to something reasonable. */ - if (HowLong > ACPI_MAX_SLEEP) + if (HowLongMs > ACPI_MAX_SLEEP) { - HowLong = ACPI_MAX_SLEEP; + HowLongMs = ACPI_MAX_SLEEP; } - AcpiOsSleep (HowLong); + AcpiOsSleep (HowLongMs); /* And now we must get the interpreter again */ diff --git a/source/components/executer/extrace.c b/source/components/executer/extrace.c index 22c2b8bb8639..a677393f18a7 100644 --- a/source/components/executer/extrace.c +++ b/source/components/executer/extrace.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exutils.c b/source/components/executer/exutils.c index 86114c8ec831..e27f567b6e39 100644 --- a/source/components/executer/exutils.c +++ b/source/components/executer/exutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwacpi.c b/source/components/hardware/hwacpi.c index 71b71cbc64bf..8b3222099db4 100644 --- a/source/components/hardware/hwacpi.c +++ b/source/components/hardware/hwacpi.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwesleep.c b/source/components/hardware/hwesleep.c index e8db4d26dc9e..85e4cb950192 100644 --- a/source/components/hardware/hwesleep.c +++ b/source/components/hardware/hwesleep.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -261,7 +261,10 @@ AcpiHwExtendedSleep ( /* Flush caches, as per ACPI specification */ - ACPI_FLUSH_CPU_CACHE (); + if (SleepState < ACPI_STATE_S4) + { + ACPI_FLUSH_CPU_CACHE (); + } Status = AcpiOsEnterSleep (SleepState, SleepControl, 0); if (Status == AE_CTRL_TERMINATE) diff --git a/source/components/hardware/hwgpe.c b/source/components/hardware/hwgpe.c index bf333a3fee32..7f9a5f052fa3 100644 --- a/source/components/hardware/hwgpe.c +++ b/source/components/hardware/hwgpe.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwpci.c b/source/components/hardware/hwpci.c index 1b0721e3a69c..b8e8aa9f3b2b 100644 --- a/source/components/hardware/hwpci.c +++ b/source/components/hardware/hwpci.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwregs.c b/source/components/hardware/hwregs.c index 712a0887b48f..7b4ae88af8dd 100644 --- a/source/components/hardware/hwregs.c +++ b/source/components/hardware/hwregs.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -633,7 +633,7 @@ AcpiHwGetBitRegisterInfo ( * RETURN: Status * * DESCRIPTION: Write the PM1 A/B control registers. These registers are - * different than than the PM1 A/B status and enable registers + * different than the PM1 A/B status and enable registers * in that different values can be written to the A/B registers. * Most notably, the SLP_TYP bits can be different, as per the * values returned from the _Sx predefined methods. diff --git a/source/components/hardware/hwsleep.c b/source/components/hardware/hwsleep.c index 2b857d970e9f..45ff336a1860 100644 --- a/source/components/hardware/hwsleep.c +++ b/source/components/hardware/hwsleep.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -262,7 +262,10 @@ AcpiHwLegacySleep ( /* Flush caches, as per ACPI specification */ - ACPI_FLUSH_CPU_CACHE (); + if (SleepState < ACPI_STATE_S4) + { + ACPI_FLUSH_CPU_CACHE (); + } Status = AcpiOsEnterSleep (SleepState, Pm1aControl, Pm1bControl); if (Status == AE_CTRL_TERMINATE) @@ -376,7 +379,7 @@ AcpiHwLegacyWakePrep ( Pm1aControl |= (AcpiGbl_SleepTypeAS0 << SleepTypeRegInfo->BitPosition); - Pm1aControl |= (AcpiGbl_SleepTypeBS0 << + Pm1bControl |= (AcpiGbl_SleepTypeBS0 << SleepTypeRegInfo->BitPosition); /* Write the control registers and ignore any errors */ diff --git a/source/components/hardware/hwtimer.c b/source/components/hardware/hwtimer.c index 0e4102db4c76..829e2a35340e 100644 --- a/source/components/hardware/hwtimer.c +++ b/source/components/hardware/hwtimer.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwvalid.c b/source/components/hardware/hwvalid.c index 96b5ac7e6e81..d297905b79a0 100644 --- a/source/components/hardware/hwvalid.c +++ b/source/components/hardware/hwvalid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwxface.c b/source/components/hardware/hwxface.c index 5daed99ad72e..8fd3561a05ff 100644 --- a/source/components/hardware/hwxface.c +++ b/source/components/hardware/hwxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwxfsleep.c b/source/components/hardware/hwxfsleep.c index f1a1344c744a..5f8b7db0a2fa 100644 --- a/source/components/hardware/hwxfsleep.c +++ b/source/components/hardware/hwxfsleep.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -353,8 +353,6 @@ AcpiEnterSleepStateS4bios ( return_ACPI_STATUS (Status); } - ACPI_FLUSH_CPU_CACHE (); - Status = AcpiHwWritePort (AcpiGbl_FADT.SmiCommand, (UINT32) AcpiGbl_FADT.S4BiosRequest, 8); if (ACPI_FAILURE (Status)) diff --git a/source/components/namespace/nsaccess.c b/source/components/namespace/nsaccess.c index 4286223efe4e..2b810facb035 100644 --- a/source/components/namespace/nsaccess.c +++ b/source/components/namespace/nsaccess.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsalloc.c b/source/components/namespace/nsalloc.c index 1deb87c6b2e3..560f6f3635d9 100644 --- a/source/components/namespace/nsalloc.c +++ b/source/components/namespace/nsalloc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsarguments.c b/source/components/namespace/nsarguments.c index fe51156578aa..2da06f2f6103 100644 --- a/source/components/namespace/nsarguments.c +++ b/source/components/namespace/nsarguments.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsconvert.c b/source/components/namespace/nsconvert.c index 7d68386d5f40..2971f08ecd6b 100644 --- a/source/components/namespace/nsconvert.c +++ b/source/components/namespace/nsconvert.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsdump.c b/source/components/namespace/nsdump.c index 63a449ab6f5a..36cfbdf6b172 100644 --- a/source/components/namespace/nsdump.c +++ b/source/components/namespace/nsdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsdumpdv.c b/source/components/namespace/nsdumpdv.c index 55ab899d2867..0cc9b5a5e09c 100644 --- a/source/components/namespace/nsdumpdv.c +++ b/source/components/namespace/nsdumpdv.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nseval.c b/source/components/namespace/nseval.c index 1b80202bae86..1cb07615d52f 100644 --- a/source/components/namespace/nseval.c +++ b/source/components/namespace/nseval.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsinit.c b/source/components/namespace/nsinit.c index cc15644fc4a5..c523035f1d0a 100644 --- a/source/components/namespace/nsinit.c +++ b/source/components/namespace/nsinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsload.c b/source/components/namespace/nsload.c index 0a368ab3e603..c3423e55ba01 100644 --- a/source/components/namespace/nsload.c +++ b/source/components/namespace/nsload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsnames.c b/source/components/namespace/nsnames.c index 4c0f6991fe1e..c8412c2edf29 100644 --- a/source/components/namespace/nsnames.c +++ b/source/components/namespace/nsnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsobject.c b/source/components/namespace/nsobject.c index 529d816f4334..82d735eb186e 100644 --- a/source/components/namespace/nsobject.c +++ b/source/components/namespace/nsobject.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsparse.c b/source/components/namespace/nsparse.c index 5f7973aa1a20..0ac5efb428b5 100644 --- a/source/components/namespace/nsparse.c +++ b/source/components/namespace/nsparse.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nspredef.c b/source/components/namespace/nspredef.c index 410eaeb0fc9c..e28d689670b9 100644 --- a/source/components/namespace/nspredef.c +++ b/source/components/namespace/nspredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsprepkg.c b/source/components/namespace/nsprepkg.c index e56bcb5d16ca..e6959dacaaf2 100644 --- a/source/components/namespace/nsprepkg.c +++ b/source/components/namespace/nsprepkg.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsrepair.c b/source/components/namespace/nsrepair.c index 24094714b56d..59f7aa33f32a 100644 --- a/source/components/namespace/nsrepair.c +++ b/source/components/namespace/nsrepair.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsrepair2.c b/source/components/namespace/nsrepair2.c index 40f0634de8c0..bf76b7dd7ba3 100644 --- a/source/components/namespace/nsrepair2.c +++ b/source/components/namespace/nsrepair2.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nssearch.c b/source/components/namespace/nssearch.c index 408a38e68866..706963c49633 100644 --- a/source/components/namespace/nssearch.c +++ b/source/components/namespace/nssearch.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsutils.c b/source/components/namespace/nsutils.c index 1ce7fe407e1a..f4208179bc41 100644 --- a/source/components/namespace/nsutils.c +++ b/source/components/namespace/nsutils.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nswalk.c b/source/components/namespace/nswalk.c index 50c5ed5bae55..3d0fc639f65b 100644 --- a/source/components/namespace/nswalk.c +++ b/source/components/namespace/nswalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -322,6 +322,10 @@ AcpiNsWalkNamespace ( if (StartNode == ACPI_ROOT_OBJECT) { StartNode = AcpiGbl_RootNode; + if (!StartNode) + { + return_ACPI_STATUS (AE_NO_NAMESPACE); + } } /* Null child means "get first node" */ diff --git a/source/components/namespace/nsxfeval.c b/source/components/namespace/nsxfeval.c index b067f6e81936..9724d02427be 100644 --- a/source/components/namespace/nsxfeval.c +++ b/source/components/namespace/nsxfeval.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsxfname.c b/source/components/namespace/nsxfname.c index 7a7393b61a7b..7d52330f6629 100644 --- a/source/components/namespace/nsxfname.c +++ b/source/components/namespace/nsxfname.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsxfobj.c b/source/components/namespace/nsxfobj.c index fb08e76f6247..2aa1fc17b9cc 100644 --- a/source/components/namespace/nsxfobj.c +++ b/source/components/namespace/nsxfobj.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psargs.c b/source/components/parser/psargs.c index 895feba0ace6..f510623ebbb7 100644 --- a/source/components/parser/psargs.c +++ b/source/components/parser/psargs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psloop.c b/source/components/parser/psloop.c index 478256f29bc5..2b4c1f2a8d78 100644 --- a/source/components/parser/psloop.c +++ b/source/components/parser/psloop.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psobject.c b/source/components/parser/psobject.c index c0c3e9654c03..18a32ef36d3f 100644 --- a/source/components/parser/psobject.c +++ b/source/components/parser/psobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psopcode.c b/source/components/parser/psopcode.c index 4f153303fbcd..540716af5b08 100644 --- a/source/components/parser/psopcode.c +++ b/source/components/parser/psopcode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -375,7 +375,7 @@ const ACPI_OPCODE_INFO AcpiGbl_AmlOpInfo[AML_NUM_OPCODES] = /* 47 */ ACPI_OP ("Event", ARGP_EVENT_OP, ARGI_EVENT_OP, ACPI_TYPE_EVENT, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED ), /* 48 */ ACPI_OP ("CondRefOf", ARGP_COND_REF_OF_OP, ARGI_COND_REF_OF_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R), /* 49 */ ACPI_OP ("CreateField", ARGP_CREATE_FIELD_OP, ARGI_CREATE_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_FIELD | AML_CREATE), -/* 4A */ ACPI_OP ("Load", ARGP_LOAD_OP, ARGI_LOAD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_0R, AML_FLAGS_EXEC_1A_1T_0R), +/* 4A */ ACPI_OP ("Load", ARGP_LOAD_OP, ARGI_LOAD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R), /* 4B */ ACPI_OP ("Stall", ARGP_STALL_OP, ARGI_STALL_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R), /* 4C */ ACPI_OP ("Sleep", ARGP_SLEEP_OP, ARGI_SLEEP_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R), /* 4D */ ACPI_OP ("Acquire", ARGP_ACQUIRE_OP, ARGI_ACQUIRE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R), diff --git a/source/components/parser/psopinfo.c b/source/components/parser/psopinfo.c index 30447c78b182..fcb080cacab2 100644 --- a/source/components/parser/psopinfo.c +++ b/source/components/parser/psopinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psparse.c b/source/components/parser/psparse.c index 3b2a3c4c18b3..e0cd5915b6ad 100644 --- a/source/components/parser/psparse.c +++ b/source/components/parser/psparse.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psscope.c b/source/components/parser/psscope.c index cbe575dc523e..269410a6acf7 100644 --- a/source/components/parser/psscope.c +++ b/source/components/parser/psscope.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/pstree.c b/source/components/parser/pstree.c index 7f92b773aca6..92f623046cf0 100644 --- a/source/components/parser/pstree.c +++ b/source/components/parser/pstree.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psutils.c b/source/components/parser/psutils.c index 223f68db6dc8..a9ea353641d9 100644 --- a/source/components/parser/psutils.c +++ b/source/components/parser/psutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/pswalk.c b/source/components/parser/pswalk.c index 0d5b78ddb211..31232fd46a7b 100644 --- a/source/components/parser/pswalk.c +++ b/source/components/parser/pswalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psxface.c b/source/components/parser/psxface.c index 102033fee81e..295da1af6988 100644 --- a/source/components/parser/psxface.c +++ b/source/components/parser/psxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsaddr.c b/source/components/resources/rsaddr.c index 06f8c44ae6c9..93d45ca35718 100644 --- a/source/components/resources/rsaddr.c +++ b/source/components/resources/rsaddr.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rscalc.c b/source/components/resources/rscalc.c index 2e878e80f057..c966636b6afe 100644 --- a/source/components/resources/rscalc.c +++ b/source/components/resources/rscalc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rscreate.c b/source/components/resources/rscreate.c index 8443d7522e28..6c230bce0ee5 100644 --- a/source/components/resources/rscreate.c +++ b/source/components/resources/rscreate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsdump.c b/source/components/resources/rsdump.c index 44b552ada5b4..e8f13724c90c 100644 --- a/source/components/resources/rsdump.c +++ b/source/components/resources/rsdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsdumpinfo.c b/source/components/resources/rsdumpinfo.c index 26f4993d5a54..83b22caa62f9 100644 --- a/source/components/resources/rsdumpinfo.c +++ b/source/components/resources/rsdumpinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsinfo.c b/source/components/resources/rsinfo.c index 9687bfb44648..b9d4df46b432 100644 --- a/source/components/resources/rsinfo.c +++ b/source/components/resources/rsinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsio.c b/source/components/resources/rsio.c index 4be6a7d16a90..299326232bec 100644 --- a/source/components/resources/rsio.c +++ b/source/components/resources/rsio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsirq.c b/source/components/resources/rsirq.c index 1a44bdbe9f91..9a8fc18fc568 100644 --- a/source/components/resources/rsirq.c +++ b/source/components/resources/rsirq.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rslist.c b/source/components/resources/rslist.c index 1867c0a95479..fdd24688c2d5 100644 --- a/source/components/resources/rslist.c +++ b/source/components/resources/rslist.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsmemory.c b/source/components/resources/rsmemory.c index e5562a046685..e527bad7bf0c 100644 --- a/source/components/resources/rsmemory.c +++ b/source/components/resources/rsmemory.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsmisc.c b/source/components/resources/rsmisc.c index f0f186b83583..16c52134ed8c 100644 --- a/source/components/resources/rsmisc.c +++ b/source/components/resources/rsmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsserial.c b/source/components/resources/rsserial.c index d505ea949441..3075b4c47dcc 100644 --- a/source/components/resources/rsserial.c +++ b/source/components/resources/rsserial.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsutils.c b/source/components/resources/rsutils.c index 6aa2833797c1..7110406f4e9e 100644 --- a/source/components/resources/rsutils.c +++ b/source/components/resources/rsutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsxface.c b/source/components/resources/rsxface.c index 3f055af4a349..d3aaf1d0fd88 100644 --- a/source/components/resources/rsxface.c +++ b/source/components/resources/rsxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbdata.c b/source/components/tables/tbdata.c index 522234d96d3b..5e4f7ca7402e 100644 --- a/source/components/tables/tbdata.c +++ b/source/components/tables/tbdata.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -243,14 +243,28 @@ AcpiTbInitTableDescriptor ( { /* - * Initialize the table descriptor. Set the pointer to NULL, since the - * table is not fully mapped at this time. + * Initialize the table descriptor. Set the pointer to NULL for external + * tables, since the table is not fully mapped at this time. */ memset (TableDesc, 0, sizeof (ACPI_TABLE_DESC)); TableDesc->Address = Address; TableDesc->Length = Table->Length; TableDesc->Flags = Flags; ACPI_MOVE_32_TO_32 (TableDesc->Signature.Ascii, Table->Signature); + + switch (TableDesc->Flags & ACPI_TABLE_ORIGIN_MASK) + { + case ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL: + case ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL: + + TableDesc->Pointer = Table; + break; + + case ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL: + default: + + break; + } } @@ -290,8 +304,7 @@ AcpiTbAcquireTable ( case ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL: case ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL: - Table = ACPI_CAST_PTR (ACPI_TABLE_HEADER, - ACPI_PHYSADDR_TO_PTR (TableDesc->Address)); + Table = TableDesc->Pointer; break; default: @@ -359,6 +372,8 @@ AcpiTbReleaseTable ( * PARAMETERS: TableDesc - Table descriptor to be acquired * Address - Address of the table * Flags - Allocation flags of the table + * Table - Pointer to the table (required for virtual + * origins, optional for physical) * * RETURN: Status * @@ -373,9 +388,10 @@ ACPI_STATUS AcpiTbAcquireTempTable ( ACPI_TABLE_DESC *TableDesc, ACPI_PHYSICAL_ADDRESS Address, - UINT8 Flags) + UINT8 Flags, + ACPI_TABLE_HEADER *Table) { - ACPI_TABLE_HEADER *TableHeader; + BOOLEAN MappedTable = FALSE; switch (Flags & ACPI_TABLE_ORIGIN_MASK) @@ -384,37 +400,43 @@ AcpiTbAcquireTempTable ( /* Get the length of the full table from the header */ - TableHeader = AcpiOsMapMemory (Address, sizeof (ACPI_TABLE_HEADER)); - if (!TableHeader) + if (!Table) { - return (AE_NO_MEMORY); + Table = AcpiOsMapMemory (Address, sizeof (ACPI_TABLE_HEADER)); + if (!Table) + { + return (AE_NO_MEMORY); + } + + MappedTable = TRUE; } - AcpiTbInitTableDescriptor (TableDesc, Address, Flags, TableHeader); - AcpiOsUnmapMemory (TableHeader, sizeof (ACPI_TABLE_HEADER)); - return (AE_OK); + break; case ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL: case ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL: - TableHeader = ACPI_CAST_PTR (ACPI_TABLE_HEADER, - ACPI_PHYSADDR_TO_PTR (Address)); - if (!TableHeader) + if (!Table) { - return (AE_NO_MEMORY); + return (AE_BAD_PARAMETER); } - AcpiTbInitTableDescriptor (TableDesc, Address, Flags, TableHeader); - return (AE_OK); + break; default: - break; + /* Table is not valid yet */ + + return (AE_NO_MEMORY); } - /* Table is not valid yet */ + AcpiTbInitTableDescriptor (TableDesc, Address, Flags, Table); + if (MappedTable) + { + AcpiOsUnmapMemory (Table, sizeof (ACPI_TABLE_HEADER)); + } - return (AE_NO_MEMORY); + return (AE_OK); } @@ -513,7 +535,20 @@ AcpiTbInvalidateTable ( AcpiTbReleaseTable (TableDesc->Pointer, TableDesc->Length, TableDesc->Flags); - TableDesc->Pointer = NULL; + + switch (TableDesc->Flags & ACPI_TABLE_ORIGIN_MASK) + { + case ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL: + + TableDesc->Pointer = NULL; + break; + + case ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL: + case ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL: + default: + + break; + } return_VOID; } @@ -1219,6 +1254,9 @@ AcpiTbLoadTable ( * * PARAMETERS: Address - Physical address of the table * Flags - Allocation flags of the table + * Table - Pointer to the table (required for + * virtual origins, optional for + * physical) * Override - Whether override should be performed * TableIndex - Where table index is returned * @@ -1232,6 +1270,7 @@ ACPI_STATUS AcpiTbInstallAndLoadTable ( ACPI_PHYSICAL_ADDRESS Address, UINT8 Flags, + ACPI_TABLE_HEADER *Table, BOOLEAN Override, UINT32 *TableIndex) { @@ -1244,7 +1283,7 @@ AcpiTbInstallAndLoadTable ( /* Install the table and load it into the namespace */ - Status = AcpiTbInstallStandardTable (Address, Flags, TRUE, + Status = AcpiTbInstallStandardTable (Address, Flags, Table, TRUE, Override, &i); if (ACPI_FAILURE (Status)) { diff --git a/source/components/tables/tbfadt.c b/source/components/tables/tbfadt.c index 8196e7afbaa2..7ae35f19017a 100644 --- a/source/components/tables/tbfadt.c +++ b/source/components/tables/tbfadt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -486,7 +486,7 @@ AcpiTbParseFadt ( AcpiTbInstallStandardTable ( (ACPI_PHYSICAL_ADDRESS) AcpiGbl_FADT.XDsdt, - ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, FALSE, TRUE, + ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, NULL, FALSE, TRUE, &AcpiGbl_DsdtIndex); /* If Hardware Reduced flag is set, there is no FACS */ @@ -497,14 +497,14 @@ AcpiTbParseFadt ( { AcpiTbInstallStandardTable ( (ACPI_PHYSICAL_ADDRESS) AcpiGbl_FADT.Facs, - ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, FALSE, TRUE, + ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, NULL, FALSE, TRUE, &AcpiGbl_FacsIndex); } if (AcpiGbl_FADT.XFacs) { AcpiTbInstallStandardTable ( (ACPI_PHYSICAL_ADDRESS) AcpiGbl_FADT.XFacs, - ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, FALSE, TRUE, + ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, NULL, FALSE, TRUE, &AcpiGbl_XFacsIndex); } } diff --git a/source/components/tables/tbfind.c b/source/components/tables/tbfind.c index 1bc21b3e0164..81ed2d97a66e 100644 --- a/source/components/tables/tbfind.c +++ b/source/components/tables/tbfind.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbinstal.c b/source/components/tables/tbinstal.c index dcbb2a745b45..9253bd1db0a3 100644 --- a/source/components/tables/tbinstal.c +++ b/source/components/tables/tbinstal.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -227,6 +227,8 @@ AcpiTbInstallTableWithOverride ( * PARAMETERS: Address - Address of the table (might be a virtual * address depending on the TableFlags) * Flags - Flags for the table + * Table - Pointer to the table (required for virtual + * origins, optional for physical) * Reload - Whether reload should be performed * Override - Whether override should be performed * TableIndex - Where the table index is returned @@ -245,6 +247,7 @@ ACPI_STATUS AcpiTbInstallStandardTable ( ACPI_PHYSICAL_ADDRESS Address, UINT8 Flags, + ACPI_TABLE_HEADER *Table, BOOLEAN Reload, BOOLEAN Override, UINT32 *TableIndex) @@ -259,7 +262,7 @@ AcpiTbInstallStandardTable ( /* Acquire a temporary table descriptor for validation */ - Status = AcpiTbAcquireTempTable (&NewTableDesc, Address, Flags); + Status = AcpiTbAcquireTempTable (&NewTableDesc, Address, Flags, Table); if (ACPI_FAILURE (Status)) { ACPI_ERROR ((AE_INFO, @@ -369,7 +372,7 @@ AcpiTbOverrideTable ( if (ACPI_SUCCESS (Status) && Table) { AcpiTbAcquireTempTable (&NewTableDesc, ACPI_PTR_TO_PHYSADDR (Table), - ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL); + ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL, Table); ACPI_ERROR_ONLY (OverrideType = "Logical"); goto FinishOverride; } @@ -381,7 +384,7 @@ AcpiTbOverrideTable ( if (ACPI_SUCCESS (Status) && Address && Length) { AcpiTbAcquireTempTable (&NewTableDesc, Address, - ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL); + ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, NULL); ACPI_ERROR_ONLY (OverrideType = "Physical"); goto FinishOverride; } @@ -457,7 +460,8 @@ AcpiTbUninstallTable ( if ((TableDesc->Flags & ACPI_TABLE_ORIGIN_MASK) == ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL) { - ACPI_FREE (ACPI_PHYSADDR_TO_PTR (TableDesc->Address)); + ACPI_FREE (TableDesc->Pointer); + TableDesc->Pointer = NULL; } TableDesc->Address = ACPI_PTR_TO_PHYSADDR (NULL); diff --git a/source/components/tables/tbprint.c b/source/components/tables/tbprint.c index 392ff95a2e0f..0b53e73730a9 100644 --- a/source/components/tables/tbprint.c +++ b/source/components/tables/tbprint.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -261,7 +261,8 @@ AcpiTbPrintTableHeader ( Header->Signature, ACPI_FORMAT_UINT64 (Address), Header->Length)); } - else if (ACPI_VALIDATE_RSDP_SIG (Header->Signature)) + else if (ACPI_VALIDATE_RSDP_SIG (ACPI_CAST_PTR (ACPI_TABLE_RSDP, + Header)->Signature)) { /* RSDP has no common fields */ diff --git a/source/components/tables/tbutils.c b/source/components/tables/tbutils.c index 6316f258c3fa..d2a30dc383dc 100644 --- a/source/components/tables/tbutils.c +++ b/source/components/tables/tbutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -500,7 +500,8 @@ AcpiTbParseRootTable ( } Status = AcpiTbInstallStandardTable (Address, - ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, FALSE, TRUE, &TableIndex); + ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, NULL, FALSE, TRUE, + &TableIndex); if (ACPI_SUCCESS (Status) && ACPI_COMPARE_NAMESEG ( diff --git a/source/components/tables/tbxface.c b/source/components/tables/tbxface.c index d861d9e6aa2e..919ad13813d6 100644 --- a/source/components/tables/tbxface.c +++ b/source/components/tables/tbxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbxfload.c b/source/components/tables/tbxfload.c index 046487ba36ee..ddd9b795e50a 100644 --- a/source/components/tables/tbxfload.c +++ b/source/components/tables/tbxfload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -396,9 +396,7 @@ AcpiTbLoadNamespace ( * * FUNCTION: AcpiInstallTable * - * PARAMETERS: Address - Address of the ACPI table to be installed. - * Physical - Whether the address is a physical table - * address or not + * PARAMETERS: Table - Pointer to the ACPI table to be installed. * * RETURN: Status * @@ -410,28 +408,17 @@ AcpiTbLoadNamespace ( ACPI_STATUS ACPI_INIT_FUNCTION AcpiInstallTable ( - ACPI_PHYSICAL_ADDRESS Address, - BOOLEAN Physical) + ACPI_TABLE_HEADER *Table) { ACPI_STATUS Status; - UINT8 Flags; UINT32 TableIndex; ACPI_FUNCTION_TRACE (AcpiInstallTable); - if (Physical) - { - Flags = ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL; - } - else - { - Flags = ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL; - } - - Status = AcpiTbInstallStandardTable (Address, Flags, - FALSE, FALSE, &TableIndex); + Status = AcpiTbInstallStandardTable (ACPI_PTR_TO_PHYSADDR (Table), + ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL, Table, FALSE, FALSE, &TableIndex); return_ACPI_STATUS (Status); } @@ -439,6 +426,40 @@ AcpiInstallTable ( ACPI_EXPORT_SYMBOL_INIT (AcpiInstallTable) +/******************************************************************************* + * + * FUNCTION: AcpiInstallPhysicalTable + * + * PARAMETERS: Address - Address of the ACPI table to be installed. + * + * RETURN: Status + * + * DESCRIPTION: Dynamically install an ACPI table. + * Note: This function should only be invoked after + * AcpiInitializeTables() and before AcpiLoadTables(). + * + ******************************************************************************/ + +ACPI_STATUS ACPI_INIT_FUNCTION +AcpiInstallPhysicalTable ( + ACPI_PHYSICAL_ADDRESS Address) +{ + ACPI_STATUS Status; + UINT32 TableIndex; + + + ACPI_FUNCTION_TRACE (AcpiInstallPhysicalTable); + + + Status = AcpiTbInstallStandardTable (Address, + ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, NULL, FALSE, FALSE, &TableIndex); + + return_ACPI_STATUS (Status); +} + +ACPI_EXPORT_SYMBOL_INIT (AcpiInstallPhysicalTable) + + /******************************************************************************* * * FUNCTION: AcpiLoadTable @@ -481,7 +502,7 @@ AcpiLoadTable ( ACPI_INFO (("Host-directed Dynamic ACPI Table Load:")); Status = AcpiTbInstallAndLoadTable (ACPI_PTR_TO_PHYSADDR (Table), - ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL, FALSE, &TableIndex); + ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL, Table, FALSE, &TableIndex); if (TableIdx) { *TableIdx = TableIndex; diff --git a/source/components/tables/tbxfroot.c b/source/components/tables/tbxfroot.c index ed33c9b67acf..bb90f6059647 100644 --- a/source/components/tables/tbxfroot.c +++ b/source/components/tables/tbxfroot.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utaddress.c b/source/components/utilities/utaddress.c index 92039cfa0f64..5aa12832bd41 100644 --- a/source/components/utilities/utaddress.c +++ b/source/components/utilities/utaddress.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utalloc.c b/source/components/utilities/utalloc.c index 276a531917b1..aa06339cb8c7 100644 --- a/source/components/utilities/utalloc.c +++ b/source/components/utilities/utalloc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utascii.c b/source/components/utilities/utascii.c index a375e44d058d..db2389024d02 100644 --- a/source/components/utilities/utascii.c +++ b/source/components/utilities/utascii.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utbuffer.c b/source/components/utilities/utbuffer.c index 214ff20bfb72..2cf097bf5ceb 100644 --- a/source/components/utilities/utbuffer.c +++ b/source/components/utilities/utbuffer.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utcache.c b/source/components/utilities/utcache.c index 4e5de96f27b1..2ff1540c1662 100644 --- a/source/components/utilities/utcache.c +++ b/source/components/utilities/utcache.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utclib.c b/source/components/utilities/utclib.c index 1c19a11d3a85..42f8d171401c 100644 --- a/source/components/utilities/utclib.c +++ b/source/components/utilities/utclib.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utcopy.c b/source/components/utilities/utcopy.c index 329416480a38..e725d55b5ef2 100644 --- a/source/components/utilities/utcopy.c +++ b/source/components/utilities/utcopy.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utdebug.c b/source/components/utilities/utdebug.c index 6d8ab27baa4d..f789e686da20 100644 --- a/source/components/utilities/utdebug.c +++ b/source/components/utilities/utdebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utdecode.c b/source/components/utilities/utdecode.c index 11818b4f8c36..2a49cbd8d83c 100644 --- a/source/components/utilities/utdecode.c +++ b/source/components/utilities/utdecode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utdelete.c b/source/components/utilities/utdelete.c index 624aa6870809..b36c4bb3a77a 100644 --- a/source/components/utilities/utdelete.c +++ b/source/components/utilities/utdelete.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -594,6 +594,7 @@ AcpiUtUpdateRefCount ( ACPI_WARNING ((AE_INFO, "Obj %p, Reference Count is already zero, cannot decrement\n", Object)); + return; } ACPI_DEBUG_PRINT_RAW ((ACPI_DB_ALLOCATIONS, diff --git a/source/components/utilities/uterror.c b/source/components/utilities/uterror.c index 51ce8d59090a..2aee4d54f9c4 100644 --- a/source/components/utilities/uterror.c +++ b/source/components/utilities/uterror.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uteval.c b/source/components/utilities/uteval.c index 9e30ee8d9ef4..f4ccea68bd9c 100644 --- a/source/components/utilities/uteval.c +++ b/source/components/utilities/uteval.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utexcep.c b/source/components/utilities/utexcep.c index 4e7e3f55443a..279d33fcde5d 100644 --- a/source/components/utilities/utexcep.c +++ b/source/components/utilities/utexcep.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utglobal.c b/source/components/utilities/utglobal.c index 65189ff2de12..7de4a9c31bc7 100644 --- a/source/components/utilities/utglobal.c +++ b/source/components/utilities/utglobal.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uthex.c b/source/components/utilities/uthex.c index 5cbc8fa6d6b0..c64d3def8839 100644 --- a/source/components/utilities/uthex.c +++ b/source/components/utilities/uthex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utids.c b/source/components/utilities/utids.c index 4ef4fccaaca8..498338a10b68 100644 --- a/source/components/utilities/utids.c +++ b/source/components/utilities/utids.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utinit.c b/source/components/utilities/utinit.c index 27f1e37b835d..0f2cf48907a9 100644 --- a/source/components/utilities/utinit.c +++ b/source/components/utilities/utinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utlock.c b/source/components/utilities/utlock.c index a1501189d070..9357279b3653 100644 --- a/source/components/utilities/utlock.c +++ b/source/components/utilities/utlock.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utmath.c b/source/components/utilities/utmath.c index 2580cb6e931d..b534bb3e070b 100644 --- a/source/components/utilities/utmath.c +++ b/source/components/utilities/utmath.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utmisc.c b/source/components/utilities/utmisc.c index f2db74e8f361..1efe0afc99bf 100644 --- a/source/components/utilities/utmisc.c +++ b/source/components/utilities/utmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utmutex.c b/source/components/utilities/utmutex.c index b723f5b27de6..1f1c1d82d055 100644 --- a/source/components/utilities/utmutex.c +++ b/source/components/utilities/utmutex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utnonansi.c b/source/components/utilities/utnonansi.c index cf3763bc1d2e..e3c2f460d869 100644 --- a/source/components/utilities/utnonansi.c +++ b/source/components/utilities/utnonansi.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utobject.c b/source/components/utilities/utobject.c index 8b3dcd5f2129..52e02beb9596 100644 --- a/source/components/utilities/utobject.c +++ b/source/components/utilities/utobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utosi.c b/source/components/utilities/utosi.c index 756ca35c35b1..700f30a686d3 100644 --- a/source/components/utilities/utosi.c +++ b/source/components/utilities/utosi.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -221,6 +221,7 @@ static ACPI_INTERFACE_INFO AcpiDefaultSupportedInterfaces[] = {"Windows 2018.2", NULL, 0, ACPI_OSI_WIN_10_RS5}, /* Windows 10 version 1809 - Added 11/2018 */ {"Windows 2019", NULL, 0, ACPI_OSI_WIN_10_19H1}, /* Windows 10 version 1903 - Added 08/2019 */ {"Windows 2020", NULL, 0, ACPI_OSI_WIN_10_20H1}, /* Windows 10 version 2004 - Added 08/2021 */ + {"Windows 2021", NULL, 0, ACPI_OSI_WIN_11}, /* Windows 11 - Added 01/2022 */ /* Feature Group Strings */ diff --git a/source/components/utilities/utownerid.c b/source/components/utilities/utownerid.c index 2bea3e578862..30ba6b7500a7 100644 --- a/source/components/utilities/utownerid.c +++ b/source/components/utilities/utownerid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utpredef.c b/source/components/utilities/utpredef.c index c9a830c2c5dd..7f97ee7c4e10 100644 --- a/source/components/utilities/utpredef.c +++ b/source/components/utilities/utpredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utprint.c b/source/components/utilities/utprint.c index 96a9ea5d7c28..4d9252ac5a87 100644 --- a/source/components/utilities/utprint.c +++ b/source/components/utilities/utprint.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utresdecode.c b/source/components/utilities/utresdecode.c index 561240f06724..12ab687588cc 100644 --- a/source/components/utilities/utresdecode.c +++ b/source/components/utilities/utresdecode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utresrc.c b/source/components/utilities/utresrc.c index 70e5119e807f..26c382d879a9 100644 --- a/source/components/utilities/utresrc.c +++ b/source/components/utilities/utresrc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utstate.c b/source/components/utilities/utstate.c index ac85c00203b8..f089ffeaa66b 100644 --- a/source/components/utilities/utstate.c +++ b/source/components/utilities/utstate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utstring.c b/source/components/utilities/utstring.c index 5218ebab207b..5af4c4d3624d 100644 --- a/source/components/utilities/utstring.c +++ b/source/components/utilities/utstring.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utstrsuppt.c b/source/components/utilities/utstrsuppt.c index f2a02eabb2ab..0487a4f63fdc 100644 --- a/source/components/utilities/utstrsuppt.c +++ b/source/components/utilities/utstrsuppt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utstrtoul64.c b/source/components/utilities/utstrtoul64.c index 6a121c730256..1ef50eac07cf 100644 --- a/source/components/utilities/utstrtoul64.c +++ b/source/components/utilities/utstrtoul64.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uttrack.c b/source/components/utilities/uttrack.c index b7928b155c75..7791fe9b7f73 100644 --- a/source/components/utilities/uttrack.c +++ b/source/components/utilities/uttrack.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utuuid.c b/source/components/utilities/utuuid.c index 299353ccea87..8fd85d62960e 100644 --- a/source/components/utilities/utuuid.c +++ b/source/components/utilities/utuuid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxface.c b/source/components/utilities/utxface.c index 227d18cae9a1..74a8ff485bc5 100644 --- a/source/components/utilities/utxface.c +++ b/source/components/utilities/utxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxferror.c b/source/components/utilities/utxferror.c index 0c6b1c769661..77701dfec99a 100644 --- a/source/components/utilities/utxferror.c +++ b/source/components/utilities/utxferror.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxfinit.c b/source/components/utilities/utxfinit.c index 15756cb76655..865fe9d2dee8 100644 --- a/source/components/utilities/utxfinit.c +++ b/source/components/utilities/utxfinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxfmutex.c b/source/components/utilities/utxfmutex.c index 68472b7fb376..2e77fc95ab65 100644 --- a/source/components/utilities/utxfmutex.c +++ b/source/components/utilities/utxfmutex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acapps.h b/source/include/acapps.h index 3f1833c5f996..382ab1700b34 100644 --- a/source/include/acapps.h +++ b/source/include/acapps.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -159,7 +159,7 @@ /* Common info for tool signons */ #define ACPICA_NAME "Intel ACPI Component Architecture" -#define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2021 Intel Corporation" +#define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2022 Intel Corporation" #if ACPI_MACHINE_WIDTH == 64 #define ACPI_WIDTH " (64-bit version)" diff --git a/source/include/acbuffer.h b/source/include/acbuffer.h index 1576afa6ff95..0739feb52817 100644 --- a/source/include/acbuffer.h +++ b/source/include/acbuffer.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acclib.h b/source/include/acclib.h index c91b1edf1af5..75c48119cab7 100644 --- a/source/include/acclib.h +++ b/source/include/acclib.h @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/accommon.h b/source/include/accommon.h index 4ef3f5bc1604..210035cd4961 100644 --- a/source/include/accommon.h +++ b/source/include/accommon.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acconfig.h b/source/include/acconfig.h index a580852698ab..8ba7dc28473a 100644 --- a/source/include/acconfig.h +++ b/source/include/acconfig.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acconvert.h b/source/include/acconvert.h index b654b18b4dc5..048fd53e4de2 100644 --- a/source/include/acconvert.h +++ b/source/include/acconvert.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acdebug.h b/source/include/acdebug.h index 434745d1458c..6716a094d4ad 100644 --- a/source/include/acdebug.h +++ b/source/include/acdebug.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h index 6e162d6a4c86..352417cbb69a 100644 --- a/source/include/acdisasm.h +++ b/source/include/acdisasm.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -206,6 +206,7 @@ typedef enum ACPI_DMT_FLAGS0, ACPI_DMT_FLAGS1, ACPI_DMT_FLAGS2, + ACPI_DMT_FLAGS8_2, ACPI_DMT_FLAGS4, ACPI_DMT_FLAGS4_0, ACPI_DMT_FLAGS4_4, @@ -257,6 +258,7 @@ typedef enum ACPI_DMT_AEST_RES, ACPI_DMT_AEST_XFACE, ACPI_DMT_AEST_XRUPT, + ACPI_DMT_AGDI, ACPI_DMT_ASF, ACPI_DMT_CEDT, ACPI_DMT_DMAR, @@ -280,6 +282,11 @@ typedef enum ACPI_DMT_NFIT, ACPI_DMT_NHLT1, ACPI_DMT_NHLT1a, + ACPI_DMT_NHLT1b, + ACPI_DMT_NHLT1c, + ACPI_DMT_NHLT1d, + ACPI_DMT_NHLT1e, + ACPI_DMT_NHLT1f, ACPI_DMT_PCCT, ACPI_DMT_PHAT, ACPI_DMT_PMTT, @@ -381,6 +388,8 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestVendorError[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestGicError[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXrupt[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAgdi[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoApmtNode[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[]; @@ -395,6 +404,8 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedtHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt0[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1_te[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt0[]; @@ -416,6 +427,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar4[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar5[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0a[]; @@ -522,6 +534,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt13[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt14[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt16[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt17[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[]; @@ -559,9 +572,12 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5b[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5c[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6a[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6b[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7a[]; -extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt8[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7b[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt9[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhatHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0a[]; @@ -635,6 +651,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoSvkl0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaClient[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaServer[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoTdel[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm2a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm211[]; @@ -722,6 +739,10 @@ void AcpiDmDumpAest ( ACPI_TABLE_HEADER *Table); +void +AcpiDmDumpApmt ( + ACPI_TABLE_HEADER *Table); + void AcpiDmDumpAsf ( ACPI_TABLE_HEADER *Table); @@ -882,6 +903,10 @@ void AcpiDmDumpTcpa ( ACPI_TABLE_HEADER *Table); +void +AcpiDmDumpTdel ( + ACPI_TABLE_HEADER *Table); + void AcpiDmDumpTpm2 ( ACPI_TABLE_HEADER *Table); diff --git a/source/include/acdispat.h b/source/include/acdispat.h index 2047779ff4d8..2c44c9f19613 100644 --- a/source/include/acdispat.h +++ b/source/include/acdispat.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acevents.h b/source/include/acevents.h index 77475ac98a20..f8c5d77699a0 100644 --- a/source/include/acevents.h +++ b/source/include/acevents.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -457,6 +457,13 @@ AcpiEvPciBarRegionSetup ( void *HandlerContext, void **RegionContext); +ACPI_STATUS +AcpiEvDataTableRegionSetup ( + ACPI_HANDLE Handle, + UINT32 Function, + void *HandlerContext, + void **RegionContext); + ACPI_STATUS AcpiEvDefaultRegionSetup ( ACPI_HANDLE Handle, diff --git a/source/include/acexcep.h b/source/include/acexcep.h index 6312602e9251..92e949722940 100644 --- a/source/include/acexcep.h +++ b/source/include/acexcep.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acglobal.h b/source/include/acglobal.h index 354268655220..b8831b467232 100644 --- a/source/include/acglobal.h +++ b/source/include/acglobal.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/achware.h b/source/include/achware.h index 994e9767a2ee..256008c74c7a 100644 --- a/source/include/achware.h +++ b/source/include/achware.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acinterp.h b/source/include/acinterp.h index c6e27cc21e3c..d9cec3455d7b 100644 --- a/source/include/acinterp.h +++ b/source/include/acinterp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/aclocal.h b/source/include/aclocal.h index e4f46b8877b3..74eb6e27f08c 100644 --- a/source/include/aclocal.h +++ b/source/include/aclocal.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acmacros.h b/source/include/acmacros.h index a7a79fc80e31..11fd47cc3cab 100644 --- a/source/include/acmacros.h +++ b/source/include/acmacros.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acnames.h b/source/include/acnames.h index 9075ca740116..846d192b229d 100644 --- a/source/include/acnames.h +++ b/source/include/acnames.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acnamesp.h b/source/include/acnamesp.h index 2edd99d79e11..7b8d069d6b26 100644 --- a/source/include/acnamesp.h +++ b/source/include/acnamesp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acobject.h b/source/include/acobject.h index e7d9f1c9bb61..b2c9dd9b7a0f 100644 --- a/source/include/acobject.h +++ b/source/include/acobject.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -313,6 +313,7 @@ typedef struct acpi_object_region union acpi_operand_object *Next; ACPI_PHYSICAL_ADDRESS Address; UINT32 Length; + void *Pointer; /* Only for data table regions */ } ACPI_OBJECT_REGION; diff --git a/source/include/acopcode.h b/source/include/acopcode.h index 91cce057b1ea..7e54a47f7063 100644 --- a/source/include/acopcode.h +++ b/source/include/acopcode.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acoutput.h b/source/include/acoutput.h index b72c9a949620..cd3d26d52a22 100644 --- a/source/include/acoutput.h +++ b/source/include/acoutput.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acparser.h b/source/include/acparser.h index 94674d8cbe68..4437d612ea63 100644 --- a/source/include/acparser.h +++ b/source/include/acparser.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acpi.h b/source/include/acpi.h index 0a50a44340ff..081e3b7d2ea7 100644 --- a/source/include/acpi.h +++ b/source/include/acpi.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acpiosxf.h b/source/include/acpiosxf.h index af90cb9ce49f..67c110136a54 100644 --- a/source/include/acpiosxf.h +++ b/source/include/acpiosxf.h @@ -10,7 +10,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acpixf.h b/source/include/acpixf.h index 7f4b31ee45a8..f62c16cbd40e 100644 --- a/source/include/acpixf.h +++ b/source/include/acpixf.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20210930 +#define ACPI_CA_VERSION 0x20220331 #include "acconfig.h" #include "actypes.h" @@ -658,8 +658,12 @@ AcpiDecodePldBuffer ( ACPI_EXTERNAL_RETURN_STATUS ( ACPI_STATUS ACPI_INIT_FUNCTION AcpiInstallTable ( - ACPI_PHYSICAL_ADDRESS Address, - BOOLEAN Physical)) + ACPI_TABLE_HEADER *Table)) + +ACPI_EXTERNAL_RETURN_STATUS ( +ACPI_STATUS ACPI_INIT_FUNCTION +AcpiInstallPhysicalTable ( + ACPI_PHYSICAL_ADDRESS Address)) ACPI_EXTERNAL_RETURN_STATUS ( ACPI_STATUS diff --git a/source/include/acpredef.h b/source/include/acpredef.h index bc55155cfa99..9ad8c0ffcc38 100644 --- a/source/include/acpredef.h +++ b/source/include/acpredef.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acresrc.h b/source/include/acresrc.h index 816d4fa4383f..8214ed835c5b 100644 --- a/source/include/acresrc.h +++ b/source/include/acresrc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acrestyp.h b/source/include/acrestyp.h index 3c258de9de32..f045c2000b71 100644 --- a/source/include/acrestyp.h +++ b/source/include/acrestyp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acstruct.h b/source/include/acstruct.h index c07a319d4027..d50c7a1b6468 100644 --- a/source/include/acstruct.h +++ b/source/include/acstruct.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actables.h b/source/include/actables.h index 038085c8761f..40b79a47c219 100644 --- a/source/include/actables.h +++ b/source/include/actables.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -193,7 +193,8 @@ ACPI_STATUS AcpiTbAcquireTempTable ( ACPI_TABLE_DESC *TableDesc, ACPI_PHYSICAL_ADDRESS Address, - UINT8 Flags); + UINT8 Flags, + ACPI_TABLE_HEADER *Table); void AcpiTbReleaseTempTable ( @@ -279,6 +280,7 @@ ACPI_STATUS AcpiTbInstallStandardTable ( ACPI_PHYSICAL_ADDRESS Address, UINT8 Flags, + ACPI_TABLE_HEADER *Table, BOOLEAN Reload, BOOLEAN Override, UINT32 *TableIndex); @@ -296,6 +298,7 @@ ACPI_STATUS AcpiTbInstallAndLoadTable ( ACPI_PHYSICAL_ADDRESS Address, UINT8 Flags, + ACPI_TABLE_HEADER *Table, BOOLEAN Override, UINT32 *TableIndex); diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h index 8a9ff736c9da..633f7349b390 100644 --- a/source/include/actbinfo.h +++ b/source/include/actbinfo.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -152,6 +152,7 @@ /* * Macros used to generate offsets to specific table fields */ +#define ACPI_AGDI_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_AGDI,f) #define ACPI_FACS_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_FACS,f) #define ACPI_GAS_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_GENERIC_ADDRESS,f) #define ACPI_HDR_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_HEADER,f) @@ -197,6 +198,7 @@ #define ACPI_STAO_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_STAO,f) #define ACPI_SVKL_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_SVKL,f) #define ACPI_TCPA_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TCPA_HDR,f) +#define ACPI_TDEL_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TDEL,f) #define ACPI_TPM2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TPM2,f) #define ACPI_TPM23_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TPM23,f) #define ACPI_UEFI_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_UEFI,f) @@ -223,6 +225,7 @@ #define ACPI_AEST4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_GIC,f) #define ACPI_AEST0D_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERFACE,f) #define ACPI_AEST0E_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERRUPT,f) +#define ACPI_APMTN_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_APMT_NODE,f) #define ACPI_ASF0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_INFO,f) #define ACPI_ASF1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_ALERT,f) #define ACPI_ASF1a_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_ALERT_DATA,f) @@ -232,6 +235,8 @@ #define ACPI_ASF4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_ADDRESS,f) #define ACPI_CEDT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_HEADER, f) #define ACPI_CEDT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CHBS, f) +#define ACPI_CEDT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CFMWS, f) +#define ACPI_CEDT1_TE_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CFMWS_TARGET_ELEMENT, f) #define ACPI_CPEP0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CPEP_POLLING,f) #define ACPI_CSRT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CSRT_GROUP,f) #define ACPI_CSRT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CSRT_SHARED_INFO,f) @@ -243,6 +248,7 @@ #define ACPI_DMAR2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DMAR_ATSR,f) #define ACPI_DMAR3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DMAR_RHSA,f) #define ACPI_DMAR4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DMAR_ANDD,f) +#define ACPI_DMAR5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DMAR_SATC,f) #define ACPI_DRTM0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DRTM_VTABLE_LIST,f) #define ACPI_DRTM1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DRTM_RESOURCE_LIST,f) #define ACPI_DRTM1a_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DRTM_RESOURCE,f) @@ -312,6 +318,7 @@ #define ACPI_MADT14_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_REDISTRIBUTOR,f) #define ACPI_MADT15_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_TRANSLATOR,f) #define ACPI_MADT16_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_MULTIPROC_WAKEUP,f) +#define ACPI_MADT17_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_OEM_DATA,f) #define ACPI_MADTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SUBTABLE_HEADER,f) #define ACPI_MCFG0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MCFG_ALLOCATION,f) #define ACPI_MPST0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPST_POWER_NODE,f) @@ -339,9 +346,11 @@ #define ACPI_NHLT5B_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B,f) #define ACPI_NHLT5C_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_C,f) #define ACPI_NHLT6_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_VENDOR_MIC_CONFIG,f) -#define ACPI_NHLT7_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_LINUX_SPECIFIC_COUNT,f) -#define ACPI_NHLT7A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_LINUX_SPECIFIC_DATA,f) -#define ACPI_NHLT8_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_TABLE_TERMINATOR,f) +#define ACPI_NHLT6A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_VENDOR_MIC_COUNT,f) +#define ACPI_NHLT6B_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_RENDER_FEEDBACK_DEVICE_SPECIFIC_CONFIG,f) +#define ACPI_NHLT7_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_DEVICE_INFO_COUNT,f) +#define ACPI_NHLT7A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_DEVICE_INFO,f) +#define ACPI_NHLT9_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_MIC_SNR_SENSITIVITY_EXTENSION,f) #define ACPI_PCCT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PCCT_SUBSPACE,f) #define ACPI_PCCT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PCCT_HW_REDUCED,f) #define ACPI_PCCT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PCCT_HW_REDUCED_TYPE2,f) @@ -408,6 +417,8 @@ #define ACPI_AEST0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_AEST_PROCESSOR,f,o) #define ACPI_AEST0D_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_AEST_NODE_INTERFACE,f,o) #define ACPI_AEST0E_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_AEST_NODE_INTERRUPT,f,o) +#define ACPI_AGDI_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_AGDI,f,o) +#define ACPI_APMTN_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_APMT_NODE,f,o) #define ACPI_BGRT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_BGRT,f,o) #define ACPI_DRTM_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_DRTM,f,o) #define ACPI_DRTM1a_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_DRTM_RESOURCE,f,o) diff --git a/source/include/actbl.h b/source/include/actbl.h index f70f1b5909ed..f23080fb4f80 100644 --- a/source/include/actbl.h +++ b/source/include/actbl.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actbl1.h b/source/include/actbl1.h index 09e68293ada2..3de78b0d8f01 100644 --- a/source/include/actbl1.h +++ b/source/include/actbl1.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -574,17 +574,23 @@ typedef struct acpi_cedt_cfmws } ACPI_CEDT_CFMWS; +typedef struct acpi_cedt_cfmws_target_element +{ + UINT32 InterleaveTarget; + +} ACPI_CEDT_CFMWS_TARGET_ELEMENT; + /* Values for Interleave Arithmetic field above */ -#define ACPI_CEDT_CFMWS_ARITHMETIC_MODULO (0) +#define ACPI_CEDT_CFMWS_ARITHMETIC_MODULO (0) /* Values for Restrictions field above */ -#define ACPI_CEDT_CFMWS_RESTRICT_TYPE2 (1) -#define ACPI_CEDT_CFMWS_RESTRICT_TYPE3 (1<<1) -#define ACPI_CEDT_CFMWS_RESTRICT_VOLATILE (1<<2) -#define ACPI_CEDT_CFMWS_RESTRICT_PMEM (1<<3) -#define ACPI_CEDT_CFMWS_RESTRICT_FIXED (1<<4) +#define ACPI_CEDT_CFMWS_RESTRICT_TYPE2 (1) +#define ACPI_CEDT_CFMWS_RESTRICT_TYPE3 (1<<1) +#define ACPI_CEDT_CFMWS_RESTRICT_VOLATILE (1<<2) +#define ACPI_CEDT_CFMWS_RESTRICT_PMEM (1<<3) +#define ACPI_CEDT_CFMWS_RESTRICT_FIXED (1<<4) /******************************************************************************* @@ -847,7 +853,8 @@ enum AcpiDmarType ACPI_DMAR_TYPE_ROOT_ATS = 2, ACPI_DMAR_TYPE_HARDWARE_AFFINITY = 3, ACPI_DMAR_TYPE_NAMESPACE = 4, - ACPI_DMAR_TYPE_RESERVED = 5 /* 5 and greater are reserved */ + ACPI_DMAR_TYPE_SATC = 5, + ACPI_DMAR_TYPE_RESERVED = 6 /* 6 and greater are reserved */ }; @@ -962,6 +969,18 @@ typedef struct acpi_dmar_andd } ACPI_DMAR_ANDD; +/* 5: SoC Integrated Address Translation Cache (SATC) */ + +typedef struct acpi_dmar_satc +{ + ACPI_DMAR_HEADER Header; + UINT8 Flags; + UINT8 Reserved; + UINT16 Segment; + +} ACPI_DMAR_SATC + +; /******************************************************************************* * * DRTM - Dynamic Root of Trust for Measurement table diff --git a/source/include/actbl2.h b/source/include/actbl2.h index 0c80aae24f99..3032c5e25003 100644 --- a/source/include/actbl2.h +++ b/source/include/actbl2.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -168,6 +168,8 @@ * file. Useful because they make it more difficult to inadvertently type in * the wrong signature. */ +#define ACPI_SIG_AGDI "AGDI" /* Arm Generic Diagnostic Dump and Reset Device Interface */ +#define ACPI_SIG_APMT "APMT" /* Arm Performance Monitoring Unit table */ #define ACPI_SIG_BDAT "BDAT" /* BIOS Data ACPI Table */ #define ACPI_SIG_IORT "IORT" /* IO Remapping Table */ #define ACPI_SIG_IVRS "IVRS" /* I/O Virtualization Reporting Structure */ @@ -192,6 +194,7 @@ #define ACPI_SIG_SDEI "SDEI" /* Software Delegated Exception Interface Table */ #define ACPI_SIG_SDEV "SDEV" /* Secure Devices table */ #define ACPI_SIG_SVKL "SVKL" /* Storage Volume Key Location Table */ +#define ACPI_SIG_TDEL "TDEL" /* TD Event Log Table */ /* @@ -309,7 +312,7 @@ typedef struct acpi_aest_processor_tlb typedef struct acpi_aest_processor_generic { - UINT8 *Resource; + UINT32 Resource; } ACPI_AEST_PROCESSOR_GENERIC; @@ -400,6 +403,108 @@ typedef struct acpi_aest_node_interrupt #define ACPI_AEST_XRUPT_RESERVED 2 /* 2 and above are reserved */ +/******************************************************************************* + * AGDI - Arm Generic Diagnostic Dump and Reset Device Interface + * + * Conforms to "ACPI for Arm Components 1.1, Platform Design Document" + * ARM DEN0093 v1.1 + * + ******************************************************************************/ +typedef struct acpi_table_agdi +{ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + UINT8 Flags; + UINT8 Reserved[3]; + UINT32 SdeiEvent; + UINT32 Gsiv; + +} ACPI_TABLE_AGDI; + +/* Mask for Flags field above */ + +#define ACPI_AGDI_SIGNALING_MODE (1) + + +/******************************************************************************* + * + * APMT - ARM Performance Monitoring Unit Table + * + * Conforms to: + * ARM Performance Monitoring Unit Architecture 1.0 Platform Design Document + * ARM DEN0117 v1.0 November 25, 2021 + * + ******************************************************************************/ + +typedef struct acpi_table_apmt { + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ +} ACPI_TABLE_APMT; + +#define ACPI_APMT_NODE_ID_LENGTH 4 + +/* + * APMT subtables + */ +typedef struct acpi_apmt_node { + UINT16 Length; + UINT8 Flags; + UINT8 Type; + UINT32 Id; + UINT64 InstPrimary; + UINT32 InstSecondary; + UINT64 BaseAddress0; + UINT64 BaseAddress1; + UINT32 OvflwIrq; + UINT32 Reserved; + UINT32 OvflwIrqFlags; + UINT32 ProcAffinity; + UINT32 ImplId; +} ACPI_APMT_NODE; + +/* Masks for Flags field above */ + +#define ACPI_APMT_FLAGS_DUAL_PAGE (1<<0) +#define ACPI_APMT_FLAGS_AFFINITY (1<<1) +#define ACPI_APMT_FLAGS_ATOMIC (1<<2) + +/* Values for Flags dual page field above */ + +#define ACPI_APMT_FLAGS_DUAL_PAGE_NSUPP (0<<0) +#define ACPI_APMT_FLAGS_DUAL_PAGE_SUPP (1<<0) + +/* Values for Flags processor affinity field above */ +#define ACPI_APMT_FLAGS_AFFINITY_PROC (0<<1) +#define ACPI_APMT_FLAGS_AFFINITY_PROC_CONTAINER (1<<1) + +/* Values for Flags 64-bit atomic field above */ +#define ACPI_APMT_FLAGS_ATOMIC_NSUPP (0<<2) +#define ACPI_APMT_FLAGS_ATOMIC_SUPP (1<<2) + +/* Values for Type field above */ + +enum acpi_apmt_node_type { + ACPI_APMT_NODE_TYPE_MC = 0x00, + ACPI_APMT_NODE_TYPE_SMMU = 0x01, + ACPI_APMT_NODE_TYPE_PCIE_ROOT = 0x02, + ACPI_APMT_NODE_TYPE_ACPI = 0x03, + ACPI_APMT_NODE_TYPE_CACHE = 0x04, + ACPI_APMT_NODE_TYPE_COUNT +}; + +/* Masks for ovflw_irq_flags field above */ + +#define ACPI_APMT_OVFLW_IRQ_FLAGS_MODE (1<<0) +#define ACPI_APMT_OVFLW_IRQ_FLAGS_TYPE (1<<1) + +/* Values for ovflw_irq_flags mode field above */ + +#define ACPI_APMT_OVFLW_IRQ_FLAGS_MODE_LEVEL (0<<0) +#define ACPI_APMT_OVFLW_IRQ_FLAGS_MODE_EDGE (1<<0) + +/* Values for ovflw_irq_flags type field above */ + +#define ACPI_APMT_OVFLW_IRQ_FLAGS_TYPE_WIRED (0<<1) + + /******************************************************************************* * * BDAT - BIOS Data ACPI Table @@ -422,7 +527,7 @@ typedef struct acpi_table_bdat * IORT - IO Remapping Table * * Conforms to "IO Remapping Table System Software on ARM Platforms", - * Document number: ARM DEN 0049E.b, Feb 2021 + * Document number: ARM DEN 0049E.d, Feb 2022 * ******************************************************************************/ @@ -538,7 +643,8 @@ typedef struct acpi_iort_root_complex UINT32 AtsAttribute; UINT32 PciSegmentNumber; UINT8 MemoryAddressLimit; /* Memory address size limit */ - UINT8 Reserved[3]; /* Reserved, must be zero */ + UINT16 PasidCapabilities; /* PASID Capabilities */ + UINT8 Reserved[1]; /* Reserved, must be zero */ } ACPI_IORT_ROOT_COMPLEX; @@ -548,6 +654,8 @@ typedef struct acpi_iort_root_complex #define ACPI_IORT_PRI_SUPPORTED (1<<1) /* The root complex PRI support */ #define ACPI_IORT_PASID_FWD_SUPPORTED (1<<2) /* The root complex PASID forward support */ +/* Masks for PasidCapabilities field above */ +#define ACPI_IORT_PASID_MAX_WIDTH (0x1F) /* Bits 0-4 */ typedef struct acpi_iort_smmu { @@ -634,6 +742,25 @@ typedef struct acpi_iort_rmr { } ACPI_IORT_RMR; +/* Masks for Flags field above */ +#define ACPI_IORT_RMR_REMAP_PERMITTED (1) +#define ACPI_IORT_RMR_ACCESS_PRIVILEGE (1<<1) + +/* + * Macro to access the Access Attributes in flags field above: + * Access Attributes is encoded in bits 9:2 + */ +#define ACPI_IORT_RMR_ACCESS_ATTRIBUTES(flags) (((flags) >> 2) & 0xFF) + +/* Values for above Access Attributes */ + +#define ACPI_IORT_RMR_ATTR_DEVICE_NGNRNE 0x00 +#define ACPI_IORT_RMR_ATTR_DEVICE_NGNRE 0x01 +#define ACPI_IORT_RMR_ATTR_DEVICE_NGRE 0x02 +#define ACPI_IORT_RMR_ATTR_DEVICE_GRE 0x03 +#define ACPI_IORT_RMR_ATTR_NORMAL_NC 0x04 +#define ACPI_IORT_RMR_ATTR_NORMAL_IWB_OWB 0x05 + typedef struct acpi_iort_rmr_desc { UINT64 BaseAddress; UINT64 Length; @@ -980,7 +1107,8 @@ enum AcpiMadtType ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14, ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15, ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16, - ACPI_MADT_TYPE_RESERVED = 17 /* 17 and greater are reserved */ + ACPI_MADT_TYPE_RESERVED = 17, /* 17 to 0x7F are reserved */ + ACPI_MADT_TYPE_OEM_RESERVED = 0x80 /* 0x80 to 0xFF are reserved for OEM use */ }; @@ -1247,8 +1375,8 @@ typedef struct acpi_madt_multiproc_wakeup } ACPI_MADT_MULTIPROC_WAKEUP; -#define ACPI_MULTIPROC_WAKEUP_MB_OS_SIZE 2032 -#define ACPI_MULTIPROC_WAKEUP_MB_FIRMWARE_SIZE 2048 +#define ACPI_MULTIPROC_WAKEUP_MB_OS_SIZE 2032 +#define ACPI_MULTIPROC_WAKEUP_MB_FIRMWARE_SIZE 2048 typedef struct acpi_madt_multiproc_wakeup_mailbox { @@ -1263,6 +1391,13 @@ typedef struct acpi_madt_multiproc_wakeup_mailbox #define ACPI_MP_WAKE_COMMAND_WAKEUP 1 +/* 17: OEM data */ + +typedef struct acpi_madt_oem_data +{ + UINT8 OemData[0]; +} ACPI_MADT_OEM_DATA; + /* * Common flags fields for MADT subtables @@ -1796,6 +1931,12 @@ typedef struct acpi_table_nhlt } ACPI_TABLE_NHLT; +typedef struct acpi_table_nhlt_endpoint_count +{ + UINT8 EndpointCount; + +} ACPI_TABLE_NHLT_ENDPOINT_COUNT; + typedef struct acpi_nhlt_endpoint { UINT32 DescriptorLength; @@ -1852,6 +1993,8 @@ typedef struct acpi_nhlt_endpoint #define ACPI_NHLT_DIR_RENDER_FEEDBACK 3 #define ACPI_NHLT_DIR_RESERVED 4 /* 4 and above are reserved */ +/* Capabilities = 2 */ + typedef struct acpi_nhlt_device_specific_config { UINT32 CapabilitiesSize; @@ -1860,6 +2003,8 @@ typedef struct acpi_nhlt_device_specific_config } ACPI_NHLT_DEVICE_SPECIFIC_CONFIG; +/* Capabilities = 3 */ + typedef struct acpi_nhlt_device_specific_config_a { UINT32 CapabilitiesSize; @@ -1869,14 +2014,24 @@ typedef struct acpi_nhlt_device_specific_config_a } ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A; +/* Capabilities = 3 */ + +typedef struct acpi_nhlt_device_specific_config_d +{ + UINT8 VirtualSlot; + UINT8 ConfigType; + UINT8 ArrayType; + +} ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_D; + /* Values for Config Type above */ -#define ACPI_NHLT_TYPE_MIC_ARRAY 0x01 -#define ACPI_NHLT_TYPE_GENERIC 0x00 +#define ACPI_NHLT_CONFIG_TYPE_GENERIC 0x00 +#define ACPI_NHLT_CONFIG_TYPE_MIC_ARRAY 0x01 +#define ACPI_NHLT_CONFIG_TYPE_RENDER_FEEDBACK 0x03 +#define ACPI_NHLT_CONFIG_TYPE_RESERVED 0x04 /* 4 and above are reserved */ -/* Mask for Extension field of ArrayType */ - -#define ACPI_NHLT_ARRAY_TYPE_MASK 0x10 +/* Capabilities = 0 */ typedef struct acpi_nhlt_device_specific_config_b { @@ -1884,6 +2039,8 @@ typedef struct acpi_nhlt_device_specific_config_b } ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B; +/* Capabilities = 1 */ + typedef struct acpi_nhlt_device_specific_config_c { UINT32 CapabilitiesSize; @@ -1891,6 +2048,13 @@ typedef struct acpi_nhlt_device_specific_config_c } ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_C; +typedef struct acpi_nhlt_render_device_specific_config +{ + UINT32 CapabilitiesSize; + UINT8 VirtualSlot; + +} ACPI_NHLT_RENDER_DEVICE_SPECIFIC_CONFIG; + typedef struct acpi_nhlt_wave_extensible { UINT16 FormatTag; @@ -1963,61 +2127,70 @@ typedef struct acpi_nhlt_mic_device_specific_config /* Values for ArrayTypeExt above */ -#define SMALL_LINEAR_2ELEMENT 0x0A -#define BIG_LINEAR_2ELEMENT 0x0B -#define FIRST_GEOMETRY_LINEAR_4ELEMENT 0x0C -#define PLANAR_LSHAPED_4ELEMENT 0x0D -#define SECOND_GEOMETRY_LINEAR_4ELEMENT 0x0E -#define VENDOR_DEFINED 0x0F -#define ARRAY_TYPE_MASK 0x0F -#define ARRAY_TYPE_EXT_MASK 0x10 +#define ACPI_NHLT_ARRAY_TYPE_RESERVED 0x09 /* 9 and below are reserved */ +#define ACPI_NHLT_SMALL_LINEAR_2ELEMENT 0x0A +#define ACPI_NHLT_BIG_LINEAR_2ELEMENT 0x0B +#define ACPI_NHLT_FIRST_GEOMETRY_LINEAR_4ELEMENT 0x0C +#define ACPI_NHLT_PLANAR_LSHAPED_4ELEMENT 0x0D +#define ACPI_NHLT_SECOND_GEOMETRY_LINEAR_4ELEMENT 0x0E +#define ACPI_NHLT_VENDOR_DEFINED 0x0F +#define ACPI_NHLT_ARRAY_TYPE_MASK 0x0F +#define ACPI_NHLT_ARRAY_TYPE_EXT_MASK 0x10 -#define NO_EXTENSION 0x0 -#define MIC_SNR_SENSITIVITY_EXT 0x1 +#define ACPI_NHLT_NO_EXTENSION 0x0 +#define ACPI_NHLT_MIC_SNR_SENSITIVITY_EXT (1<<4) +typedef struct acpi_nhlt_vendor_mic_count +{ + UINT8 MicrophoneCount; + +} ACPI_NHLT_VENDOR_MIC_COUNT; typedef struct acpi_nhlt_vendor_mic_config { UINT8 Type; UINT8 Panel; - UINT16 SpeakerPositionDistance; // mm - UINT16 HorizontalOffset; // mm - UINT16 VerticalOffset; // mm - UINT8 FrequencyLowBand; // 5*Hz - UINT8 FrequencyHighBand; // 500*Hz - UINT16 DirectionAngle; // -180 - + 180 - UINT16 ElevationAngle; // -180 - + 180 - UINT16 WorkVerticalAngleBegin; // -180 - + 180 with 2 deg step - UINT16 WorkVerticalAngleEnd; // -180 - + 180 with 2 deg step - UINT16 WorkHorizontalAngleBegin; // -180 - + 180 with 2 deg step - UINT16 WorkHorizontalAngleEnd; // -180 - + 180 with 2 deg step + UINT16 SpeakerPositionDistance; /* mm */ + UINT16 HorizontalOffset; /* mm */ + UINT16 VerticalOffset; /* mm */ + UINT8 FrequencyLowBand; /* 5*Hz */ + UINT8 FrequencyHighBand; /* 500*Hz */ + UINT16 DirectionAngle; /* -180 - + 180 */ + UINT16 ElevationAngle; /* -180 - + 180 */ + UINT16 WorkVerticalAngleBegin; /* -180 - + 180 with 2 deg step */ + UINT16 WorkVerticalAngleEnd; /* -180 - + 180 with 2 deg step */ + UINT16 WorkHorizontalAngleBegin; /* -180 - + 180 with 2 deg step */ + UINT16 WorkHorizontalAngleEnd; /* -180 - + 180 with 2 deg step */ } ACPI_NHLT_VENDOR_MIC_CONFIG; /* Values for Type field above */ -#define MIC_OMNIDIRECTIONAL 0 -#define MIC_SUBCARDIOID 1 -#define MIC_CARDIOID 2 -#define MIC_SUPER_CARDIOID 3 -#define MIC_HYPER_CARDIOID 4 -#define MIC_8_SHAPED 5 -#define MIC_VENDOR_DEFINED 7 +#define ACPI_NHLT_MIC_OMNIDIRECTIONAL 0 +#define ACPI_NHLT_MIC_SUBCARDIOID 1 +#define ACPI_NHLT_MIC_CARDIOID 2 +#define ACPI_NHLT_MIC_SUPER_CARDIOID 3 +#define ACPI_NHLT_MIC_HYPER_CARDIOID 4 +#define ACPI_NHLT_MIC_8_SHAPED 5 +#define ACPI_NHLT_MIC_RESERVED6 6 /* 6 is reserved */ +#define ACPI_NHLT_MIC_VENDOR_DEFINED 7 +#define ACPI_NHLT_MIC_RESERVED 8 /* 8 and above are reserved */ /* Values for Panel field above */ -#define MIC_TOP 0 -#define MIC_BOTTOM 1 -#define MIC_LEFT 2 -#define MIC_RIGHT 3 -#define MIC_FRONT 4 -#define MIC_REAR 5 +#define ACPI_NHLT_MIC_POSITION_TOP 0 +#define ACPI_NHLT_MIC_POSITION_BOTTOM 1 +#define ACPI_NHLT_MIC_POSITION_LEFT 2 +#define ACPI_NHLT_MIC_POSITION_RIGHT 3 +#define ACPI_NHLT_MIC_POSITION_FRONT 4 +#define ACPI_NHLT_MIC_POSITION_BACK 5 +#define ACPI_NHLT_MIC_POSITION_RESERVED 6 /* 6 and above are reserved */ typedef struct acpi_nhlt_vendor_mic_device_specific_config { ACPI_NHLT_MIC_DEVICE_SPECIFIC_CONFIG MicArrayDeviceConfig; UINT8 NumberOfMicrophones; - ACPI_NHLT_VENDOR_MIC_CONFIG MicConfig[]; // Indexed by NumberOfMicrophones + ACPI_NHLT_VENDOR_MIC_CONFIG MicConfig[]; /* Indexed by NumberOfMicrophones */ } ACPI_NHLT_VENDOR_MIC_DEVICE_SPECIFIC_CONFIG; @@ -2030,38 +2203,31 @@ typedef struct acpi_nhlt_mic_snr_sensitivity_extension } ACPI_NHLT_MIC_SNR_SENSITIVITY_EXTENSION; +/* Render device with feedback */ + typedef struct acpi_nhlt_render_feedback_device_specific_config { - ACPI_NHLT_DEVICE_SPECIFIC_CONFIG DeviceConfig; - UINT8 FeedbackVirtualSlot; // Render slot in case of capture - UINT16 FeedbackChannels; // Informative only + UINT8 FeedbackVirtualSlot; /* Render slot in case of capture */ + UINT16 FeedbackChannels; /* Informative only */ UINT16 FeedbackValidBitsPerSample; } ACPI_NHLT_RENDER_FEEDBACK_DEVICE_SPECIFIC_CONFIG; -/* Linux-specific structures */ +/* Non documented structures */ -typedef struct acpi_nhlt_linux_specific_count +typedef struct acpi_nhlt_device_info_count { UINT8 StructureCount; -} ACPI_NHLT_LINUX_SPECIFIC_COUNT; +} ACPI_NHLT_DEVICE_INFO_COUNT; -typedef struct acpi_nhlt_linux_specific_data +typedef struct acpi_nhlt_device_info { UINT8 DeviceId[16]; UINT8 DeviceInstanceId; UINT8 DevicePortId; - UINT8 Filler[18]; -} ACPI_NHLT_LINUX_SPECIFIC_DATA; - -typedef struct acpi_nhlt_table_terminator -{ - UINT32 TerminatorValue; - UINT32 TerminatorSignature; - -} ACPI_NHLT_TABLE_TERMINATOR; +} ACPI_NHLT_DEVICE_INFO; /******************************************************************************* @@ -2639,8 +2805,8 @@ typedef struct acpi_table_prmt_header typedef struct acpi_prmt_module_header { - UINT16 Revision; - UINT16 Length; + UINT16 Revision; + UINT16 Length; } ACPI_PRMT_MODULE_HEADER; @@ -2794,7 +2960,7 @@ typedef struct acpi_table_rgrt UINT16 Version; UINT8 ImageType; UINT8 Reserved; - UINT8 Image[0]; + UINT8 Image[]; } ACPI_TABLE_RGRT; @@ -3008,6 +3174,24 @@ enum acpi_svkl_format }; +/******************************************************************************* + * + * TDEL - TD-Event Log + * From: "Guest-Host-Communication Interface (GHCI) for Intel + * Trust Domain Extensions (Intel TDX)". + * September 2020 + * + ******************************************************************************/ + +typedef struct acpi_table_tdel +{ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + UINT32 Reserved; + UINT64 LogAreaMinimumLength; + UINT64 LogAreaStartAddress; + +} ACPI_TABLE_TDEL; + /* Reset to default packing */ #pragma pack() diff --git a/source/include/actbl3.h b/source/include/actbl3.h index 40cf71306af4..7cc633a27b7c 100644 --- a/source/include/actbl3.h +++ b/source/include/actbl3.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actypes.h b/source/include/actypes.h index 5138342c990a..99588f6717a0 100644 --- a/source/include/actypes.h +++ b/source/include/actypes.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -658,9 +658,12 @@ typedef UINT64 ACPI_INTEGER; /* Pointer/Integer type conversions */ #define ACPI_TO_POINTER(i) ACPI_CAST_PTR (void, (ACPI_SIZE) (i)) +#ifndef ACPI_TO_INTEGER #define ACPI_TO_INTEGER(p) ACPI_PTR_DIFF (p, (void *) 0) +#endif +#ifndef ACPI_OFFSET #define ACPI_OFFSET(d, f) ACPI_PTR_DIFF (&(((d *) 0)->f), (void *) 0) -#define ACPI_PHYSADDR_TO_PTR(i) ACPI_TO_POINTER(i) +#endif #define ACPI_PTR_TO_PHYSADDR(i) ACPI_TO_INTEGER(i) /* Optimizations for 4-character (32-bit) ACPI_NAME manipulation */ @@ -687,9 +690,14 @@ typedef UINT64 ACPI_INTEGER; * Can be used with AccessSize field of ACPI_GENERIC_ADDRESS and * ACPI_RESOURCE_GENERIC_REGISTER. */ -#define ACPI_ACCESS_BIT_WIDTH(AccessSize) (1 << ((AccessSize) + 2)) -#define ACPI_ACCESS_BYTE_WIDTH(AccessSize) (1 << ((AccessSize) - 1)) - +#define ACPI_ACCESS_BIT_SHIFT 2 +#define ACPI_ACCESS_BYTE_SHIFT -1 +#define ACPI_ACCESS_BIT_MAX (31 - ACPI_ACCESS_BIT_SHIFT) +#define ACPI_ACCESS_BYTE_MAX (31 - ACPI_ACCESS_BYTE_SHIFT) +#define ACPI_ACCESS_BIT_DEFAULT (8 - ACPI_ACCESS_BIT_SHIFT) +#define ACPI_ACCESS_BYTE_DEFAULT (8 - ACPI_ACCESS_BYTE_SHIFT) +#define ACPI_ACCESS_BIT_WIDTH(size) (1 << ((size) + ACPI_ACCESS_BIT_SHIFT)) +#define ACPI_ACCESS_BYTE_WIDTH(size) (1 << ((size) + ACPI_ACCESS_BYTE_SHIFT)) /******************************************************************************* * @@ -1319,6 +1327,14 @@ typedef struct acpi_connection_info } ACPI_CONNECTION_INFO; +/* Special Context data for PCC Opregion (ACPI 6.3) */ + +typedef struct acpi_pcc_info { + UINT8 SubspaceId; + UINT16 Length; + UINT8 *InternalBuffer; +} ACPI_PCC_INFO; + typedef ACPI_STATUS (*ACPI_ADR_SPACE_SETUP) ( @@ -1458,6 +1474,12 @@ typedef struct acpi_mem_space_context } ACPI_MEM_SPACE_CONTEXT; +typedef struct acpi_data_table_space_context +{ + void *Pointer; + +} ACPI_DATA_TABLE_MAPPING; + /* * ACPI_MEMORY_LIST is used only if the ACPICA local cache is enabled @@ -1532,6 +1554,7 @@ typedef enum #define ACPI_OSI_WIN_10_RS5 0x13 #define ACPI_OSI_WIN_10_19H1 0x14 #define ACPI_OSI_WIN_10_20H1 0x15 +#define ACPI_OSI_WIN_11 0x16 /* Definitions of getopt */ diff --git a/source/include/acutils.h b/source/include/acutils.h index 791b7d9ce562..f23ee559b71b 100644 --- a/source/include/acutils.h +++ b/source/include/acutils.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acuuid.h b/source/include/acuuid.h index 48f4c9a1c346..bc41fa40bab9 100644 --- a/source/include/acuuid.h +++ b/source/include/acuuid.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/amlcode.h b/source/include/amlcode.h index f7ad22a18120..25d591e55d95 100644 --- a/source/include/amlcode.h +++ b/source/include/amlcode.h @@ -10,7 +10,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/amlresrc.h b/source/include/amlresrc.h index a97a1c63259d..e89cd824d11d 100644 --- a/source/include/amlresrc.h +++ b/source/include/amlresrc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/accygwin.h b/source/include/platform/accygwin.h index 1eec32ac34cb..217237d9ba82 100644 --- a/source/include/platform/accygwin.h +++ b/source/include/platform/accygwin.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acdragonflyex.h b/source/include/platform/acdragonflyex.h index 6c11c1773f05..ba3ef0168422 100644 --- a/source/include/platform/acdragonflyex.h +++ b/source/include/platform/acdragonflyex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acefi.h b/source/include/platform/acefi.h index c61798fd4268..fefcca84311d 100644 --- a/source/include/platform/acefi.h +++ b/source/include/platform/acefi.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acefiex.h b/source/include/platform/acefiex.h index f0ae56cc8f62..83aa907b6013 100644 --- a/source/include/platform/acefiex.h +++ b/source/include/platform/acefiex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acenv.h b/source/include/platform/acenv.h index 740d449556e8..674c4c7d02c3 100644 --- a/source/include/platform/acenv.h +++ b/source/include/platform/acenv.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acenvex.h b/source/include/platform/acenvex.h index 42bb49010bdf..32db36c6e86c 100644 --- a/source/include/platform/acenvex.h +++ b/source/include/platform/acenvex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acfreebsd.h b/source/include/platform/acfreebsd.h index 91e468795cfd..fdf99082530d 100644 --- a/source/include/platform/acfreebsd.h +++ b/source/include/platform/acfreebsd.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acgcc.h b/source/include/platform/acgcc.h index 148190a3a6a5..3ad22a1f8ac1 100644 --- a/source/include/platform/acgcc.h +++ b/source/include/platform/acgcc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acgccex.h b/source/include/platform/acgccex.h index 61d428524f8a..035b999d95c3 100644 --- a/source/include/platform/acgccex.h +++ b/source/include/platform/acgccex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/achaiku.h b/source/include/platform/achaiku.h index b7ec29f47d5d..81c1927ccc7f 100644 --- a/source/include/platform/achaiku.h +++ b/source/include/platform/achaiku.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acintel.h b/source/include/platform/acintel.h index 352c628cd887..889c7594ef73 100644 --- a/source/include/platform/acintel.h +++ b/source/include/platform/acintel.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/aclinux.h b/source/include/platform/aclinux.h index 17fd5113112f..1c55c659f357 100644 --- a/source/include/platform/aclinux.h +++ b/source/include/platform/aclinux.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -252,6 +252,11 @@ #define ACPI_SPINLOCK spinlock_t * #define ACPI_CPU_FLAGS unsigned long +#define ACPI_UINTPTR_T uintptr_t + +#define ACPI_TO_INTEGER(p) ((uintptr_t)(p)) +#define ACPI_OFFSET(d, f) offsetof(d, f) + /* Use native linux version of AcpiOsAllocateZeroed */ #define USE_NATIVE_ALLOCATE_ZEROED diff --git a/source/include/platform/aclinuxex.h b/source/include/platform/aclinuxex.h index f88559d2f1f4..4e84cd4b7e94 100644 --- a/source/include/platform/aclinuxex.h +++ b/source/include/platform/aclinuxex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acmacosx.h b/source/include/platform/acmacosx.h index fd5f2b3f6b60..0335cc0ae5d6 100644 --- a/source/include/platform/acmacosx.h +++ b/source/include/platform/acmacosx.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acmsvc.h b/source/include/platform/acmsvc.h index a2b9e4ced77d..736706530d93 100644 --- a/source/include/platform/acmsvc.h +++ b/source/include/platform/acmsvc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acmsvcex.h b/source/include/platform/acmsvcex.h index 8c837ec6ab03..2350d859641a 100644 --- a/source/include/platform/acmsvcex.h +++ b/source/include/platform/acmsvcex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acnetbsd.h b/source/include/platform/acnetbsd.h index 138b9ba6b4f9..c0e3619d6597 100644 --- a/source/include/platform/acnetbsd.h +++ b/source/include/platform/acnetbsd.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acos2.h b/source/include/platform/acos2.h index e93aba114545..fe776095e3cd 100644 --- a/source/include/platform/acos2.h +++ b/source/include/platform/acos2.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acqnx.h b/source/include/platform/acqnx.h index 30c12e9ef33b..db1c103fa4cb 100644 --- a/source/include/platform/acqnx.h +++ b/source/include/platform/acqnx.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acwin.h b/source/include/platform/acwin.h index 84e800023b3e..dc2d1eb5b5d0 100644 --- a/source/include/platform/acwin.h +++ b/source/include/platform/acwin.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acwin64.h b/source/include/platform/acwin64.h index 49b330aa7829..e20454520a4e 100644 --- a/source/include/platform/acwin64.h +++ b/source/include/platform/acwin64.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osbsdtbl.c b/source/os_specific/service_layers/osbsdtbl.c index 410a6f47a4e9..043dec46f0ca 100644 --- a/source/os_specific/service_layers/osbsdtbl.c +++ b/source/os_specific/service_layers/osbsdtbl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oslinuxtbl.c b/source/os_specific/service_layers/oslinuxtbl.c index c1438f8e9b30..ad5888f10859 100644 --- a/source/os_specific/service_layers/oslinuxtbl.c +++ b/source/os_specific/service_layers/oslinuxtbl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osunixdir.c b/source/os_specific/service_layers/osunixdir.c index a889c4b8d522..54f53ea2deb4 100644 --- a/source/os_specific/service_layers/osunixdir.c +++ b/source/os_specific/service_layers/osunixdir.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osunixmap.c b/source/os_specific/service_layers/osunixmap.c index be8423f689f7..2f6e0b14b632 100644 --- a/source/os_specific/service_layers/osunixmap.c +++ b/source/os_specific/service_layers/osunixmap.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osunixxf.c b/source/os_specific/service_layers/osunixxf.c index 33fbb0ceadaf..ef1651b67d9f 100644 --- a/source/os_specific/service_layers/osunixxf.c +++ b/source/os_specific/service_layers/osunixxf.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oswindir.c b/source/os_specific/service_layers/oswindir.c index bbad99753c50..b523102a5546 100644 --- a/source/os_specific/service_layers/oswindir.c +++ b/source/os_specific/service_layers/oswindir.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oswintbl.c b/source/os_specific/service_layers/oswintbl.c index 34176dd8ddf8..e053f056850a 100644 --- a/source/os_specific/service_layers/oswintbl.c +++ b/source/os_specific/service_layers/oswintbl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oswinxf.c b/source/os_specific/service_layers/oswinxf.c index b903f09aa499..dc85f9bcf13b 100644 --- a/source/os_specific/service_layers/oswinxf.c +++ b/source/os_specific/service_layers/oswinxf.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpibin/abcompare.c b/source/tools/acpibin/abcompare.c index cd9d833406ae..f974f129ac14 100644 --- a/source/tools/acpibin/abcompare.c +++ b/source/tools/acpibin/abcompare.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpibin/abmain.c b/source/tools/acpibin/abmain.c index b953e264f575..365b437d90aa 100644 --- a/source/tools/acpibin/abmain.c +++ b/source/tools/acpibin/abmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpibin/acpibin.h b/source/tools/acpibin/acpibin.h index 1c3c9d433b4b..510b3a855c99 100644 --- a/source/tools/acpibin/acpibin.h +++ b/source/tools/acpibin/acpibin.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/acpidump.h b/source/tools/acpidump/acpidump.h index 78169682c5e9..87858875f2ae 100644 --- a/source/tools/acpidump/acpidump.h +++ b/source/tools/acpidump/acpidump.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/apdump.c b/source/tools/acpidump/apdump.c index 90444084b5cb..d66832d1a4e9 100644 --- a/source/tools/acpidump/apdump.c +++ b/source/tools/acpidump/apdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/apfiles.c b/source/tools/acpidump/apfiles.c index d9e4e5cfd6b7..16371088efa3 100644 --- a/source/tools/acpidump/apfiles.c +++ b/source/tools/acpidump/apfiles.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/apmain.c b/source/tools/acpidump/apmain.c index 592d33a5120f..5fba99bb1627 100644 --- a/source/tools/acpidump/apmain.c +++ b/source/tools/acpidump/apmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aecommon.h b/source/tools/acpiexec/aecommon.h index c325d8f3b641..7bfdd278c17d 100644 --- a/source/tools/acpiexec/aecommon.h +++ b/source/tools/acpiexec/aecommon.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeexception.c b/source/tools/acpiexec/aeexception.c index df35aa864f63..f0903c1f65fc 100644 --- a/source/tools/acpiexec/aeexception.c +++ b/source/tools/acpiexec/aeexception.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -334,7 +334,7 @@ AeSignalHandler ( SigintCount++; if (SigintCount >= ACPI_MAX_CONTROL_C) { - exit (0); + _exit (0); } /* Abort the application if there are no methods executing */ @@ -368,7 +368,7 @@ AeSignalHandler ( AcpiOsPrintf (AE_PREFIX "Terminating\n"); (void) AcpiOsTerminate (); - exit (0); + _exit (0); } diff --git a/source/tools/acpiexec/aeexec.c b/source/tools/acpiexec/aeexec.c index d8d93e6182c6..5bf1ebd33893 100644 --- a/source/tools/acpiexec/aeexec.c +++ b/source/tools/acpiexec/aeexec.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aehandlers.c b/source/tools/acpiexec/aehandlers.c index a1abdddd0213..9b12aa65e0fb 100644 --- a/source/tools/acpiexec/aehandlers.c +++ b/source/tools/acpiexec/aehandlers.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeinitfile.c b/source/tools/acpiexec/aeinitfile.c index d568b50e9361..600f2c7d8044 100644 --- a/source/tools/acpiexec/aeinitfile.c +++ b/source/tools/acpiexec/aeinitfile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeinstall.c b/source/tools/acpiexec/aeinstall.c index 1d32443b1568..28d08d8abf82 100644 --- a/source/tools/acpiexec/aeinstall.c +++ b/source/tools/acpiexec/aeinstall.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aemain.c b/source/tools/acpiexec/aemain.c index 7db86f78409b..9c5a6e0db151 100644 --- a/source/tools/acpiexec/aemain.c +++ b/source/tools/acpiexec/aemain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeregion.c b/source/tools/acpiexec/aeregion.c index decd17f7fcff..400fd66e3f07 100644 --- a/source/tools/acpiexec/aeregion.c +++ b/source/tools/acpiexec/aeregion.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aetables.c b/source/tools/acpiexec/aetables.c index 510c7e2e63e0..97f4fb73a8ae 100644 --- a/source/tools/acpiexec/aetables.c +++ b/source/tools/acpiexec/aetables.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aetables.h b/source/tools/acpiexec/aetables.h index 88cbfc5c55a8..446210ae325d 100644 --- a/source/tools/acpiexec/aetables.h +++ b/source/tools/acpiexec/aetables.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aetests.c b/source/tools/acpiexec/aetests.c index 4491186e1d62..94e26686ae51 100644 --- a/source/tools/acpiexec/aetests.c +++ b/source/tools/acpiexec/aetests.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/acpihelp.h b/source/tools/acpihelp/acpihelp.h index e6c778f2f789..abc9480ef7cb 100644 --- a/source/tools/acpihelp/acpihelp.h +++ b/source/tools/acpihelp/acpihelp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahaml.c b/source/tools/acpihelp/ahaml.c index a077caf2a51b..df8326908240 100644 --- a/source/tools/acpihelp/ahaml.c +++ b/source/tools/acpihelp/ahaml.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahamlops.c b/source/tools/acpihelp/ahamlops.c index 76ca2b3ed712..bd2b13fb7239 100644 --- a/source/tools/acpihelp/ahamlops.c +++ b/source/tools/acpihelp/ahamlops.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahasl.c b/source/tools/acpihelp/ahasl.c index b77c875dfd6c..0b046995f612 100644 --- a/source/tools/acpihelp/ahasl.c +++ b/source/tools/acpihelp/ahasl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahaslkey.c b/source/tools/acpihelp/ahaslkey.c index 068ef4690c32..40da5b33d7c4 100644 --- a/source/tools/acpihelp/ahaslkey.c +++ b/source/tools/acpihelp/ahaslkey.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahaslops.c b/source/tools/acpihelp/ahaslops.c index df495032b07e..00c05de2cf0b 100644 --- a/source/tools/acpihelp/ahaslops.c +++ b/source/tools/acpihelp/ahaslops.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahdecode.c b/source/tools/acpihelp/ahdecode.c index 150ef6c05b43..0de81918f783 100644 --- a/source/tools/acpihelp/ahdecode.c +++ b/source/tools/acpihelp/ahdecode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahgrammar.c b/source/tools/acpihelp/ahgrammar.c index e12cc6dbecd2..03838bd97c1c 100644 --- a/source/tools/acpihelp/ahgrammar.c +++ b/source/tools/acpihelp/ahgrammar.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahmain.c b/source/tools/acpihelp/ahmain.c index 5310d6010025..808a8edafbbc 100644 --- a/source/tools/acpihelp/ahmain.c +++ b/source/tools/acpihelp/ahmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/acpisrc.h b/source/tools/acpisrc/acpisrc.h index 4cc19c731d05..0ebfaef35f3f 100644 --- a/source/tools/acpisrc/acpisrc.h +++ b/source/tools/acpisrc/acpisrc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/ascase.c b/source/tools/acpisrc/ascase.c index f3946a8fefb3..4f231704b0e6 100644 --- a/source/tools/acpisrc/ascase.c +++ b/source/tools/acpisrc/ascase.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/asconvrt.c b/source/tools/acpisrc/asconvrt.c index 24ff24cd0e8c..ab34a6fe17a2 100644 --- a/source/tools/acpisrc/asconvrt.c +++ b/source/tools/acpisrc/asconvrt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -185,7 +185,7 @@ AsCountLines ( #define MODULE_HEADER_BEGIN "/******************************************************************************\n *\n * Module Name:"; #define MODULE_HEADER_END " *****************************************************************************/\n\n" -#define INTEL_COPYRIGHT " * Copyright (C) 2000 - 2021, Intel Corp.\n" +#define INTEL_COPYRIGHT " * Copyright (C) 2000 - 2022, Intel Corp.\n" /* Opening signature of the Intel legal header */ diff --git a/source/tools/acpisrc/asfile.c b/source/tools/acpisrc/asfile.c index 41900a31fbbb..3f8f97c44b2a 100644 --- a/source/tools/acpisrc/asfile.c +++ b/source/tools/acpisrc/asfile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/asmain.c b/source/tools/acpisrc/asmain.c index 206feb445650..aa382f0b2d0e 100644 --- a/source/tools/acpisrc/asmain.c +++ b/source/tools/acpisrc/asmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/asremove.c b/source/tools/acpisrc/asremove.c index 9ab6cb4b9992..7f230af15251 100644 --- a/source/tools/acpisrc/asremove.c +++ b/source/tools/acpisrc/asremove.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/astable.c b/source/tools/acpisrc/astable.c index 59f1ab8bd4dc..ec4344776c24 100644 --- a/source/tools/acpisrc/astable.c +++ b/source/tools/acpisrc/astable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License @@ -197,7 +197,7 @@ ACPI_STRING_TABLE StandardDataTypes[] = { char EmptyHeader[] = ""; char DualLicenseHeader[] = "/*\n" -" * Copyright (C) 2000 - 2021, Intel Corp.\n" +" * Copyright (C) 2000 - 2022, Intel Corp.\n" " * All rights reserved.\n" " *\n" " * Redistribution and use in source and binary forms, with or without\n" @@ -388,6 +388,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_NATIVE_INT", SRC_TYPE_SIMPLE}, {"ACPI_NATIVE_UINT", SRC_TYPE_SIMPLE}, {"ACPI_NEW_TABLE_DESC", SRC_TYPE_STRUCT}, + {"ACPI_NOTIFY_HANDLER", SRC_TYPE_SIMPLE}, {"ACPI_NOTIFY_INFO", SRC_TYPE_STRUCT}, {"ACPI_NS_SEARCH_DATA", SRC_TYPE_STRUCT}, @@ -442,6 +443,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_PARSE_STATE", SRC_TYPE_STRUCT}, {"ACPI_PARSE_UPWARDS", SRC_TYPE_SIMPLE}, {"ACPI_PARSE_VALUE", SRC_TYPE_UNION}, + {"ACPI_PCC_INFO", SRC_TYPE_STRUCT}, {"ACPI_PCI_DEVICE", SRC_TYPE_STRUCT}, {"ACPI_PCI_ID", SRC_TYPE_STRUCT}, {"ACPI_PCI_ROUTING_TABLE", SRC_TYPE_STRUCT}, @@ -640,6 +642,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { * Acpi table definition names. */ {"ACPI_TABLE_AEST", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_AGDI", SRC_TYPE_STRUCT}, {"ACPI_TABLE_ASF", SRC_TYPE_STRUCT}, {"ACPI_TABLE_BDAT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_BERT", SRC_TYPE_STRUCT}, @@ -695,6 +698,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_SRAT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_STAO", SRC_TYPE_STRUCT}, {"ACPI_TABLE_TCPA", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_TDEL", SRC_TYPE_STRUCT}, {"ACPI_TABLE_TPM2", SRC_TYPE_STRUCT}, {"ACPI_TABLE_TPM23", SRC_TYPE_STRUCT}, {"ACPI_TABLE_UEFI", SRC_TYPE_STRUCT}, @@ -846,19 +850,31 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A", SRC_TYPE_STRUCT}, {"ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B", SRC_TYPE_STRUCT}, {"ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_C", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_D", SRC_TYPE_STRUCT}, {"ACPI_NHLT_DEVICE_SPECIFIC_HDR", SRC_TYPE_STRUCT}, {"ACPI_NHLT_ENDPOINT", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_ENDPOINT_COUNT", SRC_TYPE_STRUCT}, {"ACPI_NHLT_FORMAT_CONFIG", SRC_TYPE_STRUCT}, {"ACPI_NHLT_FORMATS_CONFIG", SRC_TYPE_STRUCT}, - {"ACPI_NHLT_LINUX_SPECIFIC_COUNT", SRC_TYPE_STRUCT}, - {"ACPI_NHLT_LINUX_SPECIFIC_DATA", SRC_TYPE_STRUCT}, - {"ACPI_NHLT_MIC_DEVICE_SPECIFIC_CONFIG", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_DEVICE_INFO_COUNT", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_DEVICE_INFO", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_MIC_DEVICE_SPECIFIC_CONFIG", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_MIC_SNR_SENSITIVITY_EXTENSION",SRC_TYPE_STRUCT}, + {"ACPI_NHLT_RENDER_DEVICE_SPECIFIC_CONFIG", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_RENDER_FEEDBACK_DEVICE_SPECIFIC_CONFIG", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_TABLE_TERMINATOR", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_WAVE_EXTENSIBLE", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_NHLT_ENDPOINT", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_VENDOR_MIC_DEVICE_SPECIFIC_CONFIG", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_MIC_DEVICE_SPECIFIC_CONFIG",SRC_TYPE_STRUCT}, {"ACPI_NHLT_MIC_SNR_SENSITIVITY_EXTENSION", SRC_TYPE_STRUCT}, {"ACPI_NHLT_RENDER_FEEDBACK_DEVICE_SPECIFIC_CONFIG",SRC_TYPE_STRUCT}, - {"ACPI_NHLT_TABLE_TERMINATOR", SRC_TYPE_STRUCT}, - {"ACPI_NHLT_VENDOR_MIC_CONFIG", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_NHLT_ENDPOINT_COUNT", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_TABLE_TERMINATOR", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_VENDOR_MIC_CONFIG", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_VENDOR_MIC_COUNT", SRC_TYPE_STRUCT}, {"ACPI_NHLT_VENDOR_MIC_DEVICE_SPECIFIC_CONFIG", SRC_TYPE_STRUCT}, - {"ACPI_NHLT_WAVE_EXTENSIBLE", SRC_TYPE_STRUCT}, + {"ACPI_NHLT_WAVE_EXTENSIBLE", SRC_TYPE_STRUCT}, {"ACPI_PCCT_EXT_PCC_SHARED_MEMORY", SRC_TYPE_STRUCT}, {"ACPI_PCCT_HW_REDUCED", SRC_TYPE_STRUCT}, {"ACPI_PCCT_HW_REDUCED_TYPE2", SRC_TYPE_STRUCT}, @@ -1231,8 +1247,8 @@ ACPI_CONVERSION_TABLE LicenseConversionTable = ACPI_STRING_TABLE CustomReplacements[] = { - {"(c) 1999 - 2020", "(c) 1999 - 2021", REPLACE_WHOLE_WORD}, /* Main ACPICA source */ - {"(c) 2006 - 2020", "(c) 2006 - 2021", REPLACE_WHOLE_WORD}, /* Test suites */ + {"(c) 1999 - 2021", "(c) 1999 - 2022", REPLACE_WHOLE_WORD}, /* Main ACPICA source */ + {"(c) 2006 - 2021", "(c) 2006 - 2022", REPLACE_WHOLE_WORD}, /* Test suites */ #if 0 {"SUPPORT, ASSISTANCE", "SUPPORT, ASSISTANCE", REPLACE_WHOLE_WORD}, /* Fix intel header */ diff --git a/source/tools/acpisrc/asutils.c b/source/tools/acpisrc/asutils.c index b1cac273bd47..cc97cca6b2cd 100644 --- a/source/tools/acpisrc/asutils.c +++ b/source/tools/acpisrc/asutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/acpixtract.c b/source/tools/acpixtract/acpixtract.c index 27810124372f..480e20e808b4 100644 --- a/source/tools/acpixtract/acpixtract.c +++ b/source/tools/acpixtract/acpixtract.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/acpixtract.h b/source/tools/acpixtract/acpixtract.h index c852a80dc1e9..2e7646bbd68e 100644 --- a/source/tools/acpixtract/acpixtract.h +++ b/source/tools/acpixtract/acpixtract.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/axmain.c b/source/tools/acpixtract/axmain.c index 2d41c8594329..30f3d68a9517 100644 --- a/source/tools/acpixtract/axmain.c +++ b/source/tools/acpixtract/axmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/axutils.c b/source/tools/acpixtract/axutils.c index cdb22b54d3ab..54021778f4d4 100644 --- a/source/tools/acpixtract/axutils.c +++ b/source/tools/acpixtract/axutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/efihello/efihello.c b/source/tools/efihello/efihello.c index a9b169a401ea..ed4c8b4ec6bb 100644 --- a/source/tools/efihello/efihello.c +++ b/source/tools/efihello/efihello.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/examples.c b/source/tools/examples/examples.c index c27d90717391..0b4497508a5f 100644 --- a/source/tools/examples/examples.c +++ b/source/tools/examples/examples.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/examples.h b/source/tools/examples/examples.h index fc61502f0dc7..66c28219b0e1 100644 --- a/source/tools/examples/examples.h +++ b/source/tools/examples/examples.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/exstubs.c b/source/tools/examples/exstubs.c index cb3b0049ae99..2cc8636fb996 100644 --- a/source/tools/examples/exstubs.c +++ b/source/tools/examples/exstubs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/extables.c b/source/tools/examples/extables.c index 6571d16a5ae5..9f2bcc10838a 100644 --- a/source/tools/examples/extables.c +++ b/source/tools/examples/extables.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. * All rights reserved. * * 2. License From a799bdd9d50e84cd6a36e8f1d2ac4301b2a6b374 Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Thu, 27 Oct 2022 17:34:40 -0400 Subject: [PATCH 08/10] Import ACPICA 20221020 --- generate/release/build.sh | 2 +- generate/unix/Makefile.config | 5 +- generate/unix/acpidump/Makefile | 1 + generate/unix/acpiexamples/Makefile | 1 + generate/unix/acpiexec/Makefile | 1 + generate/unix/iasl/Makefile | 23 +- source/common/acfileio.c | 131 ++++++++-- source/common/adisasm.c | 4 +- source/common/ahtable.c | 2 + source/common/ahuuids.c | 3 + source/common/dmtable.c | 116 +++++---- source/common/dmtables.c | 2 +- source/common/dmtbdump.c | 4 +- source/common/dmtbdump1.c | 205 ++++++++++++++- source/common/dmtbdump2.c | 100 ++++++-- source/common/dmtbinfo1.c | 110 ++++++++ source/common/dmtbinfo2.c | 33 +-- source/common/dmtbinfo3.c | 17 ++ source/compiler/aslcodegen.c | 75 +++++- source/compiler/aslcompile.c | 12 +- source/compiler/aslerror.c | 1 - source/compiler/aslhelp.c | 1 + source/compiler/asloptions.c | 30 ++- source/compiler/aslpredef.c | 2 +- source/compiler/aslstartup.c | 2 +- source/compiler/dtcompile.c | 42 ++++ source/compiler/dtcompiler.h | 8 +- source/compiler/dtio.c | 2 +- source/compiler/dttable1.c | 128 +++++++++- source/compiler/dttable2.c | 173 +++++++++++-- source/compiler/dttemplate.h | 63 ++++- source/compiler/dtutils.c | 3 +- source/components/events/evevent.c | 11 +- source/components/events/evregion.c | 8 + source/components/executer/exconfig.c | 2 +- source/components/executer/exfield.c | 6 +- source/components/executer/exserial.c | 6 + source/components/executer/exsystem.c | 12 - source/components/hardware/hwsleep.c | 10 + source/components/tables/tbdata.c | 2 +- source/components/tables/tbfadt.c | 2 +- source/components/tables/tbprint.c | 90 +------ source/components/tables/tbutils.c | 2 +- source/components/tables/tbxfroot.c | 32 ++- source/components/utilities/utcksum.c | 335 +++++++++++++++++++++++++ source/components/utilities/utglobal.c | 1 + source/components/utilities/utstring.c | 10 +- source/include/acconfig.h | 2 + source/include/acdisasm.h | 19 ++ source/include/acglobal.h | 1 + source/include/acpixf.h | 2 +- source/include/actables.h | 10 - source/include/actbinfo.h | 10 + source/include/actbl1.h | 179 ++++++++++++- source/include/actbl2.h | 163 +++++++++++- source/include/actypes.h | 9 +- source/include/acutils.h | 25 ++ source/include/acuuid.h | 3 +- source/include/platform/acfreebsd.h | 4 + source/tools/acpidump/apdump.c | 4 +- source/tools/acpiexec/aetables.c | 10 +- source/tools/acpihelp/ahmain.c | 2 +- source/tools/acpisrc/astable.c | 4 +- source/tools/acpixtract/acpixtract.c | 2 +- source/tools/examples/extables.c | 8 +- 65 files changed, 1963 insertions(+), 325 deletions(-) create mode 100644 source/components/utilities/utcksum.c diff --git a/generate/release/build.sh b/generate/release/build.sh index ba73227dd620..3e6d94403251 100755 --- a/generate/release/build.sh +++ b/generate/release/build.sh @@ -38,7 +38,7 @@ # Configuration ZIP_UTILITY="/cygdrive/c/windows/pkzip25.exe" -ACPISRC="libraries/acpisrc.exe" +ACPISRC="libraries/acpisrc_dbg.exe" DOS2UNIX="dos2unix" UNIX2DOS="unix2dos" diff --git a/generate/unix/Makefile.config b/generate/unix/Makefile.config index b466343671a6..0deeb14115c1 100644 --- a/generate/unix/Makefile.config +++ b/generate/unix/Makefile.config @@ -203,7 +203,6 @@ CWARNINGFLAGS = \ -Wall\ -Wbad-function-cast\ -Wdeclaration-after-statement\ - -Werror\ -Wformat=2\ -Wmissing-declarations\ -Wmissing-prototypes\ @@ -213,6 +212,10 @@ CWARNINGFLAGS = \ -Wpointer-arith\ -Wundef +ifneq ($(NOWERROR),TRUE) +CWARNINGFLAGS += -Werror +endif + # # Common gcc 4+ warning flags # diff --git a/generate/unix/acpidump/Makefile b/generate/unix/acpidump/Makefile index 292eec712762..ac6ee9b6de23 100644 --- a/generate/unix/acpidump/Makefile +++ b/generate/unix/acpidump/Makefile @@ -40,6 +40,7 @@ OBJECTS = \ $(OBJDIR)/tbxfroot.o\ $(OBJDIR)/utascii.o\ $(OBJDIR)/utbuffer.o\ + $(OBJDIR)/utcksum.o\ $(OBJDIR)/utdebug.o\ $(OBJDIR)/utexcep.o\ $(OBJDIR)/utglobal.o\ diff --git a/generate/unix/acpiexamples/Makefile b/generate/unix/acpiexamples/Makefile index 0f23c88de3db..5a3d508f8b49 100644 --- a/generate/unix/acpiexamples/Makefile +++ b/generate/unix/acpiexamples/Makefile @@ -135,6 +135,7 @@ OBJECTS = \ $(OBJDIR)/utascii.o\ $(OBJDIR)/utbuffer.o\ $(OBJDIR)/utcache.o\ + $(OBJDIR)/utcksum.o\ $(OBJDIR)/utcopy.o\ $(OBJDIR)/utdebug.o\ $(OBJDIR)/utdecode.o\ diff --git a/generate/unix/acpiexec/Makefile b/generate/unix/acpiexec/Makefile index 660afa9397b6..389455a6f750 100644 --- a/generate/unix/acpiexec/Makefile +++ b/generate/unix/acpiexec/Makefile @@ -210,6 +210,7 @@ OBJECTS = \ $(OBJDIR)/utascii.o\ $(OBJDIR)/utbuffer.o\ $(OBJDIR)/utcache.o\ + $(OBJDIR)/utcksum.o\ $(OBJDIR)/utcopy.o\ $(OBJDIR)/utdebug.o\ $(OBJDIR)/utdecode.o\ diff --git a/generate/unix/iasl/Makefile b/generate/unix/iasl/Makefile index 47ea73caba99..8fde63d46c22 100644 --- a/generate/unix/iasl/Makefile +++ b/generate/unix/iasl/Makefile @@ -221,6 +221,7 @@ OBJECTS = \ $(OBJDIR)/utascii.o\ $(OBJDIR)/utbuffer.o\ $(OBJDIR)/utcache.o\ + $(OBJDIR)/utcksum.o\ $(OBJDIR)/utcopy.o\ $(OBJDIR)/utdebug.o\ $(OBJDIR)/utdecode.o\ @@ -290,6 +291,12 @@ CFLAGS += \ -I$(ASL_COMPILER)\ -I$(OBJDIR) +ifeq ($(NOWERROR),TRUE) +WERROR_FLAGS= +else +WERROR_FLAGS=-Werror +endif + # # Common Rules # @@ -360,32 +367,32 @@ $(OBJDIR)/prparserparse.c $(OBJDIR)/prparser.y.h : $(ASL_COMPILER)/prparse # $(OBJDIR)/aslcompilerlex.o : $(OBJDIR)/aslcompilerlex.c @echo "- " "Intermediate" $< - @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< + @$(CC) -c $(CFLAGS) -Wall $(WERROR_FLAGS) -o$@ $< $(OBJDIR)/aslcompilerparse.o : $(OBJDIR)/aslcompilerparse.c @echo "- " "Intermediate" $< - @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< + @$(CC) -c $(CFLAGS) -Wall $(WERROR_FLAGS) -o$@ $< $(OBJDIR)/dtcompilerparserlex.o : $(OBJDIR)/dtcompilerparserlex.c @echo "- " "Intermediate" $< - @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< + @$(CC) -c $(CFLAGS) -Wall $(WERROR_FLAGS) -o$@ $< $(OBJDIR)/dtcompilerparserparse.o : $(OBJDIR)/dtcompilerparserparse.c @echo "- " "Intermediate" $< - @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< + @$(CC) -c $(CFLAGS) -Wall $(WERROR_FLAGS) -o$@ $< $(OBJDIR)/dtparserlex.o : $(OBJDIR)/dtparserlex.c @echo "- " "Intermediate" $< - @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< + @$(CC) -c $(CFLAGS) -Wall $(WERROR_FLAGS) -o$@ $< $(OBJDIR)/dtparserparse.o : $(OBJDIR)/dtparserparse.c @echo "- " "Intermediate" $< - @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< + @$(CC) -c $(CFLAGS) -Wall $(WERROR_FLAGS) -o$@ $< $(OBJDIR)/prparserlex.o : $(OBJDIR)/prparserlex.c @echo "- " "Intermediate" $< - @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< + @$(CC) -c $(CFLAGS) -Wall $(WERROR_FLAGS) -o$@ $< $(OBJDIR)/prparserparse.o : $(OBJDIR)/prparserparse.c @echo "- " "Intermediate" $< - @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< + @$(CC) -c $(CFLAGS) -Wall $(WERROR_FLAGS) -o$@ $< diff --git a/source/common/acfileio.c b/source/common/acfileio.c index 7c624f5d3644..77f7337a3f75 100644 --- a/source/common/acfileio.c +++ b/source/common/acfileio.c @@ -387,16 +387,36 @@ AcGetOneTableFromFile ( ACPI_TABLE_HEADER TableHeader; ACPI_TABLE_HEADER *Table; INT32 Count; - long TableOffset; - + UINT32 TableLength; + UINT32 HeaderLength; + long TableOffset = 0; *ReturnTable = NULL; /* Get the table header to examine signature and length */ + /* + * Special handling for the CDAT table (both the Length field + * and the Checksum field are not in the standard positions). + * (The table header is non-standard). + */ + if (AcpiGbl_CDAT) + { + HeaderLength = sizeof (ACPI_TABLE_CDAT); + } + else + { + HeaderLength = sizeof (ACPI_TABLE_HEADER); + } + + Status = AcValidateTableHeader (File, TableOffset); + if (ACPI_FAILURE (Status)) + { + return (Status); + } TableOffset = ftell (File); - Count = fread (&TableHeader, 1, sizeof (ACPI_TABLE_HEADER), File); - if (Count != sizeof (ACPI_TABLE_HEADER)) + Count = fread (&TableHeader, 1, HeaderLength, File); + if (Count != (INT32) HeaderLength) { return (AE_CTRL_TERMINATE); } @@ -405,12 +425,6 @@ AcGetOneTableFromFile ( { /* Validate the table signature/header (limited ASCII chars) */ - Status = AcValidateTableHeader (File, TableOffset); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - /* * Table must be an AML table (DSDT/SSDT). * Used for iASL -e option only. @@ -425,9 +439,22 @@ AcGetOneTableFromFile ( } } + /* + * Special handling for the CDAT table (both the Length field + * and the Checksum field are not in the standard positions). + */ + if (AcpiGbl_CDAT) + { + TableLength = ACPI_CAST_PTR (ACPI_TABLE_CDAT, &TableHeader)->Length; + } + else + { + TableLength = TableHeader.Length; + } + /* Allocate a buffer for the entire table */ - Table = AcpiOsAllocate ((ACPI_SIZE) TableHeader.Length); + Table = AcpiOsAllocate ((ACPI_SIZE) TableLength); if (!Table) { return (AE_NO_MEMORY); @@ -436,22 +463,31 @@ AcGetOneTableFromFile ( /* Read the entire ACPI table, including header */ fseek (File, TableOffset, SEEK_SET); - - Count = fread (Table, 1, TableHeader.Length, File); + Count = fread (Table, 1, TableLength, File); /* * Checks for data table headers happen later in the execution. Only verify * for Aml tables at this point in the code. */ - if (GetOnlyAmlTables && Count != (INT32) TableHeader.Length) + if (GetOnlyAmlTables && Count != (INT32) TableLength) { Status = AE_ERROR; goto ErrorExit; } - /* Validate the checksum (just issue a warning) */ + /* + * Validate the checksum (just issue a warning if incorrect). + * Note: CDAT is special cased here because the table does + * not have the checksum field in the standard position. + */ + if (AcpiGbl_CDAT) + { + Status = AcpiUtVerifyCdatChecksum ((ACPI_TABLE_CDAT *) Table, TableLength); + } else + { + Status = AcpiUtVerifyChecksum (Table, TableLength); + } - Status = AcpiTbVerifyChecksum (Table, TableHeader.Length); if (ACPI_FAILURE (Status)) { Status = AcCheckTextModeCorruption (Table); @@ -540,6 +576,8 @@ AcValidateTableHeader ( long TableOffset) { ACPI_TABLE_HEADER TableHeader; + ACPI_TABLE_CDAT *CdatTableHeader = ACPI_CAST_PTR (ACPI_TABLE_CDAT, &TableHeader); + UINT32 HeaderLength; ACPI_SIZE Actual; long OriginalOffset; UINT32 FileSize; @@ -548,6 +586,16 @@ AcValidateTableHeader ( ACPI_FUNCTION_TRACE (AcValidateTableHeader); + /* Determine the type of table header */ + + if (AcpiGbl_CDAT) + { + HeaderLength = sizeof (ACPI_TABLE_CDAT); + } + else + { + HeaderLength = sizeof (ACPI_TABLE_HEADER); + } /* Read a potential table header */ @@ -556,41 +604,76 @@ AcValidateTableHeader ( { fprintf (stderr, "SEEK error\n"); } - Actual = fread (&TableHeader, 1, sizeof (ACPI_TABLE_HEADER), File); + Actual = fread (&TableHeader, 1, HeaderLength, File); if (fseek (File, OriginalOffset, SEEK_SET)) { fprintf (stderr, "SEEK error\n"); } - if (Actual < sizeof (ACPI_TABLE_HEADER)) + if (Actual < HeaderLength) { fprintf (stderr, "Could not read entire table header: Actual %u, Requested %u\n", - (UINT32) Actual, (UINT32) sizeof (ACPI_TABLE_HEADER)); + (UINT32) Actual, HeaderLength); return (AE_ERROR); } /* Validate the signature (limited ASCII chars) */ - if (!AcpiUtValidNameseg (TableHeader.Signature)) + if (!AcpiGbl_CDAT && !AcpiUtValidNameseg (TableHeader.Signature)) { + /* + * The "-ds cdat" option was not used, and the signature is not valid. + * + * For CDAT we are assuming that there should be at least one non-ASCII + * byte in the (normally) 4-character Signature field (at least the + * high-order byte should be zero). Otherwise, this is OK. + */ + fprintf (stderr, + "\nTable appears to be a CDAT table, which has no signature.\n" + "If this is in fact a CDAT table, use the -ds option on the\n" + "command line to specify the table type (signature):\n" + "\"iasl -d -ds CDAT \" or \"iasl -ds CDAT -T CDAT\"\n\n"); + return (AE_BAD_SIGNATURE); } /* Validate table length against bytes remaining in the file */ FileSize = CmGetFileSize (File); - if (TableHeader.Length > (UINT32) (FileSize - TableOffset)) + if (!AcpiGbl_CDAT) { - fprintf (stderr, "Table [%4.4s] is too long for file - " + /* Standard ACPI table header */ + + if (TableHeader.Length > (UINT32) (FileSize - TableOffset)) + { + fprintf (stderr, "Table [%4.4s] is too long for file - " + "needs: 0x%.2X, remaining in file: 0x%.2X\n", + TableHeader.Signature, TableHeader.Length, + (UINT32) (FileSize - TableOffset)); + return (AE_BAD_HEADER); + } + } + else if (CdatTableHeader->Length > (UINT32) (FileSize - TableOffset)) + { + /* Special header for CDAT table */ + + fprintf (stderr, "Table [CDAT] is too long for file - " "needs: 0x%.2X, remaining in file: 0x%.2X\n", - TableHeader.Signature, TableHeader.Length, + CdatTableHeader->Length, (UINT32) (FileSize - TableOffset)); return (AE_BAD_HEADER); } + /* For CDAT table, there are no ASCII fields in the header, we are done */ + + if (AcpiGbl_CDAT) + { + return (AE_OK); + } + /* - * These fields must be ASCII: OemId, OemTableId, AslCompilerId. + * These standard fields must be ASCII: OemId, OemTableId, AslCompilerId. * We allow a NULL terminator in OemId and OemTableId. */ for (i = 0; i < ACPI_NAMESEG_SIZE; i++) diff --git a/source/common/adisasm.c b/source/common/adisasm.c index ecb984858388..49338e741a90 100644 --- a/source/common/adisasm.c +++ b/source/common/adisasm.c @@ -476,13 +476,13 @@ AdDisassembleOneTable ( /* This is a "Data Table" (non-AML table) */ AcpiOsPrintf (" * ACPI Data Table [%4.4s]\n *\n", - Table->Signature); + AcpiGbl_CDAT ? (char *) AcpiGbl_CDAT : Table->Signature); AcpiOsPrintf (" * Format: [HexOffset DecimalOffset ByteLength] " "FieldName : FieldValue (in hex)\n */\n\n"); AcpiDmDumpDataTable (Table); fprintf (stderr, "Acpi Data Table [%4.4s] decoded\n", - Table->Signature); + AcpiGbl_CDAT ? (char *) AcpiGbl_CDAT : Table->Signature); if (File) { diff --git a/source/common/ahtable.c b/source/common/ahtable.c index bff8ae79080b..418621b664c9 100644 --- a/source/common/ahtable.c +++ b/source/common/ahtable.c @@ -206,6 +206,8 @@ const AH_TABLE AcpiGbl_SupportedTables[] = {ACPI_SIG_BERT, "Boot Error Record Table"}, {ACPI_SIG_BGRT, "Boot Graphics Resource Table"}, {ACPI_SIG_BOOT, "Simple Boot Flag Table"}, + {ACPI_SIG_CCEL, "CC-Event Log Table"}, + {ACPI_SIG_CDAT, "Coherent Device Attribute Table"}, {ACPI_SIG_CEDT, "CXL Early Discovery Table"}, {ACPI_SIG_CPEP, "Corrected Platform Error Polling Table"}, {ACPI_SIG_CSRT, "Core System Resource Table"}, diff --git a/source/common/ahuuids.c b/source/common/ahuuids.c index 909698c572a9..dcf0c4bbb738 100644 --- a/source/common/ahuuids.c +++ b/source/common/ahuuids.c @@ -209,6 +209,9 @@ const AH_UUID Gbl_AcpiUuids[] = {"Hierarchical Data Extension", UUID_HIERARCHICAL_DATA_EXTENSION}, {"ARM Coresight Graph", UUID_CORESIGHT_GRAPH}, {"USB4 Capabilities", UUID_USB4_CAPABILITIES}, + {"First Function ID for _DSM", UUID_1ST_FUNCTION_ID}, + {"Second Function ID for _DSM", UUID_2ND_FUNCTION_ID}, + {NULL, NULL} }; diff --git a/source/common/dmtable.c b/source/common/dmtable.c index 440c5fb409fd..9b95ecc74789 100644 --- a/source/common/dmtable.c +++ b/source/common/dmtable.c @@ -234,6 +234,17 @@ static const char *AcpiDmAsfSubnames[] = "Unknown Subtable Type" /* Reserved */ }; +static const char *AcpiDmCdatSubnames[] = +{ + "Device Scoped Memory Affinity Structure (DSMAS)", + "Device scoped Latency and Bandwidth Information Structure (DSLBIS)", + "Device Scoped Memory Side Cache Information Structure (DSMSCIS)", + "Device Scoped Initiator Structure (DSIS)", + "Device Scoped EFI Memory Type Structure (DSEMTS)", + "Switch Scoped Latency and Bandwidth Information Structure (SSLBIS)", + "Unknown Subtable Type" /* Reserved */ +}; + static const char *AcpiDmCedtSubnames[] = { "CXL Host Bridge Structure", @@ -403,6 +414,13 @@ static const char *AcpiDmMadtSubnames[] = "Generic Interrupt Redistributor", /* ACPI_MADT_GENERIC_REDISTRIBUTOR */ "Generic Interrupt Translator", /* ACPI_MADT_GENERIC_TRANSLATOR */ "Mutiprocessor Wakeup", /* ACPI_MADT_TYPE_MULTIPROC_WAKEUP */ + "CPU Core Interrupt Controller", /* ACPI_MADT_TYPE_CORE_PIC */ + "Legacy I/O Interrupt Controller", /* ACPI_MADT_TYPE_LIO_PIC */ + "HT Interrupt Controller", /* ACPI_MADT_TYPE_HT_PIC */ + "Extend I/O Interrupt Controller", /* ACPI_MADT_TYPE_EIO_PIC */ + "MSI Interrupt Controller", /* ACPI_MADT_TYPE_MSI_PIC */ + "Bridge I/O Interrupt Controller", /* ACPI_MADT_TYPE_BIO_PIC */ + "LPC Interrupt Controller", /* ACPI_MADT_TYPE_LPC_PIC */ "Unknown Subtable Type", /* Reserved */ "Types 80-FF are used for OEM data" /* Reserved for OEM data */ }; @@ -658,6 +676,8 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = {ACPI_SIG_BERT, AcpiDmTableInfoBert, NULL, NULL, TemplateBert}, {ACPI_SIG_BGRT, AcpiDmTableInfoBgrt, NULL, NULL, TemplateBgrt}, {ACPI_SIG_BOOT, AcpiDmTableInfoBoot, NULL, NULL, TemplateBoot}, + {ACPI_SIG_CCEL, AcpiDmTableInfoCcel, NULL, NULL, TemplateCcel}, + {ACPI_SIG_CDAT, NULL, AcpiDmDumpCdat, NULL, TemplateCdat}, {ACPI_SIG_CEDT, NULL, AcpiDmDumpCedt, DtCompileCedt, TemplateCedt}, {ACPI_SIG_CPEP, NULL, AcpiDmDumpCpep, DtCompileCpep, TemplateCpep}, {ACPI_SIG_CSRT, NULL, AcpiDmDumpCsrt, DtCompileCsrt, TemplateCsrt}, @@ -722,44 +742,6 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = }; -/******************************************************************************* - * - * FUNCTION: AcpiDmGenerateChecksum - * - * PARAMETERS: Table - Pointer to table to be checksummed - * Length - Length of the table - * OriginalChecksum - Value of the checksum field - * - * RETURN: 8 bit checksum of buffer - * - * DESCRIPTION: Computes an 8 bit checksum of the table. - * - ******************************************************************************/ - -UINT8 -AcpiDmGenerateChecksum ( - void *Table, - UINT32 Length, - UINT8 OriginalChecksum) -{ - UINT8 Checksum; - - - /* Sum the entire table as-is */ - - Checksum = AcpiTbChecksum ((UINT8 *) Table, Length); - - /* Subtract off the existing checksum value in the table */ - - Checksum = (UINT8) (Checksum - OriginalChecksum); - - /* Compute the final checksum */ - - Checksum = (UINT8) (0 - Checksum); - return (Checksum); -} - - /******************************************************************************* * * FUNCTION: AcpiDmGetTableData @@ -834,7 +816,7 @@ AcpiDmDumpDataTable ( /* * Handle tables that don't use the common ACPI table header structure. - * Currently, these are the FACS, RSDP, and S3PT. + * Currently, these are the FACS, RSDP, S3PT and CDAT. */ if (ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_FACS)) { @@ -854,6 +836,28 @@ AcpiDmDumpDataTable ( { Length = AcpiDmDumpS3pt (Table); } + else if (!AcpiUtValidNameseg (Table->Signature)) + { + /* + * For CDAT we are assuming that there should be at least one non-ASCII + * byte in the (normally) 4-character Signature field (at least the + * high-order byte should be zero). + */ + if (AcpiGbl_CDAT) + { + /* + * Invalid signature and <-ds CDAT> was specified on the command line. + * Therefore, we have a CDAT table. + */ + AcpiDmDumpCdat (Table); + } + else + { + fprintf (stderr, "Table has an invalid signature\n"); + } + + return; + } else { /* @@ -977,7 +981,7 @@ AcpiDmLineHeader ( { if (ByteLength) { - AcpiOsPrintf ("[%3.3Xh %4.4d% 4d] %28s : ", + AcpiOsPrintf ("[%3.3Xh %4.4u %3.3Xh] %27s : ", Offset, Offset, ByteLength, Name); } else @@ -1019,12 +1023,12 @@ AcpiDmLineHeader2 ( { if (ByteLength) { - AcpiOsPrintf ("[%3.3Xh %4.4d %3d] %24s %3d : ", + AcpiOsPrintf ("[%3.3Xh %4.4u %3.3Xh] %24s %3d : ", Offset, Offset, ByteLength, Name, Value); } else { - AcpiOsPrintf ("[%3.3Xh %4.4d ] %24s %3d : ", + AcpiOsPrintf ("[%3.3Xh %4.4u ] %24s %3d : ", Offset, Offset, Name, Value); } } @@ -1106,7 +1110,8 @@ AcpiDmDumpTable ( { AcpiOsPrintf ( "/**** ACPI table terminates " - "in the middle of a data structure! (dump table) */\n"); + "in the middle of a data structure! (dump table) \n" + "CurrentOffset: %X, TableLength: %X ***/", CurrentOffset, TableLength); return (AE_BAD_DATA); } @@ -1140,6 +1145,7 @@ AcpiDmDumpTable ( case ACPI_DMT_AEST_XFACE: case ACPI_DMT_AEST_XRUPT: case ACPI_DMT_ASF: + case ACPI_DMT_CDAT: case ACPI_DMT_HESTNTYP: case ACPI_DMT_FADTPM: case ACPI_DMT_EINJACT: @@ -1522,7 +1528,7 @@ AcpiDmDumpTable ( /* Checksum, display and validate */ AcpiOsPrintf ("%2.2X", *Target); - Temp8 = AcpiDmGenerateChecksum (Table, + Temp8 = AcpiUtGenerateChecksum (Table, ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Length, ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Checksum); @@ -1668,6 +1674,20 @@ AcpiDmDumpTable ( AcpiOsPrintf (UINT8_FORMAT, *Target, AcpiDmAsfSubnames[Temp16]); break; + case ACPI_DMT_CDAT: + + /* CDAT subtable types */ + + Temp8 = *Target; + if (Temp8 > ACPI_CDAT_TYPE_RESERVED) + { + Temp8 = ACPI_CDAT_TYPE_RESERVED; + } + + AcpiOsPrintf (UINT8_FORMAT, *Target, + AcpiDmCdatSubnames[Temp8]); + break; + case ACPI_DMT_CEDT: /* CEDT subtable types */ @@ -2017,15 +2037,15 @@ AcpiDmDumpTable ( case ACPI_DMT_PHAT: - /* PMTT subtable types */ + /* PHAT subtable types */ - Temp16 = *Target; + Temp16 = ACPI_GET16 (Target); if (Temp16 > ACPI_PHAT_TYPE_RESERVED) { Temp16 = ACPI_PHAT_TYPE_RESERVED; } - AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16(Target), + AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target), AcpiDmPhatSubnames[Temp16]); break; @@ -2069,7 +2089,7 @@ AcpiDmDumpTable ( break; } - AcpiDmDumpUnicode (Table, CurrentOffset, ByteLength); + AcpiDmDumpUnicode (Table, 0, ByteLength); break; case ACPI_DMT_RAW_BUFFER: diff --git a/source/common/dmtables.c b/source/common/dmtables.c index 6f42bcb3bf66..7ade78685741 100644 --- a/source/common/dmtables.c +++ b/source/common/dmtables.c @@ -296,7 +296,7 @@ AdCreateTableHeader ( AcpiOsPrintf ("\n * Checksum 0x%2.2X", Table->Checksum); - Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), Table->Length); + Checksum = AcpiUtChecksum (ACPI_CAST_PTR (UINT8, Table), Table->Length); if (Checksum) { AcpiOsPrintf (" **** Incorrect checksum, should be 0x%2.2X", diff --git a/source/common/dmtbdump.c b/source/common/dmtbdump.c index b4faf68316ff..dc1745d5d926 100644 --- a/source/common/dmtbdump.c +++ b/source/common/dmtbdump.c @@ -384,7 +384,7 @@ AcpiDmDumpRsdp ( /* Validate the first checksum */ - Checksum = AcpiDmGenerateChecksum (Rsdp, sizeof (ACPI_RSDP_COMMON), + Checksum = AcpiUtGenerateChecksum (Rsdp, sizeof (ACPI_RSDP_COMMON), Rsdp->Checksum); if (Checksum != Rsdp->Checksum) { @@ -405,7 +405,7 @@ AcpiDmDumpRsdp ( /* Validate the extended checksum over entire RSDP */ - Checksum = AcpiDmGenerateChecksum (Rsdp, sizeof (ACPI_TABLE_RSDP), + Checksum = AcpiUtGenerateChecksum (Rsdp, sizeof (ACPI_TABLE_RSDP), Rsdp->ExtendedChecksum); if (Checksum != Rsdp->ExtendedChecksum) { diff --git a/source/common/dmtbdump1.c b/source/common/dmtbdump1.c index 13662611e0a6..ae5f0f8627bf 100644 --- a/source/common/dmtbdump1.c +++ b/source/common/dmtbdump1.c @@ -153,6 +153,7 @@ #include "accommon.h" #include "acdisasm.h" #include "actables.h" +#include "aslcompiler.h" /* This module used for application-level code only */ @@ -608,6 +609,192 @@ AcpiDmDumpAsf ( } } + +/******************************************************************************* + * + * FUNCTION: AcpiDmDumpCdat + * + * PARAMETERS: InTable - A CDAT table + * + * RETURN: None + * + * DESCRIPTION: Format the contents of a CDAT. This table type consists + * of an open-ended number of subtables. + * + ******************************************************************************/ + +void +AcpiDmDumpCdat ( + ACPI_TABLE_HEADER *InTable) +{ + ACPI_TABLE_CDAT *Table = ACPI_CAST_PTR (ACPI_TABLE_CDAT, InTable); + ACPI_STATUS Status; + ACPI_CDAT_HEADER *Subtable; + ACPI_TABLE_CDAT *CdatTable = ACPI_CAST_PTR (ACPI_TABLE_CDAT, Table); + ACPI_DMTABLE_INFO *InfoTable; + UINT32 Length = CdatTable->Length; + UINT32 Offset = sizeof (ACPI_TABLE_CDAT); + UINT32 SubtableLength; + UINT32 SubtableType; + INT32 EntriesLength; + + + /* Main table */ + + Status = AcpiDmDumpTable (Offset, 0, CdatTable, 0, + AcpiDmTableInfoCdatTableHdr); + if (ACPI_FAILURE (Status)) + { + return; + } + + Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, sizeof (ACPI_TABLE_CDAT)); + while (Offset < Table->Length) + { + /* Dump the common subtable header */ + + DbgPrint (ASL_DEBUG_OUTPUT, "0) HeaderOffset: %X\n", Offset); + AcpiOsPrintf ("\n"); + Status = AcpiDmDumpTable (Length, Offset, Subtable, + sizeof (ACPI_CDAT_HEADER), AcpiDmTableInfoCdatHeader); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Point past the common subtable header, decode the subtable type */ + + Offset += sizeof (ACPI_CDAT_HEADER); + SubtableType = Subtable->Type; + + switch (Subtable->Type) + { + case ACPI_CDAT_TYPE_DSMAS: + Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, Offset); + SubtableLength = sizeof (ACPI_CDAT_DSMAS); + + InfoTable = AcpiDmTableInfoCdat0; + break; + + case ACPI_CDAT_TYPE_DSLBIS: + Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, Offset); + SubtableLength = sizeof (ACPI_CDAT_DSLBIS); + DbgPrint (ASL_DEBUG_OUTPUT, "1) Offset: %X\n", Offset); + + InfoTable = AcpiDmTableInfoCdat1; + break; + + case ACPI_CDAT_TYPE_DSMSCIS: + Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, Offset); + SubtableLength = sizeof (ACPI_CDAT_DSMSCIS); + + InfoTable = AcpiDmTableInfoCdat2; + break; + + case ACPI_CDAT_TYPE_DSIS: + DbgPrint (ASL_DEBUG_OUTPUT, "2) Offset: %X ", Offset); + SubtableLength = sizeof (ACPI_CDAT_DSIS); + DbgPrint (ASL_DEBUG_OUTPUT, "1) input pointer: %p\n", Table); + Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, Offset); + DbgPrint (ASL_DEBUG_OUTPUT, "1) output pointers: %p, %p, Offset: %X\n", + Table, Subtable, Offset); + DbgPrint (ASL_DEBUG_OUTPUT, "3) Offset: %X\n", Offset); + + InfoTable = AcpiDmTableInfoCdat3; + break; + + case ACPI_CDAT_TYPE_DSEMTS: + Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, Offset); + SubtableLength = sizeof (ACPI_CDAT_DSEMTS); + + InfoTable = AcpiDmTableInfoCdat4; + break; + + case ACPI_CDAT_TYPE_SSLBIS: + SubtableLength = Subtable->Length; + + InfoTable = AcpiDmTableInfoCdat5; + Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, Offset); + break; + + default: + fprintf (stderr, "ERROR: Unknown SubtableType: %X\n", Subtable->Type); + return; + } + + DbgPrint (ASL_DEBUG_OUTPUT, "SubtableType: %X, Length: %X Actual " + "Length: %X Offset: %X tableptr: %p\n", SubtableType, + Subtable->Length, SubtableLength, Offset, Table); + + /* + * Do the subtable-specific fields + */ + Status = AcpiDmDumpTable (Length, Offset, Subtable, Offset, InfoTable); + if (ACPI_FAILURE (Status)) + { + return; + } + + DbgPrint (ASL_DEBUG_OUTPUT, "Subtable Type: %X, Offset: %X, SubtableLength: %X\n", + SubtableType, Offset, SubtableLength); + + /* Additional sub-subtables, dependent on the main subtable type */ + + switch (SubtableType) + { + case ACPI_CDAT_TYPE_SSLBIS: + Offset += sizeof (ACPI_CDAT_SSLBIS); + Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, + Offset); + + DbgPrint (ASL_DEBUG_OUTPUT, "Case SSLBIS, Offset: %X, SubtableLength: %X " + "Subtable->Length %X\n", Offset, SubtableLength, Subtable->Length); + + /* Generate the total length of all the SSLBE entries */ + + EntriesLength = SubtableLength - sizeof (ACPI_CDAT_HEADER) - + sizeof (ACPI_CDAT_SSLBIS); + DbgPrint (ASL_DEBUG_OUTPUT, "EntriesLength: %X, Offset: %X, Table->Length: %X\n", + EntriesLength, Offset, Table->Length); + + /* Do each of the SSLBE Entries */ + + while ((EntriesLength > 0) && (Offset < Table->Length)) + { + AcpiOsPrintf ("\n"); + + Status = AcpiDmDumpTable (Length, Offset, Subtable, Offset, + AcpiDmTableInfoCdatEntries); + if (ACPI_FAILURE (Status)) + { + return; + } + + EntriesLength -= sizeof (ACPI_CDAT_SSLBE); + Offset += sizeof (ACPI_CDAT_SSLBE); + Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, Offset); + } + + SubtableLength = 0; + break; + + default: + break; + } + + DbgPrint (ASL_DEBUG_OUTPUT, "Offset: %X, Subtable Length: %X\n", + Offset, SubtableLength); + + /* Point to next subtable */ + + Offset += SubtableLength; + Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, Offset); + } + + return; +} + + /******************************************************************************* * * FUNCTION: AcpiDmDumpCedt @@ -651,12 +838,14 @@ AcpiDmDumpCedt ( case ACPI_CEDT_TYPE_CHBS: Status = AcpiDmDumpTable (Length, Offset, Subtable, Subtable->Length, AcpiDmTableInfoCedt0); - if (ACPI_FAILURE (Status)) { + if (ACPI_FAILURE (Status)) + { return; } break; - case ACPI_CEDT_TYPE_CFMWS: { + case ACPI_CEDT_TYPE_CFMWS: + { ACPI_CEDT_CFMWS *ptr = (ACPI_CEDT_CFMWS *) Subtable; unsigned int i, max = 0x01 << (ptr->InterleaveWays); @@ -664,18 +853,22 @@ AcpiDmDumpCedt ( Status = AcpiDmDumpTable (Length, Offset, Subtable, Subtable->Length, AcpiDmTableInfoCedt1); - if (ACPI_FAILURE (Status)) { + if (ACPI_FAILURE (Status)) + { return; } /* Now, print out any interleave targets beyond the first. */ - for (i = 1; i < max; i++) { - unsigned int loc_offset = Offset + (i * 4) + ACPI_OFFSET(ACPI_CEDT_CFMWS, InterleaveTargets); + for (i = 1; i < max; i++) + { + unsigned int loc_offset = Offset + (i * 4) + ACPI_OFFSET (ACPI_CEDT_CFMWS, InterleaveTargets); unsigned int *trg = &(ptr->InterleaveTargets[i]); + Status = AcpiDmDumpTable (Length, loc_offset, trg, Subtable->Length, AcpiDmTableInfoCedt1_te); - if (ACPI_FAILURE (Status)) { + if (ACPI_FAILURE (Status)) + { return; } } diff --git a/source/common/dmtbdump2.c b/source/common/dmtbdump2.c index c50a6a2470bd..3fb4d531e49b 100644 --- a/source/common/dmtbdump2.c +++ b/source/common/dmtbdump2.c @@ -149,6 +149,7 @@ * *****************************************************************************/ +#include #include "acpi.h" #include "accommon.h" #include "acdisasm.h" @@ -2104,9 +2105,12 @@ AcpiDmDumpPhat ( UINT32 RecordCount; UINT32 Length = Table->Length; UINT32 Offset = sizeof (ACPI_TABLE_PHAT); + UINT32 OriginalOffset; UINT32 SubtableLength; UINT32 PathLength; UINT32 VendorLength; + UINT16 RecordType; + const wchar_t *WideString; Subtable = ACPI_ADD_PTR (ACPI_PHAT_HEADER, Table, sizeof (ACPI_TABLE_PHAT)); @@ -2116,58 +2120,93 @@ AcpiDmDumpPhat ( /* Common subtable header */ AcpiOsPrintf ("\n"); - Status = AcpiDmDumpTable (Length, 0, Subtable, + Status = AcpiDmDumpTable (Length, Offset, Subtable, sizeof (ACPI_PHAT_HEADER), AcpiDmTableInfoPhatHdr); if (ACPI_FAILURE (Status)) { return; } + DbgPrint (ASL_DEBUG_OUTPUT, "\n/* %u, Subtable->Type %X */\n", + __LINE__, Subtable->Type); + switch (Subtable->Type) { case ACPI_PHAT_TYPE_FW_VERSION_DATA: InfoTable = AcpiDmTableInfoPhat0; - SubtableLength = sizeof (ACPI_PHAT_VERSION_DATA); + SubtableLength = Offset += sizeof (ACPI_PHAT_VERSION_DATA); break; case ACPI_PHAT_TYPE_FW_HEALTH_DATA: InfoTable = AcpiDmTableInfoPhat1; - SubtableLength = sizeof (ACPI_PHAT_HEALTH_DATA); + SubtableLength = Offset += sizeof (ACPI_PHAT_TYPE_FW_HEALTH_DATA); break; default: - AcpiOsPrintf ("\n**** Unknown PHAT subtable type 0x%X\n\n", + DbgPrint (ASL_DEBUG_OUTPUT, "\n**** Unknown PHAT subtable type 0x%X\n\n", Subtable->Type); return; } - Status = AcpiDmDumpTable (Length, 0, Subtable, + Status = AcpiDmDumpTable (Length, SubtableLength, Subtable, SubtableLength, InfoTable); if (ACPI_FAILURE (Status)) { return; } + OriginalOffset = Offset; switch (Subtable->Type) { case ACPI_PHAT_TYPE_FW_VERSION_DATA: VersionData = ACPI_CAST_PTR (ACPI_PHAT_VERSION_DATA, Subtable); RecordCount = VersionData->ElementCount; - while (RecordCount) + RecordType = *ACPI_CAST_PTR (UINT8, Subtable); + + /* + * Skip past a zero-valued block (not part of the ACPI PHAT specification). + * First, check for a zero length record and a zero element count + */ + if (!VersionData->Header.Length && !VersionData->ElementCount) { - Status = AcpiDmDumpTable (Length, Offset, - ACPI_ADD_PTR (ACPI_PHAT_HEADER, Subtable, sizeof (ACPI_PHAT_VERSION_DATA)), + while (RecordType == 0) + { + Subtable = ACPI_ADD_PTR (ACPI_PHAT_HEADER, Table, Offset); + RecordType = *ACPI_CAST_PTR (UINT8, Subtable); + RecordCount = VersionData->ElementCount; + Offset += 1; + } + + Offset -= 1; + AcpiOsPrintf ("\n/* Warning: Block of zeros found above starting at Offset %X Length %X */\n" + "/* (not compliant to PHAT specification -- ignoring block) */\n", + OriginalOffset - 12, Offset - OriginalOffset + 12); + } + + DbgPrint (ASL_DEBUG_OUTPUT, "/* %u, RecordCount: %X, Offset %X, SubtableLength %X */\n", + __LINE__, RecordCount, Offset, SubtableLength); + + /* Emit each of the version elements */ + + while (RecordCount && VersionData->Header.Length) + { + AcpiOsPrintf ("\n/* Version Element #%Xh Offset %Xh */\n\n", + VersionData->ElementCount - RecordCount + 1, Offset); + + Subtable = ACPI_ADD_PTR (ACPI_PHAT_HEADER, Table, Offset); + Status = AcpiDmDumpTable (Length, Offset, Subtable, sizeof (ACPI_PHAT_VERSION_ELEMENT), AcpiDmTableInfoPhat0a); if (ACPI_FAILURE (Status)) { return; } + Offset += sizeof (ACPI_PHAT_VERSION_ELEMENT); RecordCount--; } @@ -2175,24 +2214,48 @@ AcpiDmDumpPhat ( case ACPI_PHAT_TYPE_FW_HEALTH_DATA: - /* account for the null terminator */ + /* + * Get the length of the Device Path (UEFI wide string). + * Include the wide null terminator (+2), + */ + WideString = ACPI_ADD_PTR (wchar_t, Subtable, + sizeof (ACPI_PHAT_HEALTH_DATA)); + + PathLength = (wcslen (WideString) * 2) + 2; + DbgPrint (ASL_DEBUG_OUTPUT, "/* %u, PathLength %X, Offset %X, Table->Length %X */\n", + __LINE__, PathLength, Offset, Length); - PathLength = strlen (ACPI_ADD_PTR (char, Subtable, sizeof (ACPI_PHAT_HEALTH_DATA))) + 1; Status = AcpiDmDumpTable (Length, Offset, ACPI_ADD_PTR (ACPI_PHAT_HEADER, Subtable, sizeof (ACPI_PHAT_HEALTH_DATA)), PathLength, AcpiDmTableInfoPhat1a); + Offset += PathLength; if (ACPI_FAILURE (Status)) { return; } - /* Get vendor data - data length is the remaining subtable length */ + /* Get Device-Specific Data - length of which is the remaining subtable length. */ VendorLength = Subtable->Length - sizeof (ACPI_PHAT_HEALTH_DATA) - PathLength; - Status = AcpiDmDumpTable (Length, 0, - ACPI_ADD_PTR (ACPI_PHAT_HEADER, Subtable, sizeof (ACPI_PHAT_HEALTH_DATA) + PathLength), - VendorLength, AcpiDmTableInfoPhat1b); + DbgPrint (ASL_DEBUG_OUTPUT, "%u, Subtable->Length %X, VendorLength %X, Offset %X PathLength: %X\n", + __LINE__, Subtable->Length, VendorLength, Offset, PathLength); + + if (VendorLength) + { + /* Point past the Device Path, Compile the Device-Specific Data */ + + Status = AcpiDmDumpTable (Length, Offset, + ACPI_ADD_PTR (ACPI_PHAT_HEADER, Subtable, sizeof (ACPI_PHAT_HEALTH_DATA) + PathLength), + VendorLength, AcpiDmTableInfoPhat1b); + if (ACPI_FAILURE (Status)) + { + return; + } + + Offset += VendorLength; + } + if (ACPI_FAILURE (Status)) { return; @@ -2208,9 +2271,12 @@ AcpiDmDumpPhat ( /* Next subtable */ - Offset += Subtable->Length; - Subtable = ACPI_ADD_PTR (ACPI_PHAT_HEADER, Subtable, - Subtable->Length); + DbgPrint (ASL_DEBUG_OUTPUT, "/* %u, Bottom of main loop: Offset %X, " + "Subtable->Length %X, Table->Length %X */\n", + __LINE__, Offset, Subtable->Length, Table->Length); + + Subtable = ACPI_ADD_PTR (ACPI_PHAT_HEADER, Table, + Offset); } } diff --git a/source/common/dmtbinfo1.c b/source/common/dmtbinfo1.c index d6a94bfc1025..9afed4d6a066 100644 --- a/source/common/dmtbinfo1.c +++ b/source/common/dmtbinfo1.c @@ -494,6 +494,116 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[] = ACPI_DMT_TERMINATOR }; +/******************************************************************************* + * + * CDAT - Coherent Device Attribute Table + * + ******************************************************************************/ + + /* Table header (not ACPI-compliant) */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoCdatTableHdr[] = +{ + {ACPI_DMT_UINT32, ACPI_CDAT_OFFSET (Length), "CDAT Table Length", DT_LENGTH}, + {ACPI_DMT_UINT8, ACPI_CDAT_OFFSET (Revision), "Revision", 0}, + {ACPI_DMT_UINT8, ACPI_CDAT_OFFSET (Checksum), "Checksum", 0}, + {ACPI_DMT_UINT48, ACPI_CDAT_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT32, ACPI_CDAT_OFFSET (Sequence), "Sequence", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Common subtable header */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoCdatHeader[] = +{ + {ACPI_DMT_CDAT, ACPI_CDATH_OFFSET (Type), "Subtable Type", 0}, + {ACPI_DMT_UINT8, ACPI_CDATH_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT16, ACPI_CDATH_OFFSET (Length), "Length", DT_LENGTH}, + ACPI_DMT_TERMINATOR +}; + +/* Subtable 0: Device Scoped Memory Affinity Structure (DSMAS) */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoCdat0[] = +{ + {ACPI_DMT_UINT8, ACPI_CDAT0_OFFSET (DsmadHandle), "DSMAD Handle", 0}, + {ACPI_DMT_UINT8, ACPI_CDAT0_OFFSET (Flags), "Flags", 0}, + {ACPI_DMT_UINT16, ACPI_CDAT0_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_CDAT0_OFFSET (DpaBaseAddress), "DPA Base Address", 0}, + {ACPI_DMT_UINT64, ACPI_CDAT0_OFFSET (DpaLength), "DPA Length", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Subtable 1: Device scoped Latency and Bandwidth Information Structure (DSLBIS) */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoCdat1[] = +{ + {ACPI_DMT_UINT8, ACPI_CDAT1_OFFSET (Handle), "Handle", 0}, + {ACPI_DMT_UINT8, ACPI_CDAT1_OFFSET (Flags), "Flags", 0}, + {ACPI_DMT_UINT8, ACPI_CDAT1_OFFSET (DataType), "Data Type", 0}, + {ACPI_DMT_UINT8, ACPI_CDAT1_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_CDAT1_OFFSET (EntryBaseUnit), "Entry Base Unit", 0}, + {ACPI_DMT_UINT16, ACPI_CDAT1_OFFSET (Entry[0]), "Entry0", 0}, + {ACPI_DMT_UINT16, ACPI_CDAT1_OFFSET (Entry[1]), "Entry1", 0}, + {ACPI_DMT_UINT16, ACPI_CDAT1_OFFSET (Entry[2]), "Entry2", 0}, + {ACPI_DMT_UINT16, ACPI_CDAT1_OFFSET (Reserved2), "Reserved", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Subtable 2: Device Scoped Memory Side Cache Information Structure (DSMSCIS) */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoCdat2[] = +{ + {ACPI_DMT_UINT8, ACPI_CDAT2_OFFSET (DsmasHandle), "DSMAS Handle", 0}, + {ACPI_DMT_UINT24, ACPI_CDAT2_OFFSET (Reserved[3]), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_CDAT2_OFFSET (SideCacheSize), "Side Cache Size", 0}, + {ACPI_DMT_UINT32, ACPI_CDAT2_OFFSET (CacheAttributes), "Cache Attributes", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Subtable 3: Device Scoped Initiator Structure (DSIS) */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoCdat3[] = +{ + {ACPI_DMT_UINT8, ACPI_CDAT3_OFFSET (Flags), "Flags", 0}, + {ACPI_DMT_UINT8, ACPI_CDAT3_OFFSET (Handle), "Handle", 0}, + {ACPI_DMT_UINT16, ACPI_CDAT3_OFFSET (Reserved), "Reserved", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Subtable 4: Device Scoped EFI Memory Type Structure (DSEMTS) */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoCdat4[] = +{ + {ACPI_DMT_UINT8, ACPI_CDAT4_OFFSET (DsmasHandle), "DSMAS Handle", 0}, + {ACPI_DMT_UINT8, ACPI_CDAT4_OFFSET (MemoryType), "Memory Type", 0}, + {ACPI_DMT_UINT16, ACPI_CDAT4_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_CDAT4_OFFSET (DpaOffset), "DPA Offset", 0}, + {ACPI_DMT_UINT64, ACPI_CDAT4_OFFSET (RangeLength), "DPA Range Length", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Subtable 5: Switch Scoped Latency and Bandwidth Information Structure (SSLBIS) */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoCdat5[] = +{ + {ACPI_DMT_UINT8, ACPI_CDAT5_OFFSET (DataType), "Data Type", 0}, + {ACPI_DMT_UINT24, ACPI_CDAT5_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_CDAT5_OFFSET (EntryBaseUnit), "Entry Base Unit", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Switch Scoped Latency and Bandwidth Entry (SSLBE) (For subtable 5 above) */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoCdatEntries[] = +{ + {ACPI_DMT_UINT16, ACPI_CDATE_OFFSET (PortxId), "Port X Id", 0}, + {ACPI_DMT_UINT16, ACPI_CDATE_OFFSET (PortyId), "Port Y Id", 0}, + {ACPI_DMT_UINT16, ACPI_CDATE_OFFSET (LatencyOrBandwidth), "Latency or Bandwidth", 0}, + {ACPI_DMT_UINT16, ACPI_CDATE_OFFSET (Reserved), "Reserved", 0}, + ACPI_DMT_TERMINATOR +}; + /******************************************************************************* * diff --git a/source/common/dmtbinfo2.c b/source/common/dmtbinfo2.c index 2c7d81785086..3676be813e48 100644 --- a/source/common/dmtbinfo2.c +++ b/source/common/dmtbinfo2.c @@ -412,6 +412,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoIort4[] = {ACPI_DMT_FLAG0, ACPI_IORT4_FLAG_OFFSET (Flags, 0), "COHACC Override", 0}, {ACPI_DMT_FLAG1, ACPI_IORT4_FLAG_OFFSET (Flags, 0), "HTTU Override", 0}, {ACPI_DMT_FLAG3, ACPI_IORT4_FLAG_OFFSET (Flags, 0), "Proximity Domain Valid", 0}, + {ACPI_DMT_FLAG4, ACPI_IORT4_FLAG_OFFSET (Flags, 0), "DeviceID Valid", 0}, {ACPI_DMT_UINT32, ACPI_IORT4_OFFSET (Reserved), "Reserved", 0}, {ACPI_DMT_UINT64, ACPI_IORT4_OFFSET (VatosAddress), "VATOS Address", 0}, {ACPI_DMT_UINT32, ACPI_IORT4_OFFSET (Model), "Model", 0}, @@ -1652,11 +1653,13 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt0[] = * ******************************************************************************/ +/* Common subtable header */ + ACPI_DMTABLE_INFO AcpiDmTableInfoPhatHdr[] = { - {ACPI_DMT_PHAT, ACPI_PHATH_OFFSET (Type), "Subtable Type", 0}, - {ACPI_DMT_UINT16, ACPI_PHATH_OFFSET (Length), "Length", 0}, - {ACPI_DMT_UINT8, ACPI_PHATH_OFFSET (Revision), "Revision", 0}, + {ACPI_DMT_PHAT, ACPI_PHATH_OFFSET (Type), "Subtable Type", 0}, + {ACPI_DMT_UINT16, ACPI_PHATH_OFFSET (Length), "Length", DT_LENGTH}, + {ACPI_DMT_UINT8, ACPI_PHATH_OFFSET (Revision), "Revision", 0}, ACPI_DMT_TERMINATOR }; @@ -1664,16 +1667,16 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPhatHdr[] = ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0[] = { - {ACPI_DMT_UINT24, ACPI_PHAT0_OFFSET (Reserved), "Reserved", 0}, - {ACPI_DMT_UINT32, ACPI_PHAT0_OFFSET (ElementCount), "Element Count", 0}, + {ACPI_DMT_UINT24, ACPI_PHAT0_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT32, ACPI_PHAT0_OFFSET (ElementCount), "Element Count", 0}, ACPI_DMT_TERMINATOR }; ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0a[] = { - {ACPI_DMT_UUID, ACPI_PHAT0A_OFFSET (Guid), "GUID", 0}, - {ACPI_DMT_UINT64, ACPI_PHAT0A_OFFSET (VersionValue), "Version Value", 0}, - {ACPI_DMT_UINT32, ACPI_PHAT0A_OFFSET (ProducerId), "Producer ID", 0}, + {ACPI_DMT_UUID, ACPI_PHAT0A_OFFSET (Guid), "GUID", 0}, + {ACPI_DMT_UINT64, ACPI_PHAT0A_OFFSET (VersionValue), "Version Value", 0}, + {ACPI_DMT_UINT32, ACPI_PHAT0A_OFFSET (ProducerId), "Producer ID", 0}, ACPI_DMT_TERMINATOR }; @@ -1681,22 +1684,22 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0a[] = ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1[] = { - {ACPI_DMT_UINT16, ACPI_PHAT1_OFFSET (Reserved), "Reserved", 0}, - {ACPI_DMT_UINT8, ACPI_PHAT1_OFFSET (Health), "Health", 0}, - {ACPI_DMT_UUID, ACPI_PHAT1_OFFSET (DeviceGuid), "Device GUID", 0}, - {ACPI_DMT_UINT32, ACPI_PHAT1_OFFSET (DeviceSpecificOffset), "Device specific offset", 0}, + {ACPI_DMT_UINT16, ACPI_PHAT1_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT8, ACPI_PHAT1_OFFSET (Health), "Health", 0}, + {ACPI_DMT_UUID, ACPI_PHAT1_OFFSET (DeviceGuid), "Device GUID", 0}, + {ACPI_DMT_UINT32, ACPI_PHAT1_OFFSET (DeviceSpecificOffset), "Device-Specific Offset", 0}, ACPI_DMT_TERMINATOR }; ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1a[] = { - {ACPI_DMT_STRING, 0, "Namepath", 0}, + {ACPI_DMT_UNICODE, 0, "Device Path", 0}, ACPI_DMT_TERMINATOR }; ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1b[] = { - {ACPI_DMT_RAW_BUFFER, 0, "Vendor Data", 0}, + {ACPI_DMT_RAW_BUFFER, 0, "Device-Specific Data", DT_OPTIONAL}, ACPI_DMT_TERMINATOR }; @@ -1895,7 +1898,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHandler[] = {ACPI_DMT_UINT16, ACPI_PRMT1_OFFSET (Length), "Length", 0}, {ACPI_DMT_UUID, ACPI_PRMT1_OFFSET (HandlerGuid[0]), "Handler GUID", 0}, {ACPI_DMT_UINT64, ACPI_PRMT1_OFFSET (HandlerAddress), "Handler address", 0}, - {ACPI_DMT_UINT64, ACPI_PRMT1_OFFSET (StaticDataBufferAddress),"Satic Data Address", 0}, + {ACPI_DMT_UINT64, ACPI_PRMT1_OFFSET (StaticDataBufferAddress),"Static Data Address", 0}, {ACPI_DMT_UINT64, ACPI_PRMT1_OFFSET (AcpiParamBufferAddress), "ACPI Parameter Address", 0}, ACPI_DMT_NEW_LINE, ACPI_DMT_TERMINATOR diff --git a/source/common/dmtbinfo3.c b/source/common/dmtbinfo3.c index fa698d2f40e5..b8ddb7aadb04 100644 --- a/source/common/dmtbinfo3.c +++ b/source/common/dmtbinfo3.c @@ -190,6 +190,23 @@ * Each entry is of the form: */ +/******************************************************************************* + * + * CCEL - CC-Event Log Table + * + ******************************************************************************/ + +ACPI_DMTABLE_INFO AcpiDmTableInfoCcel[] = +{ + {ACPI_DMT_UINT8, ACPI_CCEL_OFFSET (CCType), "CC Type", 0}, + {ACPI_DMT_UINT8, ACPI_CCEL_OFFSET (CCSubType), "CC Sub Type", 0}, + {ACPI_DMT_UINT32, ACPI_CCEL_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_CCEL_OFFSET (LogAreaMinimumLength), "Log Area Minimum Length", 0}, + {ACPI_DMT_UINT64, ACPI_CCEL_OFFSET (LogAreaStartAddress), "Log Area Start Address", 0}, + ACPI_DMT_TERMINATOR +}; + + /******************************************************************************* * * SLIC - Software Licensing Description Table. This table contains the standard diff --git a/source/compiler/aslcodegen.c b/source/compiler/aslcodegen.c index 6ae3a0aa202b..a0c67424d250 100644 --- a/source/compiler/aslcodegen.c +++ b/source/compiler/aslcodegen.c @@ -153,6 +153,7 @@ #include "aslcompiler.y.h" #include "amlcode.h" #include "acconvert.h" +#include "actbinfo.h" #define _COMPONENT ACPI_COMPILER ACPI_MODULE_NAME ("aslcodegen") @@ -181,6 +182,10 @@ static void CgUpdateHeader ( ACPI_PARSE_OBJECT *Op); +static void +CgUpdateCdatHeader ( + ACPI_PARSE_OBJECT *Op); + /******************************************************************************* * @@ -207,7 +212,14 @@ CgGenerateAmlOutput ( CgAmlWriteWalk, NULL, NULL); DbgPrint (ASL_TREE_OUTPUT, ASL_PARSE_TREE_HEADER2); - CgUpdateHeader (AslGbl_CurrentDB); + if (AcpiGbl_CDAT) + { + CgUpdateCdatHeader (AslGbl_CurrentDB); + } + else + { + CgUpdateHeader (AslGbl_CurrentDB); + } } @@ -656,6 +668,67 @@ CgWriteTableHeader ( } +/******************************************************************************* + * + * FUNCTION: CgUpdateCdatHeader + * + * PARAMETERS: Op - Op for the Definition Block + * + * RETURN: None. + * + * DESCRIPTION: Complete the ACPI table by calculating the checksum and + * re-writing the header for the input definition block + * + ******************************************************************************/ + +static void +CgUpdateCdatHeader ( + ACPI_PARSE_OBJECT *Op) +{ + signed char Sum; + UINT32 i; + UINT32 Length; + UINT8 FileByte; + UINT8 Checksum; + + + /* Calculate the checksum over the entire definition block */ + + Sum = 0; + Length = sizeof (ACPI_TABLE_CDAT) + Op->Asl.AmlSubtreeLength; + FlSeekFile (ASL_FILE_AML_OUTPUT, Op->Asl.FinalAmlOffset); + + for (i = 0; i < Length; i++) + { + if (FlReadFile (ASL_FILE_AML_OUTPUT, &FileByte, 1) != AE_OK) + { + AslError (ASL_ERROR, ASL_MSG_COMPILER_INTERNAL, NULL, + "Table length is greater than size of the input file"); + return; + } + + Sum = (signed char) (Sum + FileByte); + } + + Checksum = (UINT8) (0 - Sum); + + DbgPrint (ASL_DEBUG_OUTPUT, "Computed checksum = %X\n", Checksum); + + /* Re-write the checksum byte */ + + FlSeekFile (ASL_FILE_AML_OUTPUT, Op->Asl.FinalAmlOffset + + ACPI_CDAT_OFFSET (Checksum)); + + FlWriteFile (ASL_FILE_AML_OUTPUT, &Checksum, 1); + + /* + * Seek to the end of the file. This is done to support multiple file + * compilation. Doing this simplifies other parts of the codebase because + * it eliminates the need to seek for a different starting place. + */ + FlSeekFile (ASL_FILE_AML_OUTPUT, Op->Asl.FinalAmlOffset + Length); +} + /******************************************************************************* * * FUNCTION: CgUpdateHeader diff --git a/source/compiler/aslcompile.c b/source/compiler/aslcompile.c index c17e219c1a4c..f97cd9d82097 100644 --- a/source/compiler/aslcompile.c +++ b/source/compiler/aslcompile.c @@ -241,7 +241,7 @@ CmDoCompile ( if (AslGbl_SyntaxError) { - fprintf (stderr, + AslError (ASL_ERROR, ASL_MSG_SYNTAX, NULL, "Compiler aborting due to parser-detected syntax error(s)\n"); /* Flag this error in the FileNode for compilation summary */ @@ -250,6 +250,8 @@ CmDoCompile ( FileNode->ParserErrorDetected = TRUE; AslGbl_ParserErrorDetected = TRUE; LsDumpParseTree (); + AePrintErrorLog(ASL_FILE_STDERR); + goto ErrorExit; } @@ -267,6 +269,8 @@ CmDoCompile ( goto ErrorExit; } + AePrintErrorLog(ASL_FILE_STDERR); + /* Flush out any remaining source after parse tree is complete */ Event = UtBeginEvent ("Flush source input"); @@ -283,10 +287,13 @@ CmDoCompile ( LsDumpParseTree (); + AslGbl_ParserErrorDetected = FALSE; + AslGbl_SyntaxError = FALSE; UtEndEvent (Event); UtEndEvent (FullCompile); - return (AE_OK); + AslGbl_ParserErrorDetected = FALSE; + AslGbl_SyntaxError = FALSE; ErrorExit: UtEndEvent (FullCompile); return (AE_ERROR); @@ -919,7 +926,6 @@ CmCleanupAndExit ( ASL_MAX_ERROR_COUNT); } - AslGbl_ExceptionCount[ASL_ERROR] = 0; UtDisplaySummary (ASL_FILE_STDOUT); /* diff --git a/source/compiler/aslerror.c b/source/compiler/aslerror.c index a0ebe7b34e7d..3a61bc6e5e8d 100644 --- a/source/compiler/aslerror.c +++ b/source/compiler/aslerror.c @@ -1033,7 +1033,6 @@ AslLogNewError ( exit(1); } - AslGbl_ExceptionCount[ASL_ERROR] = 0; return; } diff --git a/source/compiler/aslhelp.c b/source/compiler/aslhelp.c index d83d41e3d584..1cdbf8a76fc2 100644 --- a/source/compiler/aslhelp.c +++ b/source/compiler/aslhelp.c @@ -262,6 +262,7 @@ Usage ( ACPI_OPTION ("", " (Obtain DSDT from current system if no input file)"); ACPI_OPTION ("-df", "Force disassembler to assume table contains valid AML"); ACPI_OPTION ("-dl", "Emit legacy ASL code only (no C-style operators)"); + ACPI_OPTION ("-ds ", "Specify a table signature(4) (CDAT table only)"); ACPI_OPTION ("-e ", "Include ACPI table(s) for external symbol resolution"); ACPI_OPTION ("-fe ", "Specify external symbol declaration file"); ACPI_OPTION ("-in", "Ignore NoOp opcodes"); diff --git a/source/compiler/asloptions.c b/source/compiler/asloptions.c index 2808650e3dd0..37484f79bdac 100644 --- a/source/compiler/asloptions.c +++ b/source/compiler/asloptions.c @@ -152,6 +152,7 @@ #include "aslcompiler.h" #include "acapps.h" #include "acdisasm.h" +#include "acglobal.h" #define _COMPONENT ACPI_COMPILER ACPI_MODULE_NAME ("asloption") @@ -176,7 +177,7 @@ AslDoResponseFile ( #define ASL_TOKEN_SEPARATORS " \t\n" -#define ASL_SUPPORTED_OPTIONS "@:a:b|c|d^D:e:f^gh^i|I:l^m:no|p:P^q^r:s|t|T+G^v^w|x:z" +#define ASL_SUPPORTED_OPTIONS "@:a:b|c|d^D:e:f^gh^i|I:l^m:no|p:P^q^r:s|:t|T+G^v^w|x:z" /******************************************************************************* @@ -270,7 +271,7 @@ AslDoOptions ( BOOLEAN IsResponseFile) { ACPI_STATUS Status; - UINT32 j; + INT32 j; /* Get the command line options */ @@ -366,7 +367,6 @@ AslDoOptions ( { return (-1); } - AslGbl_PruneType = (UINT8) strtoul (AcpiGbl_Optarg, NULL, 0); break; @@ -445,6 +445,28 @@ AslDoOptions ( AcpiGbl_CstyleDisassembly = FALSE; break; + case 's': /* Specify table signature (Only supported for CDAT table) */ + + /* Get the required argument */ + + if (AcpiGetoptArgument (argc, argv)) + { + return (-1); + } + + /* Check for exact string "CDAT" (upper or lower case) */ + + AcpiGbl_CDAT = ACPI_CAST_PTR (char, &AcpiGbl_Optarg); + if (AcpiUtStricmp (AcpiGbl_Optarg, ACPI_SIG_CDAT)) + { + printf ("\nUnknown table signature: %s\n", AcpiGbl_Optarg); + return (-1); + } + + AcpiGbl_CDAT = malloc (5); + AcpiUtSafeStrncpy ((char *) AcpiGbl_CDAT, ACPI_SIG_CDAT, 5); + break; + default: printf ("Unknown option: -d%s\n", AcpiGbl_Optarg); @@ -837,7 +859,7 @@ AslDoOptions ( AslGbl_HexOutputFlag = HEX_OUTPUT_C; break; - case 'p': /* data table flex/bison prototype */ + case 'p': /* data table flex/bison prototype */ AslGbl_DtLexBisonPrototype = TRUE; break; diff --git a/source/compiler/aslpredef.c b/source/compiler/aslpredef.c index c52295ee854b..2804e12da535 100644 --- a/source/compiler/aslpredef.c +++ b/source/compiler/aslpredef.c @@ -563,7 +563,7 @@ ApCheckForPredefinedName ( if (Name[0] == 0) { AslError (ASL_ERROR, ASL_MSG_COMPILER_INTERNAL, Op, - "zero length name found"); + "Zero length name found"); } /* All reserved names are prefixed with a single underscore */ diff --git a/source/compiler/aslstartup.c b/source/compiler/aslstartup.c index 45462adf9519..9542a79d3943 100644 --- a/source/compiler/aslstartup.c +++ b/source/compiler/aslstartup.c @@ -317,7 +317,7 @@ AslDetectSourceFileType ( else { fprintf (stderr, - "Binary file does not contain a valid ACPI table\n"); + "Binary file does not contain a valid standard ACPI table\n"); } Type = ASL_INPUT_TYPE_BINARY; diff --git a/source/compiler/dtcompile.c b/source/compiler/dtcompile.c index 89eb937d5fc3..11fcb8b9a6dc 100644 --- a/source/compiler/dtcompile.c +++ b/source/compiler/dtcompile.c @@ -451,6 +451,48 @@ DtCompileDataTable ( return (Status); } + /* + * If the first field is named "CDAT Table Length" (not "Signature"), + * assume that we have a CDAT table (whose table header does not have + * a signature). Instead, the TableLength field is where the + * signature would (normally) be. + */ + else if (!strcmp ((*FieldList)->Name, "CDAT Table Length")) + { + /* No longer true: (However, use this technique in the disassembler) + * We are assuming that there + * should be at least one non-ASCII byte in the 4-character + * Signature field, (At least the high-order byte should be zero). + */ + Status = DtCompileTable (FieldList, AcpiDmTableInfoCdatTableHdr, + &AslGbl_RootTable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + /* Compile the CDAT */ + + DtPushSubtable (AslGbl_RootTable); + Status = DtCompileCdat ((void **) FieldList); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + /* + * Set the overall table length and the table checksum. + * The entire compiled table (including the CDAT table header with + * the table length and checksum) is in AslGbl_RootTable->Buffer. + */ + DtSetTableLength (); + DtSetTableChecksum (&ACPI_CAST_PTR (ACPI_TABLE_CDAT, AslGbl_RootTable->Buffer)->Checksum); + + DtDumpFieldList (RootField); + DtDumpSubtableList (); + return (AE_OK); + } + /* * All other tables must use the common ACPI table header. Insert the * current iASL IDs (name, version), and compile the header now. diff --git a/source/compiler/dtcompiler.h b/source/compiler/dtcompiler.h index 3b3683cc6b74..e85ca539791a 100644 --- a/source/compiler/dtcompiler.h +++ b/source/compiler/dtcompiler.h @@ -578,13 +578,17 @@ DtCompileAsf ( void **PFieldList); ACPI_STATUS -DtCompileCpep ( +DtCompileCdat ( void **PFieldList); ACPI_STATUS DtCompileCedt ( void **PFieldList); +ACPI_STATUS +DtCompileCpep ( + void **PFieldList); + ACPI_STATUS DtCompileCsrt ( void **PFieldList); @@ -773,6 +777,8 @@ extern const unsigned char TemplateBoot[]; extern const unsigned char TemplateBdat[]; extern const unsigned char TemplateBert[]; extern const unsigned char TemplateBgrt[]; +extern const unsigned char TemplateCcel[]; +extern const unsigned char TemplateCdat[]; extern const unsigned char TemplateCedt[]; extern const unsigned char TemplateCpep[]; extern const unsigned char TemplateCsrt[]; diff --git a/source/compiler/dtio.c b/source/compiler/dtio.c index 1a00424c6abf..9ec18cd1e0f8 100644 --- a/source/compiler/dtio.c +++ b/source/compiler/dtio.c @@ -952,7 +952,7 @@ DtDumpBuffer ( UINT8 BufChar; - FlPrintFile (FileId, "Output: [%3.3Xh %4.4d %3d] ", + FlPrintFile (FileId, "Output: [%3.3Xh %4.4d %3.3Xh] ", Offset, Offset, Length); i = 0; diff --git a/source/compiler/dttable1.c b/source/compiler/dttable1.c index 9ac0435069f6..dc25e9b9f48f 100644 --- a/source/compiler/dttable1.c +++ b/source/compiler/dttable1.c @@ -655,6 +655,133 @@ DtCompileAsf ( } +/****************************************************************************** + * + * FUNCTION: DtCompileCdat + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile CDAT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileCdat ( + void **List) +{ + ACPI_STATUS Status = AE_OK; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + ACPI_CDAT_HEADER *CdatHeader; + ACPI_DMTABLE_INFO *InfoTable = NULL; + DT_FIELD *SubtableStart; + + + /* Walk the parse tree. + * + * Note: Main table consists of only the CDAT table header + * (This is not the standard ACPI table header, however)-- + * Followed by some number of subtables. + */ + while (*PFieldList) + { + SubtableStart = *PFieldList; + + /* Compile the expected CDAT Subtable header */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoCdatHeader, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + CdatHeader = ACPI_CAST_PTR (ACPI_CDAT_HEADER, Subtable->Buffer); + + /* Decode the subtable by type */ + + switch (CdatHeader->Type) + { + case ACPI_CDAT_TYPE_DSMAS: + InfoTable = AcpiDmTableInfoCdat0; + break; + + case ACPI_CDAT_TYPE_DSLBIS: + InfoTable = AcpiDmTableInfoCdat1; + break; + + case ACPI_CDAT_TYPE_DSMSCIS: + InfoTable = AcpiDmTableInfoCdat2; + break; + + case ACPI_CDAT_TYPE_DSIS: + InfoTable = AcpiDmTableInfoCdat3; + break; + + case ACPI_CDAT_TYPE_DSEMTS: + InfoTable = AcpiDmTableInfoCdat4; + break; + + case ACPI_CDAT_TYPE_SSLBIS: + InfoTable = AcpiDmTableInfoCdat5; + break; + + default: + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "CDAT"); + } + + /* Compile the CDAT subtable */ + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + switch (CdatHeader->Type) + { + /* Multiple entries supported for this type */ + + case ACPI_CDAT_TYPE_SSLBIS: + + /* + * Check for multiple SSLBEs + */ + while (*PFieldList && !AcpiUtStricmp ((*PFieldList)->Name, "Port X ID")) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoCdatEntries, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + } + break; + + default: + break; + } + + /* Pop off the CDAT Subtable header subtree */ + + DtPopSubtable (); + } + + return (AE_OK); +} + + /****************************************************************************** * * FUNCTION: DtCompileCedt @@ -2592,7 +2719,6 @@ DtCompileIvrs ( DtInsertSubtable (MainSubtable, Subtable); DtPushSubtable (Subtable); - ParentTable = MainSubtable; break; case ACPI_IVRS_TYPE_HID: diff --git a/source/compiler/dttable2.c b/source/compiler/dttable2.c index 1798a963e744..59d578f91959 100644 --- a/source/compiler/dttable2.c +++ b/source/compiler/dttable2.c @@ -825,6 +825,7 @@ DtCompileNhlt ( ACPI_NHLT_FORMATS_CONFIG *FormatsConfig; ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_D *ConfigSpecific; ACPI_NHLT_DEVICE_INFO_COUNT *DeviceInfo; + ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B *Terminator; /* Main table */ @@ -1088,7 +1089,7 @@ DtCompileNhlt ( * some non documeneted structure(s) yet to be processed. First, get * the count of such structure(s). */ - if (*PFieldList && (strcmp ((const char *) (*PFieldList)->Name, "Descriptor Length"))) + if (*PFieldList && !(strcmp ((const char *) (*PFieldList)->Name, "Device Info struct count"))) { /* Get the count of non documented structures */ @@ -1124,9 +1125,8 @@ DtCompileNhlt ( DtInsertSubtable (ParentTable, Subtable); } /* for (j = 0; j < LinuxSpecificCount; j++) */ - /* Undocumented data at the end of endpoint */ - if (*PFieldList && (strcmp ((const char *) (*PFieldList)->Name, "Descriptor Length"))) + if (*PFieldList && !(strcmp ((const char *) (*PFieldList)->Name, "Bytes"))) { Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt7b, &Subtable); @@ -1148,7 +1148,7 @@ DtCompileNhlt ( * All Endpoint Descriptors are completed. * Do the table terminator specific config (not in NHLT spec, optional) */ - if (*PFieldList && (strcmp ((const char *) (*PFieldList)->Name, "Descriptor Length"))) + if (*PFieldList && !(strcmp ((const char *) (*PFieldList)->Name, "Capabilities Size"))) { Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt5b, &Subtable); @@ -1160,15 +1160,20 @@ DtCompileNhlt ( ParentTable = DtPeekSubtable (); DtInsertSubtable (ParentTable, Subtable); - Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt3a, - &Subtable); - if (ACPI_FAILURE (Status)) - { - return (Status); - } + Terminator = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B, Subtable->Buffer); - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); + if (Terminator->CapabilitiesSize) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt3a, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + } } return (AE_OK); @@ -1369,19 +1374,30 @@ DtCompilePhat ( ACPI_PHAT_HEADER *PhatHeader; ACPI_DMTABLE_INFO *Info; ACPI_PHAT_VERSION_DATA *VersionData; + UINT32 DeviceDataLength; UINT32 RecordCount; + DT_FIELD *DataOffsetField; + DT_FIELD *DevicePathField; + UINT32 TableOffset = 0; + UINT32 DataOffsetValue; + UINT32 i; - /* The table consist of subtables */ + /* The table consists of subtables */ while (*PFieldList) { + /* Compile the common subtable header */ + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPhatHdr, &Subtable); if (ACPI_FAILURE (Status)) { return (Status); } + TableOffset += Subtable->Length; + DbgPrint (ASL_DEBUG_OUTPUT, "0 Subtable->Length: %X\n", Subtable->Length); + ParentTable = DtPeekSubtable (); DtInsertSubtable (ParentTable, Subtable); DtPushSubtable (Subtable); @@ -1392,12 +1408,66 @@ DtCompilePhat ( { case ACPI_PHAT_TYPE_FW_VERSION_DATA: + /* Compile the middle portion of the Firmware Version Data */ + Info = AcpiDmTableInfoPhat0; PhatHeader->Length = sizeof (ACPI_PHAT_VERSION_DATA); + DataOffsetField = NULL; break; case ACPI_PHAT_TYPE_FW_HEALTH_DATA: + DbgPrint (ASL_DEBUG_OUTPUT, "1 Offset: %X, Name: \"%s\" Length: %X\n", + (*PFieldList)->TableOffset, (*PFieldList)->Name, Subtable->Length); + + DataOffsetField = *PFieldList; + + /* Walk the field list to get to the "Device-specific data Offset" field */ + + TableOffset = sizeof (ACPI_PHAT_HEALTH_DATA); + for (i = 0; i < 3; i++) + { + DataOffsetField = DataOffsetField->Next; + DbgPrint (ASL_DEBUG_OUTPUT, "2 Offset: %X, Name: \"%s\" Length: %X Value: %s:\n", + TableOffset, DataOffsetField->Name, DataOffsetField->StringLength, DataOffsetField->Value); + } + + /* Convert DataOffsetField->Value (a char * string) to an integer value */ + + sscanf (DataOffsetField->Value, "%X", &DataOffsetValue); + + /* + * Get the next field (Device Path): + * DataOffsetField points to "Device-Specific Offset", next field is + * "Device Path". + */ + DevicePathField = DataOffsetField->Next; + + /* Compute the size of the input ASCII string as a unicode string (*2 + 2) */ + + DevicePathField->StringLength = (strlen ((const char *) DevicePathField->Value) * 2) + 2; + TableOffset += DevicePathField->StringLength; + + DbgPrint (ASL_DEBUG_OUTPUT, "3 Offset: %X, Length: %X devicepathLength: %X\n", + TableOffset, Subtable->Length, DevicePathField->StringLength); + + /* Set the DataOffsetField to the current TableOffset */ + /* Must set the DataOffsetField here (not later) */ + + if (DataOffsetValue != 0) + { + snprintf (DataOffsetField->Value, Subtable->Length, "%X", TableOffset); + } + + DbgPrint (ASL_DEBUG_OUTPUT, "4 Offset: %X, Length: %X\n", TableOffset, Subtable->Length); + + DbgPrint (ASL_DEBUG_OUTPUT, "5 TableOffset: %X, DataOffsetField->StringLength: " + "%X DevicePathField Length: %X DevicePathField->Value: %s, DataOffsetField->Value: %s DataOffsetField->ByteOffset %X\n", + TableOffset, DataOffsetField->StringLength, DevicePathField->StringLength, + DevicePathField->Value, DataOffsetField->Value, DataOffsetField->ByteOffset); + + /* Compile the middle portion of the Health Data Record */ + Info = AcpiDmTableInfoPhat1; PhatHeader->Length = sizeof (ACPI_PHAT_HEALTH_DATA); break; @@ -1406,16 +1476,19 @@ DtCompilePhat ( DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, *PFieldList, "PHAT"); return (AE_ERROR); - - break; } + /* Compile either the Version Data or the Health Data */ + Status = DtCompileTable (PFieldList, Info, &Subtable); if (ACPI_FAILURE (Status)) { return (Status); } + DbgPrint (ASL_DEBUG_OUTPUT, "6 Offset: %X, Name: \"%s\" SubtableLength: %X\n", + TableOffset /* - StartTableOffset*/, (*PFieldList)->Name, Subtable->Length); + ParentTable = DtPeekSubtable (); DtInsertSubtable (ParentTable, Subtable); @@ -1427,6 +1500,8 @@ DtCompilePhat ( (Subtable->Buffer - sizeof (ACPI_PHAT_HEADER))); RecordCount = VersionData->ElementCount; + /* Compile all of the Version Elements */ + while (RecordCount) { Status = DtCompileTable (PFieldList, AcpiDmTableInfoPhat0a, @@ -1435,17 +1510,29 @@ DtCompilePhat ( { return (Status); } + ParentTable = DtPeekSubtable (); DtInsertSubtable (ParentTable, Subtable); + TableOffset += Subtable->Length; RecordCount--; PhatHeader->Length += sizeof (ACPI_PHAT_VERSION_ELEMENT); } + + DtPopSubtable (); break; case ACPI_PHAT_TYPE_FW_HEALTH_DATA: - /* Compile device path */ + /* Compile the Device Path */ + + DeviceDataLength = Subtable->Length; + TableOffset += Subtable->Length; + + DbgPrint (ASL_DEBUG_OUTPUT, "7 Device Path Length: %X FieldName: \"%s\" FieldLength: " + "%s FieldValue: %s SubtableLength: %X TableOffset: %X\n", DeviceDataLength, + (*PFieldList)->Name, DataOffsetField->Value, (*PFieldList)->Value, + Subtable->Length, TableOffset); Status = DtCompileTable (PFieldList, AcpiDmTableInfoPhat1a, &Subtable); if (ACPI_FAILURE (Status)) @@ -1455,20 +1542,58 @@ DtCompilePhat ( ParentTable = DtPeekSubtable (); DtInsertSubtable (ParentTable, Subtable); - PhatHeader->Length += (UINT16) Subtable->Length; + /* *PFieldList will be null if previous field was at the end-of-ParseTree (EOF) */ - /* Compile vendor specific data */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPhat1b, &Subtable); - if (ACPI_FAILURE (Status)) + if (!*PFieldList) { - return (Status); + DbgPrint (ASL_DEBUG_OUTPUT, "8 Exit on end-of-ParseTree\n"); + return (AE_OK); } - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); + + DbgPrint (ASL_DEBUG_OUTPUT, "9 Device Data Length: %X FieldName: \"%s" + " TableOffset: %X FieldLength: %X Field Value: %s SubtableLength: %X\n", + DeviceDataLength, (*PFieldList)->Name, TableOffset, + (*PFieldList)->StringLength, (*PFieldList)->Value, Subtable->Length); PhatHeader->Length += (UINT16) Subtable->Length; + /* Convert DataOffsetField->Value (a hex char * string) to an integer value */ + + sscanf (DataOffsetField->Value, "%X", &DataOffsetValue); + + DbgPrint (ASL_DEBUG_OUTPUT, "10 Device-Specific Offset: %X Table Offset: %X\n", + DataOffsetValue, TableOffset); + if (DataOffsetValue != 0) + { + /* Compile Device-Specific Data - only if the Data Offset is non-zero */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPhat1b, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DbgPrint (ASL_DEBUG_OUTPUT, "11 Subtable: %p Table Offset: %X\n", + Subtable, TableOffset); + if (Subtable) + { + DbgPrint (ASL_DEBUG_OUTPUT, "12 Device Specific Offset: " + "%X FieldName \"%s\" SubtableLength %X\n", + DeviceDataLength, DataOffsetField->Name, Subtable->Length); + + DeviceDataLength += Subtable->Length; + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + PhatHeader->Length += (UINT16) Subtable->Length; + } + } + + DtPopSubtable (); + + DbgPrint (ASL_DEBUG_OUTPUT, "13 FieldName: \"%s\" FieldLength: %X Field Value: %s\n", + DataOffsetField->Name, DataOffsetField->StringLength, DataOffsetField->Value); break; default: diff --git a/source/compiler/dttemplate.h b/source/compiler/dttemplate.h index ad5af70748dc..3ab99978ab07 100644 --- a/source/compiler/dttemplate.h +++ b/source/compiler/dttemplate.h @@ -341,6 +341,17 @@ const unsigned char TemplateBoot[] = 0x28,0x05,0x10,0x20,0x00,0x00,0x00,0x00 /* 00000020 "(.. ...." */ }; +const unsigned char TemplateCcel[] = +{ + 0x43,0x43,0x45,0x4C,0x38,0x00,0x00,0x00, /* 00000000 "CCEL8..." */ + 0x04,0x1C,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ + 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ + 0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x30,0x09,0x21,0x20,0x00,0x00,0x00,0x00, /* 00000020 "0.! ...." */ + 0xEF,0xCD,0xAB,0x78,0x56,0x34,0x12,0x00, /* 00000028 "...xV4.." */ + 0x78,0x56,0x34,0x12,0xEF,0xCD,0xAB,0x00 /* 00000030 "xV4....." */ +}; + const unsigned char TemplateCedt[] = { 0x43,0x45,0x44,0x54,0x9c,0x01,0x00,0x00, /* 00000000 "CEDT...." */ @@ -397,6 +408,39 @@ const unsigned char TemplateCedt[] = 0x03,0x5e,0xba,0x00 /* 00000198 ".^.." */ }; +const unsigned char TemplateCdat[] = +{ + 0xE4,0x00,0x00,0x00,0x01,0x0C,0x00,0x00, /* 00000000 "........" */ + 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00, /* 00000008 "........" */ + 0x03,0x00,0x08,0x00,0x04,0x56,0x00,0x00, /* 00000010 ".....V.." */ + 0x00,0x00,0x18,0x00,0xEF,0x01,0x00,0x00, /* 00000018 "........" */ + 0x89,0x67,0x45,0x23,0x01,0x00,0x00,0x00, /* 00000020 ".gE#...." */ + 0xAB,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000028 "........" */ + 0x03,0x00,0x08,0x00,0x04,0x56,0x00,0x00, /* 00000030 ".....V.." */ + 0x01,0x00,0x18,0x00,0x44,0x04,0x64,0x00, /* 00000038 "....D.d." */ + 0xCD,0xAB,0x89,0x67,0x45,0x23,0x01,0x00, /* 00000040 "...gE#.." */ + 0x33,0x22,0x44,0x33,0x55,0x44,0x00,0x00, /* 00000048 "3"D3UD.." */ + 0x02,0x00,0x14,0x00,0x99,0x00,0x00,0x00, /* 00000050 "........" */ + 0x00,0x00,0x00,0x00,0x78,0x56,0x34,0x12, /* 00000058 "....xV4." */ + 0x55,0x55,0x44,0x44,0x04,0x00,0x18,0x00, /* 00000060 "UUDD...." */ + 0x88,0x32,0x00,0x00,0x77,0x77,0x77,0x77, /* 00000068 ".2..wwww" */ + 0x11,0x11,0x11,0x11,0x88,0x88,0x88,0x88, /* 00000070 "........" */ + 0x22,0x22,0x22,0x22,0x05,0x00,0x20,0x00, /* 00000078 """"".. ." */ + 0x04,0x00,0x00,0x00,0x44,0x44,0x44,0x44, /* 00000080 "....DDDD" */ + 0x33,0x33,0x33,0x33,0x44,0x44,0x55,0x55, /* 00000088 "3333DDUU" */ + 0x66,0x66,0x00,0x00,0x77,0x77,0x88,0x88, /* 00000090 "ff..ww.." */ + 0x99,0x99,0x00,0x00,0x05,0x00,0x18,0x00, /* 00000098 "........" */ + 0x04,0x00,0x00,0x00,0x22,0x22,0x22,0x22, /* 000000A0 "....""""" */ + 0x11,0x11,0x11,0x11,0x34,0x12,0x56,0x78, /* 000000A8 "....4.Vx" */ + 0x11,0x11,0x00,0x00,0x05,0x00,0x30,0x00, /* 000000B0 "......0." */ + 0x08,0x00,0x00,0x00,0x66,0x66,0x66,0x66, /* 000000B8 "....ffff" */ + 0x55,0x55,0x55,0x55,0x44,0x44,0x55,0x55, /* 000000C0 "UUUUDDUU" */ + 0x66,0x66,0x00,0x00,0x77,0x77,0x88,0x88, /* 000000C8 "ff..ww.." */ + 0x99,0x99,0x00,0x00,0xAA,0xAA,0xBB,0xBB, /* 000000D0 "........" */ + 0xCC,0xCC,0x00,0x00,0x55,0x55,0x44,0x44, /* 000000D8 "....UUDD" */ + 0x33,0x33,0x00,0x00 /* 000000E0 "33.." */ +}; + const unsigned char TemplateCpep[] = { 0x43,0x50,0x45,0x50,0x34,0x00,0x00,0x00, /* 00000000 "CPEP4..." */ @@ -1430,20 +1474,27 @@ const unsigned char TemplatePdtt[] = const unsigned char TemplatePhat [] = { - 0x50,0x48,0x41,0x54,0x6F,0x00,0x00,0x00, /* 00000000 "PHATo..." */ - 0x01,0xC7,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ + 0x50,0x48,0x41,0x54,0xA2,0x00,0x00,0x00, /* 00000000 "PHAT...." */ + 0x01,0xCA,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ - 0x05,0x01,0x21,0x20,0x00,0x00,0x28,0x00, /* 00000020 "..! ..(." */ + 0x31,0x03,0x22,0x20,0x00,0x00,0x28,0x00, /* 00000020 "1." ..(." */ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000028 "........" */ 0x30,0x05,0xAF,0x91,0x86,0x5D,0x0E,0x47, /* 00000030 "0....].G" */ 0xA6,0xB0,0x0A,0x2D,0xB9,0x40,0x82,0x49, /* 00000038 "...-.@.I" */ 0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01, /* 00000040 "........" */ - 0x0C,0x0B,0x0A,0x09,0x01,0x00,0x23,0x00, /* 00000048 "......#." */ + 0x0C,0x0B,0x0A,0x09,0x01,0x00,0x2E,0x00, /* 00000048 "........" */ 0x00,0x00,0x00,0x00,0x30,0x05,0xAF,0x91, /* 00000050 "....0..." */ 0x86,0x5D,0x0E,0x47,0xA6,0xB0,0x0A,0x2D, /* 00000058 ".].G...-" */ - 0xB9,0x40,0x82,0x49,0x00,0x00,0x00,0x00, /* 00000060 ".@.I...." */ - 0x61,0x73,0x64,0x66,0x00,0xFF,0x11 /* 00000068 "asdf..." */ + 0xB9,0x40,0x82,0x49,0x2A,0x00,0x00,0x00, /* 00000060 ".@.I*..." */ + 0x41,0x00,0x42,0x00,0x43,0x00,0x44,0x00, /* 00000068 "A.B.C.D." */ + 0x45,0x00,0x46,0x00,0x00,0x00,0x01,0x02, /* 00000070 "E.F....." */ + 0x03,0x04,0x00,0x00,0x28,0x00,0x00,0x00, /* 00000078 "....(..." */ + 0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x05, /* 00000080 "......0." */ + 0xAF,0x91,0x86,0x5D,0x0E,0x47,0xA6,0xB0, /* 00000088 "...].G.." */ + 0x0A,0x2D,0xB9,0x40,0x82,0x49,0x08,0x07, /* 00000090 ".-.@.I.." */ + 0x06,0x05,0x04,0x03,0x02,0x01,0x0C,0x0B, /* 00000098 "........" */ + 0x0A,0x09 /* 000000A0 ".." */ }; const unsigned char TemplatePmtt[] = diff --git a/source/compiler/dtutils.c b/source/compiler/dtutils.c index e950763e7d1c..45bff3df5d21 100644 --- a/source/compiler/dtutils.c +++ b/source/compiler/dtutils.c @@ -601,6 +601,7 @@ DtGetFieldLength ( case ACPI_DMT_AEST_XFACE: case ACPI_DMT_AEST_XRUPT: case ACPI_DMT_ASF: + case ACPI_DMT_CDAT: case ACPI_DMT_HESTNTYP: case ACPI_DMT_FADTPM: case ACPI_DMT_EINJACT: @@ -800,7 +801,7 @@ DtSum ( UINT8 *Sum = ReturnValue; - Checksum = AcpiTbChecksum (Subtable->Buffer, Subtable->Length); + Checksum = AcpiUtChecksum (Subtable->Buffer, Subtable->Length); *Sum = (UINT8) (*Sum + Checksum); } diff --git a/source/components/events/evevent.c b/source/components/events/evevent.c index 8b08338a21b7..b92646a4e5d7 100644 --- a/source/components/events/evevent.c +++ b/source/components/events/evevent.c @@ -312,7 +312,8 @@ AcpiEvFixedEventInitialize ( { Status = AcpiWriteBitRegister ( AcpiGbl_FixedEventInfo[i].EnableRegisterId, - ACPI_DISABLE_EVENT); + (i == ACPI_EVENT_PCIE_WAKE) ? + ACPI_ENABLE_EVENT : ACPI_DISABLE_EVENT); if (ACPI_FAILURE (Status)) { return (Status); @@ -361,6 +362,11 @@ AcpiEvFixedEventDetect ( return (IntStatus); } + if (FixedEnable & ACPI_BITMASK_PCIEXP_WAKE_DISABLE) + FixedEnable &= ~ACPI_BITMASK_PCIEXP_WAKE_DISABLE; + else + FixedEnable |= ACPI_BITMASK_PCIEXP_WAKE_DISABLE; + ACPI_DEBUG_PRINT ((ACPI_DB_INTERRUPTS, "Fixed Event Block: Enable %08X Status %08X\n", FixedEnable, FixedStatus)); @@ -431,7 +437,8 @@ AcpiEvFixedEventDispatch ( { (void) AcpiWriteBitRegister ( AcpiGbl_FixedEventInfo[Event].EnableRegisterId, - ACPI_DISABLE_EVENT); + (Event == ACPI_EVENT_PCIE_WAKE) ? + ACPI_ENABLE_EVENT : ACPI_DISABLE_EVENT); ACPI_ERROR ((AE_INFO, "No installed handler for fixed event - %s (%u), disabling", diff --git a/source/components/events/evregion.c b/source/components/events/evregion.c index 6cf77791f105..fb0cc4361ef6 100644 --- a/source/components/events/evregion.c +++ b/source/components/events/evregion.c @@ -329,6 +329,14 @@ AcpiEvAddressSpaceDispatch ( Ctx->SubspaceId = (UINT8) RegionObj->Region.Address; } + if (RegionObj->Region.SpaceId == ACPI_ADR_SPACE_FIXED_HARDWARE) + { + ACPI_FFH_INFO *Ctx = HandlerDesc->AddressSpace.Context; + + Ctx->Length = RegionObj->Region.Length; + Ctx->Offset = RegionObj->Region.Address; + } + /* * We must exit the interpreter because the region setup will * potentially execute control methods (for example, the _REG method diff --git a/source/components/executer/exconfig.c b/source/components/executer/exconfig.c index a87316ba866a..11c8ba64b509 100644 --- a/source/components/executer/exconfig.c +++ b/source/components/executer/exconfig.c @@ -471,7 +471,7 @@ AcpiExLoadOp ( } if (Target->Common.Type != ACPI_TYPE_INTEGER) { - fprintf (stderr, "Type not integer: %X\n", Target->Common.Type); + ACPI_ERROR ((AE_INFO, "Type not integer: %X", Target->Common.Type)); return_ACPI_STATUS (AE_AML_OPERAND_TYPE); } diff --git a/source/components/executer/exfield.c b/source/components/executer/exfield.c index 2834e7b3800a..4175b8eedcea 100644 --- a/source/components/executer/exfield.c +++ b/source/components/executer/exfield.c @@ -296,7 +296,8 @@ AcpiExReadDataFromField ( (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS || ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GSBUS || ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_IPMI || - ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_RT)) + ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_RT || + ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_FIXED_HARDWARE)) { /* SMBus, GSBus, IPMI serial */ @@ -469,7 +470,8 @@ AcpiExWriteDataToField ( (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS || ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GSBUS || ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_IPMI || - ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_RT)) + ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_RT || + ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_FIXED_HARDWARE)) { /* SMBus, GSBus, IPMI serial */ diff --git a/source/components/executer/exserial.c b/source/components/executer/exserial.c index 4dfd65992ab2..c92a895ad7f7 100644 --- a/source/components/executer/exserial.c +++ b/source/components/executer/exserial.c @@ -484,6 +484,12 @@ AcpiExWriteSerialBus ( Function = ACPI_WRITE; break; + case ACPI_ADR_SPACE_FIXED_HARDWARE: + + BufferLength = ACPI_FFH_INPUT_BUFFER_SIZE; + Function = ACPI_WRITE; + break; + default: return_ACPI_STATUS (AE_AML_INVALID_SPACE_ID); } diff --git a/source/components/executer/exsystem.c b/source/components/executer/exsystem.c index 62768bcf010f..44d3a00ba9f0 100644 --- a/source/components/executer/exsystem.c +++ b/source/components/executer/exsystem.c @@ -338,18 +338,6 @@ AcpiExSystemDoSleep ( AcpiExExitInterpreter (); - /* - * Warn users about excessive sleep times, so ASL code can be improved to - * use polling or similar techniques. - */ - if (HowLongMs > 10) - { - ACPI_WARNING ((AE_INFO, - "Firmware issue: Excessive sleep time (0x%8.8X%8.8X ms > 10 ms)" - " in ACPI Control Method", - ACPI_FORMAT_UINT64 (HowLongMs))); - } - /* * For compatibility with other ACPI implementations and to prevent * accidental deep sleeps, limit the sleep time to something reasonable. diff --git a/source/components/hardware/hwsleep.c b/source/components/hardware/hwsleep.c index 45ff336a1860..6667c27eca0e 100644 --- a/source/components/hardware/hwsleep.c +++ b/source/components/hardware/hwsleep.c @@ -475,6 +475,16 @@ AcpiHwLegacyWake ( AcpiGbl_FixedEventInfo[ACPI_EVENT_SLEEP_BUTTON].StatusRegisterId, ACPI_CLEAR_STATUS); + /* Enable pcie wake event if support */ + if ((AcpiGbl_FADT.Flags & ACPI_FADT_PCI_EXPRESS_WAKE)) { + (void) AcpiWriteBitRegister ( + AcpiGbl_FixedEventInfo[ACPI_EVENT_PCIE_WAKE].EnableRegisterId, + ACPI_DISABLE_EVENT); + (void) AcpiWriteBitRegister ( + AcpiGbl_FixedEventInfo[ACPI_EVENT_PCIE_WAKE].StatusRegisterId, + ACPI_CLEAR_STATUS); + } + AcpiHwExecuteSleepMethod (METHOD_PATHNAME__SST, ACPI_SST_WORKING); return_ACPI_STATUS (Status); } diff --git a/source/components/tables/tbdata.c b/source/components/tables/tbdata.c index 5e4f7ca7402e..d974d951b62d 100644 --- a/source/components/tables/tbdata.c +++ b/source/components/tables/tbdata.c @@ -724,7 +724,7 @@ AcpiTbVerifyTempTable ( { /* Verify the checksum */ - Status = AcpiTbVerifyChecksum (TableDesc->Pointer, TableDesc->Length); + Status = AcpiUtVerifyChecksum (TableDesc->Pointer, TableDesc->Length); if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, AE_NO_MEMORY, diff --git a/source/components/tables/tbfadt.c b/source/components/tables/tbfadt.c index 7ae35f19017a..97876614bd1c 100644 --- a/source/components/tables/tbfadt.c +++ b/source/components/tables/tbfadt.c @@ -472,7 +472,7 @@ AcpiTbParseFadt ( * Validate the FADT checksum before we copy the table. Ignore * checksum error as we want to try to get the DSDT and FACS. */ - (void) AcpiTbVerifyChecksum (Table, Length); + (void) AcpiUtVerifyChecksum (Table, Length); /* Create a local copy of the FADT in common ACPI 2.0+ format */ diff --git a/source/components/tables/tbprint.c b/source/components/tables/tbprint.c index 0b53e73730a9..cdad69af46ea 100644 --- a/source/components/tables/tbprint.c +++ b/source/components/tables/tbprint.c @@ -152,6 +152,8 @@ #include "acpi.h" #include "accommon.h" #include "actables.h" +#include "acdisasm.h" +#include "acutils.h" #define _COMPONENT ACPI_TABLES ACPI_MODULE_NAME ("tbprint") @@ -192,7 +194,7 @@ AcpiTbFixString ( while (Length && *String) { - if (!isprint ((int) *String)) + if (!isprint ((int) (UINT8) *String)) { *String = '?'; } @@ -293,89 +295,3 @@ AcpiTbPrintTableHeader ( } } - -/******************************************************************************* - * - * FUNCTION: AcpiTbValidateChecksum - * - * PARAMETERS: Table - ACPI table to verify - * Length - Length of entire table - * - * RETURN: Status - * - * DESCRIPTION: Verifies that the table checksums to zero. Optionally returns - * exception on bad checksum. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiTbVerifyChecksum ( - ACPI_TABLE_HEADER *Table, - UINT32 Length) -{ - UINT8 Checksum; - - - /* - * FACS/S3PT: - * They are the odd tables, have no standard ACPI header and no checksum - */ - - if (ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_S3PT) || - ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_FACS)) - { - return (AE_OK); - } - - /* Compute the checksum on the table */ - - Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), Length); - - /* Checksum ok? (should be zero) */ - - if (Checksum) - { - ACPI_BIOS_WARNING ((AE_INFO, - "Incorrect checksum in table [%4.4s] - 0x%2.2X, " - "should be 0x%2.2X", - Table->Signature, Table->Checksum, - (UINT8) (Table->Checksum - Checksum))); - -#if (ACPI_CHECKSUM_ABORT) - return (AE_BAD_CHECKSUM); -#endif - } - - return (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiTbChecksum - * - * PARAMETERS: Buffer - Pointer to memory region to be checked - * Length - Length of this memory region - * - * RETURN: Checksum (UINT8) - * - * DESCRIPTION: Calculates circular checksum of memory region. - * - ******************************************************************************/ - -UINT8 -AcpiTbChecksum ( - UINT8 *Buffer, - UINT32 Length) -{ - UINT8 Sum = 0; - UINT8 *End = Buffer + Length; - - - while (Buffer < End) - { - Sum = (UINT8) (Sum + *(Buffer++)); - } - - return (Sum); -} diff --git a/source/components/tables/tbutils.c b/source/components/tables/tbutils.c index d2a30dc383dc..5188d26da3c8 100644 --- a/source/components/tables/tbutils.c +++ b/source/components/tables/tbutils.c @@ -471,7 +471,7 @@ AcpiTbParseRootTable ( /* Validate the root table checksum */ - Status = AcpiTbVerifyChecksum (Table, Length); + Status = AcpiUtVerifyChecksum (Table, Length); if (ACPI_FAILURE (Status)) { AcpiOsUnmapMemory (Table, Length); diff --git a/source/components/tables/tbxfroot.c b/source/components/tables/tbxfroot.c index bb90f6059647..97cb65c79277 100644 --- a/source/components/tables/tbxfroot.c +++ b/source/components/tables/tbxfroot.c @@ -227,7 +227,7 @@ AcpiTbValidateRsdp ( /* Check the standard checksum */ - if (AcpiTbChecksum ((UINT8 *) Rsdp, ACPI_RSDP_CHECKSUM_LENGTH) != 0) + if (AcpiUtChecksum ((UINT8 *) Rsdp, ACPI_RSDP_CHECKSUM_LENGTH) != 0) { return (AE_BAD_CHECKSUM); } @@ -235,7 +235,7 @@ AcpiTbValidateRsdp ( /* Check extended checksum if table version >= 2 */ if ((Rsdp->Revision >= 2) && - (AcpiTbChecksum ((UINT8 *) Rsdp, ACPI_RSDP_XCHECKSUM_LENGTH) != 0)) + (AcpiUtChecksum ((UINT8 *) Rsdp, ACPI_RSDP_XCHECKSUM_LENGTH) != 0)) { return (AE_BAD_CHECKSUM); } @@ -271,6 +271,7 @@ AcpiFindRootPointer ( UINT8 *TablePtr; UINT8 *MemRover; UINT32 PhysicalAddress; + UINT32 EbdaWindowSize; ACPI_FUNCTION_TRACE (AcpiFindRootPointer); @@ -299,27 +300,40 @@ AcpiFindRootPointer ( /* EBDA present? */ - if (PhysicalAddress > 0x400) + /* + * Check that the EBDA pointer from memory is sane and does not point + * above valid low memory + */ + if (PhysicalAddress > 0x400 && + PhysicalAddress < 0xA0000) { /* - * 1b) Search EBDA paragraphs (EBDA is required to be a - * minimum of 1K length) + * Calculate the scan window size + * The EBDA is not guaranteed to be larger than a KiB and in case + * that it is smaller, the scanning function would leave the low + * memory and continue to the VGA range. + */ + EbdaWindowSize = ACPI_MIN(ACPI_EBDA_WINDOW_SIZE, + 0xA0000 - PhysicalAddress); + + /* + * 1b) Search EBDA paragraphs */ TablePtr = AcpiOsMapMemory ( (ACPI_PHYSICAL_ADDRESS) PhysicalAddress, - ACPI_EBDA_WINDOW_SIZE); + EbdaWindowSize); if (!TablePtr) { ACPI_ERROR ((AE_INFO, "Could not map memory at 0x%8.8X for length %u", - PhysicalAddress, ACPI_EBDA_WINDOW_SIZE)); + PhysicalAddress, EbdaWindowSize)); return_ACPI_STATUS (AE_NO_MEMORY); } MemRover = AcpiTbScanMemoryForRsdp ( - TablePtr, ACPI_EBDA_WINDOW_SIZE); - AcpiOsUnmapMemory (TablePtr, ACPI_EBDA_WINDOW_SIZE); + TablePtr, EbdaWindowSize); + AcpiOsUnmapMemory (TablePtr, EbdaWindowSize); if (MemRover) { diff --git a/source/components/utilities/utcksum.c b/source/components/utilities/utcksum.c new file mode 100644 index 000000000000..b8ea869bac5f --- /dev/null +++ b/source/components/utilities/utcksum.c @@ -0,0 +1,335 @@ +/****************************************************************************** + * + * Module Name: utcksum - Support generating table checksums + * + *****************************************************************************/ + +/****************************************************************************** + * + * 1. Copyright Notice + * + * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * All rights reserved. + * + * 2. License + * + * 2.1. This is your license from Intel Corp. under its intellectual property + * rights. You may have additional license terms from the party that provided + * you this software, covering your right to use that party's intellectual + * property rights. + * + * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a + * copy of the source code appearing in this file ("Covered Code") an + * irrevocable, perpetual, worldwide license under Intel's copyrights in the + * base code distributed originally by Intel ("Original Intel Code") to copy, + * make derivatives, distribute, use and display any portion of the Covered + * Code in any form, with the right to sublicense such rights; and + * + * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent + * license (with the right to sublicense), under only those claims of Intel + * patents that are infringed by the Original Intel Code, to make, use, sell, + * offer to sell, and import the Covered Code and derivative works thereof + * solely to the minimum extent necessary to exercise the above copyright + * license, and in no event shall the patent license extend to any additions + * to or modifications of the Original Intel Code. No other license or right + * is granted directly or by implication, estoppel or otherwise; + * + * The above copyright and patent license is granted only if the following + * conditions are met: + * + * 3. Conditions + * + * 3.1. Redistribution of Source with Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification with rights to further distribute source must include + * the above Copyright Notice, the above License, this list of Conditions, + * and the following Disclaimer and Export Compliance provision. In addition, + * Licensee must cause all Covered Code to which Licensee contributes to + * contain a file documenting the changes Licensee made to create that Covered + * Code and the date of any change. Licensee must include in that file the + * documentation of any changes made by any predecessor Licensee. Licensee + * must include a prominent statement that the modification is derived, + * directly or indirectly, from Original Intel Code. + * + * 3.2. Redistribution of Source with no Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification without rights to further distribute source must + * include the following Disclaimer and Export Compliance provision in the + * documentation and/or other materials provided with distribution. In + * addition, Licensee may not authorize further sublicense of source of any + * portion of the Covered Code, and must include terms to the effect that the + * license from Licensee to its licensee is limited to the intellectual + * property embodied in the software Licensee provides to its licensee, and + * not to intellectual property embodied in modifications its licensee may + * make. + * + * 3.3. Redistribution of Executable. Redistribution in executable form of any + * substantial portion of the Covered Code or modification must reproduce the + * above Copyright Notice, and the following Disclaimer and Export Compliance + * provision in the documentation and/or other materials provided with the + * distribution. + * + * 3.4. Intel retains all right, title, and interest in and to the Original + * Intel Code. + * + * 3.5. Neither the name Intel nor any other trademark owned or controlled by + * Intel shall be used in advertising or otherwise to promote the sale, use or + * other dealings in products derived from or relating to the Covered Code + * without prior written authorization from Intel. + * + * 4. Disclaimer and Export Compliance + * + * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED + * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE + * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, + * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY + * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY + * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A + * PARTICULAR PURPOSE. + * + * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES + * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR + * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, + * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY + * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL + * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS + * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY + * LIMITED REMEDY. + * + * 4.3. Licensee shall not export, either directly or indirectly, any of this + * software or system incorporating such software without first obtaining any + * required license or other approval from the U. S. Department of Commerce or + * any other agency or department of the United States Government. In the + * event Licensee exports any such software from the United States or + * re-exports any such software from a foreign destination, Licensee shall + * ensure that the distribution and export/re-export of the software is in + * compliance with all laws, regulations, orders, or other restrictions of the + * U.S. Export Administration Regulations. Licensee agrees that neither it nor + * any of its subsidiaries will export/re-export any technical data, process, + * software, or service, directly or indirectly, to any country for which the + * United States government or any agency thereof requires an export license, + * other governmental approval, or letter of assurance, without first obtaining + * such license, approval or letter. + * + ***************************************************************************** + * + * Alternatively, you may choose to be licensed under the terms of the + * following license: + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions, and the following disclaimer, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * substantially similar to the "NO WARRANTY" disclaimer below + * ("Disclaimer") and any redistribution must be conditioned upon + * including a substantially similar Disclaimer requirement for further + * binary redistribution. + * 3. Neither the names of the above-listed copyright holders nor the names + * of any contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Alternatively, you may choose to be licensed under the terms of the + * GNU General Public License ("GPL") version 2 as published by the Free + * Software Foundation. + * + *****************************************************************************/ + +#include "acpi.h" +#include "accommon.h" +#include "acdisasm.h" +#include "acutils.h" + + +/* This module used for application-level code only */ + +#define _COMPONENT ACPI_CA_DISASSEMBLER + ACPI_MODULE_NAME ("utcksum") + + +/******************************************************************************* + * + * FUNCTION: AcpiUtVerifyChecksum + * + * PARAMETERS: Table - ACPI table to verify + * Length - Length of entire table + * + * RETURN: Status + * + * DESCRIPTION: Verifies that the table checksums to zero. Optionally returns + * exception on bad checksum. + * Note: We don't have to check for a CDAT here, since CDAT is + * not in the RSDT/XSDT, and the CDAT table is never installed + * via ACPICA. + * + ******************************************************************************/ + +ACPI_STATUS +AcpiUtVerifyChecksum ( + ACPI_TABLE_HEADER *Table, + UINT32 Length) +{ + UINT8 Checksum; + + + /* + * FACS/S3PT: + * They are the odd tables, have no standard ACPI header and no checksum + */ + if (ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_S3PT) || + ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_FACS)) + { + return (AE_OK); + } + + /* Compute the checksum on the table */ + + Length = Table->Length; + Checksum = AcpiUtGenerateChecksum (ACPI_CAST_PTR (UINT8, Table), Length, Table->Checksum); + + /* Computed checksum matches table? */ + + if (Checksum != Table->Checksum) + { + ACPI_BIOS_WARNING ((AE_INFO, + "Incorrect checksum in table [%4.4s] - 0x%2.2X, " + "should be 0x%2.2X", + Table->Signature, Table->Checksum, + Table->Checksum - Checksum)); + +#if (ACPI_CHECKSUM_ABORT) + return (AE_BAD_CHECKSUM); +#endif + } + + return (AE_OK); +} + + +/******************************************************************************* + * + * FUNCTION: AcpiUtVerifyCdatChecksum + * + * PARAMETERS: Table - CDAT ACPI table to verify + * Length - Length of entire table + * + * RETURN: Status + * + * DESCRIPTION: Verifies that the CDAT table checksums to zero. Optionally + * returns an exception on bad checksum. + * + ******************************************************************************/ + +ACPI_STATUS +AcpiUtVerifyCdatChecksum ( + ACPI_TABLE_CDAT *CdatTable, + UINT32 Length) +{ + UINT8 Checksum; + + + /* Compute the checksum on the table */ + + Checksum = AcpiUtGenerateChecksum (ACPI_CAST_PTR (UINT8, CdatTable), + CdatTable->Length, CdatTable->Checksum); + + /* Computed checksum matches table? */ + + if (Checksum != CdatTable->Checksum) + { + ACPI_BIOS_WARNING ((AE_INFO, + "Incorrect checksum in table [%4.4s] - 0x%2.2X, " + "should be 0x%2.2X", + AcpiGbl_CDAT, CdatTable->Checksum, Checksum)); + +#if (ACPI_CHECKSUM_ABORT) + return (AE_BAD_CHECKSUM); +#endif + } + + CdatTable->Checksum = Checksum; + return (AE_OK); +} + + +/******************************************************************************* + * + * FUNCTION: AcpiUtGenerateChecksum + * + * PARAMETERS: Table - Pointer to table to be checksummed + * Length - Length of the table + * OriginalChecksum - Value of the checksum field + * + * RETURN: 8 bit checksum of buffer + * + * DESCRIPTION: Computes an 8 bit checksum of the table. + * + ******************************************************************************/ + +UINT8 +AcpiUtGenerateChecksum ( + void *Table, + UINT32 Length, + UINT8 OriginalChecksum) +{ + UINT8 Checksum; + + + /* Sum the entire table as-is */ + + Checksum = AcpiUtChecksum ((UINT8 *) Table, Length); + + /* Subtract off the existing checksum value in the table */ + + Checksum = (UINT8) (Checksum - OriginalChecksum); + + /* Compute and return the final checksum */ + + Checksum = (UINT8) (0 - Checksum); + return (Checksum); +} + + +/******************************************************************************* + * + * FUNCTION: AcpiUtChecksum + * + * PARAMETERS: Buffer - Pointer to memory region to be checked + * Length - Length of this memory region + * + * RETURN: Checksum (UINT8) + * + * DESCRIPTION: Calculates circular checksum of memory region. + * + ******************************************************************************/ + +UINT8 +AcpiUtChecksum ( + UINT8 *Buffer, + UINT32 Length) +{ + UINT8 Sum = 0; + UINT8 *End = Buffer + Length; + + + while (Buffer < End) + { + Sum = (UINT8) (Sum + *(Buffer++)); + } + + return (Sum); +} diff --git a/source/components/utilities/utglobal.c b/source/components/utilities/utglobal.c index 7de4a9c31bc7..43de5c0a7747 100644 --- a/source/components/utilities/utglobal.c +++ b/source/components/utilities/utglobal.c @@ -287,6 +287,7 @@ ACPI_FIXED_EVENT_INFO AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS] = /* ACPI_EVENT_POWER_BUTTON */ {ACPI_BITREG_POWER_BUTTON_STATUS, ACPI_BITREG_POWER_BUTTON_ENABLE, ACPI_BITMASK_POWER_BUTTON_STATUS, ACPI_BITMASK_POWER_BUTTON_ENABLE}, /* ACPI_EVENT_SLEEP_BUTTON */ {ACPI_BITREG_SLEEP_BUTTON_STATUS, ACPI_BITREG_SLEEP_BUTTON_ENABLE, ACPI_BITMASK_SLEEP_BUTTON_STATUS, ACPI_BITMASK_SLEEP_BUTTON_ENABLE}, /* ACPI_EVENT_RTC */ {ACPI_BITREG_RT_CLOCK_STATUS, ACPI_BITREG_RT_CLOCK_ENABLE, ACPI_BITMASK_RT_CLOCK_STATUS, ACPI_BITMASK_RT_CLOCK_ENABLE}, + /* ACPI_EVENT_PCIE_WAKE */ {ACPI_BITREG_PCIEXP_WAKE_STATUS, ACPI_BITREG_PCIEXP_WAKE_DISABLE, ACPI_BITMASK_PCIEXP_WAKE_STATUS, ACPI_BITMASK_PCIEXP_WAKE_DISABLE}, }; #endif /* !ACPI_REDUCED_HARDWARE */ diff --git a/source/components/utilities/utstring.c b/source/components/utilities/utstring.c index 5af4c4d3624d..770f3078767a 100644 --- a/source/components/utilities/utstring.c +++ b/source/components/utilities/utstring.c @@ -308,7 +308,7 @@ AcpiUtRepairName ( return; } - ACPI_COPY_NAMESEG (&OriginalName, Name); + ACPI_COPY_NAMESEG (&OriginalName, &Name[0]); /* Check each character in the name */ @@ -321,10 +321,10 @@ AcpiUtRepairName ( /* * Replace a bad character with something printable, yet technically - * still invalid. This prevents any collisions with existing "good" + * "odd". This prevents any collisions with existing "good" * names in the namespace. */ - Name[i] = '*'; + Name[i] = '_'; FoundBadChar = TRUE; } @@ -335,8 +335,8 @@ AcpiUtRepairName ( if (!AcpiGbl_EnableInterpreterSlack) { ACPI_WARNING ((AE_INFO, - "Invalid character(s) in name (0x%.8X), repaired: [%4.4s]", - OriginalName, Name)); + "Invalid character(s) in name (0x%.8X) %p, repaired: [%4.4s]", + OriginalName, Name, &Name[0])); } else { diff --git a/source/include/acconfig.h b/source/include/acconfig.h index 8ba7dc28473a..04f7f4f0caa0 100644 --- a/source/include/acconfig.h +++ b/source/include/acconfig.h @@ -335,6 +335,8 @@ #define ACPI_PRM_INPUT_BUFFER_SIZE 26 +#define ACPI_FFH_INPUT_BUFFER_SIZE 256 + /* _SxD and _SxW control methods */ #define ACPI_NUM_SxD_METHODS 4 diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h index 352417cbb69a..47ce0b15bffd 100644 --- a/source/include/acdisasm.h +++ b/source/include/acdisasm.h @@ -260,6 +260,7 @@ typedef enum ACPI_DMT_AEST_XRUPT, ACPI_DMT_AGDI, ACPI_DMT_ASF, + ACPI_DMT_CDAT, ACPI_DMT_CEDT, ACPI_DMT_DMAR, ACPI_DMT_DMAR_SCOPE, @@ -402,6 +403,16 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoBdat[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoCcel[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdatTableHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdatHeader[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat0[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat2[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat3[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat4[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat5[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdatEntries[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedtHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1[]; @@ -747,6 +758,14 @@ void AcpiDmDumpAsf ( ACPI_TABLE_HEADER *Table); +void +AcpiDmDumpCcel ( + ACPI_TABLE_HEADER *Table); + +void +AcpiDmDumpCdat ( + ACPI_TABLE_HEADER *Table); + void AcpiDmDumpCedt ( ACPI_TABLE_HEADER *Table); diff --git a/source/include/acglobal.h b/source/include/acglobal.h index b8831b467232..1850d94beb2e 100644 --- a/source/include/acglobal.h +++ b/source/include/acglobal.h @@ -167,6 +167,7 @@ ACPI_GLOBAL (ACPI_TABLE_LIST, AcpiGbl_RootTableList); ACPI_GLOBAL (ACPI_TABLE_HEADER *, AcpiGbl_DSDT); ACPI_GLOBAL (ACPI_TABLE_HEADER, AcpiGbl_OriginalDsdtHeader); +ACPI_INIT_GLOBAL (char *, AcpiGbl_CDAT, NULL); ACPI_INIT_GLOBAL (UINT32, AcpiGbl_DsdtIndex, ACPI_INVALID_TABLE_INDEX); ACPI_INIT_GLOBAL (UINT32, AcpiGbl_FacsIndex, ACPI_INVALID_TABLE_INDEX); ACPI_INIT_GLOBAL (UINT32, AcpiGbl_XFacsIndex, ACPI_INVALID_TABLE_INDEX); diff --git a/source/include/acpixf.h b/source/include/acpixf.h index f62c16cbd40e..7b779375091f 100644 --- a/source/include/acpixf.h +++ b/source/include/acpixf.h @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20220331 +#define ACPI_CA_VERSION 0x20221020 #include "acconfig.h" #include "actypes.h" diff --git a/source/include/actables.h b/source/include/actables.h index 40b79a47c219..e9b070f91d5f 100644 --- a/source/include/actables.h +++ b/source/include/actables.h @@ -345,16 +345,6 @@ AcpiTbPrintTableHeader( ACPI_PHYSICAL_ADDRESS Address, ACPI_TABLE_HEADER *Header); -UINT8 -AcpiTbChecksum ( - UINT8 *Buffer, - UINT32 Length); - -ACPI_STATUS -AcpiTbVerifyChecksum ( - ACPI_TABLE_HEADER *Table, - UINT32 Length); - void AcpiTbCheckDsdtHeader ( void); diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h index 633f7349b390..7ce3c21e594c 100644 --- a/source/include/actbinfo.h +++ b/source/include/actbinfo.h @@ -161,6 +161,7 @@ #define ACPI_BERT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_BERT,f) #define ACPI_BGRT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_BGRT,f) #define ACPI_BOOT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_BOOT,f) +#define ACPI_CCEL_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_CCEL,f) #define ACPI_CPEP_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_CPEP,f) #define ACPI_DBG2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_DBG2,f) #define ACPI_DBGP_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_DBGP,f) @@ -233,6 +234,15 @@ #define ACPI_ASF2a_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_CONTROL_DATA,f) #define ACPI_ASF3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_RMCP,f) #define ACPI_ASF4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_ADDRESS,f) +#define ACPI_CDAT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_CDAT,f) +#define ACPI_CDATH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_HEADER,f) +#define ACPI_CDAT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_DSMAS,f) +#define ACPI_CDAT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_DSLBIS,f) +#define ACPI_CDAT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_DSMSCIS,f) +#define ACPI_CDAT3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_DSIS,f) +#define ACPI_CDAT4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_DSEMTS,f) +#define ACPI_CDAT5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_SSLBIS,f) +#define ACPI_CDATE_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_SSLBE,f) #define ACPI_CEDT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_HEADER, f) #define ACPI_CEDT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CHBS, f) #define ACPI_CEDT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CFMWS, f) diff --git a/source/include/actbl1.h b/source/include/actbl1.h index 3de78b0d8f01..340b636b5e24 100644 --- a/source/include/actbl1.h +++ b/source/include/actbl1.h @@ -189,6 +189,7 @@ #define ACPI_SIG_HMAT "HMAT" /* Heterogeneous Memory Attributes Table */ #define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */ #define ACPI_SIG_IBFT "IBFT" /* iSCSI Boot Firmware Table */ +#define ACPI_SIG_MSCT "MSCT" /* Maximum System Characteristics Table*/ #define ACPI_SIG_S3PT "S3PT" /* S3 Performance (sub)Table */ #define ACPI_SIG_PCCS "PCC" /* PCC Shared Memory Region */ @@ -494,12 +495,154 @@ typedef struct acpi_table_boot } ACPI_TABLE_BOOT; + +/******************************************************************************* + * + * CDAT - Coherent Device Attribute Table + * Version 1 + * + * Conforms to the "Coherent Device Attribute Table (CDAT) Specification + " (Revision 1.01, October 2020.) + * + ******************************************************************************/ + +typedef struct acpi_table_cdat +{ + UINT32 Length; /* Length of table in bytes, including this header */ + UINT8 Revision; /* ACPI Specification minor version number */ + UINT8 Checksum; /* To make sum of entire table == 0 */ + UINT8 Reserved[6]; + UINT32 Sequence; /* Used to detect runtime CDAT table changes */ + +} ACPI_TABLE_CDAT; + + +/* CDAT common subtable header */ + +typedef struct acpi_cdat_header +{ + UINT8 Type; + UINT8 Reserved; + UINT16 Length; + +} ACPI_CDAT_HEADER; + +/* Values for Type field above */ + +enum AcpiCdatType +{ + ACPI_CDAT_TYPE_DSMAS = 0, + ACPI_CDAT_TYPE_DSLBIS = 1, + ACPI_CDAT_TYPE_DSMSCIS = 2, + ACPI_CDAT_TYPE_DSIS = 3, + ACPI_CDAT_TYPE_DSEMTS = 4, + ACPI_CDAT_TYPE_SSLBIS = 5, + ACPI_CDAT_TYPE_RESERVED = 6 /* 6 through 0xFF are reserved */ +}; + + +/* Subtable 0: Device Scoped Memory Affinity Structure (DSMAS) */ + +typedef struct acpi_cadt_dsmas +{ + UINT8 DsmadHandle; + UINT8 Flags; + UINT16 Reserved; + UINT64 DpaBaseAddress; + UINT64 DpaLength; + +} ACPI_CDAT_DSMAS; + +/* Flags for subtable above */ + +#define ACPI_CEDT_DSMAS_NON_VOLATILE (1 << 2) + + +/* Subtable 1: Device scoped Latency and Bandwidth Information Structure (DSLBIS) */ + +typedef struct acpi_cdat_dslbis +{ + UINT8 Handle; + UINT8 Flags; /* If Handle matches a DSMAS handle, the definition of this field matches + * Flags field in HMAT System Locality Latency */ + UINT8 DataType; + UINT8 Reserved; + UINT64 EntryBaseUnit; + UINT16 Entry[3]; + UINT16 Reserved2; + +} ACPI_CDAT_DSLBIS; + + +/* Subtable 2: Device Scoped Memory Side Cache Information Structure (DSMSCIS) */ + +typedef struct acpi_cdat_dsmscis +{ + UINT8 DsmasHandle; + UINT8 Reserved[3]; + UINT64 SideCacheSize; + UINT32 CacheAttributes; + +} ACPI_CDAT_DSMSCIS; + + +/* Subtable 3: Device Scoped Initiator Structure (DSIS) */ + +typedef struct acpi_cdat_dsis +{ + UINT8 Flags; + UINT8 Handle; + UINT16 Reserved; + +} ACPI_CDAT_DSIS; + +/* Flags for above subtable */ + +#define ACPI_CDAT_DSIS_MEM_ATTACHED (1 << 0) + + +/* Subtable 4: Device Scoped EFI Memory Type Structure (DSEMTS) */ + +typedef struct acpi_cdat_dsemts +{ + UINT8 DsmasHandle; + UINT8 MemoryType; + UINT16 Reserved; + UINT64 DpaOffset; + UINT64 RangeLength; + +} ACPI_CDAT_DSEMTS; + + +/* Subtable 5: Switch Scoped Latency and Bandwidth Information Structure (SSLBIS) */ + +typedef struct acpi_cdat_sslbis +{ + UINT8 DataType; + UINT8 Reserved[3]; + UINT64 EntryBaseUnit; + +} ACPI_CDAT_SSLBIS; + + +/* Sub-subtable for above, SslbeEntries field */ + +typedef struct acpi_cdat_sslbe +{ + UINT16 PortxId; + UINT16 PortyId; + UINT16 LatencyOrBandwidth; + UINT16 Reserved; + +} ACPI_CDAT_SSLBE; + + /******************************************************************************* * * CEDT - CXL Early Discovery Table * Version 1 * - * Conforms to the "CXL Early Discovery Table" (CXL 2.0) + * Conforms to the "CXL Early Discovery Table" (CXL 2.0, October 2020) * ******************************************************************************/ @@ -525,7 +668,9 @@ enum AcpiCedtType { ACPI_CEDT_TYPE_CHBS = 0, ACPI_CEDT_TYPE_CFMWS = 1, - ACPI_CEDT_TYPE_RESERVED = 2, + ACPI_CEDT_TYPE_CXIMS = 2, + ACPI_CEDT_TYPE_RDPAS = 3, + ACPI_CEDT_TYPE_RESERVED = 4, }; /* Values for version field above */ @@ -583,6 +728,7 @@ typedef struct acpi_cedt_cfmws_target_element /* Values for Interleave Arithmetic field above */ #define ACPI_CEDT_CFMWS_ARITHMETIC_MODULO (0) +#define ACPI_CEDT_CFMWS_ARITHMETIC_XOR (1) /* Values for Restrictions field above */ @@ -592,6 +738,35 @@ typedef struct acpi_cedt_cfmws_target_element #define ACPI_CEDT_CFMWS_RESTRICT_PMEM (1<<3) #define ACPI_CEDT_CFMWS_RESTRICT_FIXED (1<<4) +/* 2: CXL XOR Interleave Math Structure */ + +struct acpi_cedt_cxims { + ACPI_CEDT_HEADER Header; + UINT16 Reserved1; + UINT8 Hbig; + UINT8 NrXormaps; + UINT64 XormapList[]; +}; + +/* 3: CXL RCEC Downstream Port Association Structure */ + +struct acpi_cedt_rdpas { + ACPI_CEDT_HEADER Header; + UINT8 Reserved1; + UINT16 Length; + UINT16 Segment; + UINT16 Bdf; + UINT8 Protocol; + UINT64 Address; +}; + +/* Masks for bdf field above */ +#define ACPI_CEDT_RDPAS_BUS_MASK 0xff00 +#define ACPI_CEDT_RDPAS_DEVICE_MASK 0x00f8 +#define ACPI_CEDT_RDPAS_FUNCTION_MASK 0x0007 + +#define ACPI_CEDT_RDPAS_PROTOCOL_IO (0) +#define ACPI_CEDT_RDPAS_PROTOCOL_CACHEMEM (1) /******************************************************************************* * diff --git a/source/include/actbl2.h b/source/include/actbl2.h index 3032c5e25003..4be5f0fce884 100644 --- a/source/include/actbl2.h +++ b/source/include/actbl2.h @@ -171,6 +171,8 @@ #define ACPI_SIG_AGDI "AGDI" /* Arm Generic Diagnostic Dump and Reset Device Interface */ #define ACPI_SIG_APMT "APMT" /* Arm Performance Monitoring Unit table */ #define ACPI_SIG_BDAT "BDAT" /* BIOS Data ACPI Table */ +#define ACPI_SIG_CCEL "CCEL" /* CC Event Log Table */ +#define ACPI_SIG_CDAT "CDAT" /* Coherent Device Attribute Table */ #define ACPI_SIG_IORT "IORT" /* IO Remapping Table */ #define ACPI_SIG_IVRS "IVRS" /* I/O Virtualization Reporting Structure */ #define ACPI_SIG_LPIT "LPIT" /* Low Power Idle Table */ @@ -178,7 +180,6 @@ #define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */ #define ACPI_SIG_MCHI "MCHI" /* Management Controller Host Interface table */ #define ACPI_SIG_MPST "MPST" /* Memory Power State Table */ -#define ACPI_SIG_MSCT "MSCT" /* Maximum System Characteristics Table */ #define ACPI_SIG_MSDM "MSDM" /* Microsoft Data Management Table */ #define ACPI_SIG_NFIT "NFIT" /* NVDIMM Firmware Interface Table */ #define ACPI_SIG_NHLT "NHLT" /* Non HD Audio Link Table */ @@ -521,13 +522,31 @@ typedef struct acpi_table_bdat } ACPI_TABLE_BDAT; +/******************************************************************************* + * + * CCEL - CC-Event Log + * From: "Guest-Host-Communication Interface (GHCI) for Intel + * Trust Domain Extensions (Intel TDX)". Feb 2022 + * + ******************************************************************************/ + +typedef struct acpi_table_ccel +{ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + UINT8 CCType; + UINT8 CCSubType; + UINT16 Reserved; + UINT64 LogAreaMinimumLength; + UINT64 LogAreaStartAddress; + +} ACPI_TABLE_CCEL; /******************************************************************************* * * IORT - IO Remapping Table * * Conforms to "IO Remapping Table System Software on ARM Platforms", - * Document number: ARM DEN 0049E.d, Feb 2022 + * Document number: ARM DEN 0049E.e, Sep 2022 * ******************************************************************************/ @@ -725,6 +744,7 @@ typedef struct acpi_iort_smmu_v3 #define ACPI_IORT_SMMU_V3_COHACC_OVERRIDE (1) #define ACPI_IORT_SMMU_V3_HTTU_OVERRIDE (3<<1) #define ACPI_IORT_SMMU_V3_PXM_VALID (1<<3) +#define ACPI_IORT_SMMU_V3_DEVICEID_VALID (1<<4) typedef struct acpi_iort_pmcg { @@ -1107,7 +1127,14 @@ enum AcpiMadtType ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14, ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15, ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16, - ACPI_MADT_TYPE_RESERVED = 17, /* 17 to 0x7F are reserved */ + ACPI_MADT_TYPE_CORE_PIC = 17, + ACPI_MADT_TYPE_LIO_PIC = 18, + ACPI_MADT_TYPE_HT_PIC = 19, + ACPI_MADT_TYPE_EIO_PIC = 20, + ACPI_MADT_TYPE_MSI_PIC = 21, + ACPI_MADT_TYPE_BIO_PIC = 22, + ACPI_MADT_TYPE_LPC_PIC = 23, + ACPI_MADT_TYPE_RESERVED = 24, /* 24 to 0x7F are reserved */ ACPI_MADT_TYPE_OEM_RESERVED = 0x80 /* 0x80 to 0xFF are reserved for OEM use */ }; @@ -1391,7 +1418,135 @@ typedef struct acpi_madt_multiproc_wakeup_mailbox #define ACPI_MP_WAKE_COMMAND_WAKEUP 1 -/* 17: OEM data */ +/* 17: CPU Core Interrupt Controller (ACPI 6.5) */ + +typedef struct acpi_madt_core_pic { + ACPI_SUBTABLE_HEADER Header; + UINT8 Version; + UINT32 ProcessorId; + UINT32 CoreId; + UINT32 Flags; +} ACPI_MADT_CORE_PIC; + +/* Values for Version field above */ + +enum AcpiMadtCorePicVersion { + ACPI_MADT_CORE_PIC_VERSION_NONE = 0, + ACPI_MADT_CORE_PIC_VERSION_V1 = 1, + ACPI_MADT_CORE_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ +}; + +/* 18: Legacy I/O Interrupt Controller (ACPI 6.5) */ + +typedef struct acpi_madt_lio_pic { + ACPI_SUBTABLE_HEADER Header; + UINT8 Version; + UINT64 Address; + UINT16 Size; + UINT8 Cascade[2]; + UINT32 CascadeMap[2]; +} ACPI_MADT_LIO_PIC; + +/* Values for Version field above */ + +enum AcpiMadtLioPicVersion { + ACPI_MADT_LIO_PIC_VERSION_NONE = 0, + ACPI_MADT_LIO_PIC_VERSION_V1 = 1, + ACPI_MADT_LIO_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ +}; + +/* 19: HT Interrupt Controller (ACPI 6.5) */ + +typedef struct acpi_madt_ht_pic { + ACPI_SUBTABLE_HEADER Header; + UINT8 Version; + UINT64 Address; + UINT16 Size; + UINT8 Cascade[8]; +} ACPI_MADT_HT_PIC; + +/* Values for Version field above */ + +enum AcpiMadtHtPicVersion { + ACPI_MADT_HT_PIC_VERSION_NONE = 0, + ACPI_MADT_HT_PIC_VERSION_V1 = 1, + ACPI_MADT_HT_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ +}; + +/* 20: Extend I/O Interrupt Controller (ACPI 6.5) */ + +typedef struct acpi_madt_eio_pic { + ACPI_SUBTABLE_HEADER Header; + UINT8 Version; + UINT8 Cascade; + UINT8 Node; + UINT64 NodeMap; +} ACPI_MADT_EIO_PIC; + +/* Values for Version field above */ + +enum AcpiMadtEioPicVersion { + ACPI_MADT_EIO_PIC_VERSION_NONE = 0, + ACPI_MADT_EIO_PIC_VERSION_V1 = 1, + ACPI_MADT_EIO_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ +}; + +/* 21: MSI Interrupt Controller (ACPI 6.5) */ + +typedef struct acpi_madt_msi_pic { + ACPI_SUBTABLE_HEADER Header; + UINT8 Version; + UINT64 MsgAddress; + UINT32 Start; + UINT32 Count; +} ACPI_MADT_MSI_PIC; + +/* Values for Version field above */ + +enum AcpiMadtMsiPicVersion { + ACPI_MADT_MSI_PIC_VERSION_NONE = 0, + ACPI_MADT_MSI_PIC_VERSION_V1 = 1, + ACPI_MADT_MSI_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ +}; + +/* 22: Bridge I/O Interrupt Controller (ACPI 6.5) */ + +typedef struct acpi_madt_bio_pic { + ACPI_SUBTABLE_HEADER Header; + UINT8 Version; + UINT64 Address; + UINT16 Size; + UINT16 Id; + UINT16 GsiBase; +} ACPI_MADT_BIO_PIC; + +/* Values for Version field above */ + +enum AcpiMadtBioPicVersion { + ACPI_MADT_BIO_PIC_VERSION_NONE = 0, + ACPI_MADT_BIO_PIC_VERSION_V1 = 1, + ACPI_MADT_BIO_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ +}; + +/* 23: LPC Interrupt Controller (ACPI 6.5) */ + +typedef struct acpi_madt_lpc_pic { + ACPI_SUBTABLE_HEADER Header; + UINT8 Version; + UINT64 Address; + UINT16 Size; + UINT8 Cascade; +} ACPI_MADT_LPC_PIC; + +/* Values for Version field above */ + +enum AcpiMadtLpcPicVersion { + ACPI_MADT_LPC_PIC_VERSION_NONE = 0, + ACPI_MADT_LPC_PIC_VERSION_V1 = 1, + ACPI_MADT_LPC_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ +}; + +/* 80: OEM data */ typedef struct acpi_madt_oem_data { diff --git a/source/include/actypes.h b/source/include/actypes.h index 99588f6717a0..92da002ab6b3 100644 --- a/source/include/actypes.h +++ b/source/include/actypes.h @@ -873,7 +873,8 @@ typedef UINT32 ACPI_EVENT_TYPE; #define ACPI_EVENT_POWER_BUTTON 2 #define ACPI_EVENT_SLEEP_BUTTON 3 #define ACPI_EVENT_RTC 4 -#define ACPI_EVENT_MAX 4 +#define ACPI_EVENT_PCIE_WAKE 5 +#define ACPI_EVENT_MAX 5 #define ACPI_NUM_FIXED_EVENTS ACPI_EVENT_MAX + 1 /* @@ -1335,6 +1336,12 @@ typedef struct acpi_pcc_info { UINT8 *InternalBuffer; } ACPI_PCC_INFO; +/* Special Context data for FFH Opregion (ACPI 6.5) */ + +typedef struct acpi_ffh_info { + UINT64 Offset; + UINT64 Length; +} ACPI_FFH_INFO; typedef ACPI_STATUS (*ACPI_ADR_SPACE_SETUP) ( diff --git a/source/include/acutils.h b/source/include/acutils.h index f23ee559b71b..a0e7953b16cf 100644 --- a/source/include/acutils.h +++ b/source/include/acutils.h @@ -317,6 +317,31 @@ AcpiUtCheckAndRepairAscii ( UINT32 Count); +/* + * utcksum - Checksum utilities + */ +UINT8 +AcpiUtGenerateChecksum ( + void *Table, + UINT32 Length, + UINT8 OriginalChecksum); + +UINT8 +AcpiUtChecksum ( + UINT8 *Buffer, + UINT32 Length); + +ACPI_STATUS +AcpiUtVerifyCdatChecksum ( + ACPI_TABLE_CDAT *CdatTable, + UINT32 Length); + +ACPI_STATUS +AcpiUtVerifyChecksum ( + ACPI_TABLE_HEADER *Table, + UINT32 Length); + + /* * utnonansi - Non-ANSI C library functions */ diff --git a/source/include/acuuid.h b/source/include/acuuid.h index bc41fa40bab9..2ab07bb39508 100644 --- a/source/include/acuuid.h +++ b/source/include/acuuid.h @@ -211,5 +211,6 @@ #define UUID_HIERARCHICAL_DATA_EXTENSION "dbb8e3e6-5886-4ba6-8795-1319f52a966b" #define UUID_CORESIGHT_GRAPH "3ecbc8b6-1d0e-4fb3-8107-e627f805c6cd" #define UUID_USB4_CAPABILITIES "23a0d13a-26ab-486c-9c5f-0ffa525a575a" - +#define UUID_1ST_FUNCTION_ID "893f00a6-660c-494e-bcfd-3043f4fb67c0" +#define UUID_2ND_FUNCTION_ID "107ededd-d381-4fd7-8da9-08e9a6c79644" #endif /* __ACUUID_H__ */ diff --git a/source/include/platform/acfreebsd.h b/source/include/platform/acfreebsd.h index fdf99082530d..022f7165e3cb 100644 --- a/source/include/platform/acfreebsd.h +++ b/source/include/platform/acfreebsd.h @@ -166,6 +166,9 @@ #define ACPI_UINTPTR_T uintptr_t +#define ACPI_TO_INTEGER(p) ((uintptr_t)(p)) +#define ACPI_OFFSET(d, f) __offsetof(d, f) + #define ACPI_USE_DO_WHILE_0 #define ACPI_USE_LOCAL_CACHE #define ACPI_USE_NATIVE_DIVIDE @@ -211,6 +214,7 @@ #if __STDC_HOSTED__ #include +#include #endif #define ACPI_CAST_PTHREAD_T(pthread) ((ACPI_THREAD_ID) ACPI_TO_INTEGER (pthread)) diff --git a/source/tools/acpidump/apdump.c b/source/tools/acpidump/apdump.c index d66832d1a4e9..0cf8d00ab8de 100644 --- a/source/tools/acpidump/apdump.c +++ b/source/tools/acpidump/apdump.c @@ -234,7 +234,9 @@ ApIsValidChecksum ( } else { - Status = AcpiTbVerifyChecksum (Table, Table->Length); + /* We don't have to check for a CDAT here, since CDAT is not in the RSDT/XSDT */ + + Status = AcpiUtVerifyChecksum (Table, Table->Length); } if (ACPI_FAILURE (Status)) diff --git a/source/tools/acpiexec/aetables.c b/source/tools/acpiexec/aetables.c index 97f4fb73a8ae..c758084ce583 100644 --- a/source/tools/acpiexec/aetables.c +++ b/source/tools/acpiexec/aetables.c @@ -267,7 +267,7 @@ AeInitializeTableHeader ( /* Set the checksum, must set to zero first */ Header->Checksum = 0; - Header->Checksum = (UINT8) -AcpiTbChecksum ( + Header->Checksum = (UINT8) -AcpiUtChecksum ( (void *) Header, Header->Length); } @@ -420,7 +420,7 @@ AeBuildLocalTables ( AeInitializeTableHeader ((void *) LocalXSDT, ACPI_SIG_XSDT, XsdtSize); LocalRSDP.Checksum = 0; - LocalRSDP.Checksum = (UINT8) -AcpiTbChecksum ( + LocalRSDP.Checksum = (UINT8) -AcpiUtChecksum ( (void *) &LocalRSDP, ACPI_RSDP_CHECKSUM_LENGTH); if (!DsdtAddress) @@ -471,7 +471,7 @@ AeBuildLocalTables ( /* Complete the external FADT with the checksum */ ExternalFadt->Header.Checksum = 0; - ExternalFadt->Header.Checksum = (UINT8) -AcpiTbChecksum ( + ExternalFadt->Header.Checksum = (UINT8) -AcpiUtChecksum ( (void *) ExternalFadt, ExternalFadt->Header.Length); } else if (AcpiGbl_UseHwReducedFadt) @@ -551,7 +551,7 @@ AeBuildLocalTables ( LocalTEST.Length = sizeof (ACPI_TABLE_HEADER); LocalTEST.Checksum = 0; - LocalTEST.Checksum = (UINT8) -AcpiTbChecksum ( + LocalTEST.Checksum = (UINT8) -AcpiUtChecksum ( (void *) &LocalTEST, LocalTEST.Length); /* @@ -565,7 +565,7 @@ AeBuildLocalTables ( LocalBADTABLE.Length = sizeof (ACPI_TABLE_HEADER); LocalBADTABLE.Checksum = 0; - LocalBADTABLE.Checksum = (UINT8) -AcpiTbChecksum ( + LocalBADTABLE.Checksum = (UINT8) -AcpiUtChecksum ( (void *) &LocalBADTABLE, LocalBADTABLE.Length); } diff --git a/source/tools/acpihelp/ahmain.c b/source/tools/acpihelp/ahmain.c index 808a8edafbbc..6570cbc66508 100644 --- a/source/tools/acpihelp/ahmain.c +++ b/source/tools/acpihelp/ahmain.c @@ -160,7 +160,7 @@ AhDisplayUsage ( void); #define AH_UTILITY_NAME "ACPI Help Utility" -#define AH_SUPPORTED_OPTIONS "adeghikmopstuvx^" +#define AH_SUPPORTED_OPTIONS "adeghikmopstuv^x" #if defined ACPI_OPTION diff --git a/source/tools/acpisrc/astable.c b/source/tools/acpisrc/astable.c index ec4344776c24..d2da8e3011e6 100644 --- a/source/tools/acpisrc/astable.c +++ b/source/tools/acpisrc/astable.c @@ -648,12 +648,12 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_BERT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_BGRT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_BOOT", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_CCEL", SRC_TYPE_STRUCT}, {"ACPI_TABLE_CEDT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_CPEP", SRC_TYPE_STRUCT}, {"ACPI_TABLE_CSRT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_DBG2", SRC_TYPE_STRUCT}, {"ACPI_TABLE_DBGP", SRC_TYPE_STRUCT}, - {"ACPI_TABLE_CEDT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_DMAR", SRC_TYPE_STRUCT}, {"ACPI_TABLE_DRTM", SRC_TYPE_STRUCT}, {"ACPI_TABLE_ECDT", SRC_TYPE_STRUCT}, @@ -686,7 +686,6 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_RGRT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_RSDP", SRC_TYPE_STRUCT}, {"ACPI_TABLE_RSDT", SRC_TYPE_STRUCT}, - {"ACPI_TABLE_MCHI", SRC_TYPE_STRUCT}, {"ACPI_TABLE_S3PT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_SBST", SRC_TYPE_STRUCT}, {"ACPI_TABLE_SDEV", SRC_TYPE_STRUCT}, @@ -887,7 +886,6 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_PHAT_HEADER", SRC_TYPE_STRUCT}, {"ACPI_PHAT_VERSION_DATA", SRC_TYPE_STRUCT}, {"ACPI_PHAT_VERSION_ELEMENT", SRC_TYPE_STRUCT}, - {"ACPI_PHAT_VERSION_ELEMENT", SRC_TYPE_STRUCT}, {"ACPI_PHAT_HEALTH_DATA", SRC_TYPE_STRUCT}, {"ACPI_PMTT_CONTROLLER", SRC_TYPE_STRUCT}, {"ACPI_PMTT_HEADER", SRC_TYPE_STRUCT}, diff --git a/source/tools/acpixtract/acpixtract.c b/source/tools/acpixtract/acpixtract.c index 480e20e808b4..30bb06e5b531 100644 --- a/source/tools/acpixtract/acpixtract.c +++ b/source/tools/acpixtract/acpixtract.c @@ -561,7 +561,7 @@ AxListAllTables ( FILE *InputFile; unsigned char Header[48]; UINT32 ByteCount = 0; - UINT32 ThisLineByteCount; + INT32 ThisLineByteCount; unsigned int State = AX_STATE_FIND_HEADER; diff --git a/source/tools/examples/extables.c b/source/tools/examples/extables.c index 9f2bcc10838a..8633788ea821 100644 --- a/source/tools/examples/extables.c +++ b/source/tools/examples/extables.c @@ -315,19 +315,19 @@ ExInitializeAcpiTables ( /* Set new checksums for the modified tables */ Rsdp->Checksum = 0; - Rsdp->Checksum = (UINT8) -AcpiTbChecksum ( + Rsdp->Checksum = (UINT8) -AcpiUtChecksum ( (void *) RsdpCode, ACPI_RSDP_CHECKSUM_LENGTH); Rsdt->Header.Checksum = 0; - Rsdt->Header.Checksum = (UINT8) -AcpiTbChecksum ( + Rsdt->Header.Checksum = (UINT8) -AcpiUtChecksum ( (void *) Rsdt, Rsdt->Header.Length); Xsdt->Header.Checksum = 0; - Xsdt->Header.Checksum = (UINT8) -AcpiTbChecksum ( + Xsdt->Header.Checksum = (UINT8) -AcpiUtChecksum ( (void *) Xsdt, Xsdt->Header.Length); Fadt->Header.Checksum = 0; - Fadt->Header.Checksum = (UINT8) -AcpiTbChecksum ( + Fadt->Header.Checksum = (UINT8) -AcpiUtChecksum ( (void *) Fadt, Fadt->Header.Length); } From 8e013e1e3b81740266738226667431cf5c28b17a Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Tue, 30 Jan 2024 16:43:45 -0500 Subject: [PATCH 09/10] Import ACPICA 20230331 --- changes.txt | 105 ++ source/common/acfileio.c | 2 +- source/common/acgetline.c | 2 +- source/common/adfile.c | 2 +- source/common/adisasm.c | 3 +- source/common/adwalk.c | 2 +- source/common/ahids.c | 2 +- source/common/ahpredef.c | 2 +- source/common/ahtable.c | 5 +- source/common/ahuuids.c | 2 +- source/common/cmfsize.c | 2 +- source/common/dmextern.c | 10 +- source/common/dmrestag.c | 11 +- source/common/dmswitch.c | 2 +- source/common/dmtable.c | 54 +- source/common/dmtables.c | 2 +- source/common/dmtbdump.c | 2 +- source/common/dmtbdump1.c | 93 +- source/common/dmtbdump2.c | 242 +++- source/common/dmtbdump3.c | 2 +- source/common/dmtbinfo.c | 2 +- source/common/dmtbinfo1.c | 55 +- source/common/dmtbinfo2.c | 191 ++- source/common/dmtbinfo3.c | 2 +- source/common/getopt.c | 2 +- source/compiler/aslallocate.c | 8 +- source/compiler/aslanalyze.c | 2 +- source/compiler/aslascii.c | 2 +- source/compiler/aslbtypes.c | 5 +- source/compiler/aslcache.c | 2 +- source/compiler/aslcodegen.c | 2 +- source/compiler/aslcompile.c | 2 +- source/compiler/aslcompiler.h | 5 +- source/compiler/aslcompiler.l | 14 +- source/compiler/aslcstyle.y | 2 +- source/compiler/asldebug.c | 2 +- source/compiler/asldefine.h | 2 +- source/compiler/aslerror.c | 2 +- source/compiler/aslexternal.c | 2 +- source/compiler/aslfileio.c | 2 +- source/compiler/aslfiles.c | 2 +- source/compiler/aslfold.c | 2 +- source/compiler/aslglobal.h | 2 +- source/compiler/aslhelp.c | 2 +- source/compiler/aslhelpers.y | 2 +- source/compiler/aslhex.c | 2 +- source/compiler/aslkeywords.y | 13 +- source/compiler/asllength.c | 2 +- source/compiler/asllisting.c | 2 +- source/compiler/asllistsup.c | 2 +- source/compiler/aslload.c | 2 +- source/compiler/asllookup.c | 2 +- source/compiler/aslmain.c | 2 +- source/compiler/aslmap.c | 8 +- source/compiler/aslmapenter.c | 2 +- source/compiler/aslmapoutput.c | 2 +- source/compiler/aslmaputils.c | 2 +- source/compiler/aslmessages.c | 2 +- source/compiler/aslmessages.h | 2 +- source/compiler/aslmethod.c | 2 +- source/compiler/aslnamesp.c | 2 +- source/compiler/asloffset.c | 2 +- source/compiler/aslopcodes.c | 2 +- source/compiler/asloperands.c | 2 +- source/compiler/aslopt.c | 2 +- source/compiler/asloptions.c | 2 +- source/compiler/aslparseop.c | 6 +- source/compiler/aslparser.y | 4 +- source/compiler/aslpld.c | 2 +- source/compiler/aslpredef.c | 2 +- source/compiler/aslprepkg.c | 2 +- source/compiler/aslprimaries.y | 2 +- source/compiler/aslprintf.c | 2 +- source/compiler/aslprune.c | 2 +- source/compiler/aslresource.c | 8 +- source/compiler/aslresources.y | 18 +- source/compiler/aslrestype1.c | 2 +- source/compiler/aslrestype1i.c | 2 +- source/compiler/aslrestype2.c | 8 +- source/compiler/aslrestype2d.c | 2 +- source/compiler/aslrestype2e.c | 2 +- source/compiler/aslrestype2q.c | 2 +- source/compiler/aslrestype2s.c | 129 +- source/compiler/aslrestype2w.c | 2 +- source/compiler/aslrules.y | 2 +- source/compiler/aslstartup.c | 2 +- source/compiler/aslstubs.c | 2 +- source/compiler/aslsupport.l | 4 +- source/compiler/aslsupport.y | 2 +- source/compiler/asltokens.y | 8 +- source/compiler/asltransform.c | 2 +- source/compiler/asltree.c | 5 +- source/compiler/asltypes.h | 4 +- source/compiler/asltypes.y | 5 +- source/compiler/aslutils.c | 8 +- source/compiler/asluuid.c | 2 +- source/compiler/aslwalks.c | 2 +- source/compiler/aslxref.c | 2 +- source/compiler/aslxrefout.c | 2 +- source/compiler/cvcompiler.c | 2 +- source/compiler/cvdisasm.c | 2 +- source/compiler/cvparser.c | 2 +- source/compiler/dtcompile.c | 2 +- source/compiler/dtcompiler.h | 17 +- source/compiler/dtcompilerparser.l | 2 +- source/compiler/dtcompilerparser.y | 2 +- source/compiler/dtexpress.c | 7 +- source/compiler/dtfield.c | 4 +- source/compiler/dtio.c | 2 +- source/compiler/dtparser.l | 2 +- source/compiler/dtparser.y | 2 +- source/compiler/dtsubtable.c | 2 +- source/compiler/dttable.c | 2 +- source/compiler/dttable1.c | 91 +- source/compiler/dttable2.c | 285 +++- source/compiler/dttemplate.c | 2 +- source/compiler/dttemplate.h | 79 +- source/compiler/dtutils.c | 4 +- source/compiler/preprocess.h | 11 +- source/compiler/prexpress.c | 2 +- source/compiler/prmacros.c | 50 +- source/compiler/prparser.l | 2 +- source/compiler/prparser.y | 2 +- source/compiler/prscan.c | 9 +- source/compiler/prutils.c | 240 +++- source/components/debugger/dbcmds.c | 2 +- source/components/debugger/dbconvert.c | 2 +- source/components/debugger/dbdisply.c | 2 +- source/components/debugger/dbexec.c | 2 +- source/components/debugger/dbfileio.c | 2 +- source/components/debugger/dbhistry.c | 2 +- source/components/debugger/dbinput.c | 2 +- source/components/debugger/dbmethod.c | 2 +- source/components/debugger/dbnames.c | 5 +- source/components/debugger/dbobject.c | 2 +- source/components/debugger/dbstats.c | 2 +- source/components/debugger/dbtest.c | 2 +- source/components/debugger/dbutils.c | 2 +- source/components/debugger/dbxface.c | 2 +- source/components/disassembler/dmbuffer.c | 2 +- source/components/disassembler/dmcstyle.c | 2 +- source/components/disassembler/dmdeferred.c | 2 +- source/components/disassembler/dmnames.c | 2 +- source/components/disassembler/dmopcode.c | 2 +- source/components/disassembler/dmresrc.c | 3 +- source/components/disassembler/dmresrcl.c | 4 +- source/components/disassembler/dmresrcl2.c | 42 +- source/components/disassembler/dmresrcs.c | 2 +- source/components/disassembler/dmutils.c | 2 +- source/components/disassembler/dmwalk.c | 2 +- source/components/dispatcher/dsargs.c | 2 +- source/components/dispatcher/dscontrol.c | 2 +- source/components/dispatcher/dsdebug.c | 2 +- source/components/dispatcher/dsfield.c | 2 +- source/components/dispatcher/dsinit.c | 2 +- source/components/dispatcher/dsmethod.c | 12 +- source/components/dispatcher/dsmthdat.c | 2 +- source/components/dispatcher/dsobject.c | 2 +- source/components/dispatcher/dsopcode.c | 2 +- source/components/dispatcher/dspkginit.c | 2 +- source/components/dispatcher/dsutils.c | 2 +- source/components/dispatcher/dswexec.c | 8 +- source/components/dispatcher/dswload.c | 2 +- source/components/dispatcher/dswload2.c | 2 +- source/components/dispatcher/dswscope.c | 2 +- source/components/dispatcher/dswstate.c | 11 +- source/components/events/evevent.c | 4 +- source/components/events/evglock.c | 2 +- source/components/events/evgpe.c | 2 +- source/components/events/evgpeblk.c | 2 +- source/components/events/evgpeinit.c | 2 +- source/components/events/evgpeutil.c | 2 +- source/components/events/evhandler.c | 2 +- source/components/events/evmisc.c | 2 +- source/components/events/evregion.c | 2 +- source/components/events/evrgnini.c | 2 +- source/components/events/evsci.c | 2 +- source/components/events/evxface.c | 2 +- source/components/events/evxfevnt.c | 2 +- source/components/events/evxfgpe.c | 2 +- source/components/events/evxfregn.c | 103 +- source/components/executer/exconcat.c | 2 +- source/components/executer/exconfig.c | 2 +- source/components/executer/exconvrt.c | 2 +- source/components/executer/excreate.c | 2 +- source/components/executer/exdebug.c | 2 +- source/components/executer/exdump.c | 2 +- source/components/executer/exfield.c | 2 +- source/components/executer/exfldio.c | 2 +- source/components/executer/exmisc.c | 2 +- source/components/executer/exmutex.c | 2 +- source/components/executer/exnames.c | 2 +- source/components/executer/exoparg1.c | 2 +- source/components/executer/exoparg2.c | 2 +- source/components/executer/exoparg3.c | 2 +- source/components/executer/exoparg6.c | 2 +- source/components/executer/exprep.c | 2 +- source/components/executer/exregion.c | 2 +- source/components/executer/exresnte.c | 2 +- source/components/executer/exresolv.c | 2 +- source/components/executer/exresop.c | 2 +- source/components/executer/exserial.c | 2 +- source/components/executer/exstore.c | 2 +- source/components/executer/exstoren.c | 2 +- source/components/executer/exstorob.c | 2 +- source/components/executer/exsystem.c | 6 +- source/components/executer/extrace.c | 2 +- source/components/executer/exutils.c | 2 +- source/components/hardware/hwacpi.c | 2 +- source/components/hardware/hwesleep.c | 2 +- source/components/hardware/hwgpe.c | 2 +- source/components/hardware/hwpci.c | 2 +- source/components/hardware/hwregs.c | 2 +- source/components/hardware/hwsleep.c | 13 +- source/components/hardware/hwtimer.c | 2 +- source/components/hardware/hwvalid.c | 10 +- source/components/hardware/hwxface.c | 2 +- source/components/hardware/hwxfsleep.c | 2 +- source/components/namespace/nsaccess.c | 2 +- source/components/namespace/nsalloc.c | 2 +- source/components/namespace/nsarguments.c | 2 +- source/components/namespace/nsconvert.c | 2 +- source/components/namespace/nsdump.c | 2 +- source/components/namespace/nsdumpdv.c | 2 +- source/components/namespace/nseval.c | 2 +- source/components/namespace/nsinit.c | 2 +- source/components/namespace/nsload.c | 2 +- source/components/namespace/nsnames.c | 2 +- source/components/namespace/nsobject.c | 2 +- source/components/namespace/nsparse.c | 2 +- source/components/namespace/nspredef.c | 2 +- source/components/namespace/nsprepkg.c | 2 +- source/components/namespace/nsrepair.c | 16 +- source/components/namespace/nsrepair2.c | 11 +- source/components/namespace/nssearch.c | 2 +- source/components/namespace/nsutils.c | 4 +- source/components/namespace/nswalk.c | 2 +- source/components/namespace/nsxfeval.c | 2 +- source/components/namespace/nsxfname.c | 4 +- source/components/namespace/nsxfobj.c | 2 +- source/components/parser/psargs.c | 2 +- source/components/parser/psloop.c | 2 +- source/components/parser/psobject.c | 2 +- source/components/parser/psopcode.c | 2 +- source/components/parser/psopinfo.c | 2 +- source/components/parser/psparse.c | 2 +- source/components/parser/psscope.c | 2 +- source/components/parser/pstree.c | 2 +- source/components/parser/psutils.c | 2 +- source/components/parser/pswalk.c | 2 +- source/components/parser/psxface.c | 2 +- source/components/resources/rsaddr.c | 14 +- source/components/resources/rscalc.c | 33 +- source/components/resources/rscreate.c | 10 +- source/components/resources/rsdump.c | 2 +- source/components/resources/rsdumpinfo.c | 21 +- source/components/resources/rsinfo.c | 7 +- source/components/resources/rsio.c | 2 +- source/components/resources/rsirq.c | 14 +- source/components/resources/rslist.c | 11 +- source/components/resources/rsmemory.c | 2 +- source/components/resources/rsmisc.c | 11 +- source/components/resources/rsserial.c | 46 +- source/components/resources/rsutils.c | 2 +- source/components/resources/rsxface.c | 2 +- source/components/tables/tbdata.c | 2 +- source/components/tables/tbfadt.c | 2 +- source/components/tables/tbfind.c | 2 +- source/components/tables/tbinstal.c | 2 +- source/components/tables/tbprint.c | 3 +- source/components/tables/tbutils.c | 7 +- source/components/tables/tbxface.c | 2 +- source/components/tables/tbxfload.c | 2 +- source/components/tables/tbxfroot.c | 2 +- source/components/utilities/utaddress.c | 2 +- source/components/utilities/utalloc.c | 2 +- source/components/utilities/utascii.c | 2 +- source/components/utilities/utbuffer.c | 2 +- source/components/utilities/utcache.c | 2 +- source/components/utilities/utcksum.c | 4 +- source/components/utilities/utclib.c | 2 +- source/components/utilities/utcopy.c | 2 +- source/components/utilities/utdebug.c | 2 +- source/components/utilities/utdecode.c | 2 +- source/components/utilities/utdelete.c | 2 +- source/components/utilities/uterror.c | 2 +- source/components/utilities/uteval.c | 2 +- source/components/utilities/utexcep.c | 2 +- source/components/utilities/utglobal.c | 2 +- source/components/utilities/uthex.c | 2 +- source/components/utilities/utids.c | 2 +- source/components/utilities/utinit.c | 2 +- source/components/utilities/utlock.c | 2 +- source/components/utilities/utmath.c | 2 +- source/components/utilities/utmisc.c | 2 +- source/components/utilities/utmutex.c | 2 +- source/components/utilities/utnonansi.c | 2 +- source/components/utilities/utobject.c | 2 +- source/components/utilities/utosi.c | 2 +- source/components/utilities/utownerid.c | 2 +- source/components/utilities/utpredef.c | 2 +- source/components/utilities/utprint.c | 2 +- source/components/utilities/utresdecode.c | 15 +- source/components/utilities/utresrc.c | 16 +- source/components/utilities/utstate.c | 2 +- source/components/utilities/utstring.c | 2 +- source/components/utilities/utstrsuppt.c | 2 +- source/components/utilities/utstrtoul64.c | 2 +- source/components/utilities/uttrack.c | 2 +- source/components/utilities/utuuid.c | 2 +- source/components/utilities/utxface.c | 2 +- source/components/utilities/utxferror.c | 2 +- source/components/utilities/utxfinit.c | 2 +- source/components/utilities/utxfmutex.c | 2 +- source/include/acapps.h | 4 +- source/include/acbuffer.h | 2 +- source/include/acclib.h | 2 +- source/include/accommon.h | 2 +- source/include/acconfig.h | 2 +- source/include/acconvert.h | 2 +- source/include/acdebug.h | 2 +- source/include/acdisasm.h | 45 +- source/include/acdispat.h | 2 +- source/include/acevents.h | 2 +- source/include/acexcep.h | 2 +- source/include/acglobal.h | 2 +- source/include/achware.h | 2 +- source/include/acinterp.h | 2 +- source/include/aclocal.h | 5 +- source/include/acmacros.h | 2 +- source/include/acnames.h | 2 +- source/include/acnamesp.h | 2 +- source/include/acobject.h | 2 +- source/include/acopcode.h | 2 +- source/include/acoutput.h | 2 +- source/include/acparser.h | 2 +- source/include/acpi.h | 2 +- source/include/acpiosxf.h | 2 +- source/include/acpixf.h | 21 +- source/include/acpredef.h | 2 +- source/include/acresrc.h | 4 +- source/include/acrestyp.h | 41 +- source/include/acstruct.h | 2 +- source/include/actables.h | 2 +- source/include/actbinfo.h | 21 +- source/include/actbl.h | 2 +- source/include/actbl1.h | 97 +- source/include/actbl2.h | 244 +++- source/include/actbl3.h | 2 +- source/include/actypes.h | 8 +- source/include/acutils.h | 4 +- source/include/acuuid.h | 2 +- source/include/amlcode.h | 2 +- source/include/amlresrc.h | 27 +- source/include/platform/accygwin.h | 2 +- source/include/platform/acdragonflyex.h | 2 +- source/include/platform/acefi.h | 2 +- source/include/platform/acefiex.h | 4 +- source/include/platform/acenv.h | 4 +- source/include/platform/acenvex.h | 2 +- source/include/platform/acfreebsd.h | 2 +- source/include/platform/acgcc.h | 13 +- source/include/platform/acgccex.h | 2 +- source/include/platform/achaiku.h | 6 +- source/include/platform/acintel.h | 2 +- source/include/platform/aclinux.h | 7 +- source/include/platform/aclinuxex.h | 2 +- source/include/platform/acmacosx.h | 2 +- source/include/platform/acmsvc.h | 2 +- source/include/platform/acmsvcex.h | 2 +- source/include/platform/acnetbsd.h | 2 +- source/include/platform/acos2.h | 2 +- source/include/platform/acqnx.h | 2 +- source/include/platform/acwin.h | 2 +- source/include/platform/acwin64.h | 2 +- source/include/platform/aczephyr.h | 192 +++ source/os_specific/service_layers/osbsdtbl.c | 2 +- .../os_specific/service_layers/oslinuxtbl.c | 2 +- source/os_specific/service_layers/osunixdir.c | 2 +- source/os_specific/service_layers/osunixmap.c | 2 +- source/os_specific/service_layers/osunixxf.c | 2 +- source/os_specific/service_layers/oswindir.c | 2 +- source/os_specific/service_layers/oswintbl.c | 2 +- source/os_specific/service_layers/oswinxf.c | 2 +- source/os_specific/service_layers/oszephyr.c | 1151 +++++++++++++++++ source/tools/acpibin/abcompare.c | 2 +- source/tools/acpibin/abmain.c | 2 +- source/tools/acpibin/acpibin.h | 2 +- source/tools/acpidump/acpidump.h | 2 +- source/tools/acpidump/apdump.c | 2 +- source/tools/acpidump/apfiles.c | 2 +- source/tools/acpidump/apmain.c | 2 +- source/tools/acpiexec/aecommon.h | 2 +- source/tools/acpiexec/aeexception.c | 2 +- source/tools/acpiexec/aeexec.c | 2 +- source/tools/acpiexec/aehandlers.c | 2 +- source/tools/acpiexec/aeinitfile.c | 2 +- source/tools/acpiexec/aeinstall.c | 2 +- source/tools/acpiexec/aemain.c | 2 +- source/tools/acpiexec/aeregion.c | 2 +- source/tools/acpiexec/aetables.c | 2 +- source/tools/acpiexec/aetables.h | 2 +- source/tools/acpiexec/aetests.c | 2 +- source/tools/acpihelp/acpihelp.h | 2 +- source/tools/acpihelp/ahaml.c | 2 +- source/tools/acpihelp/ahamlops.c | 2 +- source/tools/acpihelp/ahasl.c | 2 +- source/tools/acpihelp/ahaslkey.c | 2 +- source/tools/acpihelp/ahaslops.c | 2 +- source/tools/acpihelp/ahdecode.c | 2 +- source/tools/acpihelp/ahgrammar.c | 2 +- source/tools/acpihelp/ahmain.c | 2 +- source/tools/acpisrc/acpisrc.h | 2 +- source/tools/acpisrc/ascase.c | 2 +- source/tools/acpisrc/asconvrt.c | 72 +- source/tools/acpisrc/asfile.c | 2 +- source/tools/acpisrc/asmain.c | 2 +- source/tools/acpisrc/asremove.c | 2 +- source/tools/acpisrc/astable.c | 17 +- source/tools/acpisrc/asutils.c | 2 +- source/tools/acpixtract/acpixtract.c | 2 +- source/tools/acpixtract/acpixtract.h | 2 +- source/tools/acpixtract/axmain.c | 2 +- source/tools/acpixtract/axutils.c | 2 +- source/tools/efihello/efihello.c | 2 +- source/tools/examples/examples.c | 2 +- source/tools/examples/examples.h | 2 +- source/tools/examples/exstubs.c | 2 +- source/tools/examples/extables.c | 2 +- 429 files changed, 4327 insertions(+), 632 deletions(-) create mode 100644 source/include/platform/aczephyr.h create mode 100644 source/os_specific/service_layers/oszephyr.c diff --git a/changes.txt b/changes.txt index cf3c21898c51..af896ec7e0b0 100644 --- a/changes.txt +++ b/changes.txt @@ -1,3 +1,108 @@ +---------------------------------------- +31 March 2023. Summary of changes for version 20230331: + +This release is available at https://acpica.org/downloads + +0) Global changes: + + +Update all copyright notices to the year 2023. This effects all source +modules, as well as utility signons. +Add OS-specific support for Zephyr RTOS. +Fix miscellaneous code that accesses various objects. +Remove some dead code. +Add C ?Flexible Array? support. +Add support for 64 bit LoongArch compilation. +Add first batch of RISC-V related definitions. +Performed a global automated update to remove tabs, fix indentation +issues, etc. + +1) ACPICA kernel-resident subsystem: + +hwvalid: Drop port I/O validation. + +2) ACPICA tools and utilities: + +iASL: Added full macro support in the preprocessor. Example: +#define ABCD(a,b,c,d) a+b+c-d + +Known macro support limitations (at this time): + No support for multi-line #define macros (backslash continuation +lines) + No support for the C-style ternary operator + No support for the stringizing operator (#) + No support for the concatenation (token pasting) operator (##) + No support for variable number of macro arguments + +Add support for AMD Secure Processor Table (ASPT) version 1. +Add support for Arm's MPAM ACPI table version 2. +ACPI 6.5: MADT: add support for trace buffer extension in GICC. +Headers: Delete bogus NodeArray array of pointers from AEST table. +PHAT table support is still ongoing. + + +---------------------------------------- +20 October 2022. Summary of changes for version 20221020: + +This release is available at https://acpica.org/downloads + +0) Global changes: + +Allow disabling of -Werror. For distro maintainers having `-Werror` can +delay update of GCC. Since every GCC release might add new warnings that +were not yet captured, it might break the build of packages. With this +change, distros can now build with `NOWERROR=TRUE` instead of patching +either the errors or the makefiles. The default behavior keeps on using +`-Werror`. + +1) ACPICA kernel-resident subsystem: + +Added support for FFH Operation Region special context data. FFH(Fixed +Function Hardware) Opregion is approved to be added in ACPI 6.5 via code +first approach[1]. It requires special context data similar to GPIO and +Generic Serial Bus as it needs to know platform specific offset and +length. + +Reverted this 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. The ACPICA code assumes that +EBDA region must be at least 1KiB in size. Because this is not +guaranteed, it might happen that while scanning the memory for RSDP +pointer, the kernel touches memory above 640KiB. This is unwanted as the +VGA memory range may not be decoded or even present when running under +virtualization. + +Check that EBDA pointer is in valid memory. If the memory at 0x40e is +uninitialized, the retrieved physical memory address of EBDA may be +beyond the low memory (i.e. above 640K). If so, the kernel may +unintentionally access the VGA memory, that might not be decoded or even +present in case of virtualization. + +2) iASL Compiler/Disassembler and ACPICA tools: + +Completed the existing partial support for the CDAT "table". Although +this isn't technically an ACPI table (It doesn't go into the XSDT), it is +possible to support this table in the Data Table compiler. Created one +new file, "utilities/utcksum.c", used to centralize checksum +generation/validation into one location. Includes changes to makefiles +and MSVC project files. + +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. Commit # 10e4763 +("iASL: Add CCEL table to both compiler/disassembler") introduced the +iASL build issue. The issue is due to using ACPI_TDEL_OFFSET for CCEL +table member reference. To fix it, change ACPI_TDEL_OFFSET with +ACPI_CCEL_OFFSET. + ---------------------------------------- 31 March 2022. Summary of changes for version 20220331: diff --git a/source/common/acfileio.c b/source/common/acfileio.c index 77f7337a3f75..a9118f61dc6a 100644 --- a/source/common/acfileio.c +++ b/source/common/acfileio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/acgetline.c b/source/common/acgetline.c index e5d0bf560fae..b26499277d43 100644 --- a/source/common/acgetline.c +++ b/source/common/acgetline.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/adfile.c b/source/common/adfile.c index 647333d9d682..8bca7273fbcf 100644 --- a/source/common/adfile.c +++ b/source/common/adfile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/adisasm.c b/source/common/adisasm.c index 49338e741a90..ccb98bfe0618 100644 --- a/source/common/adisasm.c +++ b/source/common/adisasm.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -789,6 +789,7 @@ AdDoExternalFileList ( AcpiDmFinishNamespaceLoad (AcpiGbl_ParseOpRoot, AcpiGbl_RootNode, OwnerId); AcpiPsDeleteParseTree (AcpiGbl_ParseOpRoot); + AcpiGbl_ParseOpRoot = NULL; ExternalListHead = ExternalListHead->Next; } diff --git a/source/common/adwalk.c b/source/common/adwalk.c index 6d51c7e17748..f810abaf038f 100644 --- a/source/common/adwalk.c +++ b/source/common/adwalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/ahids.c b/source/common/ahids.c index 05c31bf50fd0..8930dc64b72d 100644 --- a/source/common/ahids.c +++ b/source/common/ahids.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/ahpredef.c b/source/common/ahpredef.c index 724abe6a33d0..f4080587f45d 100644 --- a/source/common/ahpredef.c +++ b/source/common/ahpredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/ahtable.c b/source/common/ahtable.c index 418621b664c9..6013b9413c4a 100644 --- a/source/common/ahtable.c +++ b/source/common/ahtable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -202,6 +202,7 @@ const AH_TABLE AcpiGbl_SupportedTables[] = {ACPI_SIG_AEST, "Arm Error Source Table"}, {ACPI_SIG_AGDI, "Arm Generic Diagnostic Dump and Reset Device Interface Table"}, {ACPI_SIG_ASF, "Alert Standard Format Table"}, + {ACPI_SIG_ASPT, "AMD Secure Processor Table"}, {ACPI_SIG_BDAT, "BIOS Data ACPI Table"}, {ACPI_SIG_BERT, "Boot Error Record Table"}, {ACPI_SIG_BGRT, "Boot Graphics Resource Table"}, @@ -232,6 +233,7 @@ const AH_TABLE AcpiGbl_SupportedTables[] = {ACPI_SIG_MADT, "Multiple APIC Description Table (MADT)"}, {ACPI_SIG_MCFG, "Memory Mapped Configuration Table"}, {ACPI_SIG_MCHI, "Management Controller Host Interface Table"}, + {ACPI_SIG_MPAM, "Memory System Resource Partitioning and Monitoring Table"}, {ACPI_SIG_MPST, "Memory Power State Table"}, {ACPI_SIG_MSCT, "Maximum System Characteristics Table"}, {ACPI_SIG_MSDM, "Microsoft Data Management Table"}, @@ -244,6 +246,7 @@ const AH_TABLE AcpiGbl_SupportedTables[] = {ACPI_SIG_PPTT, "Processor Properties Topology Table"}, {ACPI_SIG_PRMT, "Platform Runtime Mechanism Table"}, {ACPI_SIG_RASF, "RAS Features Table"}, + {ACPI_SIG_RHCT, "RISC-V Hart Capabilities Table"}, {ACPI_SIG_RGRT, "Regulatory Graphics Resource Table"}, {ACPI_RSDP_NAME,"Root System Description Pointer"}, {ACPI_SIG_RSDT, "Root System Description Table"}, diff --git a/source/common/ahuuids.c b/source/common/ahuuids.c index dcf0c4bbb738..219f0e8e2210 100644 --- a/source/common/ahuuids.c +++ b/source/common/ahuuids.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/cmfsize.c b/source/common/cmfsize.c index 474ccd9501f8..e303b7655f54 100644 --- a/source/common/cmfsize.c +++ b/source/common/cmfsize.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmextern.c b/source/common/dmextern.c index 806daa33f94b..6827d5e5faae 100644 --- a/source/common/dmextern.c +++ b/source/common/dmextern.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -1493,7 +1493,6 @@ AcpiDmMarkExternalConflict ( ACPI_EXTERNAL_LIST *ExternalList = AcpiGbl_ExternalList; char *ExternalPath; char *InternalPath; - char *Temp; ACPI_STATUS Status; @@ -1526,13 +1525,6 @@ AcpiDmMarkExternalConflict ( while (ExternalList) { - Temp = ExternalList->InternalPath; - if ((*ExternalList->InternalPath == AML_ROOT_PREFIX) && - (ExternalList->InternalPath[1])) - { - Temp++; - } - if (!strcmp (ExternalList->InternalPath, InternalPath)) { ExternalList->Flags |= ACPI_EXT_CONFLICTING_DECLARATION; diff --git a/source/common/dmrestag.c b/source/common/dmrestag.c index b677298436fc..afacf6f70cb3 100644 --- a/source/common/dmrestag.c +++ b/source/common/dmrestag.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -480,6 +480,14 @@ static const ACPI_RESOURCE_TAG AcpiDmIoFlagTags[] = {0, NULL} }; +/* Subtype tables for ClockInput descriptor */ + +static const ACPI_RESOURCE_TAG AcpiDmClockInputTags[] = +{ + {( 6 * 8), ACPI_RESTAG_FQD}, + {( 8 * 8), ACPI_RESTAG_FQN}, + {0, NULL} +}; /* * Dispatch table used to obtain the correct tag table for a descriptor. @@ -531,6 +539,7 @@ static const ACPI_RESOURCE_TAG *AcpiGbl_ResourceTags[] = NULL, /* 0x10, ACPI_RESOURCE_NAME_PIN_GROUP */ AcpiDmPinGroupFunctionTags, /* 0x11, ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION */ AcpiDmPinConfigTags, /* 0x12, ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG - Same as PinConfig */ + AcpiDmClockInputTags, /* 0x13, ACPI_RESOURCE_NAME_CLOCK_INPUT */ }; /* GPIO Subtypes */ diff --git a/source/common/dmswitch.c b/source/common/dmswitch.c index 4a4347368c9e..c6e9f8b0ec98 100644 --- a/source/common/dmswitch.c +++ b/source/common/dmswitch.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtable.c b/source/common/dmtable.c index 9b95ecc74789..31ca73904a8a 100644 --- a/source/common/dmtable.c +++ b/source/common/dmtable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -234,6 +234,14 @@ static const char *AcpiDmAsfSubnames[] = "Unknown Subtable Type" /* Reserved */ }; +static const char *AcpiDmAsptSubnames[] = +{ + "ASPT Global Registers", + "ASPT SEV Mailbox Registers", + "ASPT ACPI Mailbox Registers", + "Unknown Subtable Type" /* Reserved */ +}; + static const char *AcpiDmCdatSubnames[] = { "Device Scoped Memory Affinity Structure (DSMAS)", @@ -421,10 +429,22 @@ static const char *AcpiDmMadtSubnames[] = "MSI Interrupt Controller", /* ACPI_MADT_TYPE_MSI_PIC */ "Bridge I/O Interrupt Controller", /* ACPI_MADT_TYPE_BIO_PIC */ "LPC Interrupt Controller", /* ACPI_MADT_TYPE_LPC_PIC */ + "RISC-V Interrupt Controller", /* ACPI_MADT_TYPE_RINTC */ "Unknown Subtable Type", /* Reserved */ "Types 80-FF are used for OEM data" /* Reserved for OEM data */ }; +static const char *AcpiDmMpamSubnames[] = +{ + "Processor cache", /* ACPI_MPAM_LOCATION_TYPE_PROCESSOR_CACHE */ + "Memory", /* ACPI_MPAM_LOCATION_TYPE_MEMORY */ + "SMMU", /* ACPI_MPAM_LOCATION_TYPE_SMMU */ + "Memory-side cache", /* ACPI_MPAM_LOCATION_TYPE_MEMORY_CACHE */ + "ACPI device", /* ACPI_MPAM_LOCATION_TYPE_ACPI_DEVICE */ + "Interconnect", /* ACPI_MPAM_LOCATION_TYPE_INTERCONNECT */ + "Unknown" /* ACPI_MPAM_LOCATION_TYPE_UNKNOWN */ +}; + static const char *AcpiDmNfitSubnames[] = { "System Physical Address Range", /* ACPI_NFIT_TYPE_SYSTEM_ADDRESS */ @@ -672,6 +692,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = {ACPI_SIG_AGDI, AcpiDmTableInfoAgdi, NULL, NULL, TemplateAgdi}, {ACPI_SIG_APMT, NULL, AcpiDmDumpApmt, DtCompileApmt, TemplateApmt}, {ACPI_SIG_ASF, NULL, AcpiDmDumpAsf, DtCompileAsf, TemplateAsf}, + {ACPI_SIG_ASPT, NULL, AcpiDmDumpAspt, DtCompileAspt, TemplateAspt}, {ACPI_SIG_BDAT, AcpiDmTableInfoBdat, NULL, NULL, TemplateBdat}, {ACPI_SIG_BERT, AcpiDmTableInfoBert, NULL, NULL, TemplateBert}, {ACPI_SIG_BGRT, AcpiDmTableInfoBgrt, NULL, NULL, TemplateBgrt}, @@ -700,6 +721,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = {ACPI_SIG_MADT, NULL, AcpiDmDumpMadt, DtCompileMadt, TemplateMadt}, {ACPI_SIG_MCFG, NULL, AcpiDmDumpMcfg, DtCompileMcfg, TemplateMcfg}, {ACPI_SIG_MCHI, AcpiDmTableInfoMchi, NULL, NULL, TemplateMchi}, + {ACPI_SIG_MPAM, NULL, AcpiDmDumpMpam, DtCompileMpam, TemplateMpam}, {ACPI_SIG_MPST, AcpiDmTableInfoMpst, AcpiDmDumpMpst, DtCompileMpst, TemplateMpst}, {ACPI_SIG_MSCT, NULL, AcpiDmDumpMsct, DtCompileMsct, TemplateMsct}, {ACPI_SIG_MSDM, NULL, AcpiDmDumpSlic, DtCompileSlic, TemplateMsdm}, @@ -713,6 +735,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] = {ACPI_SIG_PRMT, NULL, AcpiDmDumpPrmt, DtCompilePrmt, TemplatePrmt}, {ACPI_SIG_RASF, AcpiDmTableInfoRasf, NULL, NULL, TemplateRasf}, {ACPI_SIG_RGRT, NULL, AcpiDmDumpRgrt, DtCompileRgrt, TemplateRgrt}, + {ACPI_SIG_RHCT, NULL, AcpiDmDumpRhct, DtCompileRhct, TemplateRhct}, {ACPI_SIG_RSDT, NULL, AcpiDmDumpRsdt, DtCompileRsdt, TemplateRsdt}, {ACPI_SIG_S3PT, NULL, NULL, NULL, TemplateS3pt}, {ACPI_SIG_SBST, AcpiDmTableInfoSbst, NULL, NULL, TemplateSbst}, @@ -1128,6 +1151,7 @@ AcpiDmDumpTable ( case ACPI_DMT_IVRS_DE: case ACPI_DMT_GTDT: case ACPI_DMT_MADT: + case ACPI_DMT_MPAM_LOCATOR: case ACPI_DMT_NHLT1: case ACPI_DMT_NHLT1a: case ACPI_DMT_NHLT1b: @@ -1158,6 +1182,7 @@ AcpiDmDumpTable ( ByteLength = 1; break; + case ACPI_DMT_ASPT: case ACPI_DMT_UINT16: case ACPI_DMT_DMAR: case ACPI_DMT_HEST: @@ -1375,7 +1400,7 @@ AcpiDmDumpTable ( AcpiOsPrintf ("%2.2X\n", (*Target >> 2) & 0xFF); break; - case ACPI_DMT_FLAGS4: + case ACPI_DMT_FLAGS4: AcpiOsPrintf ("%1.1X\n", (*Target >> 4) & 0x03); break; @@ -1661,6 +1686,17 @@ AcpiDmDumpTable ( AcpiDmAestXruptNames[Temp8]); break; + case ACPI_DMT_ASPT: + /* ASPT subtable types */ + Temp16 = ACPI_GET16(Target); + if (Temp16 > ACPI_ASPT_TYPE_UNKNOWN) + { + Temp16 = ACPI_ASPT_TYPE_UNKNOWN; + } + + AcpiOsPrintf(UINT16_FORMAT, Temp16, AcpiDmAsptSubnames[Temp16]); + break; + case ACPI_DMT_ASF: /* ASF subtable types */ @@ -1890,6 +1926,20 @@ AcpiDmDumpTable ( AcpiDmMadtSubnames[Temp8]); break; + case ACPI_DMT_MPAM_LOCATOR: + + /* MPAM subtable locator types */ + + Temp8 = *Target; + if (Temp8 > ACPI_MPAM_LOCATION_TYPE_INTERCONNECT) + { + Temp8 = ACPI_MPAM_LOCATION_TYPE_INTERCONNECT + 1; + } + + AcpiOsPrintf (UINT8_FORMAT, *Target, + AcpiDmMpamSubnames[Temp8]); + break; + case ACPI_DMT_NFIT: /* NFIT subtable types */ diff --git a/source/common/dmtables.c b/source/common/dmtables.c index 7ade78685741..c474a8c9aaae 100644 --- a/source/common/dmtables.c +++ b/source/common/dmtables.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbdump.c b/source/common/dmtbdump.c index dc1745d5d926..c4046b8e8262 100644 --- a/source/common/dmtbdump.c +++ b/source/common/dmtbdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbdump1.c b/source/common/dmtbdump1.c index ae5f0f8627bf..0dee045a8c12 100644 --- a/source/common/dmtbdump1.c +++ b/source/common/dmtbdump1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -609,6 +609,95 @@ AcpiDmDumpAsf ( } } +/******************************************************************************* + * + * FUNCTION: AcpiDmDumpAspt + * + * PARAMETERS: Table - A ASPT table + * + * RETURN: None + * + * DESCRIPTION: Format the contents of a ASPT table + * + ******************************************************************************/ + +void +AcpiDmDumpAspt ( + ACPI_TABLE_HEADER *Table) +{ + ACPI_STATUS Status; + UINT32 Offset = sizeof (ACPI_TABLE_ASPT); + UINT32 Length = Table->Length; + ACPI_ASPT_HEADER *Subtable; + ACPI_DMTABLE_INFO *InfoTable; + UINT16 Type; + + /* Main table */ + Status = AcpiDmDumpTable(Length, 0, Table, 0, AcpiDmTableInfoAspt); + + /* Subtables */ + + Subtable = ACPI_ADD_PTR (ACPI_ASPT_HEADER, Table, Offset); + while (Offset < Table->Length) + { + AcpiOsPrintf ("\n"); + + /* Common subtable header */ + Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, + Subtable->Length, AcpiDmTableInfoAsptHdr); + if (ACPI_FAILURE (Status)) + { + return; + } + + Type = Subtable->Type; + + switch (Type) + { + case ACPI_ASPT_TYPE_GLOBAL_REGS: + + InfoTable = AcpiDmTableInfoAspt0; + break; + + case ACPI_ASPT_TYPE_SEV_MBOX_REGS: + + InfoTable = AcpiDmTableInfoAspt1; + break; + + case ACPI_ASPT_TYPE_ACPI_MBOX_REGS: + + InfoTable = AcpiDmTableInfoAspt2; + break; + + default: + + AcpiOsPrintf ("\n**** Unknown ASPT subtable type 0x%X\n", + Subtable->Type); + return; + } + + Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, + Subtable->Length, InfoTable); + if (ACPI_FAILURE (Status)) + { + return; + } + + AcpiOsPrintf ("\n"); + + /* Point to next subtable */ + if (!Subtable->Length) + { + AcpiOsPrintf ("Invalid zero subtable header length\n"); + return; + } + + Offset += Subtable->Length; + Subtable = ACPI_ADD_PTR (ACPI_ASPT_HEADER, Subtable, + Subtable->Length); + } +} + /******************************************************************************* * @@ -2030,7 +2119,7 @@ AcpiDmDumpHmat ( return; } - /* Dump HMAT structure additionals */ + /* Dump HMAT structure additional */ switch (HmatStruct->Type) { diff --git a/source/common/dmtbdump2.c b/source/common/dmtbdump2.c index 3fb4d531e49b..e9c5dbfd6621 100644 --- a/source/common/dmtbdump2.c +++ b/source/common/dmtbdump2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -1129,6 +1129,124 @@ AcpiDmDumpMcfg ( } } +/******************************************************************************* + * + * FUNCTION: AcpiDmDumpMpam + * + * PARAMETERS: Table - A MPAM table + * + * RETURN: None + * + * DESCRIPTION: Format the contents of a MPAM table + * + ******************************************************************************/ + +void +AcpiDmDumpMpam ( + ACPI_TABLE_HEADER *Table) +{ + ACPI_STATUS Status; + ACPI_MPAM_MSC_NODE *MpamMscNode; + ACPI_MPAM_RESOURCE_NODE *MpamResourceNode; + ACPI_DMTABLE_INFO *InfoTable; + UINT32 Offset = sizeof(ACPI_TABLE_HEADER); + UINT32 MpamResourceNodeLength = 0; + + while (Offset < Table->Length) + { + MpamMscNode = ACPI_ADD_PTR (ACPI_MPAM_MSC_NODE, Table, Offset); + + /* Subtable: MSC */ + Status = AcpiDmDumpTable (MpamMscNode->Length, 0, MpamMscNode, 0, + AcpiDmTableInfoMpam0); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Offset the start of the array of resources */ + Offset += sizeof(ACPI_MPAM_MSC_NODE); + + /* Subtable: MSC RIS(es) */ + for (UINT32 ResourceIdx = 0; ResourceIdx < MpamMscNode->NumResouceNodes; ResourceIdx++) + { + MpamResourceNode = ACPI_ADD_PTR (ACPI_MPAM_RESOURCE_NODE, Table, Offset); + + MpamResourceNodeLength = sizeof(ACPI_MPAM_RESOURCE_NODE) + + MpamResourceNode->NumFunctionalDeps * sizeof(ACPI_MPAM_FUNC_DEPS); + + Offset += MpamResourceNodeLength; + + /* Subtable: MSC RIS */ + Status = AcpiDmDumpTable (MpamResourceNodeLength, 0, MpamResourceNode, 0, + AcpiDmTableInfoMpam1); + if (ACPI_FAILURE (Status)) + { + return; + } + + switch (MpamResourceNode->LocatorType) + { + case ACPI_MPAM_LOCATION_TYPE_PROCESSOR_CACHE: + InfoTable = AcpiDmTableInfoMpam1A; + break; + case ACPI_MPAM_LOCATION_TYPE_MEMORY: + InfoTable = AcpiDmTableInfoMpam1B; + break; + case ACPI_MPAM_LOCATION_TYPE_SMMU: + InfoTable = AcpiDmTableInfoMpam1C; + break; + case ACPI_MPAM_LOCATION_TYPE_MEMORY_CACHE: + InfoTable = AcpiDmTableInfoMpam1D; + break; + case ACPI_MPAM_LOCATION_TYPE_ACPI_DEVICE: + InfoTable = AcpiDmTableInfoMpam1E; + break; + case ACPI_MPAM_LOCATION_TYPE_INTERCONNECT: + InfoTable = AcpiDmTableInfoMpam1F; + break; + case ACPI_MPAM_LOCATION_TYPE_UNKNOWN: + InfoTable = AcpiDmTableInfoMpam1G; + default: + AcpiOsPrintf ("\n**** Unknown MPAM locator type 0x%X\n", + MpamResourceNode->LocatorType); + return; + } + + /* Subtable: MSC Resource Locator(s) */ + Status = AcpiDmDumpTable (sizeof(ACPI_MPAM_RESOURCE_LOCATOR), 0, + &MpamResourceNode->Locator, 0, InfoTable); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Get the number of functional dependencies of an RIS */ + Status = AcpiDmDumpTable (sizeof(UINT32), 0, &MpamResourceNode->NumFunctionalDeps, 0, + AcpiDmTableInfoMpam1Deps); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Subtable: MSC functional dependencies */ + for (UINT32 funcDep = 0; funcDep < MpamResourceNode->NumFunctionalDeps; funcDep++) + { + Status = AcpiDmDumpTable (sizeof(ACPI_MPAM_FUNC_DEPS), 0, + &MpamResourceNode->NumFunctionalDeps, 0, AcpiDmTableInfoMpam2); + if (ACPI_FAILURE (Status)) + { + return; + } + } + + AcpiOsPrintf ("\n\n"); + } + + } + + return; +} /******************************************************************************* * @@ -1420,7 +1538,7 @@ AcpiDmDumpNfit ( /* Has a variable number of 64-bit addresses at the end */ InfoTable = AcpiDmTableInfoNfit6; - FieldOffset = sizeof (ACPI_NFIT_FLUSH_ADDRESS) - sizeof (UINT64); + FieldOffset = sizeof (ACPI_NFIT_FLUSH_ADDRESS); break; case ACPI_NFIT_TYPE_CAPABILITIES: /* ACPI 6.0A */ @@ -1474,12 +1592,12 @@ AcpiDmDumpNfit ( case ACPI_NFIT_TYPE_SMBIOS: Length = Subtable->Length - - sizeof (ACPI_NFIT_SMBIOS) + sizeof (UINT8); + sizeof (ACPI_NFIT_SMBIOS); if (Length) { Status = AcpiDmDumpTable (Table->Length, - sizeof (ACPI_NFIT_SMBIOS) - sizeof (UINT8), + sizeof (ACPI_NFIT_SMBIOS), SmbiosInfo, Length, AcpiDmTableInfoNfit3a); if (ACPI_FAILURE (Status)) @@ -2627,6 +2745,122 @@ AcpiDmDumpRgrt ( } +/******************************************************************************* + * + * FUNCTION: AcpiDmDumpRhct + * + * PARAMETERS: Table - A RHCT table + * + * RETURN: None + * + * DESCRIPTION: Format the contents of a RHCT. + * + ******************************************************************************/ + +void +AcpiDmDumpRhct ( + ACPI_TABLE_HEADER *Table) +{ + ACPI_STATUS Status; + ACPI_RHCT_NODE_HEADER *Subtable; + ACPI_RHCT_HART_INFO *RhctHartInfo; + ACPI_RHCT_ISA_STRING *RhctIsaString; + UINT32 Length = Table->Length; + UINT8 SubtableOffset, IsaPadOffset; + UINT32 Offset = sizeof (ACPI_TABLE_RHCT); + UINT32 i; + + /* Main table */ + + Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoRhct); + if (ACPI_FAILURE (Status)) + { + return; + } + + /* Subtables */ + + while (Offset < Table->Length) + { + AcpiOsPrintf ("\n"); + + /* Common subtable header */ + + Subtable = ACPI_ADD_PTR (ACPI_RHCT_NODE_HEADER, Table, Offset); + if (Subtable->Length < sizeof (ACPI_RHCT_NODE_HEADER)) + { + AcpiOsPrintf ("Invalid subtable length\n"); + return; + } + Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, + Subtable->Length, AcpiDmTableInfoRhctNodeHdr); + if (ACPI_FAILURE (Status)) + { + return; + } + + Length = sizeof (ACPI_RHCT_NODE_HEADER); + + if (Subtable->Length < Length) + { + AcpiOsPrintf ("Invalid subtable length\n"); + return; + } + SubtableOffset = (UINT8) Length; + + switch (Subtable->Type) + { + case ACPI_RHCT_NODE_TYPE_HART_INFO: + Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, + ACPI_ADD_PTR (ACPI_RHCT_HART_INFO, Subtable, SubtableOffset), + sizeof (ACPI_RHCT_HART_INFO), AcpiDmTableInfoRhctHartInfo1); + + RhctHartInfo = ACPI_ADD_PTR (ACPI_RHCT_HART_INFO, Subtable, SubtableOffset); + + if ((UINT16)(Subtable->Length - SubtableOffset) < + (UINT16)(RhctHartInfo->NumOffsets * 4)) + { + AcpiOsPrintf ("Invalid number of offsets\n"); + return; + } + SubtableOffset += sizeof (ACPI_RHCT_HART_INFO); + for (i = 0; i < RhctHartInfo->NumOffsets; i++) + { + Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, + ACPI_ADD_PTR (UINT32, Subtable, SubtableOffset), + 4, AcpiDmTableInfoRhctHartInfo2); + if (ACPI_FAILURE (Status)) + { + return; + } + + SubtableOffset += 4; + } + break; + + case ACPI_RHCT_NODE_TYPE_ISA_STRING: + RhctIsaString = ACPI_ADD_PTR (ACPI_RHCT_ISA_STRING, Subtable, SubtableOffset); + IsaPadOffset = (UINT8) (SubtableOffset + 2 + RhctIsaString->IsaLength); + Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, + RhctIsaString, RhctIsaString->IsaLength, AcpiDmTableInfoRhctIsa1); + if (Subtable->Length > IsaPadOffset) + { + Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, + ACPI_ADD_PTR (UINT8, Subtable, IsaPadOffset), + (Subtable->Length - IsaPadOffset), AcpiDmTableInfoRhctIsaPad); + } + + default: + break; + } + + /* Point to next subtable */ + + Offset += Subtable->Length; + } +} + + /******************************************************************************* * * FUNCTION: AcpiDmDumpS3pt diff --git a/source/common/dmtbdump3.c b/source/common/dmtbdump3.c index cbcd9e7f0e11..8ac16cee10d1 100644 --- a/source/common/dmtbdump3.c +++ b/source/common/dmtbdump3.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbinfo.c b/source/common/dmtbinfo.c index 4053996992e4..717e7df94594 100644 --- a/source/common/dmtbinfo.c +++ b/source/common/dmtbinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/dmtbinfo1.c b/source/common/dmtbinfo1.c index 9afed4d6a066..e4632085d11e 100644 --- a/source/common/dmtbinfo1.c +++ b/source/common/dmtbinfo1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -433,6 +433,57 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[] = }; +/******************************************************************************* + * + * ASPT - AMD Secure Processor table (Signature "ASPT") + * + ******************************************************************************/ + +ACPI_DMTABLE_INFO AcpiDmTableInfoAspt[] = +{ + {ACPI_DMT_UINT32, ACPI_ASPT_OFFSET(NumEntries), "Number of Subtables", 0}, + ACPI_DMT_TERMINATOR +}; + +/* Common Subtable header (one per Subtable) */ +ACPI_DMTABLE_INFO AcpiDmTableInfoAsptHdr[] = +{ + {ACPI_DMT_ASPT, ACPI_ASPTH_OFFSET(Type), "Type", 0}, + {ACPI_DMT_UINT16, ACPI_ASPTH_OFFSET(Length), "Length", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 0: ASPT Global Registers */ +ACPI_DMTABLE_INFO AcpiDmTableInfoAspt0[] = +{ + {ACPI_DMT_UINT32, ACPI_ASPT0_OFFSET(Reserved), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_ASPT0_OFFSET(FeatureRegAddr), "Feature Register Address", 0}, + {ACPI_DMT_UINT64, ACPI_ASPT0_OFFSET(IrqEnRegAddr), "Interrupt Enable Register Address", 0}, + {ACPI_DMT_UINT64, ACPI_ASPT0_OFFSET(IrqStRegAddr), "Interrupt Status Register Address", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 1: ASPT SEV Mailbox Registers */ +ACPI_DMTABLE_INFO AcpiDmTableInfoAspt1[] = +{ + {ACPI_DMT_UINT8, ACPI_ASPT1_OFFSET(MboxIrqId), "Mailbox Interrupt ID", 0}, + {ACPI_DMT_UINT24, ACPI_ASPT1_OFFSET(Reserved[0]), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_ASPT1_OFFSET(CmdRespRegAddr), "CmdResp Register Address", 0}, + {ACPI_DMT_UINT64, ACPI_ASPT1_OFFSET(CmdBufLoRegAddr), "CmdBufAddr_Lo Register Address", 0}, + {ACPI_DMT_UINT64, ACPI_ASPT1_OFFSET(CmdBufHiRegAddr), "CmdBufAddr_Hi Register Address", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 2: ASPT ACPI Maiblox Registers */ +ACPI_DMTABLE_INFO AcpiDmTableInfoAspt2[] = +{ + {ACPI_DMT_UINT32, ACPI_ASPT2_OFFSET(Reserved1), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_ASPT2_OFFSET(CmdRespRegAddr), "CmdResp Register Address", 0}, + {ACPI_DMT_UINT64, ACPI_ASPT2_OFFSET(Reserved2[0]), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_ASPT2_OFFSET(Reserved2[1]), "Reserved", 0}, + ACPI_DMT_TERMINATOR +}; + /******************************************************************************* * * BDAT - BIOS Data ACPI Table @@ -896,7 +947,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoDmar4[] = { {ACPI_DMT_UINT24, ACPI_DMAR4_OFFSET (Reserved[0]), "Reserved", 0}, {ACPI_DMT_UINT8, ACPI_DMAR4_OFFSET (DeviceNumber), "Device Number", 0}, - {ACPI_DMT_STRING, ACPI_DMAR4_OFFSET (DeviceName[0]), "Device Name", 0}, + {ACPI_DMT_STRING, ACPI_DMAR4_OFFSET (u.DeviceName[0]), "Device Name", 0}, ACPI_DMT_TERMINATOR }; diff --git a/source/common/dmtbinfo2.c b/source/common/dmtbinfo2.c index 3676be813e48..214206add026 100644 --- a/source/common/dmtbinfo2.c +++ b/source/common/dmtbinfo2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -864,6 +864,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[] = {ACPI_DMT_UINT8, ACPI_MADT11_OFFSET (EfficiencyClass), "Efficiency Class", 0}, {ACPI_DMT_UINT8, ACPI_MADT11_OFFSET (Reserved2[0]), "Reserved", 0}, {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (SpeInterrupt), "SPE Overflow Interrupt", 0}, + {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (TrbeInterrupt), "TRBE Interrupt", 0}, ACPI_DMT_TERMINATOR }; @@ -979,6 +980,133 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[] = ACPI_DMT_TERMINATOR }; +/******************************************************************************* + * + * MPAM - Memory System Resource Partitioning and Monitoring Tables + * Arm's DEN0065 MPAM ACPI 2.0. December 2022. + ******************************************************************************/ + +/* MPAM subtables */ + +/* 0: MPAM Resource Node Structure - A root MSC table. + * Arm's DEN0065 MPAM ACPI 2.0. Table 4: MPAM MSC node body. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam0[] = +{ + {ACPI_DMT_UINT16, ACPI_MPAM0_OFFSET (Length), "Length", 0}, + {ACPI_DMT_UINT8, ACPI_MPAM0_OFFSET (InterfaceType), "Interface type", 0}, + {ACPI_DMT_UINT8, ACPI_MPAM0_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (Identifier), "Identifier", 0}, + {ACPI_DMT_UINT64, ACPI_MPAM0_OFFSET (BaseAddress), "Base address", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (MMIOSize), "MMIO size", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (OverflowInterrupt), "Overflow interrupt", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (OverflowInterruptFlags), "Overflow interrupt flags", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (Reserved1), "Reserved1", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (OverflowInterruptAffinity), "Overflow interrupt affinity", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (ErrorInterrupt), "Error interrupt", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (ErrorInterruptFlags), "Error interrupt flags", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (Reserved2), "Reserved2", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (ErrorInterruptAffinity), "Error interrupt affinity", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (MaxNrdyUsec), "MAX_NRDY_USEC", 0}, + {ACPI_DMT_NAME8, ACPI_MPAM0_OFFSET (HardwareIdLinkedDevice), "Hardware ID of linked device", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (InstanceIdLinkedDevice), "Instance ID of linked device", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (NumResouceNodes), "Number of resource nodes", 0}, + + ACPI_DMT_TERMINATOR +}; + +/* 1: MPAM Resource (RIS) Node Structure - A subtable of MSC Nodes. + * Arm's DEN0065 MPAM ACPI 2.0. Table 9: Resource node. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1[] = +{ + {ACPI_DMT_UINT32, ACPI_MPAM1_OFFSET (Identifier), "Identifier", 0}, + {ACPI_DMT_UINT8, ACPI_MPAM1_OFFSET (RISIndex), "RIS Index", 0}, + {ACPI_DMT_UINT16, ACPI_MPAM1_OFFSET (Reserved1), "Reserved1", 0}, + {ACPI_DMT_MPAM_LOCATOR, ACPI_MPAM1_OFFSET (LocatorType), "Locator type", 0}, + ACPI_DMT_TERMINATOR +}; + +/* An RIS field part of the RIS subtable */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1Deps[] = +{ + {ACPI_DMT_UINT32, 0, "Number of functional dependencies", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 1A: MPAM Processor cache locator descriptor. A subtable of RIS. + * Arm's DEN0065 MPAM ACPI 2.0. Table 13. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1A[] = +{ + {ACPI_DMT_UINT64, ACPI_MPAM1A_OFFSET (CacheReference), "Cache reference", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM1A_OFFSET (Reserved), "Reserved", 0}, +}; + +/* 1B: MPAM Memory locator descriptor. A subtable of RIS. + * Arm's DEN0065 MPAM ACPI 2.0. Table 14. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1B[] = +{ + {ACPI_DMT_UINT64, ACPI_MPAM1B_OFFSET (ProximityDomain), "Proximity domain", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM1B_OFFSET (Reserved), "Reserved", 0}, +}; + +/* 1C: MPAM SMMU locator descriptor. A subtable of RIS. + * Arm's DEN0065 MPAM ACPI 2.0. Table 15. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1C[] = +{ + {ACPI_DMT_UINT64, ACPI_MPAM1C_OFFSET (SmmuInterface), "SMMU Interface", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM1C_OFFSET (Reserved), "Reserved", 0}, +}; + +/* 1D: MPAM Memory-side cache locator descriptor. A subtable of RIS. + * Arm's DEN0065 MPAM ACPI 2.0. Table 16. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1D[] = +{ + {ACPI_DMT_UINT56, ACPI_MPAM1D_OFFSET (Level), "Reserved", 0}, + {ACPI_DMT_UINT8, ACPI_MPAM1D_OFFSET (Level), "Level", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM1D_OFFSET (Reference), "Reference", 0}, +}; + +/* 1E: MPAM ACPI device locator descriptor. A subtable of RIS. + * Arm's DEN0065 MPAM ACPI 2.0. Table 17. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1E[] = +{ + {ACPI_DMT_UINT64, ACPI_MPAM1E_OFFSET (AcpiHwId), "ACPI Hardware ID", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM1E_OFFSET (AcpiUniqueId), "ACPI Unique ID", 0}, +}; + +/* 1F: MPAM Interconnect locator descriptor. A subtable of RIS. + * Arm's DEN0065 MPAM ACPI 2.0. Table 18. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1F[] = +{ + {ACPI_DMT_UINT64, ACPI_MPAM1F_OFFSET (InterConnectDescTblOff), "Interconnect descriptor table offset", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM1F_OFFSET (Reserved), "Reserved", 0}, +}; + +/* 1G: MPAM Locator structure. + * Arm's DEN0065 MPAM ACPI 2.0. Table 12. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1G[] = +{ + {ACPI_DMT_UINT64, ACPI_MPAM1G_OFFSET (Descriptor1), "Descriptor1", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM1G_OFFSET (Descriptor2), "Descriptor2", 0}, +}; + +/* 2: MPAM Functional dependency descriptor. + * Arm's DEN0065 MPAM ACPI 2.0. Table 10. + */ +ACPI_DMTABLE_INFO AcpiDmTableInfoMpam2[] = +{ + {ACPI_DMT_UINT32, ACPI_MPAM2_OFFSET (Producer), "Producer", 0}, + {ACPI_DMT_UINT32, ACPI_MPAM2_OFFSET (Reserved), "Reserved", 0}, +}; + /******************************************************************************* * @@ -1944,6 +2072,67 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt0[] = }; +/******************************************************************************* + * + * RHCT - RISC-V Hart Capabilities Table + * + ******************************************************************************/ + +ACPI_DMTABLE_INFO AcpiDmTableInfoRhct[] = +{ + {ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT64, ACPI_RHCT_OFFSET (TimeBaseFreq), "Timer Base Frequency", 0}, + {ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (NodeCount), "Number of nodes", 0}, + {ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (NodeOffset), "Offset to the node array", 0}, + ACPI_DMT_TERMINATOR +}; + + +/* Common Subtable header (one per Subtable) */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoRhctNodeHdr[] = +{ + {ACPI_DMT_UINT16, ACPI_RHCTH_OFFSET (Type), "Subtable Type", 0}, + {ACPI_DMT_UINT16, ACPI_RHCTH_OFFSET (Length), "Length", 0}, + {ACPI_DMT_UINT16, ACPI_RHCTH_OFFSET (Revision), "Revision", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 0: ISA string type */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsa1[] = +{ + {ACPI_DMT_UINT16, ACPI_RHCT0_OFFSET (IsaLength), "ISA string length", 0}, + {ACPI_DMT_STRING, ACPI_RHCT0_OFFSET (Isa[0]), "ISA string", 0}, + ACPI_DMT_TERMINATOR +}; + + +/* Optional padding field */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsaPad[] = +{ + {ACPI_DMT_RAW_BUFFER, 0, "Optional Padding", DT_OPTIONAL}, + ACPI_DMT_TERMINATOR +}; + +/* 0xFFFF: Hart Info type */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo1[] = +{ + {ACPI_DMT_UINT16, ACPI_RHCTFFFF_OFFSET (NumOffsets), "Number of offsets", 0}, + {ACPI_DMT_UINT32, ACPI_RHCTFFFF_OFFSET (Uid), "Processor UID", 0}, + ACPI_DMT_TERMINATOR +}; + + +ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo2[] = +{ + {ACPI_DMT_UINT32, 0, "Nodes", DT_OPTIONAL}, + ACPI_DMT_TERMINATOR +}; + + /******************************************************************************* * * S3PT - S3 Performance Table diff --git a/source/common/dmtbinfo3.c b/source/common/dmtbinfo3.c index b8ddb7aadb04..280baf396295 100644 --- a/source/common/dmtbinfo3.c +++ b/source/common/dmtbinfo3.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/common/getopt.c b/source/common/getopt.c index 772b66c0d932..a2658efc2d4a 100644 --- a/source/common/getopt.c +++ b/source/common/getopt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslallocate.c b/source/compiler/aslallocate.c index d697d059e6d1..d86b5f39b961 100644 --- a/source/compiler/aslallocate.c +++ b/source/compiler/aslallocate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -295,9 +295,13 @@ void UtFreeLineBuffers ( void) { - free (AslGbl_CurrentLineBuffer); + free (AslGbl_MainTokenBuffer); + free (AslGbl_MacroTokenBuffer); + + free (AslGbl_MacroTokenReplaceBuffer); + free (AslGbl_ExpressionTokenBuffer); } diff --git a/source/compiler/aslanalyze.c b/source/compiler/aslanalyze.c index 9db7d4fbe81a..1941a4655523 100644 --- a/source/compiler/aslanalyze.c +++ b/source/compiler/aslanalyze.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslascii.c b/source/compiler/aslascii.c index 6c0e62c41177..b6b272710fd8 100644 --- a/source/compiler/aslascii.c +++ b/source/compiler/aslascii.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslbtypes.c b/source/compiler/aslbtypes.c index f7b3fb1bec75..e2f72d882415 100644 --- a/source/compiler/aslbtypes.c +++ b/source/compiler/aslbtypes.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -501,10 +501,11 @@ AnGetBtype ( ACPI_PARSE_OBJECT *ReferencedNode; UINT32 ThisNodeBtype = 0; + ACPI_FUNCTION_NAME (AnGetBtype); if (!Op) { - AcpiOsPrintf ("Null Op in AnGetBtype\n"); + AcpiOsPrintf ("Null Op in %s\n", ACPI_GET_FUNCTION_NAME); return (ACPI_UINT32_MAX); } diff --git a/source/compiler/aslcache.c b/source/compiler/aslcache.c index 9cc707e207d3..11ba5f42a46e 100644 --- a/source/compiler/aslcache.c +++ b/source/compiler/aslcache.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcodegen.c b/source/compiler/aslcodegen.c index a0c67424d250..4013398fa834 100644 --- a/source/compiler/aslcodegen.c +++ b/source/compiler/aslcodegen.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcompile.c b/source/compiler/aslcompile.c index f97cd9d82097..4217182c65df 100644 --- a/source/compiler/aslcompile.c +++ b/source/compiler/aslcompile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslcompiler.h b/source/compiler/aslcompiler.h index d52f60f2180b..ca20de452efc 100644 --- a/source/compiler/aslcompiler.h +++ b/source/compiler/aslcompiler.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -1566,6 +1566,9 @@ ASL_RESOURCE_NODE * RsDoPinGroupConfigDescriptor ( ASL_RESOURCE_INFO *Info); +ASL_RESOURCE_NODE * +RsDoClockInputDescriptor ( + ASL_RESOURCE_INFO *Info); /* * aslrestype2d - DWord address descriptors diff --git a/source/compiler/aslcompiler.l b/source/compiler/aslcompiler.l index 881096ad5bbf..fbc38a613c39 100644 --- a/source/compiler/aslcompiler.l +++ b/source/compiler/aslcompiler.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -461,6 +461,7 @@ NamePathTail [.]{NameSeg} "PinGroup" { count (1); return (PARSEOP_PINGROUP); } "PinGroupConfig" { count (1); return (PARSEOP_PINGROUPCONFIG); } "PinGroupFunction" { count (1); return (PARSEOP_PINGROUPFUNCTION); } +"ClockInput" { count (1); return (PARSEOP_CLOCKINPUT); } "QWordIO" { count (1); return (PARSEOP_QWORDIO); } "QWordMemory" { count (1); return (PARSEOP_QWORDMEMORY); } "QWordSpace" { count (1); return (PARSEOP_QWORDSPACE); } @@ -665,6 +666,17 @@ NamePathTail [.]{NameSeg} "PullDown" { count (0); return (PARSEOP_PIN_PULLDOWN); } "PullNone" { count (0); return (PARSEOP_PIN_NOPULL); } + /* ClockScaleKeyword: Resource Descriptors (ACPI 6.5) */ + +"Hz" { count (0); return (PARSEOP_CLOCK_HZ); } +"KHz" { count (0); return (PARSEOP_CLOCK_KHZ); } +"MHz" { count (0); return (PARSEOP_CLOCK_MHZ); } + + /* ClockModeKeyword: Resource Descriptors (ACPI 6.5) */ + +"Fixed" { count (0); return (PARSEOP_CLOCK_FIXED); } +"Variable" { count (0); return (PARSEOP_CLOCK_VARIABLE); } + /* PolarityKeyword: Resource Descriptors (ACPI 5.0) */ "PolarityLow" { count (0); return (PARSEOP_DEVICEPOLARITY_LOW); } diff --git a/source/compiler/aslcstyle.y b/source/compiler/aslcstyle.y index b4e9065fee0f..d249b51e8ea9 100644 --- a/source/compiler/aslcstyle.y +++ b/source/compiler/aslcstyle.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asldebug.c b/source/compiler/asldebug.c index 5ac6a4ed6059..928bb206ddb3 100644 --- a/source/compiler/asldebug.c +++ b/source/compiler/asldebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asldefine.h b/source/compiler/asldefine.h index 12b2899e4062..fe11d45177a1 100644 --- a/source/compiler/asldefine.h +++ b/source/compiler/asldefine.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslerror.c b/source/compiler/aslerror.c index 3a61bc6e5e8d..54d247e297a2 100644 --- a/source/compiler/aslerror.c +++ b/source/compiler/aslerror.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslexternal.c b/source/compiler/aslexternal.c index a7d2c9c3d36d..243145ed4ee3 100644 --- a/source/compiler/aslexternal.c +++ b/source/compiler/aslexternal.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslfileio.c b/source/compiler/aslfileio.c index 88b9def907f2..7920de7f1765 100644 --- a/source/compiler/aslfileio.c +++ b/source/compiler/aslfileio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslfiles.c b/source/compiler/aslfiles.c index 2479b404ee41..51de2d1e22c8 100644 --- a/source/compiler/aslfiles.c +++ b/source/compiler/aslfiles.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslfold.c b/source/compiler/aslfold.c index 316890c4ac06..f03d19c518ff 100644 --- a/source/compiler/aslfold.c +++ b/source/compiler/aslfold.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslglobal.h b/source/compiler/aslglobal.h index ff00b92ef1ea..438d0c5bcb25 100644 --- a/source/compiler/aslglobal.h +++ b/source/compiler/aslglobal.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslhelp.c b/source/compiler/aslhelp.c index 1cdbf8a76fc2..137736da7db1 100644 --- a/source/compiler/aslhelp.c +++ b/source/compiler/aslhelp.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslhelpers.y b/source/compiler/aslhelpers.y index 2764bf65b9f7..37cc5844cfab 100644 --- a/source/compiler/aslhelpers.y +++ b/source/compiler/aslhelpers.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslhex.c b/source/compiler/aslhex.c index a6e80fdf57ac..4a711823077c 100644 --- a/source/compiler/aslhex.c +++ b/source/compiler/aslhex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslkeywords.y b/source/compiler/aslkeywords.y index 661cfc9397b0..d559fd0f43ec 100644 --- a/source/compiler/aslkeywords.y +++ b/source/compiler/aslkeywords.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -462,3 +462,14 @@ XferTypeKeyword | PARSEOP_XFERTYPE_8_16 {$$ = TrCreateLeafOp (PARSEOP_XFERTYPE_8_16);} | PARSEOP_XFERTYPE_16 {$$ = TrCreateLeafOp (PARSEOP_XFERTYPE_16);} ; + +ClockScaleKeyword + : PARSEOP_CLOCK_HZ {$$ = TrCreateLeafOp (PARSEOP_CLOCK_HZ);} + | PARSEOP_CLOCK_KHZ {$$ = TrCreateLeafOp (PARSEOP_CLOCK_KHZ);} + | PARSEOP_CLOCK_MHZ {$$ = TrCreateLeafOp (PARSEOP_CLOCK_MHZ);} + ; + +ClockModeKeyword + : PARSEOP_CLOCK_FIXED {$$ = TrCreateLeafOp (PARSEOP_CLOCK_FIXED);} + | PARSEOP_CLOCK_VARIABLE {$$ = TrCreateLeafOp (PARSEOP_CLOCK_VARIABLE);} + ; diff --git a/source/compiler/asllength.c b/source/compiler/asllength.c index b1c06246411c..f55443537855 100644 --- a/source/compiler/asllength.c +++ b/source/compiler/asllength.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asllisting.c b/source/compiler/asllisting.c index 290d506210e5..1dd3b39bd24e 100644 --- a/source/compiler/asllisting.c +++ b/source/compiler/asllisting.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asllistsup.c b/source/compiler/asllistsup.c index b03560d3612a..44a87f0a1726 100644 --- a/source/compiler/asllistsup.c +++ b/source/compiler/asllistsup.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslload.c b/source/compiler/aslload.c index 3f827d0ba4d5..3e35d6aa732d 100644 --- a/source/compiler/aslload.c +++ b/source/compiler/aslload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asllookup.c b/source/compiler/asllookup.c index 44bf9a38667a..ae0729bb50b7 100644 --- a/source/compiler/asllookup.c +++ b/source/compiler/asllookup.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmain.c b/source/compiler/aslmain.c index 3c2ce58ea0b2..5b8f54e2b9eb 100644 --- a/source/compiler/aslmain.c +++ b/source/compiler/aslmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmap.c b/source/compiler/aslmap.c index 782d0d96cfb4..71fb5f034d13 100644 --- a/source/compiler/aslmap.c +++ b/source/compiler/aslmap.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -462,6 +462,12 @@ const ASL_MAPPING_ENTRY AslKeywordMapping [] = /* PIN_PULLDEFAULT */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0), /* PIN_PULLDOWN */ OP_TABLE_ENTRY (AML_BYTE_OP, 2, 0, 0), /* PIN_PULLUP */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0), +/* CLOCKINPUT */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0), +/* CLOCK_HZ */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0), +/* CLOCK_KHZ */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0), +/* CLOCK_MHZ */ OP_TABLE_ENTRY (AML_BYTE_OP, 2, 0, 0), +/* CLOCK_FIXED */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0), +/* CLOCK_VARIABLE */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0), /* POWERRESOURCE */ OP_TABLE_ENTRY (AML_POWER_RESOURCE_OP, 0, OP_AML_PACKAGE, 0), /* PROCESSOR */ OP_TABLE_ENTRY (AML_PROCESSOR_OP, 0, OP_AML_PACKAGE, 0), /* QWORDCONST */ OP_TABLE_ENTRY (AML_RAW_DATA_QWORD, 0, 0, ACPI_BTYPE_INTEGER), diff --git a/source/compiler/aslmapenter.c b/source/compiler/aslmapenter.c index 5dae3e9ea86b..b167fb4e96a9 100644 --- a/source/compiler/aslmapenter.c +++ b/source/compiler/aslmapenter.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmapoutput.c b/source/compiler/aslmapoutput.c index 95146ea65fbb..74540f05d846 100644 --- a/source/compiler/aslmapoutput.c +++ b/source/compiler/aslmapoutput.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmaputils.c b/source/compiler/aslmaputils.c index 0b2c7e2615e9..48b67600302b 100644 --- a/source/compiler/aslmaputils.c +++ b/source/compiler/aslmaputils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmessages.c b/source/compiler/aslmessages.c index 990e376f76bd..fe697c854dae 100644 --- a/source/compiler/aslmessages.c +++ b/source/compiler/aslmessages.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmessages.h b/source/compiler/aslmessages.h index 197e9e2276c0..3346c5e0168c 100644 --- a/source/compiler/aslmessages.h +++ b/source/compiler/aslmessages.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslmethod.c b/source/compiler/aslmethod.c index 517ba778cd8e..f092a296a45c 100644 --- a/source/compiler/aslmethod.c +++ b/source/compiler/aslmethod.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslnamesp.c b/source/compiler/aslnamesp.c index 60c488db05a0..a3578d3e8cfc 100644 --- a/source/compiler/aslnamesp.c +++ b/source/compiler/aslnamesp.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asloffset.c b/source/compiler/asloffset.c index b0954c70105c..874e6e59d695 100644 --- a/source/compiler/asloffset.c +++ b/source/compiler/asloffset.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslopcodes.c b/source/compiler/aslopcodes.c index e07910b1f5f6..f6c993e6db1d 100644 --- a/source/compiler/aslopcodes.c +++ b/source/compiler/aslopcodes.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asloperands.c b/source/compiler/asloperands.c index 9330fdfb4244..2c3c6fa96b43 100644 --- a/source/compiler/asloperands.c +++ b/source/compiler/asloperands.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslopt.c b/source/compiler/aslopt.c index 916aebfba1cd..c81e27b2ad87 100644 --- a/source/compiler/aslopt.c +++ b/source/compiler/aslopt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asloptions.c b/source/compiler/asloptions.c index 37484f79bdac..ca894a3b70f0 100644 --- a/source/compiler/asloptions.c +++ b/source/compiler/asloptions.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslparseop.c b/source/compiler/aslparseop.c index ab81ac286e7d..38169fee244f 100644 --- a/source/compiler/aslparseop.c +++ b/source/compiler/aslparseop.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -817,6 +817,8 @@ TrAllocateOp ( ACPI_PARSE_OBJECT *Op; ACPI_PARSE_OBJECT *LatestOp; + ACPI_FUNCTION_NAME (TrAllocateOp); + Op = UtParseOpCacheCalloc (); @@ -861,7 +863,7 @@ TrAllocateOp ( } AslGbl_CommentState.LatestParseOp = Op; - CvDbgPrint ("TrAllocateOp=Set latest parse op to this op.\n"); + CvDbgPrint ("%s=Set latest parse op to this op.\n", ACPI_GET_FUNCTION_NAME); CvDbgPrint (" Op->Asl.ParseOpName = %s\n", AslGbl_CommentState.LatestParseOp->Asl.ParseOpName); CvDbgPrint (" Op->Asl.ParseOpcode = 0x%x\n", ParseOpcode); diff --git a/source/compiler/aslparser.y b/source/compiler/aslparser.y index dff15619283b..3e1c661f4e41 100644 --- a/source/compiler/aslparser.y +++ b/source/compiler/aslparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -208,7 +208,7 @@ AslLocalAllocate ( * These shift/reduce conflicts are expected. There should be zero * reduce/reduce conflicts. */ -%expect 127 +%expect 128 /*! [Begin] no source code translation */ diff --git a/source/compiler/aslpld.c b/source/compiler/aslpld.c index 9faa8c263d6f..eedfaa24695b 100644 --- a/source/compiler/aslpld.c +++ b/source/compiler/aslpld.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslpredef.c b/source/compiler/aslpredef.c index 2804e12da535..925329978df1 100644 --- a/source/compiler/aslpredef.c +++ b/source/compiler/aslpredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprepkg.c b/source/compiler/aslprepkg.c index f562dbe6b820..21fe2db7a08a 100644 --- a/source/compiler/aslprepkg.c +++ b/source/compiler/aslprepkg.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprimaries.y b/source/compiler/aslprimaries.y index 69565defe405..f70597163578 100644 --- a/source/compiler/aslprimaries.y +++ b/source/compiler/aslprimaries.y @@ -11,7 +11,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprintf.c b/source/compiler/aslprintf.c index 3f270fec9da8..b2da0035f0e6 100644 --- a/source/compiler/aslprintf.c +++ b/source/compiler/aslprintf.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslprune.c b/source/compiler/aslprune.c index 4626a1eef08d..dc1162c45aeb 100644 --- a/source/compiler/aslprune.c +++ b/source/compiler/aslprune.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslresource.c b/source/compiler/aslresource.c index 104a48357372..4d20c5e31d1c 100644 --- a/source/compiler/aslresource.c +++ b/source/compiler/aslresource.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -762,6 +762,12 @@ RsDoOneResourceDescriptor ( switch (Info->DescriptorTypeOp->Asl.ParseOpcode) { + + case PARSEOP_CLOCKINPUT: + + Rnode = RsDoClockInputDescriptor(Info); + break; + case PARSEOP_DMA: Rnode = RsDoDmaDescriptor (Info); diff --git a/source/compiler/aslresources.y b/source/compiler/aslresources.y index a5752b01c04f..52bff9c41a6a 100644 --- a/source/compiler/aslresources.y +++ b/source/compiler/aslresources.y @@ -11,7 +11,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -214,6 +214,7 @@ ResourceMacroTerm | Memory32Term {} | PinConfigTerm {} | PinFunctionTerm {} + | ClockInputTerm {} | PinGroupTerm {} | PinGroupConfigTerm {} | PinGroupFunctionTerm {} @@ -666,6 +667,21 @@ PinFunctionTerm error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} ; +ClockInputTerm + : PARSEOP_CLOCKINPUT + PARSEOP_OPEN_PAREN {$$ = TrCreateLeafOp (PARSEOP_CLOCKINPUT);} + DWordConstExpr /* 04: FrequencyNumerator */ + ',' WordConstExpr /* 06: FrequencyDivisor */ + ',' ClockScaleKeyword /* 08: Scale */ + ',' ClockModeKeyword /* 10: Mode*/ + OptionalStringData /* 11: ResourceSource */ + OptionalByteConstExpr /* 12: ResourceSourceIndex */ + PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($3,6,$4,$6,$8,$10,$11,$12);} + | PARSEOP_CLOCKINPUT + PARSEOP_OPEN_PAREN + error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} + ; + PinGroupTerm : PARSEOP_PINGROUP PARSEOP_OPEN_PAREN {$$ = TrCreateLeafOp (PARSEOP_PINGROUP);} diff --git a/source/compiler/aslrestype1.c b/source/compiler/aslrestype1.c index a6625c08c9cd..53fa8621bc91 100644 --- a/source/compiler/aslrestype1.c +++ b/source/compiler/aslrestype1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype1i.c b/source/compiler/aslrestype1i.c index 84d5b653fe8b..d352e65f4024 100644 --- a/source/compiler/aslrestype1i.c +++ b/source/compiler/aslrestype1i.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2.c b/source/compiler/aslrestype2.c index 387e85c80e41..bf6f77ed726d 100644 --- a/source/compiler/aslrestype2.c +++ b/source/compiler/aslrestype2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -337,7 +337,7 @@ RsDoInterruptDescriptor ( Descriptor->ExtendedIrq.InterruptCount = 0; Rover = ACPI_CAST_PTR (AML_RESOURCE, - (&(Descriptor->ExtendedIrq.Interrupts[0]))); + (&(Descriptor->ExtendedIrq.u.Interrupts[0]))); /* Process all child initialization nodes */ @@ -466,7 +466,7 @@ RsDoInterruptDescriptor ( RsCreateDwordField (InitializerOp, ACPI_RESTAG_INTERRUPT, CurrentByteOffset + - ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0])); + ASL_RESDESC_OFFSET (ExtendedIrq.u.Interrupts[0])); } } @@ -494,7 +494,7 @@ RsDoInterruptDescriptor ( } Rnode->BufferLength = - (ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]) - + (ASL_RESDESC_OFFSET (ExtendedIrq.u.Interrupts[0]) - ASL_RESDESC_OFFSET (ExtendedIrq.DescriptorType)) + OptionIndex + StringLength; return (Rnode); diff --git a/source/compiler/aslrestype2d.c b/source/compiler/aslrestype2d.c index 6b597e257758..45013c2c766b 100644 --- a/source/compiler/aslrestype2d.c +++ b/source/compiler/aslrestype2d.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2e.c b/source/compiler/aslrestype2e.c index 414b2d23f851..c557f4020ac6 100644 --- a/source/compiler/aslrestype2e.c +++ b/source/compiler/aslrestype2e.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2q.c b/source/compiler/aslrestype2q.c index ce79659720ee..62866594e6bd 100644 --- a/source/compiler/aslrestype2q.c +++ b/source/compiler/aslrestype2q.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrestype2s.c b/source/compiler/aslrestype2s.c index ea832da3db2c..054807964cc1 100644 --- a/source/compiler/aslrestype2s.c +++ b/source/compiler/aslrestype2s.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -1550,7 +1550,6 @@ RsDoPinFunctionDescriptor ( UINT16 PinListLength; UINT16 DescriptorSize; UINT32 CurrentByteOffset; - UINT32 PinCount = 0; UINT32 i; InitializerOp = Info->DescriptorTypeOp->Asl.Child; @@ -1668,15 +1667,10 @@ RsDoPinFunctionDescriptor ( default: /* * PINs come through here, repeatedly. Each PIN must be a WORD. - * NOTE: there is no "length" field for this, so from ACPI spec: - * The number of pins in the table can be calculated from: - * PinCount = (Resource Source Name Offset - Pin Table Offset) / 2 - * (implies resource source must immediately follow the pin list.) * Name: _PIN */ *PinList = (UINT16) InitializerOp->Asl.Value.Integer; PinList++; - PinCount++; /* Case 8: First pin number in list */ @@ -1708,6 +1702,115 @@ RsDoPinFunctionDescriptor ( return (Rnode); } +/******************************************************************************* + * + * FUNCTION: RsDoClockInputDescriptor + * + * PARAMETERS: Info - Parse Op and resource template offset + * + * RETURN: Completed resource node + * + * DESCRIPTION: Construct a long "ClockInput" descriptor + * + ******************************************************************************/ + +ASL_RESOURCE_NODE * +RsDoClockInputDescriptor ( + ASL_RESOURCE_INFO *Info) +{ + AML_RESOURCE *Descriptor; + ACPI_PARSE_OBJECT *InitializerOp; + ASL_RESOURCE_NODE *Rnode; + char *ResourceSourceString = NULL; + UINT8 *ResourceSourceIndex = NULL; + UINT16 ResSourceLength; + UINT16 DescriptorSize; + UINT32 i; + UINT32 CurrentByteOffset; + + InitializerOp = Info->DescriptorTypeOp->Asl.Child; + CurrentByteOffset = Info->CurrentByteOffset; + + /* + * Calculate lengths for fields that have variable length: + * 1) Resource Source string + */ + ResSourceLength = RsGetStringDataLength (InitializerOp); + + DescriptorSize = ACPI_AML_SIZE_LARGE (AML_RESOURCE_CLOCK_INPUT) + ResSourceLength + 1; + + /* Allocate the local resource node and initialize */ + + Rnode = RsAllocateResourceNode (DescriptorSize + + sizeof (AML_RESOURCE_LARGE_HEADER)); + + Descriptor = Rnode->Buffer; + Descriptor->ClockInput.ResourceLength = DescriptorSize; + Descriptor->ClockInput.DescriptorType = ACPI_RESOURCE_NAME_CLOCK_INPUT; + Descriptor->ClockInput.RevisionId = AML_RESOURCE_CLOCK_INPUT_REVISION; + + /* Build pointers to optional areas */ + + if (ResSourceLength){ + ResourceSourceIndex = ACPI_ADD_PTR (UINT8, Descriptor, sizeof (AML_RESOURCE_CLOCK_INPUT)); + ResourceSourceString = ACPI_ADD_PTR (char, Descriptor, sizeof (AML_RESOURCE_CLOCK_INPUT) + 1); + } + + /* Process all child initialization nodes */ + + for (i = 0; InitializerOp; i++) + { + switch (i) + { + case 0: + Descriptor->ClockInput.FrequencyNumerator = (UINT32)InitializerOp->Asl.Value.Integer; + RsCreateDwordField (InitializerOp, ACPI_RESTAG_FQN, + CurrentByteOffset + ASL_RESDESC_OFFSET (ClockInput.FrequencyNumerator)); + + break; + + case 1: + Descriptor->ClockInput.FrequencyDivisor = (UINT16)InitializerOp->Asl.Value.Integer; + RsCreateWordField (InitializerOp, ACPI_RESTAG_FQD, + CurrentByteOffset + ASL_RESDESC_OFFSET (ClockInput.FrequencyDivisor)); + + break; + + case 2: + RsSetFlagBits16 (&Descriptor->ClockInput.Flags, InitializerOp, 1, 0); + break; + + case 3: + RsSetFlagBits16 (&Descriptor->ClockInput.Flags, InitializerOp, 0, 0); + break; + + case 4: /* ResSource String [Optional Field] */ + + if (ResourceSourceString) + { + /* Copy string to the descriptor */ + + strcpy (ResourceSourceString, InitializerOp->Asl.Value.String); + } + break; + + case 5: /* ResSource Index [Optional Field] */ + if (ResourceSourceIndex) + { + *ResourceSourceIndex = (UINT8) InitializerOp->Asl.Value.Integer; + } + break; + + default: + break; + } + + InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); + } + + return (Rnode); +} + /******************************************************************************* * @@ -1736,7 +1839,6 @@ RsDoPinConfigDescriptor ( UINT16 PinListLength; UINT16 DescriptorSize; UINT32 CurrentByteOffset; - UINT32 PinCount = 0; UINT32 i; InitializerOp = Info->DescriptorTypeOp->Asl.Child; @@ -1868,15 +1970,10 @@ RsDoPinConfigDescriptor ( default: /* * PINs come through here, repeatedly. Each PIN must be a WORD. - * NOTE: there is no "length" field for this, so from ACPI spec: - * The number of pins in the table can be calculated from: - * PinCount = (Resource Source Name Offset - Pin Table Offset) / 2 - * (implies resource source must immediately follow the pin list.) * Name: _PIN */ *PinList = (UINT16) InitializerOp->Asl.Value.Integer; PinList++; - PinCount++; /* Case 8: First pin number in list */ @@ -1936,7 +2033,6 @@ RsDoPinGroupDescriptor ( UINT16 PinListLength; UINT16 DescriptorSize; UINT32 CurrentByteOffset; - UINT32 PinCount = 0; UINT32 i; InitializerOp = Info->DescriptorTypeOp->Asl.Child; @@ -2022,15 +2118,10 @@ RsDoPinGroupDescriptor ( default: /* * PINs come through here, repeatedly. Each PIN must be a WORD. - * NOTE: there is no "length" field for this, so from ACPI spec: - * The number of pins in the table can be calculated from: - * PinCount = (Resource Source Name Offset - Pin Table Offset) / 2 - * (implies resource source must immediately follow the pin list.) * Name: _PIN */ *PinList = (UINT16) InitializerOp->Asl.Value.Integer; PinList++; - PinCount++; /* Case 3: First pin number in list */ diff --git a/source/compiler/aslrestype2w.c b/source/compiler/aslrestype2w.c index a758e0581d38..9908494d364a 100644 --- a/source/compiler/aslrestype2w.c +++ b/source/compiler/aslrestype2w.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslrules.y b/source/compiler/aslrules.y index 79aa2210abb8..2793749bc631 100644 --- a/source/compiler/aslrules.y +++ b/source/compiler/aslrules.y @@ -11,7 +11,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslstartup.c b/source/compiler/aslstartup.c index 9542a79d3943..8b4e5c7cd249 100644 --- a/source/compiler/aslstartup.c +++ b/source/compiler/aslstartup.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslstubs.c b/source/compiler/aslstubs.c index 0e6cd56f48e7..e90115b8ceda 100644 --- a/source/compiler/aslstubs.c +++ b/source/compiler/aslstubs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslsupport.l b/source/compiler/aslsupport.l index 0daec602e148..8d589a9490b8 100644 --- a/source/compiler/aslsupport.l +++ b/source/compiler/aslsupport.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -195,7 +195,7 @@ AslParserCleanup ( * * DESCRIPTION: Handle #line directives emitted by the preprocessor. * - * The #line directive is emitted by the preprocesser, and is used to + * The #line directive is emitted by the preprocessor, and is used to * pass through line numbers from the original source code file to the * preprocessor output file (.i). This allows any compiler-generated * error messages to be displayed with the correct line number. diff --git a/source/compiler/aslsupport.y b/source/compiler/aslsupport.y index 3f19af2f48b1..f742067287fe 100644 --- a/source/compiler/aslsupport.y +++ b/source/compiler/aslsupport.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltokens.y b/source/compiler/asltokens.y index c43561e7a4a3..48db2e2211fd 100644 --- a/source/compiler/asltokens.y +++ b/source/compiler/asltokens.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -399,6 +399,12 @@ NoEcho(' %token PARSEOP_PIN_PULLDEFAULT %token PARSEOP_PIN_PULLDOWN %token PARSEOP_PIN_PULLUP +%token PARSEOP_CLOCKINPUT +%token PARSEOP_CLOCK_HZ +%token PARSEOP_CLOCK_KHZ +%token PARSEOP_CLOCK_MHZ +%token PARSEOP_CLOCK_FIXED +%token PARSEOP_CLOCK_VARIABLE %token PARSEOP_POWERRESOURCE %token PARSEOP_PROCESSOR %token PARSEOP_QWORDCONST diff --git a/source/compiler/asltransform.c b/source/compiler/asltransform.c index 573ddad1565f..d1fcbed27d5d 100644 --- a/source/compiler/asltransform.c +++ b/source/compiler/asltransform.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/asltree.c b/source/compiler/asltree.c index 9cf49269f377..f390c4f6ca89 100644 --- a/source/compiler/asltree.c +++ b/source/compiler/asltree.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -467,6 +467,7 @@ TrLinkOpChildren ( UINT32 i; BOOLEAN FirstChild; + ACPI_FUNCTION_NAME (TrLinkOpChildren); va_start (ap, NumChildren); @@ -624,7 +625,7 @@ TrLinkOpChildren ( if (AcpiGbl_CaptureComments) { AslGbl_CommentState.LatestParseOp = Op; - CvDbgPrint ("TrLinkOpChildren=====Set latest parse op to this op.\n"); + CvDbgPrint ("%s=====Set latest parse op to this op.\n", ACPI_GET_FUNCTION_NAME); } return (Op); diff --git a/source/compiler/asltypes.h b/source/compiler/asltypes.h index d5689dea58b0..577d3b881c1f 100644 --- a/source/compiler/asltypes.h +++ b/source/compiler/asltypes.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -336,7 +336,7 @@ typedef struct asl_file_desc typedef struct asl_cache_info { void *Next; - char Buffer[1]; + char Buffer[]; } ASL_CACHE_INFO; diff --git a/source/compiler/asltypes.y b/source/compiler/asltypes.y index ba98362cd323..d5f020d3282f 100644 --- a/source/compiler/asltypes.y +++ b/source/compiler/asltypes.y @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -359,6 +359,8 @@ NoEcho(' %type WireModeKeyword %type XferSizeKeyword %type XferTypeKeyword +%type ClockScaleKeyword +%type ClockModeKeyword /* Types */ @@ -411,6 +413,7 @@ NoEcho(' /* Resource Descriptors */ +%type ClockInputTerm %type ConnectionTerm %type Csi2SerialBusTerm %type DMATerm diff --git a/source/compiler/aslutils.c b/source/compiler/aslutils.c index e91fd4602c26..86b040b98e26 100644 --- a/source/compiler/aslutils.c +++ b/source/compiler/aslutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -610,7 +610,7 @@ UtSetParseOpName ( * * FUNCTION: UtDisplayOneSummary * - * PARAMETERS: FileID - ID of outpout file + * PARAMETERS: FileID - ID of output file * * RETURN: None * @@ -733,7 +733,7 @@ UtDisplayOneSummary ( * * FUNCTION: UtDisplayErrorSummary * - * PARAMETERS: FileID - ID of outpout file + * PARAMETERS: FileID - ID of output file * * RETURN: None * @@ -800,7 +800,7 @@ UtDisplayErrorSummary ( * * FUNCTION: UtDisplaySummary * - * PARAMETERS: FileID - ID of outpout file + * PARAMETERS: FileID - ID of output file * * RETURN: None * diff --git a/source/compiler/asluuid.c b/source/compiler/asluuid.c index 0eb36050e882..fbbf644af8c0 100644 --- a/source/compiler/asluuid.c +++ b/source/compiler/asluuid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslwalks.c b/source/compiler/aslwalks.c index 6e32f0818725..0f7bc94f2355 100644 --- a/source/compiler/aslwalks.c +++ b/source/compiler/aslwalks.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslxref.c b/source/compiler/aslxref.c index 3a00f5a92cbc..0e1034ba73a1 100644 --- a/source/compiler/aslxref.c +++ b/source/compiler/aslxref.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/aslxrefout.c b/source/compiler/aslxrefout.c index dd3fe80c275f..04471c63549d 100644 --- a/source/compiler/aslxrefout.c +++ b/source/compiler/aslxrefout.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/cvcompiler.c b/source/compiler/cvcompiler.c index b51a688b3a59..6689ca89581f 100644 --- a/source/compiler/cvcompiler.c +++ b/source/compiler/cvcompiler.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/cvdisasm.c b/source/compiler/cvdisasm.c index 250c009ac315..7561e902fdd7 100644 --- a/source/compiler/cvdisasm.c +++ b/source/compiler/cvdisasm.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/cvparser.c b/source/compiler/cvparser.c index 66b04e9a8597..574cbe8d9c48 100644 --- a/source/compiler/cvparser.c +++ b/source/compiler/cvparser.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtcompile.c b/source/compiler/dtcompile.c index 11fcb8b9a6dc..afb4e3427671 100644 --- a/source/compiler/dtcompile.c +++ b/source/compiler/dtcompile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtcompiler.h b/source/compiler/dtcompiler.h index e85ca539791a..cddc95191f4b 100644 --- a/source/compiler/dtcompiler.h +++ b/source/compiler/dtcompiler.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -577,6 +577,10 @@ ACPI_STATUS DtCompileAsf ( void **PFieldList); +ACPI_STATUS +DtCompileAspt ( + void **PFieldList); + ACPI_STATUS DtCompileCdat ( void **PFieldList); @@ -653,6 +657,10 @@ ACPI_STATUS DtCompileMcfg ( void **PFieldList); +ACPI_STATUS +DtCompileMpam ( + void **PFieldList); + ACPI_STATUS DtCompileMpst ( void **PFieldList); @@ -697,6 +705,10 @@ ACPI_STATUS DtCompileRgrt ( void **PFieldList); +ACPI_STATUS +DtCompileRhct ( + void **PFieldList); + ACPI_STATUS DtCompileRsdt ( void **PFieldList); @@ -773,6 +785,7 @@ extern const unsigned char TemplateAest[]; extern const unsigned char TemplateAgdi[]; extern const unsigned char TemplateApmt[]; extern const unsigned char TemplateAsf[]; +extern const unsigned char TemplateAspt[]; extern const unsigned char TemplateBoot[]; extern const unsigned char TemplateBdat[]; extern const unsigned char TemplateBert[]; @@ -801,6 +814,7 @@ extern const unsigned char TemplateLpit[]; extern const unsigned char TemplateMadt[]; extern const unsigned char TemplateMcfg[]; extern const unsigned char TemplateMchi[]; +extern const unsigned char TemplateMpam[]; extern const unsigned char TemplateMpst[]; extern const unsigned char TemplateMsct[]; extern const unsigned char TemplateMsdm[]; @@ -814,6 +828,7 @@ extern const unsigned char TemplatePptt[]; extern const unsigned char TemplatePrmt[]; extern const unsigned char TemplateRasf[]; extern const unsigned char TemplateRgrt[]; +extern const unsigned char TemplateRhct[]; extern const unsigned char TemplateRsdt[]; extern const unsigned char TemplateS3pt[]; extern const unsigned char TemplateSbst[]; diff --git a/source/compiler/dtcompilerparser.l b/source/compiler/dtcompilerparser.l index a00ef56e2481..a4ff02a08fa9 100644 --- a/source/compiler/dtcompilerparser.l +++ b/source/compiler/dtcompilerparser.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtcompilerparser.y b/source/compiler/dtcompilerparser.y index 30ead3afa9ad..f03615ff1c5e 100644 --- a/source/compiler/dtcompilerparser.y +++ b/source/compiler/dtcompilerparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtexpress.c b/source/compiler/dtexpress.c index fd292d8fec76..7d614729e266 100644 --- a/source/compiler/dtexpress.c +++ b/source/compiler/dtexpress.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -480,10 +480,11 @@ static void DtInsertLabelField ( DT_FIELD *Field) { + ACPI_FUNCTION_NAME (DtInsertLabelField); DbgPrint (ASL_DEBUG_OUTPUT, - "DtInsertLabelField: Found Label : %s at output table offset %X\n", - Field->Value, Field->TableOffset); + "%s: Found Label : %s at output table offset %X\n", + ACPI_GET_FUNCTION_NAME, Field->Value, Field->TableOffset); Field->NextLabel = AslGbl_LabelList; AslGbl_LabelList = Field; diff --git a/source/compiler/dtfield.c b/source/compiler/dtfield.c index f931631955c2..b2ba6693dcaa 100644 --- a/source/compiler/dtfield.c +++ b/source/compiler/dtfield.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -678,7 +678,7 @@ DtCompileFlag ( case ACPI_DMT_FLAGS8_2: - BitPosition = 2; + BitPosition = 2; BitLength = 8; break; diff --git a/source/compiler/dtio.c b/source/compiler/dtio.c index 9ec18cd1e0f8..7d7fb2b45997 100644 --- a/source/compiler/dtio.c +++ b/source/compiler/dtio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtparser.l b/source/compiler/dtparser.l index b7cb26e2ba32..0c003ecacfbd 100644 --- a/source/compiler/dtparser.l +++ b/source/compiler/dtparser.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtparser.y b/source/compiler/dtparser.y index fc8275cc209c..df804c916a16 100644 --- a/source/compiler/dtparser.y +++ b/source/compiler/dtparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dtsubtable.c b/source/compiler/dtsubtable.c index 3c2798b64dbd..0bbaa81ca424 100644 --- a/source/compiler/dtsubtable.c +++ b/source/compiler/dtsubtable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dttable.c b/source/compiler/dttable.c index dfc34c134667..1cbd4619ac99 100644 --- a/source/compiler/dttable.c +++ b/source/compiler/dttable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dttable1.c b/source/compiler/dttable1.c index dc25e9b9f48f..8ffcb40dc44d 100644 --- a/source/compiler/dttable1.c +++ b/source/compiler/dttable1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -654,6 +654,91 @@ DtCompileAsf ( return (AE_OK); } +/****************************************************************************** + * + * FUNCTION: DtCompileAspt + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile ASPT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileAspt ( + void **List) +{ + ACPI_ASPT_HEADER *AsptTable; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + ACPI_DMTABLE_INFO *InfoTable; + ACPI_STATUS Status; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoAspt, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + while (*PFieldList) + { + SubtableStart = *PFieldList; + Status = DtCompileTable (PFieldList, AcpiDmTableInfoAsptHdr, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + AsptTable = ACPI_CAST_PTR (ACPI_ASPT_HEADER, Subtable->Buffer); + + switch (AsptTable->Type) /* Mask off top bit */ + { + case ACPI_ASPT_TYPE_GLOBAL_REGS: + + InfoTable = AcpiDmTableInfoAspt0; + break; + + case ACPI_ASPT_TYPE_SEV_MBOX_REGS: + + InfoTable = AcpiDmTableInfoAspt1; + break; + + case ACPI_ASPT_TYPE_ACPI_MBOX_REGS: + + InfoTable = AcpiDmTableInfoAspt2; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "ASPT"); + return (AE_ERROR); + } + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPopSubtable (); + } + + return (AE_OK); +} + /****************************************************************************** * @@ -854,7 +939,7 @@ DtCompileCedt ( /* Look in buffer for the number of targets */ offset = (unsigned int) ACPI_OFFSET (ACPI_CEDT_CFMWS, InterleaveWays); dump = (unsigned char *) Subtable->Buffer - 4; /* place at beginning of cedt1 */ - max = 0x01 << dump[offset]; /* 2^max, so 0=1, 1=2, 2=4, 3=8. 8 is MAX */ + max = 0x01 << dump[offset]; /* 2^max, so 0=1, 1=2, 2=4, 3=8. 8 is MAX */ if (max > 8) max=1; /* Error in encoding Interleaving Ways. */ if (max == 1) /* if only one target, then break here. */ break; /* break if only one target. */ @@ -2009,7 +2094,7 @@ DtCompileHmat ( DtInsertSubtable (ParentTable, Subtable); HmatStruct->Length += Subtable->Length; - /* Compile HMAT structure additionals */ + /* Compile HMAT structure additional */ switch (HmatStruct->Type) { diff --git a/source/compiler/dttable2.c b/source/compiler/dttable2.c index 59d578f91959..007b67476319 100644 --- a/source/compiler/dttable2.c +++ b/source/compiler/dttable2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -425,6 +425,163 @@ DtCompileMcfg ( return (Status); } +/****************************************************************************** + * + * FUNCTION: DtCompileMpam + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile MPAM. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileMpam ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *ParentTable; + DT_SUBTABLE *Subtable; + DT_FIELD *SubtableStart; + DT_FIELD **PFieldList = (DT_FIELD **) List; + ACPI_MPAM_MSC_NODE *MpamMscNode; + ACPI_MPAM_RESOURCE_NODE *MpamResourceNode; + UINT32 FuncDepsCount; + UINT32 RisLength; + ACPI_DMTABLE_INFO *InfoTable; + + ParentTable = DtPeekSubtable (); + + while (*PFieldList) + { + SubtableStart = *PFieldList; + + /* Main MSC Node table */ + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpam0, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + MpamMscNode = ACPI_CAST_PTR (ACPI_MPAM_MSC_NODE, Subtable->Buffer); + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + ParentTable = DtPeekSubtable (); + + /* + * RIS(es) per MSC node have variable lengths depending on how many RISes there and + * any how many functional dependencies per RIS. Calculate it in order + * to properly set the overall MSC length. + */ + RisLength = 0; + + /* Iterate over RIS subtables per MSC node */ + for (UINT32 ris = 0; ris < MpamMscNode->NumResouceNodes; ris++) + { + /* Compile RIS subtable */ + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpam1, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + MpamResourceNode = ACPI_CAST_PTR (ACPI_MPAM_RESOURCE_NODE, Subtable->Buffer); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + ParentTable = DtPeekSubtable (); + + switch (MpamResourceNode->LocatorType) + { + case ACPI_MPAM_LOCATION_TYPE_PROCESSOR_CACHE: + InfoTable = AcpiDmTableInfoMpam1A; + break; + case ACPI_MPAM_LOCATION_TYPE_MEMORY: + InfoTable = AcpiDmTableInfoMpam1B; + break; + case ACPI_MPAM_LOCATION_TYPE_SMMU: + InfoTable = AcpiDmTableInfoMpam1C; + break; + case ACPI_MPAM_LOCATION_TYPE_MEMORY_CACHE: + InfoTable = AcpiDmTableInfoMpam1D; + break; + case ACPI_MPAM_LOCATION_TYPE_ACPI_DEVICE: + InfoTable = AcpiDmTableInfoMpam1E; + break; + case ACPI_MPAM_LOCATION_TYPE_INTERCONNECT: + InfoTable = AcpiDmTableInfoMpam1F; + break; + case ACPI_MPAM_LOCATION_TYPE_UNKNOWN: + InfoTable = AcpiDmTableInfoMpam1G; + default: + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "Resource Locator Type"); + return (AE_ERROR); + } + + /* Compile Resource Locator Table */ + Status = DtCompileTable (PFieldList, InfoTable, + &Subtable); + + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + + /* Compile the number of functional dependencies per RIS */ + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpam1Deps, + &Subtable); + + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + FuncDepsCount = *ACPI_CAST_PTR (UINT32, Subtable->Buffer); + + RisLength += sizeof(ACPI_MPAM_RESOURCE_NODE) + + FuncDepsCount * sizeof(ACPI_MPAM_FUNC_DEPS); + + /* Iterate over functional dependencies per RIS */ + for (UINT32 funcDep = 0; funcDep < FuncDepsCount; funcDep++) + { + /* Compiler functional dependencies table */ + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpam2, + &Subtable); + + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + } + + DtPopSubtable (); + } + + /* Check if the length of the MSC is correct and override with the correct length */ + if (MpamMscNode->Length != sizeof(ACPI_MPAM_MSC_NODE) + RisLength) + { + MpamMscNode->Length = (UINT16) (sizeof(ACPI_MPAM_MSC_NODE) + RisLength); + DbgPrint (ASL_DEBUG_OUTPUT, "Overriding MSC->Length: %X\n", MpamMscNode->Length); + } + + DtPopSubtable (); + } + + return (AE_OK); +} + /****************************************************************************** * @@ -1086,7 +1243,7 @@ DtCompileNhlt ( /* * If we are not done with the current Endpoint yet, then there must be - * some non documeneted structure(s) yet to be processed. First, get + * some non documented structure(s) yet to be processed. First, get * the count of such structure(s). */ if (*PFieldList && !(strcmp ((const char *) (*PFieldList)->Name, "Device Info struct count"))) @@ -1800,7 +1957,7 @@ DtCompilePptt ( DtInsertSubtable (ParentTable, Subtable); PpttHeader->Length += (UINT8)(Subtable->Length); - /* Compile PPTT subtable additionals */ + /* Compile PPTT subtable additional */ switch (PpttHeader->Type) { @@ -1969,6 +2126,128 @@ DtCompileRgrt ( } +/****************************************************************************** + * + * FUNCTION: DtCompileRhct + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile RHCT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileRhct ( + void **List) +{ + ACPI_STATUS Status; + ACPI_RHCT_NODE_HEADER *RhctHeader; + ACPI_RHCT_HART_INFO *RhctHartInfo = NULL; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + ACPI_DMTABLE_INFO *InfoTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + + + /* Compile the main table */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoRhct, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + while (*PFieldList) + { + SubtableStart = *PFieldList; + + /* Compile RHCT subtable header */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoRhctNodeHdr, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + DtInsertSubtable (ParentTable, Subtable); + RhctHeader = ACPI_CAST_PTR (ACPI_RHCT_NODE_HEADER, Subtable->Buffer); + RhctHeader->Length = (UINT16)(Subtable->Length); + + switch (RhctHeader->Type) + { + case ACPI_RHCT_NODE_TYPE_ISA_STRING: + + InfoTable = AcpiDmTableInfoRhctIsa1; + break; + + case ACPI_RHCT_NODE_TYPE_HART_INFO: + + InfoTable = AcpiDmTableInfoRhctHartInfo1; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "RHCT"); + return (AE_ERROR); + } + + /* Compile RHCT subtable body */ + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + DtInsertSubtable (ParentTable, Subtable); + RhctHeader->Length += (UINT16)(Subtable->Length); + + /* Compile RHCT subtable additionals */ + + switch (RhctHeader->Type) + { + case ACPI_RHCT_NODE_TYPE_HART_INFO: + + RhctHartInfo = ACPI_SUB_PTR (ACPI_RHCT_HART_INFO, + Subtable->Buffer, sizeof (ACPI_RHCT_NODE_HEADER)); + if (RhctHartInfo) + { + + RhctHartInfo->NumOffsets = 0; + while (*PFieldList) + { + Status = DtCompileTable (PFieldList, + AcpiDmTableInfoRhctHartInfo2, &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + if (!Subtable) + { + break; + } + + DtInsertSubtable (ParentTable, Subtable); + RhctHeader->Length += (UINT16)(Subtable->Length); + RhctHartInfo->NumOffsets++; + } + } + break; + + default: + + break; + } + } + + return (AE_OK); +} + + /****************************************************************************** * * FUNCTION: DtCompileRsdt diff --git a/source/compiler/dttemplate.c b/source/compiler/dttemplate.c index 1bcc4a12cbf1..77edbc852582 100644 --- a/source/compiler/dttemplate.c +++ b/source/compiler/dttemplate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/dttemplate.h b/source/compiler/dttemplate.h index 3ab99978ab07..755da40224e4 100644 --- a/source/compiler/dttemplate.h +++ b/source/compiler/dttemplate.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -301,6 +301,27 @@ const unsigned char TemplateAsf[] = 0x01,0x00 /* 00000070 ".." */ }; +const unsigned char TemplateAspt[] = +{ + 0x41,0x53,0x50,0x54,0x88,0x00,0x00,0x00, /* 00000000 "ASPT...." */ + 0x01,0x2D,0x56,0x52,0x54,0x55,0x41,0x4C, /* 00000008 "..VRTUAL" */ + 0x4D,0x49,0x43,0x52,0x4F,0x53,0x46,0x54, /* 00000010 "MICROSFT" */ + 0x01,0x00,0x00,0x00,0x4D,0x53,0x46,0x54, /* 00000018 "....INTL" */ + 0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00, /* 00000020 " ." ...." */ + 0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00, /* 00000028 ".. ....." */ + 0x00,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000030 "........" */ + 0x04,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000038 "........" */ + 0x08,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000040 "........" */ + 0x01,0x00,0x20,0x00,0x01,0x00,0x00,0x00, /* 00000048 ".. ....." */ + 0x10,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000050 "........" */ + 0x14,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000058 "........" */ + 0x18,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000060 "........" */ + 0x02,0x00,0x20,0x00,0x00,0x00,0x00,0x00, /* 00000068 ".. ....." */ + 0x20,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000070 " ......." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000078 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000080 "........" */ +}; + const unsigned char TemplateBdat[] = { 0x42,0x44,0x41,0x54,0x30,0x00,0x00,0x00, /* 00000000 "BDAT0..." */ @@ -1197,6 +1218,42 @@ const unsigned char TemplateMsdm[] = 0x22,0x23,0x24,0x25 /* 00000060 ""#$%" */ }; +const unsigned char TemplateMpam[] = +{ + 0x4D,0x50,0x41,0x4D,0xFC,0x00,0x00,0x00, /* 00000000 "MPAM...." */ + 0x02,0x34,0x48,0x49,0x53,0x49,0x20,0x20, /* 00000008 ".4HISI " */ + 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */ + 0x02,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x20,0x10,0x22,0x20,0x60,0x00,0x00,0x00, /* 00000020 " ." `..." */ + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xC0, /* 00000028 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, /* 00000030 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000040 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000048 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000050 "........" */ + 0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000058 "2......." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000060 "........" */ + 0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00, /* 00000068 "........" */ + 0x00,0x00,0x00,0x01,0x20,0x00,0x00,0x00, /* 00000070 ".... ..." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000078 "........" */ + 0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00, /* 00000080 "....x..." */ + 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xD0, /* 00000088 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, /* 00000090 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000098 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A0 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A8 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B0 "........" */ + 0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B8 "2......." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000C0 "........" */ + 0x02,0x00,0x00,0x00,0x12,0x00,0x00,0x00, /* 000000C8 "........" */ + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000000D0 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000D8 "........" */ + 0x00,0x00,0x00,0x00,0x13,0x00,0x00,0x00, /* 000000E0 "........" */ + 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00, /* 000000E8 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000F0 "........" */ + 0x00,0x00,0x00,0x00 /* 000000F8 "...." */ +}; + const unsigned char TemplateMpst[] = { 0x4D,0x50,0x53,0x54,0xB6,0x00,0x00,0x00, /* 00000000 "MPST...." */ @@ -1659,6 +1716,26 @@ const unsigned char TemplateRgrt[] = 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27 /* 00000048 " !"#$%&'" */ }; +const unsigned char TemplateRhct[] = +{ + 0x52,0x48,0x43,0x54,0x7C,0x00,0x00,0x00, /* 00000000 "RHCT|..." */ + 0x01,0x7D,0x4F,0x45,0x4D,0x43,0x41,0x00, /* 00000008 "..OEMCA." */ + 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */ + 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x28,0x09,0x22,0x20,0x00,0x00,0x00,0x00, /* 00000020 "... ...." */ + 0x80,0x96,0x98,0x00,0x00,0x00,0x00,0x00, /* 00000028 "........" */ + 0x02,0x00,0x00,0x00,0x38,0x00,0x00,0x00, /* 00000030 "....8..." */ + 0x00,0x00,0x34,0x00,0x01,0x00,0x2B,0x00, /* 00000038 "..4...*." */ + 0x72,0x76,0x36,0x34,0x69,0x6D,0x61,0x66, /* 00000040 "rv64imaf" */ + 0x64,0x63,0x68,0x5F,0x7A,0x69,0x63,0x73, /* 00000048 "dch_zics" */ + 0x72,0x5F,0x7A,0x69,0x66,0x65,0x6E,0x63, /* 00000050 "r_zifenc" */ + 0x65,0x69,0x5F,0x7A,0x62,0x61,0x5F,0x7A, /* 00000058 "ei_zba_z" */ + 0x62,0x62,0x5F,0x7A,0x62,0x63,0x5F,0x7A, /* 00000060 "bb_zbc_z" */ + 0x62,0x73,0x00,0x00,0xFF,0xFF,0x10,0x00, /* 00000068 "bs......" */ + 0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 00000070 "........" */ + 0x38,0x00,0x00,0x00 /* 00000078 "........" */ +}; + const unsigned char TemplateRsdp[] = { 0x52,0x53,0x44,0x20,0x50,0x54,0x52,0x20, /* 00000000 "RSD PTR " */ diff --git a/source/compiler/dtutils.c b/source/compiler/dtutils.c index 45bff3df5d21..de321e588094 100644 --- a/source/compiler/dtutils.c +++ b/source/compiler/dtutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -584,6 +584,7 @@ DtGetFieldLength ( case ACPI_DMT_IVRS_DE: case ACPI_DMT_GTDT: case ACPI_DMT_MADT: + case ACPI_DMT_MPAM_LOCATOR: case ACPI_DMT_NHLT1: case ACPI_DMT_NHLT1a: case ACPI_DMT_NHLT1b: @@ -614,6 +615,7 @@ DtGetFieldLength ( ByteLength = 1; break; + case ACPI_DMT_ASPT: case ACPI_DMT_UINT16: case ACPI_DMT_DMAR: case ACPI_DMT_HEST: diff --git a/source/compiler/preprocess.h b/source/compiler/preprocess.h index 9c25dd132a74..818eac263fe2 100644 --- a/source/compiler/preprocess.h +++ b/source/compiler/preprocess.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -249,6 +249,7 @@ typedef struct directive_info */ PR_EXTERN char PR_INIT_GLOBAL (*AslGbl_MainTokenBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */ PR_EXTERN char PR_INIT_GLOBAL (*AslGbl_MacroTokenBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */ +PR_EXTERN char PR_INIT_GLOBAL (*AslGbl_MacroTokenReplaceBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */ PR_EXTERN char PR_INIT_GLOBAL (*AslGbl_ExpressionTokenBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */ PR_EXTERN UINT32 AslGbl_PreprocessorLineNumber; @@ -370,6 +371,14 @@ PrError ( UINT32 Column); void +PrReplaceResizeSubstring( + PR_MACRO_ARG *Args, + UINT32 Diff1, + UINT32 Diff2, + UINT32 i, + char *Token); + +char * PrReplaceData ( char *Buffer, UINT32 LengthToRemove, diff --git a/source/compiler/prexpress.c b/source/compiler/prexpress.c index 8ac1fd88767e..88570685865e 100644 --- a/source/compiler/prexpress.c +++ b/source/compiler/prexpress.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prmacros.c b/source/compiler/prmacros.c index 5b3669784204..6414867b96ef 100644 --- a/source/compiler/prmacros.c +++ b/source/compiler/prmacros.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -393,10 +393,10 @@ PrAddMacro ( UINT16 UseCount = 0; UINT16 ArgCount = 0; UINT32 Depth = 1; + /*UINT32 Depth = 1;*/ UINT32 EndOfArgList; char BufferChar; - /* Find the end of the arguments list */ TokenOffset = Name - AslGbl_MainTokenBuffer + strlen (Name) + 1; @@ -437,6 +437,7 @@ PrAddMacro ( for (i = 0; i < PR_MAX_MACRO_ARGS; i++) { Token = PrGetNextToken (NULL, PR_MACRO_SEPARATORS, Next); + if (!Token) { /* This is the case for a NULL macro body */ @@ -454,14 +455,13 @@ PrAddMacro ( } DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID - "Macro arg: %s \n", + "Macro param: %s \n", AslGbl_CurrentLineNumber, Token); Args[i].Name = UtLocalCalloc (strlen (Token) + 1); strcpy (Args[i].Name, Token); Args[i].UseCount = 0; - ArgCount++; if (ArgCount >= PR_MAX_MACRO_ARGS) { @@ -476,7 +476,6 @@ PrAddMacro ( /* Match each method arg in the macro body for later use */ - Token = PrGetNextToken (NULL, PR_MACRO_SEPARATORS, Next); while (Token) { /* Search the macro arg list for matching arg */ @@ -496,12 +495,14 @@ PrAddMacro ( Args[i].Offset[UseCount] = (Token - AslGbl_MainTokenBuffer) - MacroBodyOffset; + DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID "Macro Arg #%u: %s UseCount %u Offset %u \n", AslGbl_CurrentLineNumber, i, Token, UseCount+1, Args[i].Offset[UseCount]); Args[i].UseCount++; + if (Args[i].UseCount >= PR_MAX_ARG_INSTANCES) { PrError (ASL_ERROR, ASL_MSG_TOO_MANY_ARGUMENTS, @@ -596,7 +597,8 @@ PrDoMacroInvocation ( UINT32 TokenOffset; UINT32 Length; UINT32 i; - + UINT32 Diff1; + UINT32 Diff2; /* Take a copy of the macro body for expansion */ @@ -610,6 +612,7 @@ PrDoMacroInvocation ( /* This macro has no arguments */ Token = PrGetNextToken (NULL, PR_MACRO_ARGUMENTS, Next); + if (!Token) { goto BadInvocation; @@ -634,21 +637,35 @@ PrDoMacroInvocation ( goto BadInvocation; } + /* + * Avoid optimizing using just 1 signed int due to specific + * non-portable implementations of signed ints + */ + Diff1 = strlen (Args->Name) > strlen (Token) ? strlen (Args->Name) - + strlen (Token) : 0; + + Diff2 = strlen (Args->Name) < strlen (Token) ? strlen (Token) - + strlen (Args->Name) : 0; + /* Replace all instances of this argument */ for (i = 0; i < Args->UseCount; i++) { - /* Offset zero indicates "arg not used" */ - /* TBD: Not really needed now, with UseCount available */ + /* + * To test the output of the preprocessed macro function that + * is passed to the compiler + */ - if (Args->Offset[i] == 0) - { - break; - } + /* + * fprintf (stderr, "Current token = %s \t Current arg_name = %s \ + * \t strlen (Token) = %u \t strlen (Args->Name) = %u \t Offset = %u \ + * \t UseCount = %u \t", Token, Args->Name, strlen (Token), \ + * strlen (Args->Name), Args->Offset[i], Args->UseCount); + */ - PrReplaceData ( - &AslGbl_MacroTokenBuffer[Args->Offset[i]], strlen (Args->Name), - Token, strlen (Token)); + AslGbl_MacroTokenReplaceBuffer = (char *) calloc ((strlen (AslGbl_MacroTokenBuffer)), sizeof (char)); + + PrReplaceResizeSubstring (Args, Diff1, Diff2, i, Token); DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID "ExpandArg: %s \n", @@ -658,8 +675,6 @@ PrDoMacroInvocation ( Args++; } - /* TBD: need to make sure macro was not invoked with too many arguments */ - if (!Token) { return; @@ -676,7 +691,6 @@ PrDoMacroInvocation ( return; - BadInvocation: PrError (ASL_ERROR, ASL_MSG_INVALID_INVOCATION, THIS_TOKEN_OFFSET (MacroStart)); diff --git a/source/compiler/prparser.l b/source/compiler/prparser.l index 828d81b263f2..c701da4a46fb 100644 --- a/source/compiler/prparser.l +++ b/source/compiler/prparser.l @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prparser.y b/source/compiler/prparser.y index 3854d989126f..2f4d03279bf5 100644 --- a/source/compiler/prparser.y +++ b/source/compiler/prparser.y @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/compiler/prscan.c b/source/compiler/prscan.c index 0d9af86ea475..d29f4e90da90 100644 --- a/source/compiler/prscan.c +++ b/source/compiler/prscan.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -780,8 +780,9 @@ PrDoDirective ( TokenOffset = Token - AslGbl_MainTokenBuffer + strlen (Token); if (*(&AslGbl_CurrentLineBuffer[TokenOffset]) == '(') { -#ifndef MACROS_SUPPORTED - AcpiOsPrintf ( + +#ifdef MACROS_SUPPORTED + AcpiOsPrintf( "%s ERROR - line %u: #define macros are not supported yet\n", AslGbl_CurrentLineBuffer, AslGbl_LogicalLineNumber); exit(1); @@ -789,6 +790,8 @@ PrDoDirective ( PrAddMacro (Token, Next); #endif } + + else { /* Use the remainder of the line for the #define */ diff --git a/source/compiler/prutils.c b/source/compiler/prutils.c index eea42f890b00..2eb91a6c0607 100644 --- a/source/compiler/prutils.c +++ b/source/compiler/prutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -282,6 +282,238 @@ PrError ( } +/******************************************************************************* + * + * FUNCTION: PrReplaceResizeSubstring + * + * PARAMETERS: Args - Struct containing name, offset & usecount + * Diff1 - Difference in lengths when new < old + * Diff2 - Difference in lengths when new > old +* i - The curr. no. of iteration of replacement + * Token - Substring that replaces Args->Name + * + * RETURN: None + * + * DESCRIPTION: Advanced substring replacement in a string using resized buffer. + * + ******************************************************************************/ + +void +PrReplaceResizeSubstring( + PR_MACRO_ARG *Args, + UINT32 Diff1, + UINT32 Diff2, + UINT32 i, + char *Token) +{ + UINT32 b, PrevOffset; + char *temp; + char macro_sep[64]; + + + AslGbl_MacroTokenReplaceBuffer = (char *) realloc (AslGbl_MacroTokenReplaceBuffer, + (2 * (strlen (AslGbl_MacroTokenBuffer)))); + + strcpy (macro_sep, "~,() {}!*/%+-<>=&^|\"\t\n"); + + /* + * When the replacement argument (during invocation) length + * < replaced parameter (in the macro function definition + * and its expansion) length + */ + if (Diff1 != 0) + { + /* + * We save the offset value to reset it after replacing each + * instance of each arg and setting the offset value to + * the start of the arg to be replaced since it changes + * with each iteration when arg length != token length + */ + PrevOffset = Args->Offset[i]; + temp = strstr (AslGbl_MacroTokenBuffer, Args->Name); + +ResetHere1: + temp = strstr (temp, Args->Name); + Args->Offset[i] = strlen (AslGbl_MacroTokenBuffer) - + strlen (temp); + if (Args->Offset[i] == 0) + { + goto JumpHere1; + } + if ((strchr (macro_sep, AslGbl_MacroTokenBuffer[(Args->Offset[i] - 1)])) && + (strchr (macro_sep, AslGbl_MacroTokenBuffer[(Args->Offset[i] + strlen (Args->Name))]))) + { + Args->Offset[i] += 0; + } + else + { + temp += strlen (Args->Name); + goto ResetHere1; + } + + /* + * For now, we simply set the extra char positions (generated + * due to longer name replaced by shorter name) to whitespace + * chars so it will be ignored during compilation + */ +JumpHere1: + b = strlen (Token) + Args->Offset[i]; + memset (&AslGbl_MacroTokenBuffer[b], ' ', Diff1); + +# if 0 + + /* Work in progress as of 03/08/2023 - experimental 'if' block + * to test code for removing extra whitespaces from the macro + * replacement when replacement arg < replaced param + */ + char Buff[8192]; + /* char* Replace; */ + /* Replace = Buff; */ + + for (j = 0; j < strlen (AslGbl_MacroTokenBuffer); j++) + { + Buff[j] = AslGbl_MacroTokenBuffer[j]; + } + Buff[strlen (AslGbl_MacroTokenBuffer)] = '\0'; + //fprintf (stderr, "Buff: %s\n", Buff); + + UINT32 len = strlen (Buff); + + for (j = 0; j < len; j++) + { + if (Buff[0] == ' ') + { + for (j = 0; j < (len - 1); j++) + { + Buff[j] = Buff[j + 1]; + } + Buff[j] = '\0'; + len--; + j = -1; + continue; + } + + if (Buff[j] == ' ' && Buff[j + 1] == ' ') + { + for (k = 0; k < (len - 1); k++) + { + Buff[j] = Buff[j + 1]; + } + Buff[j] = '\0'; + len--; + j--; + } + } + //fprintf(stderr, "Buff: %s\n", Buff); + + for (k = 0; k < strlen (Buff); k++) + { + AslGbl_MacroTokenBuffer[k] = Buff[k]; + } +#endif + + PrReplaceData ( + &AslGbl_MacroTokenBuffer[Args->Offset[i]], + strlen (Token), Token, strlen (Token)); + + temp = NULL; + Args->Offset[i] = PrevOffset; + } + + /* + * When the replacement argument (during invocation) length + * > replaced parameter (in the macro function definition + * and its expansion) length + */ + else if (Diff2 != 0) + { + /* Doing the same thing with offset value as for prev case */ + + PrevOffset = Args->Offset[i]; + temp = strstr (AslGbl_MacroTokenBuffer, Args->Name); + +ResetHere2: + temp = strstr (temp, Args->Name); + Args->Offset[i] = strlen (AslGbl_MacroTokenBuffer) - + strlen (temp); + if (Args->Offset[i] == 0) + { + goto JumpHere2; + } + if ((strchr (macro_sep, AslGbl_MacroTokenBuffer[(Args->Offset[i] - 1)])) && + (strchr (macro_sep, AslGbl_MacroTokenBuffer[(Args->Offset[i] + strlen (Args->Name))]))) + { + Args->Offset[i] += 0; + } + else + { + temp+= strlen (Args->Name); + goto ResetHere2; + } + + /* + * We will need to allocate some extra space in our buffer to + * accommodate the increase in the replacement string length + * over the shorter outgoing arg string and do the replacement + * at the correct offset value which is resetted every iteration + */ +JumpHere2: + strncpy (AslGbl_MacroTokenReplaceBuffer, AslGbl_MacroTokenBuffer, Args->Offset[i]); + strcat (AslGbl_MacroTokenReplaceBuffer, Token); + strcat (AslGbl_MacroTokenReplaceBuffer, (AslGbl_MacroTokenBuffer + + (Args->Offset[i] + strlen (Args->Name)))); + + strcpy (AslGbl_MacroTokenBuffer, AslGbl_MacroTokenReplaceBuffer); + + temp = NULL; + Args->Offset[i] = PrevOffset; + } + + /* + * When the replacement argument (during invocation) length = + * replaced parameter (in the macro function definition and + * its expansion) length + */ + else + { + + /* + * We still need to reset the offset for each iteration even when + * arg and param lengths are same since any macro func invocation + * could use various cases for each separate arg-param pair + */ + PrevOffset = Args->Offset[i]; + temp = strstr (AslGbl_MacroTokenBuffer, Args->Name); + +ResetHere3: + temp = strstr (temp, Args->Name); + Args->Offset[i] = strlen (AslGbl_MacroTokenBuffer) - + strlen (temp); + if (Args->Offset[i] == 0) + { + goto JumpHere3; + } + if ((strchr (macro_sep, AslGbl_MacroTokenBuffer[(Args->Offset[i] - 1)])) && + (strchr (macro_sep, AslGbl_MacroTokenBuffer[(Args->Offset[i] + strlen (Args->Name))]))) + { + Args->Offset[i] += 0; + } + else + { + temp += strlen (Args->Name); + goto ResetHere3; + } + +JumpHere3: + PrReplaceData ( + &AslGbl_MacroTokenBuffer[Args->Offset[i]], + strlen (Args->Name), Token, strlen (Token)); + temp = NULL; + Args->Offset[i] = PrevOffset; + } +} + + /******************************************************************************* * * FUNCTION: PrReplaceData @@ -291,13 +523,13 @@ PrError ( * BufferToAdd - Data to be inserted into target buffer * LengthToAdd - Length of BufferToAdd * - * RETURN: None + * RETURN: Pointer to where the buffer is replaced with data * * DESCRIPTION: Generic buffer data replacement. * ******************************************************************************/ -void +char * PrReplaceData ( char *Buffer, UINT32 LengthToRemove, @@ -325,12 +557,14 @@ PrReplaceData ( } } + /* Now we can move in the new data */ if (LengthToAdd > 0) { memmove (Buffer, BufferToAdd, LengthToAdd); } + return (Buffer + LengthToAdd); } diff --git a/source/components/debugger/dbcmds.c b/source/components/debugger/dbcmds.c index 6f55147633b5..b8c2b4228013 100644 --- a/source/components/debugger/dbcmds.c +++ b/source/components/debugger/dbcmds.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbconvert.c b/source/components/debugger/dbconvert.c index 9d1e1dddc9c6..0b852261d274 100644 --- a/source/components/debugger/dbconvert.c +++ b/source/components/debugger/dbconvert.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbdisply.c b/source/components/debugger/dbdisply.c index 276217f58ef3..ad69737f544b 100644 --- a/source/components/debugger/dbdisply.c +++ b/source/components/debugger/dbdisply.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbexec.c b/source/components/debugger/dbexec.c index eed0aa35cd4c..73759c882991 100644 --- a/source/components/debugger/dbexec.c +++ b/source/components/debugger/dbexec.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbfileio.c b/source/components/debugger/dbfileio.c index 09f8f2271d39..8fc11da8f211 100644 --- a/source/components/debugger/dbfileio.c +++ b/source/components/debugger/dbfileio.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbhistry.c b/source/components/debugger/dbhistry.c index 31bfc3c56a37..ecdfaeba993f 100644 --- a/source/components/debugger/dbhistry.c +++ b/source/components/debugger/dbhistry.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbinput.c b/source/components/debugger/dbinput.c index 0f21b731c67b..5e5c62893bf6 100644 --- a/source/components/debugger/dbinput.c +++ b/source/components/debugger/dbinput.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbmethod.c b/source/components/debugger/dbmethod.c index 82202e8e2cbe..5060bf6ddbcc 100644 --- a/source/components/debugger/dbmethod.c +++ b/source/components/debugger/dbmethod.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbnames.c b/source/components/debugger/dbnames.c index 963f81251e8d..040fed248821 100644 --- a/source/components/debugger/dbnames.c +++ b/source/components/debugger/dbnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -884,6 +884,9 @@ AcpiDbDisplayObjects ( { ObjectInfo = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_OBJECT_INFO)); + if (!ObjectInfo) + return (AE_NO_MEMORY); + /* Walk the namespace from the root */ (void) AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, diff --git a/source/components/debugger/dbobject.c b/source/components/debugger/dbobject.c index b8bade432f62..fe38be909837 100644 --- a/source/components/debugger/dbobject.c +++ b/source/components/debugger/dbobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbstats.c b/source/components/debugger/dbstats.c index 30a686dc6d42..a30d9948df46 100644 --- a/source/components/debugger/dbstats.c +++ b/source/components/debugger/dbstats.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbtest.c b/source/components/debugger/dbtest.c index 23690ed67bc7..a4d48c7a4a1e 100644 --- a/source/components/debugger/dbtest.c +++ b/source/components/debugger/dbtest.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbutils.c b/source/components/debugger/dbutils.c index ef649b2c12d1..70664ee2dc64 100644 --- a/source/components/debugger/dbutils.c +++ b/source/components/debugger/dbutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/debugger/dbxface.c b/source/components/debugger/dbxface.c index c44e1d0d5e49..667e90e5f3d9 100644 --- a/source/components/debugger/dbxface.c +++ b/source/components/debugger/dbxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmbuffer.c b/source/components/disassembler/dmbuffer.c index d5d813c83bc8..79f5a3ccf88c 100644 --- a/source/components/disassembler/dmbuffer.c +++ b/source/components/disassembler/dmbuffer.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmcstyle.c b/source/components/disassembler/dmcstyle.c index f0bef68ef982..0af72d1e1efc 100644 --- a/source/components/disassembler/dmcstyle.c +++ b/source/components/disassembler/dmcstyle.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmdeferred.c b/source/components/disassembler/dmdeferred.c index 82ce2bec3bf8..3a1ca550d4e6 100644 --- a/source/components/disassembler/dmdeferred.c +++ b/source/components/disassembler/dmdeferred.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmnames.c b/source/components/disassembler/dmnames.c index 8852921f9478..356af85f7f26 100644 --- a/source/components/disassembler/dmnames.c +++ b/source/components/disassembler/dmnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmopcode.c b/source/components/disassembler/dmopcode.c index 1cfe710d7c05..8f201d218785 100644 --- a/source/components/disassembler/dmopcode.c +++ b/source/components/disassembler/dmopcode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmresrc.c b/source/components/disassembler/dmresrc.c index 0a183e9c5b87..644c8a99d07c 100644 --- a/source/components/disassembler/dmresrc.c +++ b/source/components/disassembler/dmresrc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -203,6 +203,7 @@ static ACPI_RESOURCE_HANDLER AcpiGbl_DmResourceDispatch [] = AcpiDmPinGroupDescriptor, /* 0x10, ACPI_RESOURCE_NAME_PIN_GROUP */ AcpiDmPinGroupFunctionDescriptor, /* 0x11, ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION */ AcpiDmPinGroupConfigDescriptor, /* 0x12, ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG */ + AcpiDmClockInputDescriptor, /* 0x13, ACPI_RESOURCE_NAME_CLOCK_INPUT */ }; diff --git a/source/components/disassembler/dmresrcl.c b/source/components/disassembler/dmresrcl.c index 9aa6ac1fbe5f..88d19036ad73 100644 --- a/source/components/disassembler/dmresrcl.c +++ b/source/components/disassembler/dmresrcl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -1112,7 +1112,7 @@ AcpiDmInterruptDescriptor ( { AcpiDmIndent (Level + 1); AcpiOsPrintf ("0x%8.8X,\n", - (UINT32) Resource->ExtendedIrq.Interrupts[i]); + (UINT32) Resource->ExtendedIrq.u.Interrupts[i]); } AcpiDmIndent (Level); diff --git a/source/components/disassembler/dmresrcl2.c b/source/components/disassembler/dmresrcl2.c index 59d00f6c3967..1d732e21f98c 100644 --- a/source/components/disassembler/dmresrcl2.c +++ b/source/components/disassembler/dmresrcl2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -523,6 +523,46 @@ AcpiDmGpioDescriptor ( } } +void +AcpiDmClockInputDescriptor ( + ACPI_OP_WALK_INFO *Info, + AML_RESOURCE *Resource, + UINT32 Length, + UINT32 Level) +{ + char *DeviceName = NULL; + UINT8 *ResourceIndex = NULL; + AcpiDmIndent (Level); + + AcpiOsPrintf ("ClockInput ("); + + AcpiOsPrintf ("0x%8.8X, ", Resource->ClockInput.FrequencyNumerator); + + AcpiOsPrintf ("0x%4.4X, ", Resource->ClockInput.FrequencyDivisor); + + AcpiOsPrintf ("%s, ", + AcpiGbl_ClockInputScale [ACPI_EXTRACT_2BIT_FLAG (Resource->ClockInput.Flags, 1)]); + + AcpiOsPrintf ("%s, ", + AcpiGbl_ClockInputMode [ACPI_GET_1BIT_FLAG (Resource->ClockInput.Flags)]); + + if (Length > sizeof(Resource->ClockInput)) + { + DeviceName = ACPI_ADD_PTR (char, + Resource, sizeof(Resource->ClockInput)+1), + AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX); + + AcpiOsPrintf (", "); + ResourceIndex = ACPI_ADD_PTR (UINT8, + Resource, sizeof(Resource->ClockInput)), + + AcpiOsPrintf ("0x%2.2X", *ResourceIndex); + } + + AcpiOsPrintf (")\n"); + +} + /******************************************************************************* * * FUNCTION: AcpiDmPinFunctionDescriptor diff --git a/source/components/disassembler/dmresrcs.c b/source/components/disassembler/dmresrcs.c index db5ce5db984f..3588362567d6 100644 --- a/source/components/disassembler/dmresrcs.c +++ b/source/components/disassembler/dmresrcs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmutils.c b/source/components/disassembler/dmutils.c index 2a7b7b330e55..b6c133f51ae2 100644 --- a/source/components/disassembler/dmutils.c +++ b/source/components/disassembler/dmutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/disassembler/dmwalk.c b/source/components/disassembler/dmwalk.c index 7d2429b721e6..beaa5f0a7ebe 100644 --- a/source/components/disassembler/dmwalk.c +++ b/source/components/disassembler/dmwalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsargs.c b/source/components/dispatcher/dsargs.c index 52246693997d..6b9e4a35da59 100644 --- a/source/components/dispatcher/dsargs.c +++ b/source/components/dispatcher/dsargs.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dscontrol.c b/source/components/dispatcher/dscontrol.c index 1d7d676c2c30..205b9b55be59 100644 --- a/source/components/dispatcher/dscontrol.c +++ b/source/components/dispatcher/dscontrol.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsdebug.c b/source/components/dispatcher/dsdebug.c index 9111a215696e..06f7ec8165e6 100644 --- a/source/components/dispatcher/dsdebug.c +++ b/source/components/dispatcher/dsdebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsfield.c b/source/components/dispatcher/dsfield.c index 2d3851ff9d7d..37cc25a945a3 100644 --- a/source/components/dispatcher/dsfield.c +++ b/source/components/dispatcher/dsfield.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsinit.c b/source/components/dispatcher/dsinit.c index 5f941f0c94cc..79e55719083a 100644 --- a/source/components/dispatcher/dsinit.c +++ b/source/components/dispatcher/dsinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsmethod.c b/source/components/dispatcher/dsmethod.c index d5fc3038f643..02d9c6beaac0 100644 --- a/source/components/dispatcher/dsmethod.c +++ b/source/components/dispatcher/dsmethod.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -705,7 +705,7 @@ AcpiDsCallControlMethod ( if (!Info) { Status = AE_NO_MEMORY; - goto Cleanup; + goto PopWalkState; } Info->Parameters = &ThisWalkState->Operands[0]; @@ -717,7 +717,7 @@ AcpiDsCallControlMethod ( ACPI_FREE (Info); if (ACPI_FAILURE (Status)) { - goto Cleanup; + goto PopWalkState; } NextWalkState->MethodNestingDepth = ThisWalkState->MethodNestingDepth + 1; @@ -764,6 +764,12 @@ AcpiDsCallControlMethod ( return_ACPI_STATUS (Status); +PopWalkState: + + /* On error, pop the walk state to be deleted from thread */ + + AcpiDsPopWalkState(Thread); + Cleanup: /* On error, we must terminate the method properly */ diff --git a/source/components/dispatcher/dsmthdat.c b/source/components/dispatcher/dsmthdat.c index af156790166d..1461af5d9dc9 100644 --- a/source/components/dispatcher/dsmthdat.c +++ b/source/components/dispatcher/dsmthdat.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsobject.c b/source/components/dispatcher/dsobject.c index 5ffd198ba0bd..147edc29c1ca 100644 --- a/source/components/dispatcher/dsobject.c +++ b/source/components/dispatcher/dsobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsopcode.c b/source/components/dispatcher/dsopcode.c index 190be1b3f7d1..7689df633aa0 100644 --- a/source/components/dispatcher/dsopcode.c +++ b/source/components/dispatcher/dsopcode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dspkginit.c b/source/components/dispatcher/dspkginit.c index bd2bf2e32a63..a159d769c0cc 100644 --- a/source/components/dispatcher/dspkginit.c +++ b/source/components/dispatcher/dspkginit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dsutils.c b/source/components/dispatcher/dsutils.c index b159b34c3fa4..059e05596f8e 100644 --- a/source/components/dispatcher/dsutils.c +++ b/source/components/dispatcher/dsutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswexec.c b/source/components/dispatcher/dswexec.c index 686f03c8cc59..5ae0ad716608 100644 --- a/source/components/dispatcher/dswexec.c +++ b/source/components/dispatcher/dswexec.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -569,9 +569,11 @@ AcpiDsExecEndOp ( /* * All opcodes require operand resolution, with the only exceptions - * being the ObjectType and SizeOf operators. + * being the ObjectType and SizeOf operators as well as opcodes that + * take no arguments. */ - if (!(WalkState->OpInfo->Flags & AML_NO_OPERAND_RESOLVE)) + if (!(WalkState->OpInfo->Flags & AML_NO_OPERAND_RESOLVE) && + (WalkState->OpInfo->Flags & AML_HAS_ARGS)) { /* Resolve all operands */ diff --git a/source/components/dispatcher/dswload.c b/source/components/dispatcher/dswload.c index 4fdf955a5a61..74071c2e647f 100644 --- a/source/components/dispatcher/dswload.c +++ b/source/components/dispatcher/dswload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswload2.c b/source/components/dispatcher/dswload2.c index 496ee91fbc06..c48b555ac8e2 100644 --- a/source/components/dispatcher/dswload2.c +++ b/source/components/dispatcher/dswload2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswscope.c b/source/components/dispatcher/dswscope.c index dad0c4974a48..bce120c1792a 100644 --- a/source/components/dispatcher/dswscope.c +++ b/source/components/dispatcher/dswscope.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/dispatcher/dswstate.c b/source/components/dispatcher/dswstate.c index 68b7f3d10378..cc648e3aeb75 100644 --- a/source/components/dispatcher/dswstate.c +++ b/source/components/dispatcher/dswstate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -785,9 +785,14 @@ AcpiDsInitAmlWalk ( WalkState->ParserState.Aml = - WalkState->ParserState.AmlStart = AmlStart; + WalkState->ParserState.AmlStart = WalkState->ParserState.AmlEnd = - WalkState->ParserState.PkgEnd = AmlStart + AmlLength; + WalkState->ParserState.PkgEnd = AmlStart; + /* Avoid undefined behavior: applying zero offset to null pointer */ + if (AmlLength != 0) { + WalkState->ParserState.AmlEnd += AmlLength; + WalkState->ParserState.PkgEnd += AmlLength; + } /* The NextOp of the NextWalk will be the beginning of the method */ diff --git a/source/components/events/evevent.c b/source/components/events/evevent.c index b92646a4e5d7..913cbd143a1a 100644 --- a/source/components/events/evevent.c +++ b/source/components/events/evevent.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -438,7 +438,7 @@ AcpiEvFixedEventDispatch ( (void) AcpiWriteBitRegister ( AcpiGbl_FixedEventInfo[Event].EnableRegisterId, (Event == ACPI_EVENT_PCIE_WAKE) ? - ACPI_ENABLE_EVENT : ACPI_DISABLE_EVENT); + ACPI_ENABLE_EVENT : ACPI_DISABLE_EVENT); ACPI_ERROR ((AE_INFO, "No installed handler for fixed event - %s (%u), disabling", diff --git a/source/components/events/evglock.c b/source/components/events/evglock.c index 79b519a0f75d..5992671bd795 100644 --- a/source/components/events/evglock.c +++ b/source/components/events/evglock.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpe.c b/source/components/events/evgpe.c index b246567d34c5..d7dcc3ea8acc 100644 --- a/source/components/events/evgpe.c +++ b/source/components/events/evgpe.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpeblk.c b/source/components/events/evgpeblk.c index 4dac205ee1c4..7317f6e0f4c1 100644 --- a/source/components/events/evgpeblk.c +++ b/source/components/events/evgpeblk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpeinit.c b/source/components/events/evgpeinit.c index 6f0472cf1963..adbe86eb4ebf 100644 --- a/source/components/events/evgpeinit.c +++ b/source/components/events/evgpeinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evgpeutil.c b/source/components/events/evgpeutil.c index 1f66717df278..23f6369f3406 100644 --- a/source/components/events/evgpeutil.c +++ b/source/components/events/evgpeutil.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evhandler.c b/source/components/events/evhandler.c index e0859c30a599..47393a7d0966 100644 --- a/source/components/events/evhandler.c +++ b/source/components/events/evhandler.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evmisc.c b/source/components/events/evmisc.c index b6c6eb6ad33e..40548b50316b 100644 --- a/source/components/events/evmisc.c +++ b/source/components/events/evmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evregion.c b/source/components/events/evregion.c index fb0cc4361ef6..73db629f6f39 100644 --- a/source/components/events/evregion.c +++ b/source/components/events/evregion.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evrgnini.c b/source/components/events/evrgnini.c index 7cbbe30c069b..6d329cb20ceb 100644 --- a/source/components/events/evrgnini.c +++ b/source/components/events/evrgnini.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evsci.c b/source/components/events/evsci.c index 26891925293c..bb850e4d1e75 100644 --- a/source/components/events/evsci.c +++ b/source/components/events/evsci.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxface.c b/source/components/events/evxface.c index 245ca8a41fb5..ef2fbcc49208 100644 --- a/source/components/events/evxface.c +++ b/source/components/events/evxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxfevnt.c b/source/components/events/evxfevnt.c index 3384e0982e82..2b95395d9f3f 100644 --- a/source/components/events/evxfevnt.c +++ b/source/components/events/evxfevnt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxfgpe.c b/source/components/events/evxfgpe.c index 87dab0f8119f..fe354d219e25 100644 --- a/source/components/events/evxfgpe.c +++ b/source/components/events/evxfgpe.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/events/evxfregn.c b/source/components/events/evxfregn.c index ee44e10d5784..00fe86209f27 100644 --- a/source/components/events/evxfregn.c +++ b/source/components/events/evxfregn.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -163,13 +163,14 @@ /******************************************************************************* * - * FUNCTION: AcpiInstallAddressSpaceHandler + * FUNCTION: AcpiInstallAddressSpaceHandlerInternal * * PARAMETERS: Device - Handle for the device * SpaceId - The address space ID * Handler - Address of the handler * Setup - Address of the setup function * Context - Value passed to the handler on each access + * Run_Reg - Run _REG methods for this address space? * * RETURN: Status * @@ -180,16 +181,19 @@ * are executed here, and these methods can only be safely executed after * the default handlers have been installed and the hardware has been * initialized (via AcpiEnableSubsystem.) + * To avoid this problem pass FALSE for Run_Reg and later on call + * AcpiExecuteRegMethods() to execute _REG. * ******************************************************************************/ -ACPI_STATUS -AcpiInstallAddressSpaceHandler ( +static ACPI_STATUS +AcpiInstallAddressSpaceHandlerInternal ( ACPI_HANDLE Device, ACPI_ADR_SPACE_TYPE SpaceId, ACPI_ADR_SPACE_HANDLER Handler, ACPI_ADR_SPACE_SETUP Setup, - void *Context) + void *Context, + BOOLEAN Run_Reg) { ACPI_NAMESPACE_NODE *Node; ACPI_STATUS Status; @@ -231,16 +235,42 @@ AcpiInstallAddressSpaceHandler ( /* Run all _REG methods for this address space */ - AcpiEvExecuteRegMethods (Node, SpaceId, ACPI_REG_CONNECT); - + if (Run_Reg) + { + AcpiEvExecuteRegMethods (Node, SpaceId, ACPI_REG_CONNECT); + } UnlockAndExit: (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); return_ACPI_STATUS (Status); } +ACPI_STATUS +AcpiInstallAddressSpaceHandler ( + ACPI_HANDLE Device, + ACPI_ADR_SPACE_TYPE SpaceId, + ACPI_ADR_SPACE_HANDLER Handler, + ACPI_ADR_SPACE_SETUP Setup, + void *Context) +{ + return AcpiInstallAddressSpaceHandlerInternal (Device, SpaceId, Handler, Setup, Context, TRUE); +} + ACPI_EXPORT_SYMBOL (AcpiInstallAddressSpaceHandler) +ACPI_STATUS +AcpiInstallAddressSpaceHandlerNo_Reg ( + ACPI_HANDLE Device, + ACPI_ADR_SPACE_TYPE SpaceId, + ACPI_ADR_SPACE_HANDLER Handler, + ACPI_ADR_SPACE_SETUP Setup, + void *Context) +{ + return AcpiInstallAddressSpaceHandlerInternal (Device, SpaceId, Handler, Setup, Context, FALSE); +} + +ACPI_EXPORT_SYMBOL (AcpiInstallAddressSpaceHandlerNo_Reg) + /******************************************************************************* * @@ -387,3 +417,62 @@ AcpiRemoveAddressSpaceHandler ( } ACPI_EXPORT_SYMBOL (AcpiRemoveAddressSpaceHandler) + + +/******************************************************************************* + * + * FUNCTION: AcpiExecuteRegMethods + * + * PARAMETERS: Device - Handle for the device + * SpaceId - The address space ID + * + * RETURN: Status + * + * DESCRIPTION: Execute _REG for all OpRegions of a given SpaceId. + * + ******************************************************************************/ + +ACPI_STATUS +AcpiExecuteRegMethods ( + ACPI_HANDLE Device, + ACPI_ADR_SPACE_TYPE SpaceId) +{ + ACPI_NAMESPACE_NODE *Node; + ACPI_STATUS Status; + + + ACPI_FUNCTION_TRACE (AcpiExecuteRegMethods); + + + /* Parameter validation */ + + if (!Device) + { + return_ACPI_STATUS (AE_BAD_PARAMETER); + } + + Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); + if (ACPI_FAILURE (Status)) + { + return_ACPI_STATUS (Status); + } + + /* Convert and validate the device handle */ + + Node = AcpiNsValidateHandle (Device); + if (Node) + { + /* Run all _REG methods for this address space */ + + AcpiEvExecuteRegMethods (Node, SpaceId, ACPI_REG_CONNECT); + } + else + { + Status = AE_BAD_PARAMETER; + } + + (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); + return_ACPI_STATUS (Status); +} + +ACPI_EXPORT_SYMBOL (AcpiExecuteRegMethods) diff --git a/source/components/executer/exconcat.c b/source/components/executer/exconcat.c index 335d78f19671..f504bc0c7c36 100644 --- a/source/components/executer/exconcat.c +++ b/source/components/executer/exconcat.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exconfig.c b/source/components/executer/exconfig.c index 11c8ba64b509..ae95a9200c76 100644 --- a/source/components/executer/exconfig.c +++ b/source/components/executer/exconfig.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exconvrt.c b/source/components/executer/exconvrt.c index c9572e90bbb7..3382b520fdca 100644 --- a/source/components/executer/exconvrt.c +++ b/source/components/executer/exconvrt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/excreate.c b/source/components/executer/excreate.c index e83810810e36..563557263375 100644 --- a/source/components/executer/excreate.c +++ b/source/components/executer/excreate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exdebug.c b/source/components/executer/exdebug.c index 88f75966d848..5ccfccdb29c6 100644 --- a/source/components/executer/exdebug.c +++ b/source/components/executer/exdebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exdump.c b/source/components/executer/exdump.c index e72ac01fc0a5..7a2c4a81bf9f 100644 --- a/source/components/executer/exdump.c +++ b/source/components/executer/exdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exfield.c b/source/components/executer/exfield.c index 4175b8eedcea..f7d092064c74 100644 --- a/source/components/executer/exfield.c +++ b/source/components/executer/exfield.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exfldio.c b/source/components/executer/exfldio.c index 30d17c196be4..c29cd0e89b38 100644 --- a/source/components/executer/exfldio.c +++ b/source/components/executer/exfldio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exmisc.c b/source/components/executer/exmisc.c index 4a1e2ff25239..9b6608ba8944 100644 --- a/source/components/executer/exmisc.c +++ b/source/components/executer/exmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exmutex.c b/source/components/executer/exmutex.c index 8b335680dc30..3abac6a8ec5f 100644 --- a/source/components/executer/exmutex.c +++ b/source/components/executer/exmutex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exnames.c b/source/components/executer/exnames.c index 6045bc6b3176..af68c82fadc8 100644 --- a/source/components/executer/exnames.c +++ b/source/components/executer/exnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exoparg1.c b/source/components/executer/exoparg1.c index 2d9bbddf271f..82250ff65c2b 100644 --- a/source/components/executer/exoparg1.c +++ b/source/components/executer/exoparg1.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exoparg2.c b/source/components/executer/exoparg2.c index 8b63d615fa51..29d9dc7e205b 100644 --- a/source/components/executer/exoparg2.c +++ b/source/components/executer/exoparg2.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exoparg3.c b/source/components/executer/exoparg3.c index 7b74d32ef374..a22b72579b34 100644 --- a/source/components/executer/exoparg3.c +++ b/source/components/executer/exoparg3.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exoparg6.c b/source/components/executer/exoparg6.c index 5506b2c1a75b..ad69405eecc8 100644 --- a/source/components/executer/exoparg6.c +++ b/source/components/executer/exoparg6.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exprep.c b/source/components/executer/exprep.c index 6d239d7a78f6..678ee8a1d44e 100644 --- a/source/components/executer/exprep.c +++ b/source/components/executer/exprep.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exregion.c b/source/components/executer/exregion.c index 01d49065ddd4..858d31feb19a 100644 --- a/source/components/executer/exregion.c +++ b/source/components/executer/exregion.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exresnte.c b/source/components/executer/exresnte.c index 6801b25beef9..b5dc24c60278 100644 --- a/source/components/executer/exresnte.c +++ b/source/components/executer/exresnte.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exresolv.c b/source/components/executer/exresolv.c index af5202ab8e05..460c6d77306e 100644 --- a/source/components/executer/exresolv.c +++ b/source/components/executer/exresolv.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exresop.c b/source/components/executer/exresop.c index 4abe93766ae7..f4734d892227 100644 --- a/source/components/executer/exresop.c +++ b/source/components/executer/exresop.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exserial.c b/source/components/executer/exserial.c index c92a895ad7f7..6d57e3761ef4 100644 --- a/source/components/executer/exserial.c +++ b/source/components/executer/exserial.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exstore.c b/source/components/executer/exstore.c index ba1a05d94561..95bb19afa9f0 100644 --- a/source/components/executer/exstore.c +++ b/source/components/executer/exstore.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exstoren.c b/source/components/executer/exstoren.c index df4a6f405cea..628592f26ef1 100644 --- a/source/components/executer/exstoren.c +++ b/source/components/executer/exstoren.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exstorob.c b/source/components/executer/exstorob.c index 56d048a7e5c6..f318f0274d60 100644 --- a/source/components/executer/exstorob.c +++ b/source/components/executer/exstorob.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exsystem.c b/source/components/executer/exsystem.c index 44d3a00ba9f0..68a074be3bca 100644 --- a/source/components/executer/exsystem.c +++ b/source/components/executer/exsystem.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -303,10 +303,10 @@ AcpiExSystemDoStall ( else { if (HowLongUs > 100) - { + { ACPI_WARNING ((AE_INFO, "Time parameter %u us > 100 us violating ACPI spec, please fix the firmware.", HowLongUs)); - } + } AcpiOsStall (HowLongUs); } diff --git a/source/components/executer/extrace.c b/source/components/executer/extrace.c index a677393f18a7..e574e489096e 100644 --- a/source/components/executer/extrace.c +++ b/source/components/executer/extrace.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/executer/exutils.c b/source/components/executer/exutils.c index e27f567b6e39..3d9dd4fa7612 100644 --- a/source/components/executer/exutils.c +++ b/source/components/executer/exutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwacpi.c b/source/components/hardware/hwacpi.c index 8b3222099db4..1772e79545b3 100644 --- a/source/components/hardware/hwacpi.c +++ b/source/components/hardware/hwacpi.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwesleep.c b/source/components/hardware/hwesleep.c index 85e4cb950192..ec03e5ed1ee6 100644 --- a/source/components/hardware/hwesleep.c +++ b/source/components/hardware/hwesleep.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwgpe.c b/source/components/hardware/hwgpe.c index 7f9a5f052fa3..994fc47569a1 100644 --- a/source/components/hardware/hwgpe.c +++ b/source/components/hardware/hwgpe.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwpci.c b/source/components/hardware/hwpci.c index b8e8aa9f3b2b..745f9c81e7e8 100644 --- a/source/components/hardware/hwpci.c +++ b/source/components/hardware/hwpci.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwregs.c b/source/components/hardware/hwregs.c index 7b4ae88af8dd..c499c111d0ef 100644 --- a/source/components/hardware/hwregs.c +++ b/source/components/hardware/hwregs.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwsleep.c b/source/components/hardware/hwsleep.c index 6667c27eca0e..d9bb8ae03aa4 100644 --- a/source/components/hardware/hwsleep.c +++ b/source/components/hardware/hwsleep.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -476,13 +476,14 @@ AcpiHwLegacyWake ( ACPI_CLEAR_STATUS); /* Enable pcie wake event if support */ - if ((AcpiGbl_FADT.Flags & ACPI_FADT_PCI_EXPRESS_WAKE)) { + if ((AcpiGbl_FADT.Flags & ACPI_FADT_PCI_EXPRESS_WAKE)) + { (void) AcpiWriteBitRegister ( - AcpiGbl_FixedEventInfo[ACPI_EVENT_PCIE_WAKE].EnableRegisterId, - ACPI_DISABLE_EVENT); + AcpiGbl_FixedEventInfo[ACPI_EVENT_PCIE_WAKE].EnableRegisterId, + ACPI_DISABLE_EVENT); (void) AcpiWriteBitRegister ( - AcpiGbl_FixedEventInfo[ACPI_EVENT_PCIE_WAKE].StatusRegisterId, - ACPI_CLEAR_STATUS); + AcpiGbl_FixedEventInfo[ACPI_EVENT_PCIE_WAKE].StatusRegisterId, + ACPI_CLEAR_STATUS); } AcpiHwExecuteSleepMethod (METHOD_PATHNAME__SST, ACPI_SST_WORKING); diff --git a/source/components/hardware/hwtimer.c b/source/components/hardware/hwtimer.c index 829e2a35340e..504f84d0339e 100644 --- a/source/components/hardware/hwtimer.c +++ b/source/components/hardware/hwtimer.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwvalid.c b/source/components/hardware/hwvalid.c index d297905b79a0..80f0f5709f97 100644 --- a/source/components/hardware/hwvalid.c +++ b/source/components/hardware/hwvalid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -169,8 +169,8 @@ AcpiHwValidateIoRequest ( * * The table is used to implement the Microsoft port access rules that * first appeared in Windows XP. Some ports are always illegal, and some - * ports are only illegal if the BIOS calls _OSI with a WinXP string or - * later (meaning that the BIOS itelf is post-XP.) + * ports are only illegal if the BIOS calls _OSI with nothing newer than + * the specific _OSI strings. * * This provides ACPICA with the desired port protections and * Microsoft compatibility. @@ -301,8 +301,8 @@ AcpiHwValidateIoRequest ( if ((Address <= PortInfo->End) && (LastAddress >= PortInfo->Start)) { /* Port illegality may depend on the _OSI calls made by the BIOS */ - - if (AcpiGbl_OsiData >= PortInfo->OsiDependency) + if (PortInfo->OsiDependency == ACPI_ALWAYS_ILLEGAL || + AcpiGbl_OsiData == PortInfo->OsiDependency) { ACPI_DEBUG_PRINT ((ACPI_DB_VALUES, "Denied AML access to port 0x%8.8X%8.8X/%X (%s 0x%.4X-0x%.4X)\n", diff --git a/source/components/hardware/hwxface.c b/source/components/hardware/hwxface.c index 8fd3561a05ff..febe90de565e 100644 --- a/source/components/hardware/hwxface.c +++ b/source/components/hardware/hwxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/hardware/hwxfsleep.c b/source/components/hardware/hwxfsleep.c index 5f8b7db0a2fa..4cd7eba86a7f 100644 --- a/source/components/hardware/hwxfsleep.c +++ b/source/components/hardware/hwxfsleep.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsaccess.c b/source/components/namespace/nsaccess.c index 2b810facb035..b6d9d8490248 100644 --- a/source/components/namespace/nsaccess.c +++ b/source/components/namespace/nsaccess.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsalloc.c b/source/components/namespace/nsalloc.c index 560f6f3635d9..706270771e66 100644 --- a/source/components/namespace/nsalloc.c +++ b/source/components/namespace/nsalloc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsarguments.c b/source/components/namespace/nsarguments.c index 2da06f2f6103..bb081b75427d 100644 --- a/source/components/namespace/nsarguments.c +++ b/source/components/namespace/nsarguments.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsconvert.c b/source/components/namespace/nsconvert.c index 2971f08ecd6b..ed2fa03e72dd 100644 --- a/source/components/namespace/nsconvert.c +++ b/source/components/namespace/nsconvert.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsdump.c b/source/components/namespace/nsdump.c index 36cfbdf6b172..731c32d92560 100644 --- a/source/components/namespace/nsdump.c +++ b/source/components/namespace/nsdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsdumpdv.c b/source/components/namespace/nsdumpdv.c index 0cc9b5a5e09c..af0b29656e4c 100644 --- a/source/components/namespace/nsdumpdv.c +++ b/source/components/namespace/nsdumpdv.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nseval.c b/source/components/namespace/nseval.c index 1cb07615d52f..23ed486c8b23 100644 --- a/source/components/namespace/nseval.c +++ b/source/components/namespace/nseval.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsinit.c b/source/components/namespace/nsinit.c index c523035f1d0a..5ca332eb7717 100644 --- a/source/components/namespace/nsinit.c +++ b/source/components/namespace/nsinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsload.c b/source/components/namespace/nsload.c index c3423e55ba01..0e93791bf051 100644 --- a/source/components/namespace/nsload.c +++ b/source/components/namespace/nsload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsnames.c b/source/components/namespace/nsnames.c index c8412c2edf29..ea3d7d571a04 100644 --- a/source/components/namespace/nsnames.c +++ b/source/components/namespace/nsnames.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsobject.c b/source/components/namespace/nsobject.c index 82d735eb186e..842a36a5f2dc 100644 --- a/source/components/namespace/nsobject.c +++ b/source/components/namespace/nsobject.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsparse.c b/source/components/namespace/nsparse.c index 0ac5efb428b5..86afef097fee 100644 --- a/source/components/namespace/nsparse.c +++ b/source/components/namespace/nsparse.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nspredef.c b/source/components/namespace/nspredef.c index e28d689670b9..04c3012a483a 100644 --- a/source/components/namespace/nspredef.c +++ b/source/components/namespace/nspredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsprepkg.c b/source/components/namespace/nsprepkg.c index e6959dacaaf2..2bfc89a7d7b6 100644 --- a/source/components/namespace/nsprepkg.c +++ b/source/components/namespace/nsprepkg.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsrepair.c b/source/components/namespace/nsrepair.c index 59f7aa33f32a..7aa02a80fc10 100644 --- a/source/components/namespace/nsrepair.c +++ b/source/components/namespace/nsrepair.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -328,9 +328,10 @@ AcpiNsSimpleRepair ( */ if (!ReturnObject) { - if (ExpectedBtypes && (!(ExpectedBtypes & ACPI_RTYPE_NONE))) + if (ExpectedBtypes) { - if (PackageIndex != ACPI_NOT_PACKAGE_ELEMENT) + if (!(ExpectedBtypes & ACPI_RTYPE_NONE) && + PackageIndex != ACPI_NOT_PACKAGE_ELEMENT) { ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, ACPI_WARN_ALWAYS, "Found unexpected NULL package element")); @@ -342,13 +343,14 @@ AcpiNsSimpleRepair ( return (AE_OK); /* Repair was successful */ } } - else + + if (ExpectedBtypes != ACPI_RTYPE_NONE) { ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, - ACPI_WARN_ALWAYS, "Missing expected return value")); + ACPI_WARN_ALWAYS, + "Missing expected return value")); + return (AE_AML_NO_RETURN_VALUE); } - - return (AE_AML_NO_RETURN_VALUE); } } diff --git a/source/components/namespace/nsrepair2.c b/source/components/namespace/nsrepair2.c index bf76b7dd7ba3..7f50c05f49d8 100644 --- a/source/components/namespace/nsrepair2.c +++ b/source/components/namespace/nsrepair2.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -565,13 +565,6 @@ AcpiNsRepair_CID ( (*ElementPtr)->Common.ReferenceCount = OriginalRefCount; - - /* - * The OriginalElement holds a reference from the package object - * that represents _HID. Since a new element was created by _HID, - * remove the reference from the _CID package. - */ - AcpiUtRemoveReference (OriginalElement); } ElementPtr++; @@ -702,7 +695,7 @@ AcpiNsRepair_HID ( char *Dest; - ACPI_FUNCTION_NAME (NsRepair_HID); + ACPI_FUNCTION_TRACE (NsRepair_HID); /* We only care about string _HID objects (not integers) */ diff --git a/source/components/namespace/nssearch.c b/source/components/namespace/nssearch.c index 706963c49633..a992a7e4cf30 100644 --- a/source/components/namespace/nssearch.c +++ b/source/components/namespace/nssearch.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsutils.c b/source/components/namespace/nsutils.c index f4208179bc41..1162fca73568 100644 --- a/source/components/namespace/nsutils.c +++ b/source/components/namespace/nsutils.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -500,7 +500,7 @@ AcpiNsBuildInternalName ( * * PARAMETERS: *ExternalName - External representation of name * **Converted Name - Where to return the resulting - * internal represention of the name + * internal representation of the name * * RETURN: Status * diff --git a/source/components/namespace/nswalk.c b/source/components/namespace/nswalk.c index 3d0fc639f65b..7abc6b81e9c7 100644 --- a/source/components/namespace/nswalk.c +++ b/source/components/namespace/nswalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsxfeval.c b/source/components/namespace/nsxfeval.c index 9724d02427be..a4213f2809ee 100644 --- a/source/components/namespace/nsxfeval.c +++ b/source/components/namespace/nsxfeval.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/namespace/nsxfname.c b/source/components/namespace/nsxfname.c index 7d52330f6629..c19b02442c6d 100644 --- a/source/components/namespace/nsxfname.c +++ b/source/components/namespace/nsxfname.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -192,7 +192,7 @@ AcpiNsCopyDeviceId ( ACPI_STATUS AcpiGetHandle ( ACPI_HANDLE Parent, - ACPI_STRING Pathname, + const char *Pathname, ACPI_HANDLE *RetHandle) { ACPI_STATUS Status; diff --git a/source/components/namespace/nsxfobj.c b/source/components/namespace/nsxfobj.c index 2aa1fc17b9cc..50ca5b2e6b56 100644 --- a/source/components/namespace/nsxfobj.c +++ b/source/components/namespace/nsxfobj.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psargs.c b/source/components/parser/psargs.c index f510623ebbb7..ff0780c6507d 100644 --- a/source/components/parser/psargs.c +++ b/source/components/parser/psargs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psloop.c b/source/components/parser/psloop.c index 2b4c1f2a8d78..e759e081f3c3 100644 --- a/source/components/parser/psloop.c +++ b/source/components/parser/psloop.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psobject.c b/source/components/parser/psobject.c index 18a32ef36d3f..ff1069d0a59d 100644 --- a/source/components/parser/psobject.c +++ b/source/components/parser/psobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psopcode.c b/source/components/parser/psopcode.c index 540716af5b08..db0c2e4758cb 100644 --- a/source/components/parser/psopcode.c +++ b/source/components/parser/psopcode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psopinfo.c b/source/components/parser/psopinfo.c index fcb080cacab2..99fada1010fc 100644 --- a/source/components/parser/psopinfo.c +++ b/source/components/parser/psopinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psparse.c b/source/components/parser/psparse.c index e0cd5915b6ad..f7e584b91bc5 100644 --- a/source/components/parser/psparse.c +++ b/source/components/parser/psparse.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psscope.c b/source/components/parser/psscope.c index 269410a6acf7..9fe84e387062 100644 --- a/source/components/parser/psscope.c +++ b/source/components/parser/psscope.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/pstree.c b/source/components/parser/pstree.c index 92f623046cf0..cbcb35994906 100644 --- a/source/components/parser/pstree.c +++ b/source/components/parser/pstree.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psutils.c b/source/components/parser/psutils.c index a9ea353641d9..f10179369d15 100644 --- a/source/components/parser/psutils.c +++ b/source/components/parser/psutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/pswalk.c b/source/components/parser/pswalk.c index 31232fd46a7b..4a5fd986f2e7 100644 --- a/source/components/parser/pswalk.c +++ b/source/components/parser/pswalk.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/parser/psxface.c b/source/components/parser/psxface.c index 295da1af6988..d44cb9f64cb8 100644 --- a/source/components/parser/psxface.c +++ b/source/components/parser/psxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsaddr.c b/source/components/resources/rsaddr.c index 93d45ca35718..beee83803c57 100644 --- a/source/components/resources/rsaddr.c +++ b/source/components/resources/rsaddr.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -431,13 +431,17 @@ AcpiRsGetAddressCommon ( ACPI_RESOURCE *Resource, AML_RESOURCE *Aml) { - ACPI_FUNCTION_ENTRY (); + /* Avoid undefined behavior: member access within misaligned address */ + AML_RESOURCE_ADDRESS Address; + memcpy(&Address, Aml, sizeof(Address)); + + ACPI_FUNCTION_ENTRY(); /* Validate the Resource Type */ - if ((Aml->Address.ResourceType > 2) && - (Aml->Address.ResourceType < 0xC0)) + if ((Address.ResourceType > 2) && + (Address.ResourceType < 0xC0)) { return (FALSE); } @@ -464,7 +468,7 @@ AcpiRsGetAddressCommon ( /* Generic resource type, just grab the TypeSpecific byte */ Resource->Data.Address.Info.TypeSpecific = - Aml->Address.SpecificFlags; + Address.SpecificFlags; } return (TRUE); diff --git a/source/components/resources/rscalc.c b/source/components/resources/rscalc.c index c966636b6afe..55694f1ecddf 100644 --- a/source/components/resources/rscalc.c +++ b/source/components/resources/rscalc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -480,6 +480,13 @@ AcpiRsGetAmlLength ( break; + case ACPI_RESOURCE_TYPE_CLOCK_INPUT: + + TotalSize = (ACPI_RS_LENGTH) (TotalSize + + Resource->Data.ClockInput.ResourceSource.StringLength); + + break; + case ACPI_RESOURCE_TYPE_SERIAL_BUS: @@ -733,14 +740,19 @@ AcpiRsGetListLength ( } break; - case ACPI_RESOURCE_NAME_SERIAL_BUS: + case ACPI_RESOURCE_NAME_SERIAL_BUS: { + /* Avoid undefined behavior: member access within misaligned address */ + + AML_RESOURCE_COMMON_SERIALBUS CommonSerialBus; + memcpy(&CommonSerialBus, AmlResource, sizeof(CommonSerialBus)); MinimumAmlResourceLength = AcpiGbl_ResourceAmlSerialBusSizes[ - AmlResource->CommonSerialBus.Type]; + CommonSerialBus.Type]; ExtraStructBytes += - AmlResource->CommonSerialBus.ResourceLength - + CommonSerialBus.ResourceLength - MinimumAmlResourceLength; break; + } case ACPI_RESOURCE_NAME_PIN_CONFIG: @@ -789,6 +801,12 @@ AcpiRsGetListLength ( break; + case ACPI_RESOURCE_NAME_CLOCK_INPUT: + ExtraStructBytes = AcpiRsStreamOptionLength ( + ResourceLength, MinimumAmlResourceLength); + + break; + default: break; @@ -803,8 +821,13 @@ AcpiRsGetListLength ( if (AcpiUtGetResourceType (AmlBuffer) == ACPI_RESOURCE_NAME_SERIAL_BUS) { + /* Avoid undefined behavior: member access within misaligned address */ + + AML_RESOURCE_COMMON_SERIALBUS CommonSerialBus; + memcpy(&CommonSerialBus, AmlResource, sizeof(CommonSerialBus)); + BufferSize = AcpiGbl_ResourceStructSerialBusSizes[ - AmlResource->CommonSerialBus.Type] + ExtraStructBytes; + CommonSerialBus.Type] + ExtraStructBytes; } else { diff --git a/source/components/resources/rscreate.c b/source/components/resources/rscreate.c index 6c230bce0ee5..583abe1a75ca 100644 --- a/source/components/resources/rscreate.c +++ b/source/components/resources/rscreate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -475,9 +475,9 @@ AcpiRsCreatePciRoutingTable ( /* Use *remaining* length of the buffer as max for pathname */ PathBuffer.Length = OutputBuffer->Length - - (UINT32) ((UINT8 *) UserPrt->Source - + (UINT32) ((UINT8 *) UserPrt->u.Source - (UINT8 *) OutputBuffer->Pointer); - PathBuffer.Pointer = UserPrt->Source; + PathBuffer.Pointer = UserPrt->u.Source; Status = AcpiNsHandleToPathname ( (ACPI_HANDLE) Node, &PathBuffer, FALSE); @@ -488,12 +488,12 @@ AcpiRsCreatePciRoutingTable ( /* +1 to include null terminator */ - UserPrt->Length += (UINT32) strlen (UserPrt->Source) + 1; + UserPrt->Length += (UINT32) strlen (UserPrt->u.Source) + 1; break; case ACPI_TYPE_STRING: - strcpy (UserPrt->Source, ObjDesc->String.Pointer); + strcpy (UserPrt->u.Source, ObjDesc->String.Pointer); /* * Add to the Length field the length of the string diff --git a/source/components/resources/rsdump.c b/source/components/resources/rsdump.c index e8f13724c90c..02fc37ca4b5e 100644 --- a/source/components/resources/rsdump.c +++ b/source/components/resources/rsdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsdumpinfo.c b/source/components/resources/rsdumpinfo.c index 83b22caa62f9..2801e0d778d0 100644 --- a/source/components/resources/rsdumpinfo.c +++ b/source/components/resources/rsdumpinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -182,7 +182,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpIrq[7] = {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Polarity), "Polarity", AcpiGbl_LlDecode}, {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Irq.Shareable), "Sharing", AcpiGbl_ShrDecode}, {ACPI_RSD_UINT8 , ACPI_RSD_OFFSET (Irq.InterruptCount), "Interrupt Count", NULL}, - {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Irq.Interrupts[0]), "Interrupt List", NULL} + {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Irq.u.Interrupts[0]), "Interrupt List", NULL} }; ACPI_RSDUMP_INFO AcpiRsDumpDma[6] = @@ -192,7 +192,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpDma[6] = {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Dma.BusMaster), "Mastering", AcpiGbl_BmDecode}, {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Dma.Transfer), "Transfer Type", AcpiGbl_SizDecode}, {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (Dma.ChannelCount), "Channel Count", NULL}, - {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Dma.Channels[0]), "Channel List", NULL} + {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Dma.u.Channels[0]), "Channel List", NULL} }; ACPI_RSDUMP_INFO AcpiRsDumpStartDpf[4] = @@ -327,7 +327,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpExtIrq[8] = {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Shareable), "Sharing", AcpiGbl_ShrDecode}, {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (ExtendedIrq.ResourceSource), NULL, NULL}, {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (ExtendedIrq.InterruptCount), "Interrupt Count", NULL}, - {ACPI_RSD_DWORDLIST,ACPI_RSD_OFFSET (ExtendedIrq.Interrupts[0]), "Interrupt List", NULL} + {ACPI_RSD_DWORDLIST,ACPI_RSD_OFFSET (ExtendedIrq.u.Interrupts[0]), "Interrupt List", NULL} }; ACPI_RSDUMP_INFO AcpiRsDumpGenericReg[6] = @@ -374,6 +374,17 @@ ACPI_RSDUMP_INFO AcpiRsDumpPinFunction[10] = {ACPI_RSD_SHORTLISTX,ACPI_RSD_OFFSET (PinFunction.VendorData), "VendorData", NULL}, }; +ACPI_RSDUMP_INFO AcpiRsDumpClockInput[7] = +{ + {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpClockInput), "ClockInput", NULL}, + {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (ClockInput.RevisionId), "RevisionId", NULL}, + {ACPI_RSD_UINT32, ACPI_RSD_OFFSET (ClockInput.FrequencyNumerator), "FrequencyNumerator", NULL}, + {ACPI_RSD_UINT32, ACPI_RSD_OFFSET (ClockInput.FrequencyDivisor), "FrequencyDivisor", NULL}, + {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ClockInput.Scale), "Scale", AcpiGbl_ClockInputScale}, + {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ClockInput.Mode), "Mode", AcpiGbl_ClockInputMode}, + {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (ClockInput.ResourceSource), "ResourceSource", NULL}, +}; + ACPI_RSDUMP_INFO AcpiRsDumpPinConfig[11] = { {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinConfig), "PinConfig", NULL}, @@ -544,7 +555,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpPrt[5] = {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpPrt), NULL, NULL}, {ACPI_RSD_UINT64, ACPI_PRT_OFFSET (Address), "Address", NULL}, {ACPI_RSD_UINT32, ACPI_PRT_OFFSET (Pin), "Pin", NULL}, - {ACPI_RSD_STRING, ACPI_PRT_OFFSET (Source[0]), "Source", NULL}, + {ACPI_RSD_STRING, ACPI_PRT_OFFSET (u.Source[0]), "Source", NULL}, {ACPI_RSD_UINT32, ACPI_PRT_OFFSET (SourceIndex), "Source Index", NULL} }; diff --git a/source/components/resources/rsinfo.c b/source/components/resources/rsinfo.c index b9d4df46b432..551b647b795a 100644 --- a/source/components/resources/rsinfo.c +++ b/source/components/resources/rsinfo.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -197,6 +197,7 @@ ACPI_RSCONVERT_INFO *AcpiGbl_SetResourceDispatch[] = AcpiRsConvertPinGroup, /* 0x16, ACPI_RESOURCE_TYPE_PIN_GROUP */ AcpiRsConvertPinGroupFunction, /* 0x17, ACPI_RESOURCE_TYPE_PIN_GROUP_FUNCTION */ AcpiRsConvertPinGroupConfig, /* 0x18, ACPI_RESOURCE_TYPE_PIN_GROUP_CONFIG */ + AcpiRsConvertClockInput, /* 0x19, ACPI_RESOURCE_TYPE_CLOCK_INPUT */ }; /* Dispatch tables for AML-to-resource (Get Resource) conversion functions */ @@ -243,6 +244,7 @@ ACPI_RSCONVERT_INFO *AcpiGbl_GetResourceDispatch[] = AcpiRsConvertPinGroup, /* 0x10, ACPI_RESOURCE_NAME_PIN_GROUP */ AcpiRsConvertPinGroupFunction, /* 0x11, ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION */ AcpiRsConvertPinGroupConfig, /* 0x12, ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG */ + AcpiRsConvertClockInput, /* 0x13, ACPI_RESOURCE_NAME_CLOCK_INPUT */ }; /* Subtype table for SerialBus -- I2C, SPI, UART, and CSI2 */ @@ -288,6 +290,7 @@ ACPI_RSDUMP_INFO *AcpiGbl_DumpResourceDispatch[] = AcpiRsDumpPinGroup, /* ACPI_RESOURCE_TYPE_PIN_GROUP */ AcpiRsDumpPinGroupFunction, /* ACPI_RESOURCE_TYPE_PIN_GROUP_FUNCTION */ AcpiRsDumpPinGroupConfig, /* ACPI_RESOURCE_TYPE_PIN_GROUP_CONFIG */ + AcpiRsDumpClockInput, /* ACPI_RESOURCE_TYPE_CLOCK_INPUT */ }; ACPI_RSDUMP_INFO *AcpiGbl_DumpSerialBusDispatch[] = @@ -333,6 +336,7 @@ const UINT8 AcpiGbl_AmlResourceSizes[] = sizeof (AML_RESOURCE_PIN_GROUP), /* ACPI_RESOURCE_TYPE_PIN_GROUP */ sizeof (AML_RESOURCE_PIN_GROUP_FUNCTION), /* ACPI_RESOURCE_TYPE_PIN_GROUP_FUNCTION */ sizeof (AML_RESOURCE_PIN_GROUP_CONFIG), /* ACPI_RESOURCE_TYPE_PIN_GROUP_CONFIG */ + sizeof (AML_RESOURCE_CLOCK_INPUT), /* ACPI_RESOURCE_TYPE_CLOCK_INPUT */ }; @@ -378,6 +382,7 @@ const UINT8 AcpiGbl_ResourceStructSizes[] = ACPI_RS_SIZE (ACPI_RESOURCE_PIN_GROUP), ACPI_RS_SIZE (ACPI_RESOURCE_PIN_GROUP_FUNCTION), ACPI_RS_SIZE (ACPI_RESOURCE_PIN_GROUP_CONFIG), + ACPI_RS_SIZE (ACPI_RESOURCE_CLOCK_INPUT), }; const UINT8 AcpiGbl_AmlResourceSerialBusSizes[] = diff --git a/source/components/resources/rsio.c b/source/components/resources/rsio.c index 299326232bec..1640cdb2141e 100644 --- a/source/components/resources/rsio.c +++ b/source/components/resources/rsio.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsirq.c b/source/components/resources/rsirq.c index 9a8fc18fc568..10256c50b54a 100644 --- a/source/components/resources/rsirq.c +++ b/source/components/resources/rsirq.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -171,7 +171,7 @@ ACPI_RSCONVERT_INFO AcpiRsGetIrq[9] = /* Get the IRQ mask (bytes 1:2) */ - {ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.Interrupts[0]), + {ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.u.Interrupts[0]), AML_OFFSET (Irq.IrqMask), ACPI_RS_OFFSET (Data.Irq.InterruptCount)}, @@ -227,7 +227,7 @@ ACPI_RSCONVERT_INFO AcpiRsSetIrq[14] = /* Convert interrupt list to 16-bit IRQ bitmask */ - {ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.Interrupts[0]), + {ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.u.Interrupts[0]), AML_OFFSET (Irq.IrqMask), ACPI_RS_OFFSET (Data.Irq.InterruptCount)}, @@ -345,14 +345,14 @@ ACPI_RSCONVERT_INFO AcpiRsConvertExtIrq[10] = /* Copy every IRQ in the table, each is 32 bits */ - {ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.ExtendedIrq.Interrupts[0]), - AML_OFFSET (ExtendedIrq.Interrupts[0]), + {ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.ExtendedIrq.u.Interrupts[0]), + AML_OFFSET (ExtendedIrq.u.Interrupts[0]), 0}, /* Optional ResourceSource (Index and String) */ {ACPI_RSC_SOURCEX, ACPI_RS_OFFSET (Data.ExtendedIrq.ResourceSource), - ACPI_RS_OFFSET (Data.ExtendedIrq.Interrupts[0]), + ACPI_RS_OFFSET (Data.ExtendedIrq.u.Interrupts[0]), sizeof (AML_RESOURCE_EXTENDED_IRQ)} }; @@ -389,7 +389,7 @@ ACPI_RSCONVERT_INFO AcpiRsConvertDma[6] = /* DMA channel mask bits */ - {ACPI_RSC_BITMASK, ACPI_RS_OFFSET (Data.Dma.Channels[0]), + {ACPI_RSC_BITMASK, ACPI_RS_OFFSET (Data.Dma.u.Channels[0]), AML_OFFSET (Dma.DmaChannelMask), ACPI_RS_OFFSET (Data.Dma.ChannelCount)} }; diff --git a/source/components/resources/rslist.c b/source/components/resources/rslist.c index fdd24688c2d5..cb408197e576 100644 --- a/source/components/resources/rslist.c +++ b/source/components/resources/rslist.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -209,7 +209,12 @@ AcpiRsConvertAmlToResources ( if (AcpiUtGetResourceType (Aml) == ACPI_RESOURCE_NAME_SERIAL_BUS) { - if (AmlResource->CommonSerialBus.Type > + /* Avoid undefined behavior: member access within misaligned address */ + + AML_RESOURCE_COMMON_SERIALBUS CommonSerialBus; + memcpy(&CommonSerialBus, AmlResource, sizeof(CommonSerialBus)); + + if (CommonSerialBus.Type > AML_RESOURCE_MAX_SERIALBUSTYPE) { ConversionTable = NULL; @@ -219,7 +224,7 @@ AcpiRsConvertAmlToResources ( /* This is an I2C, SPI, UART, or CSI2 SerialBus descriptor */ ConversionTable = AcpiGbl_ConvertResourceSerialBusDispatch [ - AmlResource->CommonSerialBus.Type]; + CommonSerialBus.Type]; } } else diff --git a/source/components/resources/rsmemory.c b/source/components/resources/rsmemory.c index e527bad7bf0c..170bb6799221 100644 --- a/source/components/resources/rsmemory.c +++ b/source/components/resources/rsmemory.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsmisc.c b/source/components/resources/rsmisc.c index 16c52134ed8c..6d11442d95a1 100644 --- a/source/components/resources/rsmisc.c +++ b/source/components/resources/rsmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -349,7 +349,8 @@ AcpiRsConvertAmlToResource ( case ACPI_RSC_COUNT_SERIAL_VEN: - ItemCount = ACPI_GET16 (Source) - Info->Value; + ACPI_MOVE_16_TO_16(&Temp16, Source); + ItemCount = Temp16 - Info->Value; Resource->Length = Resource->Length + ItemCount; ACPI_SET16 (Destination, ItemCount); @@ -357,9 +358,10 @@ AcpiRsConvertAmlToResource ( case ACPI_RSC_COUNT_SERIAL_RES: + ACPI_MOVE_16_TO_16(&Temp16, Source); ItemCount = (AmlResourceLength + sizeof (AML_RESOURCE_LARGE_HEADER)) - - ACPI_GET16 (Source) - Info->Value; + Temp16 - Info->Value; Resource->Length = Resource->Length + ItemCount; ACPI_SET16 (Destination, ItemCount); @@ -437,8 +439,9 @@ AcpiRsConvertAmlToResource ( /* Copy the ResourceSource string */ + ACPI_MOVE_16_TO_16 (&Temp16, Source); Source = ACPI_ADD_PTR ( - void, Aml, (ACPI_GET16 (Source) + Info->Value)); + void, Aml, (Temp16 + Info->Value)); AcpiRsMoveData (Target, Source, ItemCount, Info->Opcode); break; diff --git a/source/components/resources/rsserial.c b/source/components/resources/rsserial.c index 3075b4c47dcc..4c19f890865f 100644 --- a/source/components/resources/rsserial.c +++ b/source/components/resources/rsserial.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -254,6 +254,50 @@ ACPI_RSCONVERT_INFO AcpiRsConvertGpio[18] = 0}, }; +/******************************************************************************* + * + * AcpiRsConvertClockInput + * + ******************************************************************************/ + +ACPI_RSCONVERT_INFO AcpiRsConvertClockInput[8] = +{ + {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_CLOCK_INPUT, + ACPI_RS_SIZE (ACPI_RESOURCE_CLOCK_INPUT), + ACPI_RSC_TABLE_SIZE (AcpiRsConvertClockInput)}, + + {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_CLOCK_INPUT, + sizeof (AML_RESOURCE_CLOCK_INPUT), + 0}, + + {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.ClockInput.RevisionId), + AML_OFFSET (ClockInput.RevisionId), + 1}, + + {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ClockInput.Mode), + AML_OFFSET (ClockInput.Flags), + 0}, + + {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.ClockInput.Scale), + AML_OFFSET (ClockInput.Flags), + 1}, + + {ACPI_RSC_MOVE16, ACPI_RS_OFFSET (Data.ClockInput.FrequencyDivisor), + AML_OFFSET (ClockInput.FrequencyDivisor), + 2}, + + {ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.ClockInput.FrequencyNumerator), + AML_OFFSET (ClockInput.FrequencyNumerator), + 4}, + + /* Resource Source */ + {ACPI_RSC_SOURCE, ACPI_RS_OFFSET (Data.ClockInput.ResourceSource), + 0, + sizeof(AML_RESOURCE_CLOCK_INPUT)}, + +}; + + /******************************************************************************* * * AcpiRsConvertPinfunction diff --git a/source/components/resources/rsutils.c b/source/components/resources/rsutils.c index 7110406f4e9e..e6889f86cece 100644 --- a/source/components/resources/rsutils.c +++ b/source/components/resources/rsutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/resources/rsxface.c b/source/components/resources/rsxface.c index d3aaf1d0fd88..f46ff346b758 100644 --- a/source/components/resources/rsxface.c +++ b/source/components/resources/rsxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbdata.c b/source/components/tables/tbdata.c index d974d951b62d..e003763762ba 100644 --- a/source/components/tables/tbdata.c +++ b/source/components/tables/tbdata.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbfadt.c b/source/components/tables/tbfadt.c index 97876614bd1c..d2bd1eb32aba 100644 --- a/source/components/tables/tbfadt.c +++ b/source/components/tables/tbfadt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbfind.c b/source/components/tables/tbfind.c index 81ed2d97a66e..4adf09e22eda 100644 --- a/source/components/tables/tbfind.c +++ b/source/components/tables/tbfind.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbinstal.c b/source/components/tables/tbinstal.c index 9253bd1db0a3..eda1d0a73033 100644 --- a/source/components/tables/tbinstal.c +++ b/source/components/tables/tbinstal.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbprint.c b/source/components/tables/tbprint.c index cdad69af46ea..9fd5c7aac4b5 100644 --- a/source/components/tables/tbprint.c +++ b/source/components/tables/tbprint.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -294,4 +294,3 @@ AcpiTbPrintTableHeader ( LocalHeader.AslCompilerId, LocalHeader.AslCompilerRevision)); } } - diff --git a/source/components/tables/tbutils.c b/source/components/tables/tbutils.c index 5188d26da3c8..680a69d9f2cf 100644 --- a/source/components/tables/tbutils.c +++ b/source/components/tables/tbutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -323,6 +323,7 @@ AcpiTbGetRootTableEntry ( UINT8 *TableEntry, UINT32 TableEntrySize) { + UINT32 Address32; UINT64 Address64; @@ -336,8 +337,8 @@ AcpiTbGetRootTableEntry ( * 32-bit platform, RSDT: Return 32-bit table entry * 64-bit platform, RSDT: Expand 32-bit to 64-bit and return */ - return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR ( - UINT32, TableEntry))); + ACPI_MOVE_32_TO_32(&Address32, TableEntry); + return Address32; } else { diff --git a/source/components/tables/tbxface.c b/source/components/tables/tbxface.c index 919ad13813d6..b37377efd205 100644 --- a/source/components/tables/tbxface.c +++ b/source/components/tables/tbxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbxfload.c b/source/components/tables/tbxfload.c index ddd9b795e50a..7ae42346eae7 100644 --- a/source/components/tables/tbxfload.c +++ b/source/components/tables/tbxfload.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/tables/tbxfroot.c b/source/components/tables/tbxfroot.c index 97cb65c79277..923d05fb7cd0 100644 --- a/source/components/tables/tbxfroot.c +++ b/source/components/tables/tbxfroot.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utaddress.c b/source/components/utilities/utaddress.c index 5aa12832bd41..e3a502890571 100644 --- a/source/components/utilities/utaddress.c +++ b/source/components/utilities/utaddress.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utalloc.c b/source/components/utilities/utalloc.c index aa06339cb8c7..d4a7e501c68e 100644 --- a/source/components/utilities/utalloc.c +++ b/source/components/utilities/utalloc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utascii.c b/source/components/utilities/utascii.c index db2389024d02..6f6d92298ed6 100644 --- a/source/components/utilities/utascii.c +++ b/source/components/utilities/utascii.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utbuffer.c b/source/components/utilities/utbuffer.c index 2cf097bf5ceb..be1082e8cd01 100644 --- a/source/components/utilities/utbuffer.c +++ b/source/components/utilities/utbuffer.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utcache.c b/source/components/utilities/utcache.c index 2ff1540c1662..32c527d573ea 100644 --- a/source/components/utilities/utcache.c +++ b/source/components/utilities/utcache.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utcksum.c b/source/components/utilities/utcksum.c index b8ea869bac5f..de97d15ff9fa 100644 --- a/source/components/utilities/utcksum.c +++ b/source/components/utilities/utcksum.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -172,7 +172,7 @@ * * DESCRIPTION: Verifies that the table checksums to zero. Optionally returns * exception on bad checksum. - * Note: We don't have to check for a CDAT here, since CDAT is + * Note: We don't have to check for a CDAT here, since CDAT is * not in the RSDT/XSDT, and the CDAT table is never installed * via ACPICA. * diff --git a/source/components/utilities/utclib.c b/source/components/utilities/utclib.c index 42f8d171401c..9c49163d4894 100644 --- a/source/components/utilities/utclib.c +++ b/source/components/utilities/utclib.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utcopy.c b/source/components/utilities/utcopy.c index e725d55b5ef2..e9024bdd1afa 100644 --- a/source/components/utilities/utcopy.c +++ b/source/components/utilities/utcopy.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utdebug.c b/source/components/utilities/utdebug.c index f789e686da20..b0c3640f2f72 100644 --- a/source/components/utilities/utdebug.c +++ b/source/components/utilities/utdebug.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utdecode.c b/source/components/utilities/utdecode.c index 2a49cbd8d83c..b100c61bf1d8 100644 --- a/source/components/utilities/utdecode.c +++ b/source/components/utilities/utdecode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utdelete.c b/source/components/utilities/utdelete.c index b36c4bb3a77a..1227b21154ee 100644 --- a/source/components/utilities/utdelete.c +++ b/source/components/utilities/utdelete.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uterror.c b/source/components/utilities/uterror.c index 2aee4d54f9c4..c88081f9e44d 100644 --- a/source/components/utilities/uterror.c +++ b/source/components/utilities/uterror.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uteval.c b/source/components/utilities/uteval.c index f4ccea68bd9c..bccbdda5aef6 100644 --- a/source/components/utilities/uteval.c +++ b/source/components/utilities/uteval.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utexcep.c b/source/components/utilities/utexcep.c index 279d33fcde5d..094df3ab4481 100644 --- a/source/components/utilities/utexcep.c +++ b/source/components/utilities/utexcep.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utglobal.c b/source/components/utilities/utglobal.c index 43de5c0a7747..28e4c341d9a7 100644 --- a/source/components/utilities/utglobal.c +++ b/source/components/utilities/utglobal.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uthex.c b/source/components/utilities/uthex.c index c64d3def8839..801627e2dbe5 100644 --- a/source/components/utilities/uthex.c +++ b/source/components/utilities/uthex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utids.c b/source/components/utilities/utids.c index 498338a10b68..3df4d97dbf59 100644 --- a/source/components/utilities/utids.c +++ b/source/components/utilities/utids.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utinit.c b/source/components/utilities/utinit.c index 0f2cf48907a9..37ec63bc6667 100644 --- a/source/components/utilities/utinit.c +++ b/source/components/utilities/utinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utlock.c b/source/components/utilities/utlock.c index 9357279b3653..e56b74843017 100644 --- a/source/components/utilities/utlock.c +++ b/source/components/utilities/utlock.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utmath.c b/source/components/utilities/utmath.c index b534bb3e070b..b854368e6283 100644 --- a/source/components/utilities/utmath.c +++ b/source/components/utilities/utmath.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utmisc.c b/source/components/utilities/utmisc.c index 1efe0afc99bf..64e33672fcde 100644 --- a/source/components/utilities/utmisc.c +++ b/source/components/utilities/utmisc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utmutex.c b/source/components/utilities/utmutex.c index 1f1c1d82d055..2ce621fa3c5c 100644 --- a/source/components/utilities/utmutex.c +++ b/source/components/utilities/utmutex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utnonansi.c b/source/components/utilities/utnonansi.c index e3c2f460d869..5db704223e49 100644 --- a/source/components/utilities/utnonansi.c +++ b/source/components/utilities/utnonansi.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utobject.c b/source/components/utilities/utobject.c index 52e02beb9596..f53f316370cc 100644 --- a/source/components/utilities/utobject.c +++ b/source/components/utilities/utobject.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utosi.c b/source/components/utilities/utosi.c index 700f30a686d3..b6431c8832d2 100644 --- a/source/components/utilities/utosi.c +++ b/source/components/utilities/utosi.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utownerid.c b/source/components/utilities/utownerid.c index 30ba6b7500a7..ad2796be373f 100644 --- a/source/components/utilities/utownerid.c +++ b/source/components/utilities/utownerid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utpredef.c b/source/components/utilities/utpredef.c index 7f97ee7c4e10..6afc655947c9 100644 --- a/source/components/utilities/utpredef.c +++ b/source/components/utilities/utpredef.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utprint.c b/source/components/utilities/utprint.c index 4d9252ac5a87..7d8611b0327b 100644 --- a/source/components/utilities/utprint.c +++ b/source/components/utilities/utprint.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utresdecode.c b/source/components/utilities/utresdecode.c index 12ab687588cc..667f12f8eb1e 100644 --- a/source/components/utilities/utresdecode.c +++ b/source/components/utilities/utresdecode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -467,4 +467,17 @@ const char *AcpiGbl_PtypDecode[] = "Input Schmitt Trigger", }; +const char *AcpiGbl_ClockInputMode[] = +{ + "Fixed", + "Variable", +}; + +const char *AcpiGbl_ClockInputScale[] = +{ + "Hz", + "KHz", + "MHz", +}; + #endif diff --git a/source/components/utilities/utresrc.c b/source/components/utilities/utresrc.c index 26c382d879a9..f47b29246f6e 100644 --- a/source/components/utilities/utresrc.c +++ b/source/components/utilities/utresrc.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -204,6 +204,8 @@ const UINT8 AcpiGbl_ResourceAmlSizes[] = ACPI_AML_SIZE_LARGE (AML_RESOURCE_PIN_GROUP), ACPI_AML_SIZE_LARGE (AML_RESOURCE_PIN_GROUP_FUNCTION), ACPI_AML_SIZE_LARGE (AML_RESOURCE_PIN_GROUP_CONFIG), + ACPI_AML_SIZE_LARGE (AML_RESOURCE_CLOCK_INPUT), + }; const UINT8 AcpiGbl_ResourceAmlSerialBusSizes[] = @@ -264,6 +266,7 @@ static const UINT8 AcpiGbl_ResourceTypes[] = ACPI_VARIABLE_LENGTH, /* 10 PinGroup */ ACPI_VARIABLE_LENGTH, /* 11 PinGroupFunction */ ACPI_VARIABLE_LENGTH, /* 12 PinGroupConfig */ + ACPI_VARIABLE_LENGTH, /* 13 ClockInput */ }; @@ -529,16 +532,21 @@ AcpiUtValidateResource ( AmlResource = ACPI_CAST_PTR (AML_RESOURCE, Aml); if (ResourceType == ACPI_RESOURCE_NAME_SERIAL_BUS) { + /* Avoid undefined behavior: member access within misaligned address */ + + AML_RESOURCE_COMMON_SERIALBUS CommonSerialBus; + memcpy(&CommonSerialBus, AmlResource, sizeof(CommonSerialBus)); + /* Validate the BusType field */ - if ((AmlResource->CommonSerialBus.Type == 0) || - (AmlResource->CommonSerialBus.Type > AML_RESOURCE_MAX_SERIALBUSTYPE)) + if ((CommonSerialBus.Type == 0) || + (CommonSerialBus.Type > AML_RESOURCE_MAX_SERIALBUSTYPE)) { if (WalkState) { ACPI_ERROR ((AE_INFO, "Invalid/unsupported SerialBus resource descriptor: BusType 0x%2.2X", - AmlResource->CommonSerialBus.Type)); + CommonSerialBus.Type)); } return (AE_AML_INVALID_RESOURCE_TYPE); } diff --git a/source/components/utilities/utstate.c b/source/components/utilities/utstate.c index f089ffeaa66b..ec13a07aa6b1 100644 --- a/source/components/utilities/utstate.c +++ b/source/components/utilities/utstate.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utstring.c b/source/components/utilities/utstring.c index 770f3078767a..aed0d10c7815 100644 --- a/source/components/utilities/utstring.c +++ b/source/components/utilities/utstring.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utstrsuppt.c b/source/components/utilities/utstrsuppt.c index 0487a4f63fdc..31e720c94144 100644 --- a/source/components/utilities/utstrsuppt.c +++ b/source/components/utilities/utstrsuppt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utstrtoul64.c b/source/components/utilities/utstrtoul64.c index 1ef50eac07cf..1aee5d02a062 100644 --- a/source/components/utilities/utstrtoul64.c +++ b/source/components/utilities/utstrtoul64.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/uttrack.c b/source/components/utilities/uttrack.c index 7791fe9b7f73..77e1b659a348 100644 --- a/source/components/utilities/uttrack.c +++ b/source/components/utilities/uttrack.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utuuid.c b/source/components/utilities/utuuid.c index 8fd85d62960e..055086f12042 100644 --- a/source/components/utilities/utuuid.c +++ b/source/components/utilities/utuuid.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxface.c b/source/components/utilities/utxface.c index 74a8ff485bc5..d335bb1a2b5f 100644 --- a/source/components/utilities/utxface.c +++ b/source/components/utilities/utxface.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxferror.c b/source/components/utilities/utxferror.c index 77701dfec99a..6534e1a1f4bd 100644 --- a/source/components/utilities/utxferror.c +++ b/source/components/utilities/utxferror.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxfinit.c b/source/components/utilities/utxfinit.c index 865fe9d2dee8..0ccaf5caae7d 100644 --- a/source/components/utilities/utxfinit.c +++ b/source/components/utilities/utxfinit.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/components/utilities/utxfmutex.c b/source/components/utilities/utxfmutex.c index 2e77fc95ab65..cec55dfc2915 100644 --- a/source/components/utilities/utxfmutex.c +++ b/source/components/utilities/utxfmutex.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acapps.h b/source/include/acapps.h index 382ab1700b34..9662e5117dcf 100644 --- a/source/include/acapps.h +++ b/source/include/acapps.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -159,7 +159,7 @@ /* Common info for tool signons */ #define ACPICA_NAME "Intel ACPI Component Architecture" -#define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2022 Intel Corporation" +#define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2023 Intel Corporation" #if ACPI_MACHINE_WIDTH == 64 #define ACPI_WIDTH " (64-bit version)" diff --git a/source/include/acbuffer.h b/source/include/acbuffer.h index 0739feb52817..63225aa7de7a 100644 --- a/source/include/acbuffer.h +++ b/source/include/acbuffer.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acclib.h b/source/include/acclib.h index 75c48119cab7..d03652c1aad9 100644 --- a/source/include/acclib.h +++ b/source/include/acclib.h @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/accommon.h b/source/include/accommon.h index 210035cd4961..219372d3b7ed 100644 --- a/source/include/accommon.h +++ b/source/include/accommon.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acconfig.h b/source/include/acconfig.h index 04f7f4f0caa0..5ae00322ec20 100644 --- a/source/include/acconfig.h +++ b/source/include/acconfig.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acconvert.h b/source/include/acconvert.h index 048fd53e4de2..3aa36a8bf389 100644 --- a/source/include/acconvert.h +++ b/source/include/acconvert.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acdebug.h b/source/include/acdebug.h index 6716a094d4ad..c1596ee89ddd 100644 --- a/source/include/acdebug.h +++ b/source/include/acdebug.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h index 47ce0b15bffd..afc9034b8b26 100644 --- a/source/include/acdisasm.h +++ b/source/include/acdisasm.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -260,6 +260,7 @@ typedef enum ACPI_DMT_AEST_XRUPT, ACPI_DMT_AGDI, ACPI_DMT_ASF, + ACPI_DMT_ASPT, ACPI_DMT_CDAT, ACPI_DMT_CEDT, ACPI_DMT_DMAR, @@ -280,6 +281,7 @@ typedef enum ACPI_DMT_IVRS_UNTERMINATED_STRING, ACPI_DMT_LPIT, ACPI_DMT_MADT, + ACPI_DMT_MPAM_LOCATOR, ACPI_DMT_NFIT, ACPI_DMT_NHLT1, ACPI_DMT_NHLT1a, @@ -294,6 +296,7 @@ typedef enum ACPI_DMT_PMTT_VENDOR, ACPI_DMT_PPTT, ACPI_DMT_RGRT, + ACPI_DMT_RHCT, ACPI_DMT_SDEI, ACPI_DMT_SDEV, ACPI_DMT_SLIC, @@ -399,6 +402,11 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAspt[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsptHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAspt0[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAspt1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAspt2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBdat[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[]; @@ -550,6 +558,17 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam0[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1A[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1B[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1C[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1D[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1E[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1F[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1G[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1Deps[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0A[]; @@ -623,6 +642,12 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHandler[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRasf[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt0[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhct[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctNodeHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsa1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsaPad[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[]; @@ -758,6 +783,10 @@ void AcpiDmDumpAsf ( ACPI_TABLE_HEADER *Table); +void +AcpiDmDumpAspt ( + ACPI_TABLE_HEADER *Table); + void AcpiDmDumpCcel ( ACPI_TABLE_HEADER *Table); @@ -838,6 +867,10 @@ void AcpiDmDumpMcfg ( ACPI_TABLE_HEADER *Table); +void +AcpiDmDumpMpam ( + ACPI_TABLE_HEADER *Table); + void AcpiDmDumpMpst ( ACPI_TABLE_HEADER *Table); @@ -882,6 +915,10 @@ void AcpiDmDumpRgrt ( ACPI_TABLE_HEADER *Table); +void +AcpiDmDumpRhct ( + ACPI_TABLE_HEADER *Table); + UINT32 AcpiDmDumpRsdp ( ACPI_TABLE_HEADER *Table); @@ -1323,6 +1360,12 @@ AcpiDmVendorCommon ( UINT32 Length, UINT32 Level); +void +AcpiDmClockInputDescriptor ( + ACPI_OP_WALK_INFO *Info, + AML_RESOURCE *Resource, + UINT32 Length, + UINT32 Level); /* * dmresrcs diff --git a/source/include/acdispat.h b/source/include/acdispat.h index 2c44c9f19613..3e8ad8106c53 100644 --- a/source/include/acdispat.h +++ b/source/include/acdispat.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acevents.h b/source/include/acevents.h index f8c5d77699a0..f9972d8ded51 100644 --- a/source/include/acevents.h +++ b/source/include/acevents.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acexcep.h b/source/include/acexcep.h index 92e949722940..9271dc4c81ea 100644 --- a/source/include/acexcep.h +++ b/source/include/acexcep.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acglobal.h b/source/include/acglobal.h index 1850d94beb2e..28fc6514bf94 100644 --- a/source/include/acglobal.h +++ b/source/include/acglobal.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/achware.h b/source/include/achware.h index 256008c74c7a..6e0631e05720 100644 --- a/source/include/achware.h +++ b/source/include/achware.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acinterp.h b/source/include/acinterp.h index d9cec3455d7b..4c36708a00ed 100644 --- a/source/include/acinterp.h +++ b/source/include/acinterp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/aclocal.h b/source/include/aclocal.h index 74eb6e27f08c..9c090a07d9b4 100644 --- a/source/include/aclocal.h +++ b/source/include/aclocal.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -1452,7 +1452,8 @@ typedef struct acpi_port_info #define ACPI_RESOURCE_NAME_PIN_GROUP 0x90 #define ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION 0x91 #define ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG 0x92 -#define ACPI_RESOURCE_NAME_LARGE_MAX 0x92 +#define ACPI_RESOURCE_NAME_CLOCK_INPUT 0x93 +#define ACPI_RESOURCE_NAME_LARGE_MAX 0x94 /***************************************************************************** diff --git a/source/include/acmacros.h b/source/include/acmacros.h index 11fd47cc3cab..66c90b6aba09 100644 --- a/source/include/acmacros.h +++ b/source/include/acmacros.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acnames.h b/source/include/acnames.h index 846d192b229d..a6cdd2e2c7e4 100644 --- a/source/include/acnames.h +++ b/source/include/acnames.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acnamesp.h b/source/include/acnamesp.h index 7b8d069d6b26..432d9d4478cb 100644 --- a/source/include/acnamesp.h +++ b/source/include/acnamesp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acobject.h b/source/include/acobject.h index b2c9dd9b7a0f..4454c572b521 100644 --- a/source/include/acobject.h +++ b/source/include/acobject.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acopcode.h b/source/include/acopcode.h index 7e54a47f7063..f2ce2cd53e80 100644 --- a/source/include/acopcode.h +++ b/source/include/acopcode.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acoutput.h b/source/include/acoutput.h index cd3d26d52a22..502d9a94f7af 100644 --- a/source/include/acoutput.h +++ b/source/include/acoutput.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acparser.h b/source/include/acparser.h index 4437d612ea63..0dd0e345600e 100644 --- a/source/include/acparser.h +++ b/source/include/acparser.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acpi.h b/source/include/acpi.h index 081e3b7d2ea7..445e4413ed11 100644 --- a/source/include/acpi.h +++ b/source/include/acpi.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acpiosxf.h b/source/include/acpiosxf.h index 67c110136a54..c4857cae9db1 100644 --- a/source/include/acpiosxf.h +++ b/source/include/acpiosxf.h @@ -10,7 +10,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acpixf.h b/source/include/acpixf.h index 7b779375091f..a7d61033a7b8 100644 --- a/source/include/acpixf.h +++ b/source/include/acpixf.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20221020 +#define ACPI_CA_VERSION 0x20230331 #include "acconfig.h" #include "actypes.h" @@ -770,7 +770,7 @@ ACPI_EXTERNAL_RETURN_STATUS ( ACPI_STATUS AcpiGetHandle ( ACPI_HANDLE Parent, - ACPI_STRING Pathname, + const char *Pathname, ACPI_HANDLE *RetHandle)) ACPI_EXTERNAL_RETURN_STATUS ( @@ -942,6 +942,21 @@ AcpiInstallAddressSpaceHandler ( ACPI_ADR_SPACE_SETUP Setup, void *Context)) +ACPI_EXTERNAL_RETURN_STATUS ( +ACPI_STATUS +AcpiInstallAddressSpaceHandlerNo_Reg( + ACPI_HANDLE Device, + ACPI_ADR_SPACE_TYPE SpaceId, + ACPI_ADR_SPACE_HANDLER Handler, + ACPI_ADR_SPACE_SETUP Setup, + void *Context)) + +ACPI_EXTERNAL_RETURN_STATUS ( +ACPI_STATUS +AcpiExecuteRegMethods ( + ACPI_HANDLE Device, + ACPI_ADR_SPACE_TYPE SpaceId)) + ACPI_EXTERNAL_RETURN_STATUS ( ACPI_STATUS AcpiRemoveAddressSpaceHandler ( diff --git a/source/include/acpredef.h b/source/include/acpredef.h index 9ad8c0ffcc38..ca47e7cc0963 100644 --- a/source/include/acpredef.h +++ b/source/include/acpredef.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/acresrc.h b/source/include/acresrc.h index 8214ed835c5b..85be65dc17eb 100644 --- a/source/include/acresrc.h +++ b/source/include/acresrc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -506,6 +506,7 @@ extern ACPI_RSCONVERT_INFO AcpiRsConvertPinConfig[]; extern ACPI_RSCONVERT_INFO AcpiRsConvertPinGroup[]; extern ACPI_RSCONVERT_INFO AcpiRsConvertPinGroupFunction[]; extern ACPI_RSCONVERT_INFO AcpiRsConvertPinGroupConfig[]; +extern ACPI_RSCONVERT_INFO AcpiRsConvertClockInput[]; /* These resources require separate get/set tables */ @@ -562,6 +563,7 @@ extern ACPI_RSDUMP_INFO AcpiRsDumpPinConfig[]; extern ACPI_RSDUMP_INFO AcpiRsDumpPinGroup[]; extern ACPI_RSDUMP_INFO AcpiRsDumpPinGroupFunction[]; extern ACPI_RSDUMP_INFO AcpiRsDumpPinGroupConfig[]; +extern ACPI_RSDUMP_INFO AcpiRsDumpClockInput[]; #endif #endif /* __ACRESRC_H__ */ diff --git a/source/include/acrestyp.h b/source/include/acrestyp.h index f045c2000b71..3065bdcee9f2 100644 --- a/source/include/acrestyp.h +++ b/source/include/acrestyp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -290,7 +290,10 @@ typedef struct acpi_resource_irq UINT8 Shareable; UINT8 WakeCapable; UINT8 InterruptCount; - UINT8 Interrupts[1]; + union { + UINT8 Interrupt; + ACPI_FLEX_ARRAY(UINT8, Interrupts); + } u; } ACPI_RESOURCE_IRQ; @@ -300,7 +303,10 @@ typedef struct acpi_resource_dma UINT8 BusMaster; UINT8 Transfer; UINT8 ChannelCount; - UINT8 Channels[1]; + union { + UINT8 Channel; + ACPI_FLEX_ARRAY(UINT8, Channels); + } u; } ACPI_RESOURCE_DMA; @@ -357,7 +363,7 @@ typedef struct acpi_resource_fixed_dma typedef struct acpi_resource_vendor { UINT16 ByteLength; - UINT8 ByteData[1]; + UINT8 ByteData[]; } ACPI_RESOURCE_VENDOR; @@ -368,7 +374,7 @@ typedef struct acpi_resource_vendor_typed UINT16 ByteLength; UINT8 UuidSubtype; UINT8 Uuid[ACPI_UUID_LENGTH]; - UINT8 ByteData[1]; + UINT8 ByteData[]; } ACPI_RESOURCE_VENDOR_TYPED; @@ -538,7 +544,10 @@ typedef struct acpi_resource_extended_irq UINT8 WakeCapable; UINT8 InterruptCount; ACPI_RESOURCE_SOURCE ResourceSource; - UINT32 Interrupts[1]; + union { + UINT32 Interrupt; + ACPI_FLEX_ARRAY(UINT32, Interrupts); + } u; } ACPI_RESOURCE_EXTENDED_IRQ; @@ -770,6 +779,16 @@ typedef struct acpi_resource_pin_config } ACPI_RESOURCE_PIN_CONFIG; +typedef struct acpi_resource_clock_input +{ + UINT8 RevisionId; + UINT8 Mode; + UINT8 Scale; + UINT16 FrequencyDivisor; + UINT32 FrequencyNumerator; + ACPI_RESOURCE_SOURCE ResourceSource; +} ACPI_RESOURCE_CLOCK_INPUT; + /* Values for PinConfigType field above */ #define ACPI_PIN_CONFIG_DEFAULT 0 @@ -853,7 +872,8 @@ typedef struct acpi_resource_pin_group_config #define ACPI_RESOURCE_TYPE_PIN_GROUP 22 /* ACPI 6.2 */ #define ACPI_RESOURCE_TYPE_PIN_GROUP_FUNCTION 23 /* ACPI 6.2 */ #define ACPI_RESOURCE_TYPE_PIN_GROUP_CONFIG 24 /* ACPI 6.2 */ -#define ACPI_RESOURCE_TYPE_MAX 24 +#define ACPI_RESOURCE_TYPE_CLOCK_INPUT 25 /* ACPI 6.5 */ +#define ACPI_RESOURCE_TYPE_MAX 25 /* Master union for resource descriptors */ @@ -888,6 +908,7 @@ typedef union acpi_resource_data ACPI_RESOURCE_PIN_GROUP PinGroup; ACPI_RESOURCE_PIN_GROUP_FUNCTION PinGroupFunction; ACPI_RESOURCE_PIN_GROUP_CONFIG PinGroupConfig; + ACPI_RESOURCE_CLOCK_INPUT ClockInput; /* Common fields */ @@ -927,8 +948,10 @@ typedef struct acpi_pci_routing_table UINT32 Pin; UINT64 Address; /* here for 64-bit alignment */ UINT32 SourceIndex; - char Source[4]; /* pad to 64 bits so sizeof() works in all cases */ - + union { + char Pad[4]; /* pad to 64 bits so sizeof() works in all cases */ + ACPI_FLEX_ARRAY(char, Source); + } u; } ACPI_PCI_ROUTING_TABLE; #endif /* __ACRESTYP_H__ */ diff --git a/source/include/acstruct.h b/source/include/acstruct.h index d50c7a1b6468..fe0871794341 100644 --- a/source/include/acstruct.h +++ b/source/include/acstruct.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actables.h b/source/include/actables.h index e9b070f91d5f..21c344358350 100644 --- a/source/include/actables.h +++ b/source/include/actables.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h index 7ce3c21e594c..5417aff4a313 100644 --- a/source/include/actbinfo.h +++ b/source/include/actbinfo.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -153,6 +153,7 @@ * Macros used to generate offsets to specific table fields */ #define ACPI_AGDI_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_AGDI,f) +#define ACPI_ASPT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_ASPT,f) #define ACPI_FACS_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_FACS,f) #define ACPI_GAS_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_GENERIC_ADDRESS,f) #define ACPI_HDR_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_HEADER,f) @@ -188,6 +189,7 @@ #define ACPI_PMTT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_PMTT,f) #define ACPI_RASF_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_RASF,f) #define ACPI_RGRT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_RGRT,f) +#define ACPI_RHCT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_RHCT,f) #define ACPI_S3PT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_S3PT,f) #define ACPI_SBST_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_SBST,f) #define ACPI_SDEI_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_SDEI,f) @@ -234,6 +236,10 @@ #define ACPI_ASF2a_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_CONTROL_DATA,f) #define ACPI_ASF3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_RMCP,f) #define ACPI_ASF4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_ADDRESS,f) +#define ACPI_ASPTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASPT_HEADER,f) +#define ACPI_ASPT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASPT_GLOBAL_REGS,f) +#define ACPI_ASPT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASPT_SEV_MBOX_REGS,f) +#define ACPI_ASPT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASPT_ACPI_MBOX_REGS,f) #define ACPI_CDAT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_CDAT,f) #define ACPI_CDATH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_HEADER,f) #define ACPI_CDAT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_DSMAS,f) @@ -331,6 +337,16 @@ #define ACPI_MADT17_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_OEM_DATA,f) #define ACPI_MADTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SUBTABLE_HEADER,f) #define ACPI_MCFG0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MCFG_ALLOCATION,f) +#define ACPI_MPAM0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_MSC_NODE,f) +#define ACPI_MPAM1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_NODE,f) +#define ACPI_MPAM1A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_CACHE_LOCATOR,f) +#define ACPI_MPAM1B_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_MEMORY_LOCATOR,f) +#define ACPI_MPAM1C_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_SMMU_INTERFACE,f) +#define ACPI_MPAM1D_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_MEMCACHE_INTERFACE,f) +#define ACPI_MPAM1E_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_ACPI_INTERFACE,f) +#define ACPI_MPAM1F_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_INTERCONNECT_INTERFACE,f) +#define ACPI_MPAM1G_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_GENERIC_LOCATOR,f) +#define ACPI_MPAM2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_FUNC_DEPS,f) #define ACPI_MPST0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPST_POWER_NODE,f) #define ACPI_MPST0A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPST_POWER_STATE,f) #define ACPI_MPST0B_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPST_COMPONENT,f) @@ -385,6 +401,9 @@ #define ACPI_PRMTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_PRMT_HEADER,f) #define ACPI_PRMT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PRMT_MODULE_INFO,f) #define ACPI_PRMT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PRMT_HANDLER_INFO,f) +#define ACPI_RHCTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_NODE_HEADER,f) +#define ACPI_RHCT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_ISA_STRING,f) +#define ACPI_RHCTFFFF_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_HART_INFO,f) #define ACPI_S3PTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_FPDT_HEADER,f) #define ACPI_S3PT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_S3PT_RESUME,f) #define ACPI_S3PT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_S3PT_SUSPEND,f) diff --git a/source/include/actbl.h b/source/include/actbl.h index f23080fb4f80..2a1484910c0a 100644 --- a/source/include/actbl.h +++ b/source/include/actbl.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actbl1.h b/source/include/actbl1.h index 340b636b5e24..1b115ae357a3 100644 --- a/source/include/actbl1.h +++ b/source/include/actbl1.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -170,6 +170,7 @@ */ #define ACPI_SIG_AEST "AEST" /* Arm Error Source Table */ #define ACPI_SIG_ASF "ASF!" /* Alert Standard Format table */ +#define ACPI_SIG_ASPT "ASPT" /* AMD Secure Processor Table */ #define ACPI_SIG_BERT "BERT" /* Boot Error Record Table */ #define ACPI_SIG_BGRT "BGRT" /* Boot Graphics Resource Table */ #define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */ @@ -398,6 +399,86 @@ typedef struct acpi_asf_address } ACPI_ASF_ADDRESS; +/******************************************************************************* + * + * ASPT - AMD Secure Processor Table (Signature "ASPT") + * Revision 0x1 + * + * Conforms to AMD Socket SP5/SP6 Platform ASPT Rev1 Specification, + * 12 September 2022 + * + ******************************************************************************/ + +typedef struct acpi_table_aspt +{ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + UINT32 NumEntries; + +} ACPI_TABLE_ASPT; + + +/* ASPT subtable header */ + +typedef struct acpi_aspt_header +{ + UINT16 Type; + UINT16 Length; + +} ACPI_ASPT_HEADER; + + +/* Values for Type field above */ + +enum AcpiAsptType +{ + ACPI_ASPT_TYPE_GLOBAL_REGS = 0, + ACPI_ASPT_TYPE_SEV_MBOX_REGS = 1, + ACPI_ASPT_TYPE_ACPI_MBOX_REGS = 2, + ACPI_ASPT_TYPE_UNKNOWN = 3, +}; + +/* + * ASPT subtables + */ + +/* 0: ASPT Global Registers */ + +typedef struct acpi_aspt_global_regs +{ + ACPI_ASPT_HEADER Header; + UINT32 Reserved; + UINT64 FeatureRegAddr; + UINT64 IrqEnRegAddr; + UINT64 IrqStRegAddr; + +} ACPI_ASPT_GLOBAL_REGS; + + +/* 1: ASPT SEV Mailbox Registers */ + +typedef struct acpi_aspt_sev_mbox_regs +{ + ACPI_ASPT_HEADER Header; + UINT8 MboxIrqId; + UINT8 Reserved[3]; + UINT64 CmdRespRegAddr; + UINT64 CmdBufLoRegAddr; + UINT64 CmdBufHiRegAddr; + +} ACPI_ASPT_SEV_MBOX_REGS; + + +/* 2: ASPT ACPI Mailbox Registers */ + +typedef struct acpi_aspt_acpi_mbox_regs +{ + ACPI_ASPT_HEADER Header; + UINT32 Reserved1; + UINT64 CmdRespRegAddr; + UINT64 Reserved2[2]; + +} ACPI_ASPT_ACPI_MBOX_REGS; + /******************************************************************************* * @@ -495,7 +576,6 @@ typedef struct acpi_table_boot } ACPI_TABLE_BOOT; - /******************************************************************************* * * CDAT - Coherent Device Attribute Table @@ -543,7 +623,7 @@ enum AcpiCdatType /* Subtable 0: Device Scoped Memory Affinity Structure (DSMAS) */ -typedef struct acpi_cadt_dsmas +typedef struct acpi_cdat_dsmas { UINT8 DsmadHandle; UINT8 Flags; @@ -1139,7 +1219,10 @@ typedef struct acpi_dmar_andd ACPI_DMAR_HEADER Header; UINT8 Reserved[3]; UINT8 DeviceNumber; - char DeviceName[1]; + union { + char __pad; + ACPI_FLEX_ARRAY(char, DeviceName); + } u; } ACPI_DMAR_ANDD; @@ -1192,7 +1275,7 @@ typedef struct acpi_table_drtm typedef struct acpi_drtm_vtable_list { UINT32 ValidatedTableCount; - UINT64 ValidatedTables[1]; + UINT64 ValidatedTables[]; } ACPI_DRTM_VTABLE_LIST; @@ -1211,7 +1294,7 @@ typedef struct acpi_drtm_resource typedef struct acpi_drtm_resource_list { UINT32 ResourceCount; - ACPI_DRTM_RESOURCE Resources[1]; + ACPI_DRTM_RESOURCE Resources[]; } ACPI_DRTM_RESOURCE_LIST; @@ -1239,7 +1322,7 @@ typedef struct acpi_table_ecdt ACPI_GENERIC_ADDRESS Data; /* Address of EC data register */ UINT32 Uid; /* Unique ID - must be same as the EC _UID method */ UINT8 Gpe; /* The GPE for the EC */ - UINT8 Id[1]; /* Full namepath of the EC in the ACPI namespace */ + UINT8 Id[]; /* Full namepath of the EC in the ACPI namespace */ } ACPI_TABLE_ECDT; diff --git a/source/include/actbl2.h b/source/include/actbl2.h index 4be5f0fce884..9b2812a0f22f 100644 --- a/source/include/actbl2.h +++ b/source/include/actbl2.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -179,6 +179,7 @@ #define ACPI_SIG_MADT "APIC" /* Multiple APIC Description Table */ #define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */ #define ACPI_SIG_MCHI "MCHI" /* Management Controller Host Interface table */ +#define ACPI_SIG_MPAM "MPAM" /* Memory System Resource Partitioning and Monitoring Table */ #define ACPI_SIG_MPST "MPST" /* Memory Power State Table */ #define ACPI_SIG_MSDM "MSDM" /* Microsoft Data Management Table */ #define ACPI_SIG_NFIT "NFIT" /* NVDIMM Firmware Interface Table */ @@ -191,6 +192,7 @@ #define ACPI_SIG_PRMT "PRMT" /* Platform Runtime Mechanism Table */ #define ACPI_SIG_RASF "RASF" /* RAS Feature table */ #define ACPI_SIG_RGRT "RGRT" /* Regulatory Graphics Resource Table */ +#define ACPI_SIG_RHCT "RHCT" /* RISC-V Hart Capabilities Table */ #define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */ #define ACPI_SIG_SDEI "SDEI" /* Software Delegated Exception Interface Table */ #define ACPI_SIG_SDEV "SDEV" /* Secure Devices table */ @@ -229,13 +231,12 @@ typedef struct acpi_table_aest { ACPI_TABLE_HEADER Header; - void *NodeArray[]; } ACPI_TABLE_AEST; /* Common Subtable header - one per Node Structure (Subtable) */ -typedef struct acpi_aest_hdr +typedef struct acpi_aest_hdr { UINT8 Type; UINT16 Length; @@ -266,7 +267,7 @@ typedef struct acpi_aest_hdr /* 0: Processor Error */ -typedef struct acpi_aest_processor +typedef struct acpi_aest_processor { UINT32 ProcessorId; UINT8 ResourceType; @@ -286,7 +287,7 @@ typedef struct acpi_aest_processor /* 0R: Processor Cache Resource Substructure */ -typedef struct acpi_aest_processor_cache +typedef struct acpi_aest_processor_cache { UINT32 CacheReference; UINT32 Reserved; @@ -302,7 +303,7 @@ typedef struct acpi_aest_processor_cache /* 1R: Processor TLB Resource Substructure */ -typedef struct acpi_aest_processor_tlb +typedef struct acpi_aest_processor_tlb { UINT32 TlbLevel; UINT32 Reserved; @@ -311,7 +312,7 @@ typedef struct acpi_aest_processor_tlb /* 2R: Processor Generic Resource Substructure */ -typedef struct acpi_aest_processor_generic +typedef struct acpi_aest_processor_generic { UINT32 Resource; @@ -319,7 +320,7 @@ typedef struct acpi_aest_processor_generic /* 1: Memory Error */ -typedef struct acpi_aest_memory +typedef struct acpi_aest_memory { UINT32 SratProximityDomain; @@ -327,7 +328,7 @@ typedef struct acpi_aest_memory /* 2: Smmu Error */ -typedef struct acpi_aest_smmu +typedef struct acpi_aest_smmu { UINT32 IortNodeReference; UINT32 SubcomponentReference; @@ -336,7 +337,7 @@ typedef struct acpi_aest_smmu /* 3: Vendor Defined */ -typedef struct acpi_aest_vendor +typedef struct acpi_aest_vendor { UINT32 AcpiHid; UINT32 AcpiUid; @@ -346,7 +347,7 @@ typedef struct acpi_aest_vendor /* 4: Gic Error */ -typedef struct acpi_aest_gic +typedef struct acpi_aest_gic { UINT32 InterfaceType; UINT32 InstanceId; @@ -364,7 +365,7 @@ typedef struct acpi_aest_gic /* Node Interface Structure */ -typedef struct acpi_aest_node_interface +typedef struct acpi_aest_node_interface { UINT8 Type; UINT8 Reserved[3]; @@ -386,7 +387,7 @@ typedef struct acpi_aest_node_interface /* Node Interrupt Structure */ -typedef struct acpi_aest_node_interrupt +typedef struct acpi_aest_node_interrupt { UINT8 Type; UINT8 Reserved[2]; @@ -571,7 +572,7 @@ typedef struct acpi_iort_node UINT32 Identifier; UINT32 MappingCount; UINT32 MappingOffset; - char NodeData[1]; + char NodeData[]; } ACPI_IORT_NODE; @@ -637,7 +638,7 @@ typedef struct acpi_iort_memory_access typedef struct acpi_iort_its_group { UINT32 ItsCount; - UINT32 Identifiers[1]; /* GIC ITS identifier array */ + UINT32 Identifiers[]; /* GIC ITS identifier array */ } ACPI_IORT_ITS_GROUP; @@ -647,7 +648,7 @@ typedef struct acpi_iort_named_component UINT32 NodeFlags; UINT64 MemoryProperties; /* Memory access properties */ UINT8 MemoryAddressLimit; /* Memory address size limit */ - char DeviceName[1]; /* Path of namespace object */ + char DeviceName[]; /* Path of namespace object */ } ACPI_IORT_NAMED_COMPONENT; @@ -663,7 +664,7 @@ typedef struct acpi_iort_root_complex UINT32 PciSegmentNumber; UINT8 MemoryAddressLimit; /* Memory address size limit */ UINT16 PasidCapabilities; /* PASID Capabilities */ - UINT8 Reserved[1]; /* Reserved, must be zero */ + UINT8 Reserved[]; /* Reserved, must be zero */ } ACPI_IORT_ROOT_COMPLEX; @@ -687,7 +688,7 @@ typedef struct acpi_iort_smmu UINT32 ContextInterruptOffset; UINT32 PmuInterruptCount; UINT32 PmuInterruptOffset; - UINT64 Interrupts[1]; /* Interrupt array */ + UINT64 Interrupts[]; /* Interrupt array */ } ACPI_IORT_SMMU; @@ -1134,7 +1135,8 @@ enum AcpiMadtType ACPI_MADT_TYPE_MSI_PIC = 21, ACPI_MADT_TYPE_BIO_PIC = 22, ACPI_MADT_TYPE_LPC_PIC = 23, - ACPI_MADT_TYPE_RESERVED = 24, /* 24 to 0x7F are reserved */ + ACPI_MADT_TYPE_RINTC = 24, + ACPI_MADT_TYPE_RESERVED = 25, /* 25 to 0x7F are reserved */ ACPI_MADT_TYPE_OEM_RESERVED = 0x80 /* 0x80 to 0xFF are reserved for OEM use */ }; @@ -1239,7 +1241,7 @@ typedef struct acpi_madt_local_sapic UINT8 Reserved[3]; /* Reserved, must be zero */ UINT32 LapicFlags; UINT32 Uid; /* Numeric UID - ACPI 3.0 */ - char UidString[1]; /* String UID - ACPI 3.0 */ + char UidString[]; /* String UID - ACPI 3.0 */ } ACPI_MADT_LOCAL_SAPIC; @@ -1290,7 +1292,7 @@ typedef struct acpi_madt_local_x2apic_nmi } ACPI_MADT_LOCAL_X2APIC_NMI; -/* 11: Generic Interrupt - GICC (ACPI 5.0 + ACPI 6.0 + ACPI 6.3 changes) */ +/* 11: Generic Interrupt - GICC (ACPI 5.0 + ACPI 6.0 + ACPI 6.3 + ACPI 6.5 changes) */ typedef struct acpi_madt_generic_interrupt { @@ -1311,6 +1313,7 @@ typedef struct acpi_madt_generic_interrupt UINT8 EfficiencyClass; UINT8 Reserved2[1]; UINT16 SpeInterrupt; /* ACPI 6.3 */ + UINT16 TrbeInterrupt; /* ACPI 6.5 */ } ACPI_MADT_GENERIC_INTERRUPT; @@ -1546,11 +1549,29 @@ enum AcpiMadtLpcPicVersion { ACPI_MADT_LPC_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ }; +/* 24: RISC-V INTC */ +struct acpi_madt_rintc { + ACPI_SUBTABLE_HEADER Header; + UINT8 Version; + UINT8 Reserved; + UINT32 Flags; + UINT64 HartId; + UINT32 Uid; /* ACPI processor UID */ +}; + +/* Values for RISC-V INTC Version field above */ + +enum AcpiMadtRintcVersion { + ACPI_MADT_RINTC_VERSION_NONE = 0, + ACPI_MADT_RINTC_VERSION_V1 = 1, + ACPI_MADT_RINTC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ +}; + /* 80: OEM data */ typedef struct acpi_madt_oem_data { - UINT8 OemData[0]; + ACPI_FLEX_ARRAY(UINT8, OemData); } ACPI_MADT_OEM_DATA; @@ -1639,6 +1660,132 @@ typedef struct acpi_table_mchi } ACPI_TABLE_MCHI; +/******************************************************************************* + * + * MPAM - Memory System Resource Partitioning and Monitoring + * + * Conforms to "ACPI for Memory System Resource Partitioning and Monitoring 2.0" + * Document number: ARM DEN 0065, December, 2022. + * + ******************************************************************************/ + +/* MPAM RIS locator types. Table 11, Location types */ +enum AcpiMpamLocatorType { + ACPI_MPAM_LOCATION_TYPE_PROCESSOR_CACHE = 0, + ACPI_MPAM_LOCATION_TYPE_MEMORY = 1, + ACPI_MPAM_LOCATION_TYPE_SMMU = 2, + ACPI_MPAM_LOCATION_TYPE_MEMORY_CACHE = 3, + ACPI_MPAM_LOCATION_TYPE_ACPI_DEVICE = 4, + ACPI_MPAM_LOCATION_TYPE_INTERCONNECT = 5, + ACPI_MPAM_LOCATION_TYPE_UNKNOWN = 0xFF +}; + +/* MPAM Functional dependency descriptor. Table 10 */ +typedef struct acpi_mpam_func_deps +{ + UINT32 Producer; + UINT32 Reserved; +} ACPI_MPAM_FUNC_DEPS; + +/* MPAM Processor cache locator descriptor. Table 13 */ +typedef struct acpi_mpam_resource_cache_locator +{ + UINT64 CacheReference; + UINT32 Reserved; +} ACPI_MPAM_RESOURCE_CACHE_LOCATOR; + +/* MPAM Memory locator descriptor. Table 14 */ +typedef struct acpi_mpam_resource_memory_locator +{ + UINT64 ProximityDomain; + UINT32 Reserved; +} ACPI_MPAM_RESOURCE_MEMORY_LOCATOR; + +/* MPAM SMMU locator descriptor. Table 15 */ +typedef struct acpi_mpam_resource_smmu_locator +{ + UINT64 SmmuInterface; + UINT32 Reserved; +} ACPI_MPAM_RESOURCE_SMMU_INTERFACE; + +/* MPAM Memory-side cache locator descriptor. Table 16 */ +typedef struct acpi_mpam_resource_memcache_locator +{ + UINT8 Reserved[7]; + UINT8 Level; + UINT32 Reference; +} ACPI_MPAM_RESOURCE_MEMCACHE_INTERFACE; + +/* MPAM ACPI device locator descriptor. Table 17 */ +typedef struct acpi_mpam_resource_acpi_locator +{ + UINT64 AcpiHwId; + UINT32 AcpiUniqueId; +} ACPI_MPAM_RESOURCE_ACPI_INTERFACE; + +/* MPAM Interconnect locator descriptor. Table 18 */ +typedef struct acpi_mpam_resource_interconnect_locator +{ + UINT64 InterConnectDescTblOff; + UINT32 Reserved; +} ACPI_MPAM_RESOURCE_INTERCONNECT_INTERFACE; + +/* MPAM Locator structure. Table 12 */ +typedef struct acpi_mpam_resource_generic_locator +{ + UINT64 Descriptor1; + UINT32 Descriptor2; +} ACPI_MPAM_RESOURCE_GENERIC_LOCATOR; + +typedef union acpi_mpam_resource_locator +{ + ACPI_MPAM_RESOURCE_CACHE_LOCATOR CacheLocator; + ACPI_MPAM_RESOURCE_MEMORY_LOCATOR MemoryLocator; + ACPI_MPAM_RESOURCE_SMMU_INTERFACE SmmuLocator; + ACPI_MPAM_RESOURCE_MEMCACHE_INTERFACE MemCacheLocator; + ACPI_MPAM_RESOURCE_ACPI_INTERFACE AcpiLocator; + ACPI_MPAM_RESOURCE_INTERCONNECT_INTERFACE InterconnectIfcLocator; + ACPI_MPAM_RESOURCE_GENERIC_LOCATOR GenericLocator; +} ACPI_MPAM_RESOURCE_LOCATOR; + +/* Memory System Component Resource Node Structure Table 9 */ +typedef struct acpi_mpam_resource_node +{ + UINT32 Identifier; + UINT8 RISIndex; + UINT16 Reserved1; + UINT8 LocatorType; + ACPI_MPAM_RESOURCE_LOCATOR Locator; + UINT32 NumFunctionalDeps; +} ACPI_MPAM_RESOURCE_NODE; + +/* Memory System Component (MSC) Node Structure. Table 4 */ +typedef struct acpi_mpam_msc_node +{ + UINT16 Length; + UINT8 InterfaceType; + UINT8 Reserved; + UINT32 Identifier; + UINT64 BaseAddress; + UINT32 MMIOSize; + UINT32 OverflowInterrupt; + UINT32 OverflowInterruptFlags; + UINT32 Reserved1; + UINT32 OverflowInterruptAffinity; + UINT32 ErrorInterrupt; + UINT32 ErrorInterruptFlags; + UINT32 Reserved2; + UINT32 ErrorInterruptAffinity; + UINT32 MaxNrdyUsec; + UINT64 HardwareIdLinkedDevice; + UINT32 InstanceIdLinkedDevice; + UINT32 NumResouceNodes; +} ACPI_MPAM_MSC_NODE; + +typedef struct acpi_table_mpam +{ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ +} ACPI_TABLE_MPAM; /******************************************************************************* * @@ -1917,7 +2064,7 @@ typedef struct acpi_nfit_interleave UINT16 Reserved; /* Reserved, must be zero */ UINT32 LineCount; UINT32 LineSize; - UINT32 LineOffset[1]; /* Variable length */ + UINT32 LineOffset[]; /* Variable length */ } ACPI_NFIT_INTERLEAVE; @@ -1928,7 +2075,7 @@ typedef struct acpi_nfit_smbios { ACPI_NFIT_HEADER Header; UINT32 Reserved; /* Reserved, must be zero */ - UINT8 Data[1]; /* Variable length */ + UINT8 Data[]; /* Variable length */ } ACPI_NFIT_SMBIOS; @@ -1994,7 +2141,7 @@ typedef struct acpi_nfit_flush_address UINT32 DeviceHandle; UINT16 HintCount; UINT8 Reserved[6]; /* Reserved, must be zero */ - UINT64 HintAddress[1]; /* Variable length */ + UINT64 HintAddress[]; /* Variable length */ } ACPI_NFIT_FLUSH_ADDRESS; @@ -3129,6 +3276,53 @@ enum AcpiRgrtImageType }; +/******************************************************************************* + * + * RHCT - RISC-V Hart Capabilities Table + * Version 1 + * + ******************************************************************************/ + +typedef struct acpi_table_rhct { + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + UINT32 Reserved; + UINT64 TimeBaseFreq; + UINT32 NodeCount; + UINT32 NodeOffset; +} ACPI_TABLE_RHCT; + +/* + * RHCT subtables + */ +typedef struct acpi_rhct_node_header { + UINT16 Type; + UINT16 Length; + UINT16 Revision; +} ACPI_RHCT_NODE_HEADER; + +/* Values for RHCT subtable Type above */ + +enum acpi_rhct_node_type { + ACPI_RHCT_NODE_TYPE_ISA_STRING = 0x0000, + ACPI_RHCT_NODE_TYPE_HART_INFO = 0xFFFF, +}; + +/* + * RHCT node specific subtables + */ + +/* ISA string node structure */ +typedef struct acpi_rhct_isa_string { + UINT16 IsaLength; + char Isa[]; +} ACPI_RHCT_ISA_STRING; + +/* Hart Info node structure */ +typedef struct acpi_rhct_hart_info { + UINT16 NumOffsets; + UINT32 Uid; /* ACPI processor UID */ +} ACPI_RHCT_HART_INFO; + /******************************************************************************* * * SBST - Smart Battery Specification Table diff --git a/source/include/actbl3.h b/source/include/actbl3.h index 7cc633a27b7c..15ef01959300 100644 --- a/source/include/actbl3.h +++ b/source/include/actbl3.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/actypes.h b/source/include/actypes.h index 92da002ab6b3..c0f0a87f4c65 100644 --- a/source/include/actypes.h +++ b/source/include/actypes.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -1481,7 +1481,7 @@ typedef struct acpi_mem_space_context } ACPI_MEM_SPACE_CONTEXT; -typedef struct acpi_data_table_space_context +typedef struct acpi_data_table_mapping { void *Pointer; @@ -1574,4 +1574,8 @@ typedef enum #define ACPI_FALLTHROUGH do {} while(0) #endif +#ifndef ACPI_FLEX_ARRAY +#define ACPI_FLEX_ARRAY(TYPE, NAME) TYPE NAME[0] +#endif + #endif /* __ACTYPES_H__ */ diff --git a/source/include/acutils.h b/source/include/acutils.h index a0e7953b16cf..bdca11c984cf 100644 --- a/source/include/acutils.h +++ b/source/include/acutils.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -196,6 +196,8 @@ extern const char *AcpiGbl_SbDecode[]; extern const char *AcpiGbl_FcDecode[]; extern const char *AcpiGbl_PtDecode[]; extern const char *AcpiGbl_PtypDecode[]; +extern const char *AcpiGbl_ClockInputMode[]; +extern const char *AcpiGbl_ClockInputScale[]; #endif /* diff --git a/source/include/acuuid.h b/source/include/acuuid.h index 2ab07bb39508..cf3abc0fc72b 100644 --- a/source/include/acuuid.h +++ b/source/include/acuuid.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/amlcode.h b/source/include/amlcode.h index 25d591e55d95..62cbffad0897 100644 --- a/source/include/amlcode.h +++ b/source/include/amlcode.h @@ -10,7 +10,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/amlresrc.h b/source/include/amlresrc.h index e89cd824d11d..a8e288add7ff 100644 --- a/source/include/amlresrc.h +++ b/source/include/amlresrc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -213,6 +213,8 @@ #define ACPI_RESTAG_TYPE "_TTP" /* Translation(1), Static (0) */ #define ACPI_RESTAG_XFERTYPE "_SIZ" /* 8(0), 8And16(1), 16(2) */ #define ACPI_RESTAG_VENDORDATA "_VEN" +#define ACPI_RESTAG_FQN "_FQN" +#define ACPI_RESTAG_FQD "_FQD" /* Default sizes for "small" resource descriptors */ @@ -501,7 +503,10 @@ typedef struct aml_resource_extended_irq AML_RESOURCE_LARGE_HEADER_COMMON UINT8 Flags; UINT8 InterruptCount; - UINT32 Interrupts[1]; + union { + UINT32 Interrupt; + ACPI_FLEX_ARRAY(UINT32, Interrupts); + } u; /* ResSourceIndex, ResSource optional fields follow */ } AML_RESOURCE_EXTENDED_IRQ; @@ -703,6 +708,23 @@ typedef struct aml_resource_pin_config } AML_RESOURCE_PIN_CONFIG; +#define AML_RESOURCE_CLOCK_INPUT_REVISION 1 /* ACPI 6.5 */ + +typedef struct aml_resource_clock_input +{ + AML_RESOURCE_LARGE_HEADER_COMMON + UINT8 RevisionId; + UINT16 Flags; + UINT16 FrequencyDivisor; + UINT32 FrequencyNumerator; + /* + * Optional fields follow immediately: + * 1) Resource Source index + * 2) Resource Source String + */ +} AML_RESOURCE_CLOCK_INPUT; + + #define AML_RESOURCE_PIN_CONFIG_REVISION 1 /* ACPI 6.2 */ typedef struct aml_resource_pin_group @@ -819,6 +841,7 @@ typedef union aml_resource AML_RESOURCE_PIN_GROUP PinGroup; AML_RESOURCE_PIN_GROUP_FUNCTION PinGroupFunction; AML_RESOURCE_PIN_GROUP_CONFIG PinGroupConfig; + AML_RESOURCE_CLOCK_INPUT ClockInput; /* Utility overlays */ diff --git a/source/include/platform/accygwin.h b/source/include/platform/accygwin.h index 217237d9ba82..98782ff8e50a 100644 --- a/source/include/platform/accygwin.h +++ b/source/include/platform/accygwin.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acdragonflyex.h b/source/include/platform/acdragonflyex.h index ba3ef0168422..bfc3273b45cc 100644 --- a/source/include/platform/acdragonflyex.h +++ b/source/include/platform/acdragonflyex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acefi.h b/source/include/platform/acefi.h index fefcca84311d..71cdf2f91e33 100644 --- a/source/include/platform/acefi.h +++ b/source/include/platform/acefi.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acefiex.h b/source/include/platform/acefiex.h index 83aa907b6013..8df422b44eb0 100644 --- a/source/include/platform/acefiex.h +++ b/source/include/platform/acefiex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -508,7 +508,7 @@ typedef struct { ACPI_EFI_TIME LastAccessTime; ACPI_EFI_TIME ModificationTime; UINT64 Attribute; - CHAR16 FileName[1]; + CHAR16 FileName[]; } ACPI_EFI_FILE_INFO; #define SIZE_OF_ACPI_EFI_FILE_INFO ACPI_OFFSET(ACPI_EFI_FILE_INFO, FileName) diff --git a/source/include/platform/acenv.h b/source/include/platform/acenv.h index 674c4c7d02c3..1fc692db8030 100644 --- a/source/include/platform/acenv.h +++ b/source/include/platform/acenv.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -358,6 +358,8 @@ #elif defined(_AED_EFI) || defined(_GNU_EFI) || defined(_EDK2_EFI) #include "acefi.h" +#elif defined(__ZEPHYR__) +#include "aczephyr.h" #else /* Unknown environment */ diff --git a/source/include/platform/acenvex.h b/source/include/platform/acenvex.h index 32db36c6e86c..33e19b689df9 100644 --- a/source/include/platform/acenvex.h +++ b/source/include/platform/acenvex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acfreebsd.h b/source/include/platform/acfreebsd.h index 022f7165e3cb..ffe6a485687c 100644 --- a/source/include/platform/acfreebsd.h +++ b/source/include/platform/acfreebsd.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acgcc.h b/source/include/platform/acgcc.h index 3ad22a1f8ac1..55a66c6da23c 100644 --- a/source/include/platform/acgcc.h +++ b/source/include/platform/acgcc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -211,4 +211,15 @@ typedef __builtin_va_list va_list; #define ACPI_FALLTHROUGH __attribute__((__fallthrough__)) #endif +/* + * Flexible array members are not allowed to be part of a union under + * C99, but this is not for any technical reason. Work around the + * limitation. + */ +#define ACPI_FLEX_ARRAY(TYPE, NAME) \ + struct { \ + struct { } __Empty_ ## NAME; \ + TYPE NAME[]; \ + } + #endif /* __ACGCC_H__ */ diff --git a/source/include/platform/acgccex.h b/source/include/platform/acgccex.h index 035b999d95c3..156bab471e5b 100644 --- a/source/include/platform/acgccex.h +++ b/source/include/platform/acgccex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/achaiku.h b/source/include/platform/achaiku.h index 81c1927ccc7f..505b4139a3e3 100644 --- a/source/include/platform/achaiku.h +++ b/source/include/platform/achaiku.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -194,8 +194,8 @@ struct mutex; #define ACPI_FLUSH_CPU_CACHE() __asm __volatile("wbinvd"); /* Based on FreeBSD's due to lack of documentation */ -extern int AcpiOsAcquireGlobalLock(uint32 *lock); -extern int AcpiOsReleaseGlobalLock(uint32 *lock); +int AcpiOsAcquireGlobalLock(uint32 *lock); +int AcpiOsReleaseGlobalLock(uint32 *lock); #define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) do { \ (Acq) = AcpiOsAcquireGlobalLock(&((GLptr)->GlobalLock)); \ diff --git a/source/include/platform/acintel.h b/source/include/platform/acintel.h index 889c7594ef73..bfdc286bf142 100644 --- a/source/include/platform/acintel.h +++ b/source/include/platform/acintel.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/aclinux.h b/source/include/platform/aclinux.h index 1c55c659f357..da37a2fad03d 100644 --- a/source/include/platform/aclinux.h +++ b/source/include/platform/aclinux.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -310,7 +310,10 @@ #define ACPI_USE_STANDARD_HEADERS #ifdef ACPI_USE_STANDARD_HEADERS +#include #include + +#define ACPI_OFFSET(d, f) offsetof(d, f) #endif /* Define/disable kernel-specific declarators */ @@ -329,7 +332,7 @@ #if defined(__ia64__) || (defined(__x86_64__) && !defined(__ILP32__)) ||\ defined(__aarch64__) || defined(__PPC64__) ||\ - defined(__s390x__) ||\ + defined(__s390x__) || defined(__loongarch__) ||\ (defined(__riscv) && (defined(__LP64__) || defined(_LP64))) #define ACPI_MACHINE_WIDTH 64 #define COMPILER_DEPENDENT_INT64 long diff --git a/source/include/platform/aclinuxex.h b/source/include/platform/aclinuxex.h index 4e84cd4b7e94..a10412a7b6ef 100644 --- a/source/include/platform/aclinuxex.h +++ b/source/include/platform/aclinuxex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acmacosx.h b/source/include/platform/acmacosx.h index 0335cc0ae5d6..0166c2452a66 100644 --- a/source/include/platform/acmacosx.h +++ b/source/include/platform/acmacosx.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acmsvc.h b/source/include/platform/acmsvc.h index 736706530d93..d6a265d2269b 100644 --- a/source/include/platform/acmsvc.h +++ b/source/include/platform/acmsvc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acmsvcex.h b/source/include/platform/acmsvcex.h index 2350d859641a..306ef619c616 100644 --- a/source/include/platform/acmsvcex.h +++ b/source/include/platform/acmsvcex.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acnetbsd.h b/source/include/platform/acnetbsd.h index c0e3619d6597..b948a5d6de52 100644 --- a/source/include/platform/acnetbsd.h +++ b/source/include/platform/acnetbsd.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acos2.h b/source/include/platform/acos2.h index fe776095e3cd..f3b1183de885 100644 --- a/source/include/platform/acos2.h +++ b/source/include/platform/acos2.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acqnx.h b/source/include/platform/acqnx.h index db1c103fa4cb..40b50ceb9f4c 100644 --- a/source/include/platform/acqnx.h +++ b/source/include/platform/acqnx.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acwin.h b/source/include/platform/acwin.h index dc2d1eb5b5d0..90dc0e3ca437 100644 --- a/source/include/platform/acwin.h +++ b/source/include/platform/acwin.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/acwin64.h b/source/include/platform/acwin64.h index e20454520a4e..f151435ab6ff 100644 --- a/source/include/platform/acwin64.h +++ b/source/include/platform/acwin64.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/include/platform/aczephyr.h b/source/include/platform/aczephyr.h new file mode 100644 index 000000000000..20d3c040cc2e --- /dev/null +++ b/source/include/platform/aczephyr.h @@ -0,0 +1,192 @@ +/****************************************************************************** + * + * Module Name: aczephyr.h - OS specific defines, etc. + * + *****************************************************************************/ + +/****************************************************************************** + * + * 1. Copyright Notice + * + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. + * All rights reserved. + * + * 2. License + * + * 2.1. This is your license from Intel Corp. under its intellectual property + * rights. You may have additional license terms from the party that provided + * you this software, covering your right to use that party's intellectual + * property rights. + * + * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a + * copy of the source code appearing in this file ("Covered Code") an + * irrevocable, perpetual, worldwide license under Intel's copyrights in the + * base code distributed originally by Intel ("Original Intel Code") to copy, + * make derivatives, distribute, use and display any portion of the Covered + * Code in any form, with the right to sublicense such rights; and + * + * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent + * license (with the right to sublicense), under only those claims of Intel + * patents that are infringed by the Original Intel Code, to make, use, sell, + * offer to sell, and import the Covered Code and derivative works thereof + * solely to the minimum extent necessary to exercise the above copyright + * license, and in no event shall the patent license extend to any additions + * to or modifications of the Original Intel Code. No other license or right + * is granted directly or by implication, estoppel or otherwise; + * + * The above copyright and patent license is granted only if the following + * conditions are met: + * + * 3. Conditions + * + * 3.1. Redistribution of Source with Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification with rights to further distribute source must include + * the above Copyright Notice, the above License, this list of Conditions, + * and the following Disclaimer and Export Compliance provision. In addition, + * Licensee must cause all Covered Code to which Licensee contributes to + * contain a file documenting the changes Licensee made to create that Covered + * Code and the date of any change. Licensee must include in that file the + * documentation of any changes made by any predecessor Licensee. Licensee + * must include a prominent statement that the modification is derived, + * directly or indirectly, from Original Intel Code. + * + * 3.2. Redistribution of Source with no Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification without rights to further distribute source must + * include the following Disclaimer and Export Compliance provision in the + * documentation and/or other materials provided with distribution. In + * addition, Licensee may not authorize further sublicense of source of any + * portion of the Covered Code, and must include terms to the effect that the + * license from Licensee to its licensee is limited to the intellectual + * property embodied in the software Licensee provides to its licensee, and + * not to intellectual property embodied in modifications its licensee may + * make. + * + * 3.3. Redistribution of Executable. Redistribution in executable form of any + * substantial portion of the Covered Code or modification must reproduce the + * above Copyright Notice, and the following Disclaimer and Export Compliance + * provision in the documentation and/or other materials provided with the + * distribution. + * + * 3.4. Intel retains all right, title, and interest in and to the Original + * Intel Code. + * + * 3.5. Neither the name Intel nor any other trademark owned or controlled by + * Intel shall be used in advertising or otherwise to promote the sale, use or + * other dealings in products derived from or relating to the Covered Code + * without prior written authorization from Intel. + * + * 4. Disclaimer and Export Compliance + * + * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED + * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE + * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, + * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY + * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY + * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A + * PARTICULAR PURPOSE. + * + * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES + * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR + * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, + * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY + * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL + * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS + * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY + * LIMITED REMEDY. + * + * 4.3. Licensee shall not export, either directly or indirectly, any of this + * software or system incorporating such software without first obtaining any + * required license or other approval from the U. S. Department of Commerce or + * any other agency or department of the United States Government. In the + * event Licensee exports any such software from the United States or + * re-exports any such software from a foreign destination, Licensee shall + * ensure that the distribution and export/re-export of the software is in + * compliance with all laws, regulations, orders, or other restrictions of the + * U.S. Export Administration Regulations. Licensee agrees that neither it nor + * any of its subsidiaries will export/re-export any technical data, process, + * software, or service, directly or indirectly, to any country for which the + * United States government or any agency thereof requires an export license, + * other governmental approval, or letter of assurance, without first obtaining + * such license, approval or letter. + * + ***************************************************************************** + * + * Alternatively, you may choose to be licensed under the terms of the + * following license: + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions, and the following disclaimer, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * substantially similar to the "NO WARRANTY" disclaimer below + * ("Disclaimer") and any redistribution must be conditioned upon + * including a substantially similar Disclaimer requirement for further + * binary redistribution. + * 3. Neither the names of the above-listed copyright holders nor the names + * of any contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Alternatively, you may choose to be licensed under the terms of the + * GNU General Public License ("GPL") version 2 as published by the Free + * Software Foundation. + * + *****************************************************************************/ + +#ifndef __ACZEPHYR_H__ +#define __ACZEPHYR_H__ + +#define SEEK_SET FS_SEEK_SET +#define SEEK_END FS_SEEK_END + +#define ACPI_MACHINE_WIDTH 64 + +#define ACPI_NO_ERROR_MESSAGES +#undef ACPI_DEBUG_OUTPUT +#define ACPI_USE_SYSTEM_CLIBRARY +#undef ACPI_DBG_TRACK_ALLOCATIONS +#define ACPI_SINGLE_THREADED +#define ACPI_USE_NATIVE_RSDP_POINTER + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/****************************************************************************** + * + * FUNCTION: AcpiEnableDbgPrint + * + * PARAMETERS: Enable, - Enable/Disable debug print + * + * RETURN: None + * + * DESCRIPTION: Enable/disable debug print + * + *****************************************************************************/ + +void AcpiEnableDbgPrint ( + bool Enable); +#endif diff --git a/source/os_specific/service_layers/osbsdtbl.c b/source/os_specific/service_layers/osbsdtbl.c index 043dec46f0ca..7babce61a8db 100644 --- a/source/os_specific/service_layers/osbsdtbl.c +++ b/source/os_specific/service_layers/osbsdtbl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oslinuxtbl.c b/source/os_specific/service_layers/oslinuxtbl.c index ad5888f10859..4382c82eb66c 100644 --- a/source/os_specific/service_layers/oslinuxtbl.c +++ b/source/os_specific/service_layers/oslinuxtbl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osunixdir.c b/source/os_specific/service_layers/osunixdir.c index 54f53ea2deb4..ed69c33c51b8 100644 --- a/source/os_specific/service_layers/osunixdir.c +++ b/source/os_specific/service_layers/osunixdir.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osunixmap.c b/source/os_specific/service_layers/osunixmap.c index 2f6e0b14b632..c1252852286c 100644 --- a/source/os_specific/service_layers/osunixmap.c +++ b/source/os_specific/service_layers/osunixmap.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/osunixxf.c b/source/os_specific/service_layers/osunixxf.c index ef1651b67d9f..addccb71a517 100644 --- a/source/os_specific/service_layers/osunixxf.c +++ b/source/os_specific/service_layers/osunixxf.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oswindir.c b/source/os_specific/service_layers/oswindir.c index b523102a5546..30ce06d9b20f 100644 --- a/source/os_specific/service_layers/oswindir.c +++ b/source/os_specific/service_layers/oswindir.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oswintbl.c b/source/os_specific/service_layers/oswintbl.c index e053f056850a..2542e0da2ee8 100644 --- a/source/os_specific/service_layers/oswintbl.c +++ b/source/os_specific/service_layers/oswintbl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oswinxf.c b/source/os_specific/service_layers/oswinxf.c index dc85f9bcf13b..532218937260 100644 --- a/source/os_specific/service_layers/oswinxf.c +++ b/source/os_specific/service_layers/oswinxf.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/os_specific/service_layers/oszephyr.c b/source/os_specific/service_layers/oszephyr.c new file mode 100644 index 000000000000..cc5136f0d6aa --- /dev/null +++ b/source/os_specific/service_layers/oszephyr.c @@ -0,0 +1,1151 @@ +/****************************************************************************** + * + * Module Name: oszephyr - Zephyr OSL + * + *****************************************************************************/ + +/****************************************************************************** + * + * 1. Copyright Notice + * + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. + * All rights reserved. + * + * 2. License + * + * 2.1. This is your license from Intel Corp. under its intellectual property + * rights. You may have additional license terms from the party that provided + * you this software, covering your right to use that party's intellectual + * property rights. + * + * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a + * copy of the source code appearing in this file ("Covered Code") an + * irrevocable, perpetual, worldwide license under Intel's copyrights in the + * base code distributed originally by Intel ("Original Intel Code") to copy, + * make derivatives, distribute, use and display any portion of the Covered + * Code in any form, with the right to sublicense such rights; and + * + * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent + * license (with the right to sublicense), under only those claims of Intel + * patents that are infringed by the Original Intel Code, to make, use, sell, + * offer to sell, and import the Covered Code and derivative works thereof + * solely to the minimum extent necessary to exercise the above copyright + * license, and in no event shall the patent license extend to any additions + * to or modifications of the Original Intel Code. No other license or right + * is granted directly or by implication, estoppel or otherwise; + * + * The above copyright and patent license is granted only if the following + * conditions are met: + * + * 3. Conditions + * + * 3.1. Redistribution of Source with Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification with rights to further distribute source must include + * the above Copyright Notice, the above License, this list of Conditions, + * and the following Disclaimer and Export Compliance provision. In addition, + * Licensee must cause all Covered Code to which Licensee contributes to + * contain a file documenting the changes Licensee made to create that Covered + * Code and the date of any change. Licensee must include in that file the + * documentation of any changes made by any predecessor Licensee. Licensee + * must include a prominent statement that the modification is derived, + * directly or indirectly, from Original Intel Code. + * + * 3.2. Redistribution of Source with no Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification without rights to further distribute source must + * include the following Disclaimer and Export Compliance provision in the + * documentation and/or other materials provided with distribution. In + * addition, Licensee may not authorize further sublicense of source of any + * portion of the Covered Code, and must include terms to the effect that the + * license from Licensee to its licensee is limited to the intellectual + * property embodied in the software Licensee provides to its licensee, and + * not to intellectual property embodied in modifications its licensee may + * make. + * + * 3.3. Redistribution of Executable. Redistribution in executable form of any + * substantial portion of the Covered Code or modification must reproduce the + * above Copyright Notice, and the following Disclaimer and Export Compliance + * provision in the documentation and/or other materials provided with the + * distribution. + * + * 3.4. Intel retains all right, title, and interest in and to the Original + * Intel Code. + * + * 3.5. Neither the name Intel nor any other trademark owned or controlled by + * Intel shall be used in advertising or otherwise to promote the sale, use or + * other dealings in products derived from or relating to the Covered Code + * without prior written authorization from Intel. + * + * 4. Disclaimer and Export Compliance + * + * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED + * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE + * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, + * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY + * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY + * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A + * PARTICULAR PURPOSE. + * + * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES + * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR + * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, + * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY + * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL + * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS + * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY + * LIMITED REMEDY. + * + * 4.3. Licensee shall not export, either directly or indirectly, any of this + * software or system incorporating such software without first obtaining any + * required license or other approval from the U. S. Department of Commerce or + * any other agency or department of the United States Government. In the + * event Licensee exports any such software from the United States or + * re-exports any such software from a foreign destination, Licensee shall + * ensure that the distribution and export/re-export of the software is in + * compliance with all laws, regulations, orders, or other restrictions of the + * U.S. Export Administration Regulations. Licensee agrees that neither it nor + * any of its subsidiaries will export/re-export any technical data, process, + * software, or service, directly or indirectly, to any country for which the + * United States government or any agency thereof requires an export license, + * other governmental approval, or letter of assurance, without first obtaining + * such license, approval or letter. + * + ***************************************************************************** + * + * Alternatively, you may choose to be licensed under the terms of the + * following license: + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions, and the following disclaimer, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * substantially similar to the "NO WARRANTY" disclaimer below + * ("Disclaimer") and any redistribution must be conditioned upon + * including a substantially similar Disclaimer requirement for further + * binary redistribution. + * 3. Neither the names of the above-listed copyright holders nor the names + * of any contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Alternatively, you may choose to be licensed under the terms of the + * GNU General Public License ("GPL") version 2 as published by the Free + * Software Foundation. + * + *****************************************************************************/ + +#include "acpi.h" +#include "accommon.h" +#include "acapps.h" +#include "aslcompiler.h" +#include +#include +#include +#include + +#include +LOG_MODULE_DECLARE(acpica, LOG_LEVEL_ERR); + +typedef void (*zephyr_irq_t)(const void *); + +#define ASL_MSG_BUFFER_SIZE (1024 * 128) + +/* Global varibles use from acpica lib. */ +BOOLEAN AslGbl_DoTemplates = FALSE; +BOOLEAN AslGbl_VerboseTemplates = FALSE; + +char AslGbl_MsgBuffer[ASL_MSG_BUFFER_SIZE]; +static BOOLEAN EnDbgPrint; + + +/****************************************************************************** + * + * FUNCTION: AcpiOsReadable + * + * PARAMETERS: Pointer - Area to be verified + * Length - Size of area + * + * RETURN: TRUE if readable for entire Length + * + * DESCRIPTION: Verify that a pointer is valid for reading + * + *****************************************************************************/ + +BOOLEAN +AcpiOsReadable ( + void *Pointer, + ACPI_SIZE Length) +{ + return (TRUE); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiEnableDbgPrint + * + * PARAMETERS: en, - Enable/Disable debug print + * + * RETURN: None + * + * DESCRIPTION: Formatted output + * + *****************************************************************************/ + +void +AcpiEnableDbgPrint ( + bool Enable) +{ + if (Enable) + { + EnDbgPrint = TRUE; + } + else + { + EnDbgPrint = FALSE; + } +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsPrintf + * + * PARAMETERS: Fmt, ... - Standard printf format + * + * RETURN: None + * + * DESCRIPTION: Formatted output + * + *****************************************************************************/ + +void ACPI_INTERNAL_VAR_XFACE +AcpiOsPrintf ( + const char *Fmt, + ...) +{ + va_list args; + + va_start (args, Fmt); + + if (EnDbgPrint) + { + printk (Fmt, args); + } + + va_end (args); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsGetLine + * + * PARAMETERS: Buffer - Where to return the command line + * BufferLength - Maximum Length of Buffer + * BytesRead - Where the actual byte count is returned + * + * RETURN: Status and actual bytes read + * + * DESCRIPTION: Formatted input with argument list pointer + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsGetLine ( + char *Buffer, + UINT32 BufferLength, + UINT32 *BytesRead) +{ + return (-1); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsAllocate + * + * PARAMETERS: Size - Amount to allocate, in bytes + * + * RETURN: Pointer to the new allocation. Null on error. + * + * DESCRIPTION: Allocate memory. Algorithm is dependent on the OS. + * + *****************************************************************************/ + +void * +AcpiOsAllocate ( + ACPI_SIZE Size) +{ + return (k_malloc (Size)); +} + + +#ifdef USE_NATIVE_ALLOCATE_ZEROED +/****************************************************************************** + * + * FUNCTION: AcpiOsAllocateZeroed + * + * PARAMETERS: Size - Amount to allocate, in bytes + * + * RETURN: Pointer to the new allocation. Null on error. + * + * DESCRIPTION: Allocate and zero memory. Algorithm is dependent on the OS. + * + *****************************************************************************/ + +void * +AcpiOsAllocateZeroed ( + ACPI_SIZE Size) +{ + void *mem; + + mem = AcpiOsAllocate (Size); + + if (mem) + { + memset (mem, 0, Size); + } + + return (mem); +} +#endif + + +/****************************************************************************** + * + * FUNCTION: AcpiOsFree + * + * PARAMETERS: Mem - Pointer to previously allocated memory + * + * RETURN: None. + * + * DESCRIPTION: Free memory allocated via AcpiOsAllocate + * + *****************************************************************************/ + +void +AcpiOsFree ( + void *Mem) +{ + k_free (Mem); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsReadMemory + * + * PARAMETERS: Address - Physical Memory Address to read + * Value - Where Value is placed + * Width - Number of bits (8,16,32, or 64) + * + * RETURN: Value read from physical memory Address. Always returned + * as a 64-bit integer, regardless of the read Width. + * + * DESCRIPTION: Read data from a physical memory Address + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsReadMemory ( + ACPI_PHYSICAL_ADDRESS Address, + UINT64 *Value, + UINT32 Width) +{ + switch (Width) + { + case 8: + + *((UINT8 *) Value) = sys_read8 (Address); + break; + + case 16: + + *((UINT16 *) Value) = sys_read16 (Address); + break; + + case 32: + + *((UINT32 *) Value) = sys_read32 (Address); + break; + + case 64: + + *((UINT64 *) Value) = sys_read64 (Address); + break; + + default: + + return (AE_BAD_PARAMETER); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsWriteMemory + * + * PARAMETERS: Address - Physical Memory Address to write + * Value - Value to write + * Width - Number of bits (8,16,32, or 64) + * + * RETURN: None + * + * DESCRIPTION: Write data to a physical memory Address + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsWriteMemory ( + ACPI_PHYSICAL_ADDRESS Address, + UINT64 Value, + UINT32 Width) +{ + switch (Width) + { + case 8: + + sys_write8 ((UINT8) Value, Address); + break; + + case 16: + + sys_write16 ((UINT16) Value, Address); + break; + + case 32: + + sys_write32 ((UINT32) Value, Address); + break; + + case 64: + + sys_write64 ((UINT64) Value, Address); + break; + + default: + + return (AE_BAD_PARAMETER); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsReadPort + * + * PARAMETERS: Address - Address of I/O port/register to read + * Value - Where Value is placed + * Width - Number of bits + * + * RETURN: Value read from port + * + * DESCRIPTION: Read data from an I/O port or register + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsReadPort ( + ACPI_IO_ADDRESS Address, + UINT32 *Value, + UINT32 Width) +{ + + switch (Width) + { + case 8: + + *((UINT8 *) Value) = sys_in8 (Address); + break; + + case 16: + + *((UINT16 *) Value) = sys_in16 (Address); + break; + + case 32: + + *((UINT32 *) Value) = sys_in32 (Address); + break; + + case 64: + + *((UINT32 *) Value) = sys_in32 (Address); + *((UINT32 *) Value + 4) = sys_in32 (Address + 4); + break; + + default: + + return (AE_BAD_PARAMETER); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsWritePort + * + * PARAMETERS: Address - Address of I/O port/register to write + * Value - Value to write + * Width - Number of bits + * + * RETURN: None + * + * DESCRIPTION: Write data to an I/O port or register + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsWritePort ( + ACPI_IO_ADDRESS Address, + UINT32 Value, + UINT32 Width) +{ + + switch (Width) + { + case 8: + + sys_out8 ((UINT8) Value, Address); + break; + + case 16: + + sys_out16 ((UINT16) Value, Address); + break; + + case 32: + + sys_out32 ((UINT32) Value, Address); + break; + + case 64: + + sys_out32 ((UINT32) Value, Address); + sys_out32 ((UINT32) (Value + 4), (Address + 4)); + break; + + default: + + return (AE_BAD_PARAMETER); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsWritePciConfiguration + * + * PARAMETERS: PciId - Seg/Bus/Dev + * Register - Device Register + * Value - Value to be written + * Width - Number of bits + * + * RETURN: Status + * + * DESCRIPTION: Write data to PCI configuration space + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsWritePciConfiguration ( + ACPI_PCI_ID *PciId, + UINT32 Register, + UINT64 Value, + UINT32 Width) +{ + UINT32 value32; + pcie_bdf_t bdf = PCIE_BDF (PciId->Bus, PciId->Device, PciId->Function); + + + switch (Width) + { + case 8: + + value32 = pcie_conf_read (bdf, Register); + value32 = (value32 & 0xffffff00) | (UINT8) Value; + pcie_conf_write (bdf, Register, value32); + break; + + case 16: + + value32 = pcie_conf_read (bdf, Register); + value32 = (value32 & 0xffff0000) | (UINT16) Value; + pcie_conf_write (bdf, Register, value32); + break; + + case 32: + + pcie_conf_write (bdf, Register, (UINT32) Value); + break; + + case 64: + + pcie_conf_write (bdf, Register, (UINT32) Value); + pcie_conf_write (bdf, (Register + 4), (UINT32) (Value >> 32)); + break; + + default: + + return (AE_BAD_PARAMETER); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsReadPciConfiguration + * + * PARAMETERS: PciId - Seg/Bus/Dev + * Register - Device Register + * Value - Buffer Where Value is placed + * Width - Number of bits + * + * RETURN: Status + * + * DESCRIPTION: Read data from PCI configuration space + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsReadPciConfiguration ( + ACPI_PCI_ID *PciId, + UINT32 Register, + UINT64 *Value, + UINT32 Width) +{ + + pcie_bdf_t bdf = PCIE_BDF (PciId->Bus, PciId->Device, PciId->Function); + + switch (Width) + { + case 8: + + *((UINT8 *) Value) = (UINT8) pcie_conf_read (bdf, Register); + break; + + case 16: + + *((UINT16 *) Value) = (UINT16) pcie_conf_read (bdf, Register); + break; + + case 32: + + *((UINT32 *) Value) = (UINT32) pcie_conf_read (bdf, Register); + break; + + case 64: + + *((UINT32 *) Value) = (UINT32) pcie_conf_read (bdf, Register); + *((UINT32 *) Value + 1) = (UINT32) pcie_conf_read (bdf, (Register + 4)); + break; + + default: + + return (AE_BAD_PARAMETER); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsRedirectOutput + * + * PARAMETERS: Destination - An open file handle/pointer + * + * RETURN: None + * + * DESCRIPTION: Causes redirect of AcpiOsPrintf and AcpiOsVprintf + * + *****************************************************************************/ + +void +AcpiOsRedirectOutput ( + void *Destination) +{ + +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsPredefinedOverride + * + * PARAMETERS: InitVal - Initial Value of the predefined object + * NewVal - The new Value for the object + * + * RETURN: Status, pointer to Value. Null pointer returned if not + * overriding. + * + * DESCRIPTION: Allow the OS to override predefined names + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsPredefinedOverride ( + const ACPI_PREDEFINED_NAMES *InitVal, + ACPI_STRING *NewVal) +{ + + if (!InitVal || !NewVal) + { + return (AE_BAD_PARAMETER); + } + + *NewVal = NULL; + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsTableOverride + * + * PARAMETERS: ExistingTable - Header of current table (probably firmware) + * NewTable - Where an entire new table is returned. + * + * RETURN: Status, pointer to new table. Null pointer returned if no + * table is available to override + * + * DESCRIPTION: Return a different version of a table if one is available + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsTableOverride ( + ACPI_TABLE_HEADER *ExistingTable, + ACPI_TABLE_HEADER **NewTable) +{ + + if (!ExistingTable || !NewTable) + { + return (AE_BAD_PARAMETER); + } + + *NewTable = NULL; + + return (AE_NO_ACPI_TABLES); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsGetRootPointer + * + * PARAMETERS: None + * + * RETURN: RSDP physical Address + * + * DESCRIPTION: Gets the root pointer (RSDP) + * + *****************************************************************************/ + +ACPI_PHYSICAL_ADDRESS +AcpiOsGetRootPointer ( + void) +{ + + LOG_DBG (""); + return ((ACPI_PHYSICAL_ADDRESS) efi_get_acpi_rsdp ()); +} + + +#ifndef ACPI_USE_NATIVE_MEMORY_MAPPING +/****************************************************************************** + * + * FUNCTION: AcpiOsMapMemory + * + * PARAMETERS: Where - Physical Address of memory to be mapped + * Length - How much memory to map + * + * RETURN: Pointer to mapped memory. Null on error. + * + * DESCRIPTION: Map physical memory into caller's Address space + * + *****************************************************************************/ + +void * +AcpiOsMapMemory ( + ACPI_PHYSICAL_ADDRESS Where, + ACPI_SIZE Length) +{ + uint8_t *VirtlAdd; + + LOG_DBG (""); + z_phys_map (&VirtlAdd, Where, Length, 0); + return ((void *) VirtlAdd); +} +#endif + + +/****************************************************************************** + * + * FUNCTION: AcpiOsUnmapMemory + * + * PARAMETERS: Where - Logical Address of memory to be unmapped + * Length - How much memory to unmap + * + * RETURN: None. + * + * DESCRIPTION: Delete a previously created mapping. Where and Length must + * correspond to a previous mapping exactly. + * + *****************************************************************************/ + +void +AcpiOsUnmapMemory ( + void *Where, + ACPI_SIZE Length) +{ + LOG_DBG (""); + z_phys_unmap (Where, Length); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsPhysicalTableOverride + * + * PARAMETERS: ExistingTable - Header of current table (probably firmware) + * NewAddress - Where new table Address is returned + * (Physical Address) + * NewTableLength - Where new table Length is returned + * + * RETURN: Status, Address/Length of new table. Null pointer returned + * if no table is available to override. + * + * DESCRIPTION: Returns AE_SUPPORT, function not used in user space. + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsPhysicalTableOverride ( + ACPI_TABLE_HEADER *ExistingTable, + ACPI_PHYSICAL_ADDRESS *NewAddress, + UINT32 *NewTableLength) +{ + + LOG_DBG (""); + return (AE_SUPPORT); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsInitialize + * + * PARAMETERS: None + * + * RETURN: Status + * + * DESCRIPTION: Init this OSL + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsInitialize ( + void) +{ + LOG_DBG (""); + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsStall + * + * PARAMETERS: Microseconds - Time to stall + * + * RETURN: None. Blocks until stall is completed. + * + * DESCRIPTION: Sleep at microsecond granularity + * + *****************************************************************************/ + +void +AcpiOsStall ( + UINT32 Microseconds) +{ + k_busy_wait (Microseconds); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsSleep + * + * PARAMETERS: Milliseconds - Time to sleep + * + * RETURN: None. Blocks until sleep is completed. + * + * DESCRIPTION: Sleep at millisecond granularity + * + *****************************************************************************/ + +void +AcpiOsSleep ( + UINT64 Milliseconds) +{ + k_msleep ((UINT32) Milliseconds); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsEnterSleep + * + * PARAMETERS: SleepState - Which sleep state to enter + * RegaValue - Register A Value + * RegbValue - Register B Value + * + * RETURN: Status + * + * DESCRIPTION: A hook before writing sleep registers to enter the sleep + * state. Return AE_CTRL_SKIP to skip further sleep register + * writes. + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsEnterSleep ( + UINT8 SleepState, + UINT32 RegaValue, + UINT32 RegbValue) +{ + __ASSERT (FALSE, "function Not implemented"); + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsGetTimer + * + * PARAMETERS: None + * + * RETURN: Current ticks in 100-nanosecond units + * + * DESCRIPTION: Get the Value of a system timer + * + ******************************************************************************/ + +UINT64 +AcpiOsGetTimer ( + void) +{ + return (k_cycle_get_64 ()); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsInstallInterruptHandler + * + * PARAMETERS: InterruptNumber - Level handler should respond to. + * ServiceRoutine - Address of the ACPI interrupt handler + * Context - User context + * + * RETURN: Handle to the newly installed handler. + * + * DESCRIPTION: Install an interrupt handler. Used to install the ACPI + * OS-independent handler. + * + *****************************************************************************/ + +UINT32 +AcpiOsInstallInterruptHandler ( + UINT32 InterruptNumber, + ACPI_OSD_HANDLER ServiceRoutine, + void *Context) +{ + LOG_DBG (""); + irq_connect_dynamic (InterruptNumber, 3, (zephyr_irq_t) ServiceRoutine, Context, + IRQ_TYPE_LOWEST_LEVEL_LOW); + irq_enable (InterruptNumber); + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsRemoveInterruptHandler + * + * PARAMETERS: Handle - Returned when handler was installed + * + * RETURN: Status + * + * DESCRIPTION: Uninstalls an interrupt handler. + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsRemoveInterruptHandler ( + UINT32 InterruptNumber, + ACPI_OSD_HANDLER ServiceRoutine) +{ + + LOG_DBG (""); + irq_disable (InterruptNumber); + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsSignal + * + * PARAMETERS: Function - ACPICA signal function code + * Info - Pointer to function-dependent structure + * + * RETURN: Status + * + * DESCRIPTION: Miscellaneous functions. Example implementation only. + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsSignal ( + UINT32 Function, + void *Info) +{ + switch (Function) + { + case ACPI_SIGNAL_FATAL: + LOG_DBG ("ACPI_SIGNAL_FATAL error"); + break; + + case ACPI_SIGNAL_BREAKPOINT: + LOG_DBG ("ACPI_SIGNAL_BREAKPOINT"); + break; + + default: + break; + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: Spinlock/Semaphore interfaces + * + * DESCRIPTION: Map these interfaces to semaphore interfaces + * + *****************************************************************************/ + +#ifdef ACPI_SINGLE_THREADED +ACPI_STATUS +AcpiOsCreateLock ( + ACPI_SPINLOCK *OutHandle) +{ + LOG_DBG (""); + + return (AE_OK); +} + +void +AcpiOsDeleteLock ( + ACPI_SPINLOCK Handle) +{ + LOG_DBG (""); +} + +ACPI_CPU_FLAGS +AcpiOsAcquireLock ( + ACPI_SPINLOCK Handle) +{ + LOG_DBG (""); + return (0); +} + +void +AcpiOsReleaseLock ( + ACPI_SPINLOCK Handle, + ACPI_CPU_FLAGS Flags) +{ + LOG_DBG (""); +} + +ACPI_STATUS +AcpiOsCreateSemaphore ( + UINT32 MaxUnits, + UINT32 InitialUnits, + ACPI_HANDLE *OutHandle) +{ + *OutHandle = (ACPI_HANDLE) 1; + return (AE_OK); +} + +ACPI_STATUS +AcpiOsDeleteSemaphore ( + ACPI_HANDLE Handle) +{ + return (AE_OK); +} + +ACPI_STATUS +AcpiOsWaitSemaphore ( + ACPI_HANDLE Handle, + UINT32 Units, + UINT16 Timeout) +{ + return (AE_OK); +} + +ACPI_STATUS +AcpiOsSignalSemaphore ( + ACPI_HANDLE Handle, + UINT32 Units) +{ + return (AE_OK); +} + +ACPI_THREAD_ID +AcpiOsGetThreadId ( + void) +{ + LOG_DBG (""); + return (1); +} + +ACPI_STATUS +AcpiOsExecute ( + ACPI_EXECUTE_TYPE Type, + ACPI_OSD_EXEC_CALLBACK Function, + void *Context) +{ + Function (Context); + return (AE_OK); +} +#endif diff --git a/source/tools/acpibin/abcompare.c b/source/tools/acpibin/abcompare.c index f974f129ac14..c3a42c4c676f 100644 --- a/source/tools/acpibin/abcompare.c +++ b/source/tools/acpibin/abcompare.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpibin/abmain.c b/source/tools/acpibin/abmain.c index 365b437d90aa..6bacb2a38f64 100644 --- a/source/tools/acpibin/abmain.c +++ b/source/tools/acpibin/abmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpibin/acpibin.h b/source/tools/acpibin/acpibin.h index 510b3a855c99..ea90aee2b36b 100644 --- a/source/tools/acpibin/acpibin.h +++ b/source/tools/acpibin/acpibin.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/acpidump.h b/source/tools/acpidump/acpidump.h index 87858875f2ae..d8c14a636ec6 100644 --- a/source/tools/acpidump/acpidump.h +++ b/source/tools/acpidump/acpidump.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/apdump.c b/source/tools/acpidump/apdump.c index 0cf8d00ab8de..f2e8076753a3 100644 --- a/source/tools/acpidump/apdump.c +++ b/source/tools/acpidump/apdump.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/apfiles.c b/source/tools/acpidump/apfiles.c index 16371088efa3..902408e9cd01 100644 --- a/source/tools/acpidump/apfiles.c +++ b/source/tools/acpidump/apfiles.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpidump/apmain.c b/source/tools/acpidump/apmain.c index 5fba99bb1627..5bb2c24ceff3 100644 --- a/source/tools/acpidump/apmain.c +++ b/source/tools/acpidump/apmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aecommon.h b/source/tools/acpiexec/aecommon.h index 7bfdd278c17d..0745aac2b12b 100644 --- a/source/tools/acpiexec/aecommon.h +++ b/source/tools/acpiexec/aecommon.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeexception.c b/source/tools/acpiexec/aeexception.c index f0903c1f65fc..326407c8efab 100644 --- a/source/tools/acpiexec/aeexception.c +++ b/source/tools/acpiexec/aeexception.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeexec.c b/source/tools/acpiexec/aeexec.c index 5bf1ebd33893..af6a18f78228 100644 --- a/source/tools/acpiexec/aeexec.c +++ b/source/tools/acpiexec/aeexec.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aehandlers.c b/source/tools/acpiexec/aehandlers.c index 9b12aa65e0fb..e36a4759fa6e 100644 --- a/source/tools/acpiexec/aehandlers.c +++ b/source/tools/acpiexec/aehandlers.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeinitfile.c b/source/tools/acpiexec/aeinitfile.c index 600f2c7d8044..c3d4d8e5b1a8 100644 --- a/source/tools/acpiexec/aeinitfile.c +++ b/source/tools/acpiexec/aeinitfile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeinstall.c b/source/tools/acpiexec/aeinstall.c index 28d08d8abf82..9e1940c3fbe3 100644 --- a/source/tools/acpiexec/aeinstall.c +++ b/source/tools/acpiexec/aeinstall.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aemain.c b/source/tools/acpiexec/aemain.c index 9c5a6e0db151..01fee3ba459e 100644 --- a/source/tools/acpiexec/aemain.c +++ b/source/tools/acpiexec/aemain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aeregion.c b/source/tools/acpiexec/aeregion.c index 400fd66e3f07..f0646729ca0b 100644 --- a/source/tools/acpiexec/aeregion.c +++ b/source/tools/acpiexec/aeregion.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aetables.c b/source/tools/acpiexec/aetables.c index c758084ce583..6cee6daebc35 100644 --- a/source/tools/acpiexec/aetables.c +++ b/source/tools/acpiexec/aetables.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aetables.h b/source/tools/acpiexec/aetables.h index 446210ae325d..0f2a0498e375 100644 --- a/source/tools/acpiexec/aetables.h +++ b/source/tools/acpiexec/aetables.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpiexec/aetests.c b/source/tools/acpiexec/aetests.c index 94e26686ae51..f35527fb1aba 100644 --- a/source/tools/acpiexec/aetests.c +++ b/source/tools/acpiexec/aetests.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/acpihelp.h b/source/tools/acpihelp/acpihelp.h index abc9480ef7cb..87cb66451a2c 100644 --- a/source/tools/acpihelp/acpihelp.h +++ b/source/tools/acpihelp/acpihelp.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahaml.c b/source/tools/acpihelp/ahaml.c index df8326908240..04cd3faf8155 100644 --- a/source/tools/acpihelp/ahaml.c +++ b/source/tools/acpihelp/ahaml.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahamlops.c b/source/tools/acpihelp/ahamlops.c index bd2b13fb7239..a27c11d42f09 100644 --- a/source/tools/acpihelp/ahamlops.c +++ b/source/tools/acpihelp/ahamlops.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahasl.c b/source/tools/acpihelp/ahasl.c index 0b046995f612..dea6bebdaf78 100644 --- a/source/tools/acpihelp/ahasl.c +++ b/source/tools/acpihelp/ahasl.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahaslkey.c b/source/tools/acpihelp/ahaslkey.c index 40da5b33d7c4..0f1fa80a4720 100644 --- a/source/tools/acpihelp/ahaslkey.c +++ b/source/tools/acpihelp/ahaslkey.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahaslops.c b/source/tools/acpihelp/ahaslops.c index 00c05de2cf0b..44f3a4f8bc47 100644 --- a/source/tools/acpihelp/ahaslops.c +++ b/source/tools/acpihelp/ahaslops.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahdecode.c b/source/tools/acpihelp/ahdecode.c index 0de81918f783..f9a328b7abf9 100644 --- a/source/tools/acpihelp/ahdecode.c +++ b/source/tools/acpihelp/ahdecode.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahgrammar.c b/source/tools/acpihelp/ahgrammar.c index 03838bd97c1c..5c50f02f13c8 100644 --- a/source/tools/acpihelp/ahgrammar.c +++ b/source/tools/acpihelp/ahgrammar.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpihelp/ahmain.c b/source/tools/acpihelp/ahmain.c index 6570cbc66508..828b7524148a 100644 --- a/source/tools/acpihelp/ahmain.c +++ b/source/tools/acpihelp/ahmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/acpisrc.h b/source/tools/acpisrc/acpisrc.h index 0ebfaef35f3f..733127f3049d 100644 --- a/source/tools/acpisrc/acpisrc.h +++ b/source/tools/acpisrc/acpisrc.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/ascase.c b/source/tools/acpisrc/ascase.c index 4f231704b0e6..b64fa7fbd690 100644 --- a/source/tools/acpisrc/ascase.c +++ b/source/tools/acpisrc/ascase.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/asconvrt.c b/source/tools/acpisrc/asconvrt.c index ab34a6fe17a2..0027e45a9935 100644 --- a/source/tools/acpisrc/asconvrt.c +++ b/source/tools/acpisrc/asconvrt.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -185,7 +185,7 @@ AsCountLines ( #define MODULE_HEADER_BEGIN "/******************************************************************************\n *\n * Module Name:"; #define MODULE_HEADER_END " *****************************************************************************/\n\n" -#define INTEL_COPYRIGHT " * Copyright (C) 2000 - 2022, Intel Corp.\n" +#define INTEL_COPYRIGHT " * Copyright (C) 2000 - 2023, Intel Corp.\n" /* Opening signature of the Intel legal header */ @@ -1230,7 +1230,6 @@ AsTabify8 ( char *NewSubBuffer; char *CommentEnd = NULL; UINT32 SpaceCount = 0; - UINT32 Column = 0; UINT32 TabCount = 0; UINT32 LastLineTabCount = 0; UINT32 LastLineColumnStart = 0; @@ -1246,7 +1245,6 @@ AsTabify8 ( /* This is a standalone blank line */ FirstNonBlank = NULL; - Column = 0; SpaceCount = 0; TabCount = 0; SubBuffer++; @@ -1285,8 +1283,6 @@ AsTabify8 ( } } - Column++; - /* Check if we are in a comment */ if ((SubBuffer[0] == '*') && @@ -1379,7 +1375,6 @@ AsTabify8 ( FirstNonBlank = NULL; LastLineColumnStart = ThisColumnStart; - Column = 0; SpaceCount = 0; } else @@ -1618,6 +1613,8 @@ AsInsertPrefix ( int TrailingSpaces; char LowerKeyword[128]; int KeywordLength; + char *LineStart; + BOOLEAN FoundPrefix; switch (Type) @@ -1664,7 +1661,66 @@ AsInsertPrefix ( { /* Make sure the keyword isn't already prefixed with the insert */ - if (!strncmp (SubString - InsertLength, InsertString, InsertLength)) + /* We find the beginning of the line and try to find the InsertString + * from LineStart up to SubBuffer (our keyword). If it's not there, + * we assume it doesn't have a prefix; this is a limitation, as having + * a keyword on another line is absolutely valid C. + */ + + LineStart = SubString; + FoundPrefix = FALSE; + + /* Find the start of the line */ + + while (LineStart > Buffer) + { + if (*LineStart == '\n') + { + LineStart++; + break; + } + + LineStart--; + } + + /* Try to find InsertString from the start of the line up to SubBuffer */ + /* Note that this algorithm is a bit naive. */ + + while (SubBuffer > LineStart) + { + if (*LineStart != *InsertString) + { + LineStart++; + continue; + } + + if (strncmp (LineStart++, InsertString, InsertLength)) + { + continue; + } + + FoundPrefix = TRUE; + LineStart += InsertLength - 1; + + /* Now check if there's non-whitespace between InsertString and SubBuffer, as that + * means it's not a valid prefix in this case. */ + + while (LineStart != SubBuffer) + { + if (!strchr (" \t\r\n", *LineStart)) + { + /* We found non-whitespace while traversing up to SubBuffer, + * so this isn't a prefix. + */ + FoundPrefix = FALSE; + break; + } + + LineStart++; + } + } + + if (FoundPrefix) { /* Add spaces if not already at the end-of-line */ diff --git a/source/tools/acpisrc/asfile.c b/source/tools/acpisrc/asfile.c index 3f8f97c44b2a..b79e0823d1e8 100644 --- a/source/tools/acpisrc/asfile.c +++ b/source/tools/acpisrc/asfile.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/asmain.c b/source/tools/acpisrc/asmain.c index aa382f0b2d0e..7b8be3762d7c 100644 --- a/source/tools/acpisrc/asmain.c +++ b/source/tools/acpisrc/asmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/asremove.c b/source/tools/acpisrc/asremove.c index 7f230af15251..4bd6a1597049 100644 --- a/source/tools/acpisrc/asremove.c +++ b/source/tools/acpisrc/asremove.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpisrc/astable.c b/source/tools/acpisrc/astable.c index d2da8e3011e6..f12ea3e2ecd6 100644 --- a/source/tools/acpisrc/astable.c +++ b/source/tools/acpisrc/astable.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License @@ -197,7 +197,7 @@ ACPI_STRING_TABLE StandardDataTypes[] = { char EmptyHeader[] = ""; char DualLicenseHeader[] = "/*\n" -" * Copyright (C) 2000 - 2022, Intel Corp.\n" +" * Copyright (C) 2000 - 2023, Intel Corp.\n" " * All rights reserved.\n" " *\n" " * Redistribution and use in source and binary forms, with or without\n" @@ -306,6 +306,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_CONVERSION_TABLE", SRC_TYPE_STRUCT}, {"ACPI_CPU_FLAGS", SRC_TYPE_SIMPLE}, {"ACPI_CREATE_FIELD_INFO", SRC_TYPE_STRUCT}, + {"ACPI_DATA_TABLE_MAPPING", SRC_TYPE_STRUCT}, {"ACPI_DB_ARGUMENT_INFO", SRC_TYPE_STRUCT}, {"ACPI_DB_COMMAND_HELP", SRC_TYPE_STRUCT}, {"ACPI_DB_COMMAND_INFO", SRC_TYPE_STRUCT}, @@ -339,6 +340,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_FIND_CONTEXT", SRC_TYPE_STRUCT}, {"ACPI_FIXED_EVENT_HANDLER", SRC_TYPE_STRUCT}, {"ACPI_FIXED_EVENT_INFO", SRC_TYPE_STRUCT}, + {"ACPI_FFH_INFO", SRC_TYPE_STRUCT}, {"ACPI_GBL_EVENT_HANDLER", SRC_TYPE_SIMPLE}, {"ACPI_GENERIC_ADDRESS", SRC_TYPE_STRUCT}, {"ACPI_GENERIC_STATE", SRC_TYPE_UNION}, @@ -373,6 +375,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_LPIT_HEADER", SRC_TYPE_STRUCT}, {"ACPI_LPIT_IO", SRC_TYPE_STRUCT}, {"ACPI_LPIT_NATIVE", SRC_TYPE_STRUCT}, + {"ACPI_MEM_MAPPING", SRC_TYPE_STRUCT}, {"ACPI_MEM_SPACE_CONTEXT", SRC_TYPE_STRUCT}, {"ACPI_MEMORY_ATTRIBUTE", SRC_TYPE_STRUCT}, {"ACPI_MEMORY_LIST", SRC_TYPE_STRUCT}, @@ -649,6 +652,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_BGRT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_BOOT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_CCEL", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_CDAT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_CEDT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_CPEP", SRC_TYPE_STRUCT}, {"ACPI_TABLE_CSRT", SRC_TYPE_STRUCT}, @@ -672,6 +676,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_TABLE_MADT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MCFG", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MCHI", SRC_TYPE_STRUCT}, + {"ACPI_TABLE_MPAM", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MPST", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MSCT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_MSDM", SRC_TYPE_STRUCT}, @@ -829,6 +834,9 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"ACPI_MADT_MULTIPROC_WAKEUP_MAILBOX", SRC_TYPE_STRUCT}, {"ACPI_MADT_PROCESSOR_APIC", SRC_TYPE_STRUCT}, {"ACPI_MCFG_ALLOCATION", SRC_TYPE_STRUCT}, + {"ACPI_MPAM_MSC_NODE", SRC_TYPE_STRUCT}, + {"ACPI_MPAM_RESOURCE_LOCATOR", SRC_TYPE_STRUCT}, + {"ACPI_MPAM_RESOURCE_NODE", SRC_TYPE_STRUCT}, {"ACPI_MPST_COMPONENT", SRC_TYPE_STRUCT}, {"ACPI_MPST_DATA_HDR", SRC_TYPE_STRUCT}, {"ACPI_MPST_POWER_DATA", SRC_TYPE_STRUCT}, @@ -955,6 +963,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = { {"AH_ASL_KEYWORD", SRC_TYPE_STRUCT}, {"AH_DEVICE_ID", SRC_TYPE_STRUCT}, {"AH_PREDEFINED_NAME", SRC_TYPE_STRUCT}, + {"AH_TABLE", SRC_TYPE_STRUCT}, {"AH_UUID", SRC_TYPE_STRUCT}, /* AcpiXtract utility */ @@ -1245,8 +1254,8 @@ ACPI_CONVERSION_TABLE LicenseConversionTable = ACPI_STRING_TABLE CustomReplacements[] = { - {"(c) 1999 - 2021", "(c) 1999 - 2022", REPLACE_WHOLE_WORD}, /* Main ACPICA source */ - {"(c) 2006 - 2021", "(c) 2006 - 2022", REPLACE_WHOLE_WORD}, /* Test suites */ + {"(c) 1999 - 2021", "(c) 1999 - 2023", REPLACE_WHOLE_WORD}, /* Main ACPICA source */ + {"(c) 2006 - 2021", "(c) 2006 - 2023", REPLACE_WHOLE_WORD}, /* Test suites */ #if 0 {"SUPPORT, ASSISTANCE", "SUPPORT, ASSISTANCE", REPLACE_WHOLE_WORD}, /* Fix intel header */ diff --git a/source/tools/acpisrc/asutils.c b/source/tools/acpisrc/asutils.c index cc97cca6b2cd..6d481ea818a5 100644 --- a/source/tools/acpisrc/asutils.c +++ b/source/tools/acpisrc/asutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/acpixtract.c b/source/tools/acpixtract/acpixtract.c index 30bb06e5b531..fd53818c9b6c 100644 --- a/source/tools/acpixtract/acpixtract.c +++ b/source/tools/acpixtract/acpixtract.c @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/acpixtract.h b/source/tools/acpixtract/acpixtract.h index 2e7646bbd68e..bff2ed5c73ef 100644 --- a/source/tools/acpixtract/acpixtract.h +++ b/source/tools/acpixtract/acpixtract.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/axmain.c b/source/tools/acpixtract/axmain.c index 30f3d68a9517..c504783ee6a5 100644 --- a/source/tools/acpixtract/axmain.c +++ b/source/tools/acpixtract/axmain.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/acpixtract/axutils.c b/source/tools/acpixtract/axutils.c index 54021778f4d4..a51cc6917376 100644 --- a/source/tools/acpixtract/axutils.c +++ b/source/tools/acpixtract/axutils.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/efihello/efihello.c b/source/tools/efihello/efihello.c index ed4c8b4ec6bb..a8aead35c645 100644 --- a/source/tools/efihello/efihello.c +++ b/source/tools/efihello/efihello.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/examples.c b/source/tools/examples/examples.c index 0b4497508a5f..235775556fe2 100644 --- a/source/tools/examples/examples.c +++ b/source/tools/examples/examples.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/examples.h b/source/tools/examples/examples.h index 66c28219b0e1..2881926baf03 100644 --- a/source/tools/examples/examples.h +++ b/source/tools/examples/examples.h @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/exstubs.c b/source/tools/examples/exstubs.c index 2cc8636fb996..a4fc1ad21b6c 100644 --- a/source/tools/examples/exstubs.c +++ b/source/tools/examples/exstubs.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License diff --git a/source/tools/examples/extables.c b/source/tools/examples/extables.c index 8633788ea821..5c58baf019f1 100644 --- a/source/tools/examples/extables.c +++ b/source/tools/examples/extables.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp. * All rights reserved. * * 2. License From ef3ba9d625927fd4592a8c071698a562821485bd Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Tue, 30 Jan 2024 16:49:20 -0500 Subject: [PATCH 10/10] Import ACPICA 20230628 --- changes.txt | 30 ++++ source/common/ahpredef.c | 1 + source/common/dmtable.c | 26 ++++ source/common/dmtbdump2.c | 83 ++++++++++- source/common/dmtbinfo1.c | 2 +- source/common/dmtbinfo2.c | 173 +++++++++++++++++++++- source/compiler/aslrestype2.c | 6 +- source/compiler/dttable2.c | 67 ++++++++- source/compiler/dttemplate.h | 51 +++++-- source/components/debugger/dbcmds.c | 60 +++++++- source/components/debugger/dbinput.c | 8 + source/components/disassembler/dmresrcl.c | 2 +- source/components/dispatcher/dswstate.c | 4 +- source/components/events/evevent.c | 11 +- source/components/executer/exserial.c | 3 +- source/components/hardware/hwsleep.c | 11 -- source/components/parser/psopcode.c | 2 +- source/components/resources/rsaddr.c | 2 +- source/components/resources/rscreate.c | 8 +- source/components/resources/rsdumpinfo.c | 8 +- source/components/resources/rsirq.c | 12 +- source/components/utilities/utdebug.c | 5 + source/components/utilities/utglobal.c | 1 - source/include/acdebug.h | 4 + source/include/acdisasm.h | 13 ++ source/include/acglobal.h | 1 + source/include/aclocal.h | 29 ++-- source/include/acnames.h | 1 + source/include/acpixf.h | 2 +- source/include/acpredef.h | 3 + source/include/acrestyp.h | 8 +- source/include/actbinfo.h | 15 +- source/include/actbl1.h | 4 +- source/include/actbl2.h | 81 +++++++++- source/include/actbl3.h | 4 +- source/include/actypes.h | 3 +- source/include/amlresrc.h | 2 +- source/include/platform/aclinux.h | 1 + source/include/platform/aczephyr.h | 3 - source/tools/acpiexec/aeinstall.c | 118 ++++++++++++++- 40 files changed, 769 insertions(+), 99 deletions(-) diff --git a/changes.txt b/changes.txt index af896ec7e0b0..edcc674d90ab 100644 --- a/changes.txt +++ b/changes.txt @@ -1,4 +1,34 @@ ---------------------------------------- +28 June 2023. Summary of changes for version 20230628: + +0) Global changes: + +Fixed a problem with the ASL/AML Timer() operator. Discovered by UBSAN: ?array-index-out-of-bounds in acpica/dswexec.c:401:12 index -1 is out of range for type 'acpi_operand_object?. Added AML_NO_OPERAND_RESOLVE flag to Timer (since there are no runtime arguments). Reported by: Abhishek Mainkar abmainkar@nvidia.com. + +Added a define for size of acpi_srat_generic_affinity DeviceHandle. Replaced a magic number with a define. The Linux kernel code will utilize this. Reported by Dave Jiang dave.jiang@intel.com. + +Added support for _DSC (Deepest State for Configuration) as per ACPI 6.5. + +1) ACPICA kernel-resident subsystem: + +Added port definitions for CDAT SSLBIS. Add upstream port and any port definitions for SSLBIS. Reported by: Dave Jiang dave.jiang@intel.com. + +Fixed misspelled CDAT DSMAS define: ACPI_CEDT_DSMAS_NON_VOLATILE -> ACPI_CDAT_DSMAS_NON_VOLATILE. Reported by: Dave Jiang dave.jiang@intel.com. + +1) ACPICA kernel-resident subsystem: + +Fix GCC 12 dangling-pointer warning. We're storing a persistent pointer to an ephemeral local variable which technically is a dangling pointer and the compiler is correct. However, since we never indirect the pointer, this is a safe operation and we can suppress the warning. + +Also, some C run-times (like MUSL) aren't including indirectly so we must include it explicitly or we won't have the type definition for uintptr_t. + +2) iASL Compiler/Disassembler and ACPICA tools:. + +IASL/RHCT: Enable dumping and compiling newly added nodes. The RHCT table is updated with new nodes. Add compile and dump functionality for these new structures. + +AcpiExec: Added a new command, ?interrupt?. The Interrupt command simulates an interrupt with a IntID (GSIV) equal to the first argument of the call/invocation. The acpiexec code simulates the behavior by OSPM: execute the _EVT method of the GED device associated with that IntID. Submitted by: Jose Marinho jose.marinho@arm.com. + +AcpiExec: Detect GED device and keep track of _EVT. The GED device is described by a _HID of ACPI0013. This code traverses the namespace identifying all GED devices. For each GED device in the namespace we record the Interrupt object and the _EVT method. This information is used when an interrupt is simulated via the ?interrupt? command. Submitted by: Jose Marinho jose.marinho@arm.com. +---------------------------------------- 31 March 2023. Summary of changes for version 20230331: This release is available at https://acpica.org/downloads diff --git a/source/common/ahpredef.c b/source/common/ahpredef.c index f4080587f45d..a1f3a12529e2 100644 --- a/source/common/ahpredef.c +++ b/source/common/ahpredef.c @@ -234,6 +234,7 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] = AH_PREDEF ("_DMA", "Direct Memory Access", "Returns device current resources for DMA transactions, and resource field"), AH_PREDEF ("_DOD", "Display Output Devices", "Enumerate all devices attached to the display adapter"), AH_PREDEF ("_DOS", "Disable Output Switching", "Sets the display output switching mode"), + AH_PREDEF ("_DSC", "Deepest State for Configuration", "Returns the deepest D-state of the device to the OSPM"), AH_PREDEF ("_DPL", "Device Selection Polarity", "Polarity of Device Selection signal, Resource Descriptor field"), AH_PREDEF ("_DRS", "Drive Strength", "Drive Strength setting for GPIO connection, Resource Descriptor field"), AH_PREDEF ("_DSD", "Device-Specific Data", "Returns a list of device property information"), diff --git a/source/common/dmtable.c b/source/common/dmtable.c index 31ca73904a8a..f0cc5b99c065 100644 --- a/source/common/dmtable.c +++ b/source/common/dmtable.c @@ -430,6 +430,9 @@ static const char *AcpiDmMadtSubnames[] = "Bridge I/O Interrupt Controller", /* ACPI_MADT_TYPE_BIO_PIC */ "LPC Interrupt Controller", /* ACPI_MADT_TYPE_LPC_PIC */ "RISC-V Interrupt Controller", /* ACPI_MADT_TYPE_RINTC */ + "RISC-V Incoming MSI Controller", /* ACPI_MADT_TYPE_IMSIC */ + "RISC-V APLIC Controller", /* ACPI_MADT_TYPE_APLIC */ + "RISC-V PLIC Controller", /* ACPI_MADT_TYPE_PLIC */ "Unknown Subtable Type", /* Reserved */ "Types 80-FF are used for OEM data" /* Reserved for OEM data */ }; @@ -669,6 +672,14 @@ static const char *AcpiDmGasAccessWidth[] = "Unknown Width Encoding" }; +static const char *AcpiDmRhctSubnames[] = +{ + "RISC-V ISA string structure", /* ACPI_RHCT_ISA_STRING */ + "RISC-V CMO node structure", /* ACPI_RHCT_CMO_NODE */ + "RISC-V MMU node structure", /* ACPI_RHCT_MMU_NODE */ + "RISC-V Hart Info structure", /* ACPI_RHCT_HART_INFO */ +}; + /******************************************************************************* * @@ -1190,6 +1201,7 @@ AcpiDmDumpTable ( case ACPI_DMT_NFIT: case ACPI_DMT_NHLT1e: case ACPI_DMT_PHAT: + case ACPI_DMT_RHCT: ByteLength = 2; break; @@ -2169,6 +2181,20 @@ AcpiDmDumpTable ( AcpiDmRgrtSubnames[Temp8]); break; + case ACPI_DMT_RHCT: + + /* RHCT subtable types */ + + Temp16 = ACPI_GET16 (Target); + if (Temp16 == ACPI_RHCT_NODE_TYPE_HART_INFO) + { + Temp16 = ACPI_RHCT_NODE_TYPE_RESERVED; + } + + AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target), + AcpiDmRhctSubnames[Temp16]); + break; + case ACPI_DMT_SDEV: /* SDEV subtable types */ diff --git a/source/common/dmtbdump2.c b/source/common/dmtbdump2.c index e9c5dbfd6621..fd377cb26f21 100644 --- a/source/common/dmtbdump2.c +++ b/source/common/dmtbdump2.c @@ -990,6 +990,61 @@ AcpiDmDumpMadt ( InfoTable = AcpiDmTableInfoMadt16; break; + case ACPI_MADT_TYPE_CORE_PIC: + + InfoTable = AcpiDmTableInfoMadt17; + break; + + case ACPI_MADT_TYPE_LIO_PIC: + + InfoTable = AcpiDmTableInfoMadt18; + break; + + case ACPI_MADT_TYPE_HT_PIC: + + InfoTable = AcpiDmTableInfoMadt19; + break; + + case ACPI_MADT_TYPE_EIO_PIC: + + InfoTable = AcpiDmTableInfoMadt20; + break; + + case ACPI_MADT_TYPE_MSI_PIC: + + InfoTable = AcpiDmTableInfoMadt21; + break; + + case ACPI_MADT_TYPE_BIO_PIC: + + InfoTable = AcpiDmTableInfoMadt22; + break; + + case ACPI_MADT_TYPE_LPC_PIC: + + InfoTable = AcpiDmTableInfoMadt23; + break; + + case ACPI_MADT_TYPE_RINTC: + + InfoTable = AcpiDmTableInfoMadt24; + break; + + case ACPI_MADT_TYPE_IMSIC: + + InfoTable = AcpiDmTableInfoMadt25; + break; + + case ACPI_MADT_TYPE_APLIC: + + InfoTable = AcpiDmTableInfoMadt26; + break; + + case ACPI_MADT_TYPE_PLIC: + + InfoTable = AcpiDmTableInfoMadt27; + break; + default: if ((Subtable->Type >= ACPI_MADT_TYPE_RESERVED) && @@ -1021,7 +1076,7 @@ AcpiDmDumpMadt ( /* Dump the OEM data */ Status = AcpiDmDumpTable (Length, Offset, ACPI_CAST_PTR (UINT8, Table) + Offset, - Subtable->Length - sizeof (ACPI_SUBTABLE_HEADER), AcpiDmTableInfoMadt17); + Subtable->Length - sizeof (ACPI_SUBTABLE_HEADER), AcpiDmTableInfoMadt128); if (ACPI_FAILURE (Status)) { return; @@ -1058,16 +1113,16 @@ AcpiDmDumpMadt ( Subtable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Subtable, Subtable->Length); - DbgPrint (ASL_PARSE_OUTPUT, "//[5) Next Subtable %p, length %X]\n", - Subtable, Subtable->Length); - DbgPrint (ASL_PARSE_OUTPUT, "//[5B) Offset from table start: 0x%8.8X%8.8X (%p)]\n", - ACPI_FORMAT_UINT64 (ACPI_CAST_PTR (char, Subtable) - ACPI_CAST_PTR (char, Table)), Subtable); - Offset = ACPI_CAST_PTR (char, Subtable) - ACPI_CAST_PTR (char, Table); if (Offset >= Table->Length) { return; } + + DbgPrint (ASL_PARSE_OUTPUT, "//[5) Next Subtable %p, length %X]\n", + Subtable, Subtable->Length); + DbgPrint (ASL_PARSE_OUTPUT, "//[5B) Offset from table start: 0x%8.8X%8.8X (%p)]\n", + ACPI_FORMAT_UINT64 (ACPI_CAST_PTR (char, Subtable) - ACPI_CAST_PTR (char, Table)), Subtable); } } @@ -2765,6 +2820,8 @@ AcpiDmDumpRhct ( ACPI_RHCT_NODE_HEADER *Subtable; ACPI_RHCT_HART_INFO *RhctHartInfo; ACPI_RHCT_ISA_STRING *RhctIsaString; + ACPI_RHCT_CMO_NODE *RhctCmoNode; + ACPI_RHCT_MMU_NODE *RhctMmuNode; UINT32 Length = Table->Length; UINT8 SubtableOffset, IsaPadOffset; UINT32 Offset = sizeof (ACPI_TABLE_RHCT); @@ -2850,6 +2907,20 @@ AcpiDmDumpRhct ( (Subtable->Length - IsaPadOffset), AcpiDmTableInfoRhctIsaPad); } + break; + + case ACPI_RHCT_NODE_TYPE_CMO: + RhctCmoNode = ACPI_ADD_PTR (ACPI_RHCT_CMO_NODE, Subtable, SubtableOffset); + Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, + RhctCmoNode, 4, AcpiDmTableInfoRhctCmo1); + break; + + case ACPI_RHCT_NODE_TYPE_MMU: + RhctMmuNode = ACPI_ADD_PTR (ACPI_RHCT_MMU_NODE, Subtable, SubtableOffset); + Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, + RhctMmuNode, 2, AcpiDmTableInfoRhctMmu1); + break; + default: break; } diff --git a/source/common/dmtbinfo1.c b/source/common/dmtbinfo1.c index e4632085d11e..11cf67151356 100644 --- a/source/common/dmtbinfo1.c +++ b/source/common/dmtbinfo1.c @@ -947,7 +947,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoDmar4[] = { {ACPI_DMT_UINT24, ACPI_DMAR4_OFFSET (Reserved[0]), "Reserved", 0}, {ACPI_DMT_UINT8, ACPI_DMAR4_OFFSET (DeviceNumber), "Device Number", 0}, - {ACPI_DMT_STRING, ACPI_DMAR4_OFFSET (u.DeviceName[0]), "Device Name", 0}, + {ACPI_DMT_STRING, ACPI_DMAR4_OFFSET (DeviceName[0]), "Device Name", 0}, ACPI_DMT_TERMINATOR }; diff --git a/source/common/dmtbinfo2.c b/source/common/dmtbinfo2.c index 214206add026..bb961a6c9d5d 100644 --- a/source/common/dmtbinfo2.c +++ b/source/common/dmtbinfo2.c @@ -678,8 +678,6 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoLpit0[] = {ACPI_DMT_UINT64, ACPI_LPIT0_OFFSET (CounterFrequency), "Counter Frequency", 0}, ACPI_DMT_TERMINATOR }; - - /******************************************************************************* * * MADT - Multiple APIC Description Table and subtables @@ -926,12 +924,155 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMadt16[] = ACPI_DMT_TERMINATOR }; -/* 17: OEM data structure */ +/* 17: core interrupt controller */ ACPI_DMTABLE_INFO AcpiDmTableInfoMadt17[] = +{ + {ACPI_DMT_UINT8, ACPI_MADT17_OFFSET (Version), "Version", 0}, + {ACPI_DMT_UINT32, ACPI_MADT17_OFFSET (ProcessorId), "ProcessorId", 0}, + {ACPI_DMT_UINT32, ACPI_MADT17_OFFSET (CoreId), "CoreId", 0}, + {ACPI_DMT_UINT32, ACPI_MADT17_OFFSET (Flags), "Flags", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 18: Legacy I/O interrupt controller */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt18[] = +{ + {ACPI_DMT_UINT8, ACPI_MADT18_OFFSET (Version), "Version", 0}, + {ACPI_DMT_UINT64, ACPI_MADT18_OFFSET (Address), "Address", 0}, + {ACPI_DMT_UINT16, ACPI_MADT18_OFFSET (Size), "Size", 0}, + {ACPI_DMT_UINT16, ACPI_MADT18_OFFSET (Cascade), "Cascade", 0}, + {ACPI_DMT_UINT64, ACPI_MADT18_OFFSET (CascadeMap), "CascadeMap", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 19: HT interrupt controller */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt19[] = +{ + {ACPI_DMT_UINT8, ACPI_MADT19_OFFSET (Version), "Version", 0}, + {ACPI_DMT_UINT64, ACPI_MADT19_OFFSET (Address), "Address", 0}, + {ACPI_DMT_UINT16, ACPI_MADT19_OFFSET (Size), "Size", 0}, + {ACPI_DMT_UINT64, ACPI_MADT19_OFFSET (Cascade), "Cascade", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 20: Extend I/O interrupt controller */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt20[] = +{ + {ACPI_DMT_UINT8, ACPI_MADT20_OFFSET (Version), "Version", 0}, + {ACPI_DMT_UINT8, ACPI_MADT20_OFFSET (Cascade), "Cascade", 0}, + {ACPI_DMT_UINT8, ACPI_MADT20_OFFSET (Node), "Node", 0}, + {ACPI_DMT_UINT64, ACPI_MADT20_OFFSET (NodeMap), "NodeMap", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 21: MSI controller */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt21[] = +{ + {ACPI_DMT_UINT8, ACPI_MADT21_OFFSET (Version), "Version", 0}, + {ACPI_DMT_UINT64, ACPI_MADT21_OFFSET (MsgAddress), "MsgAddress", 0}, + {ACPI_DMT_UINT32, ACPI_MADT21_OFFSET (Start), "Start", 0}, + {ACPI_DMT_UINT32, ACPI_MADT21_OFFSET (Count), "Count", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 22: BIO interrupt controller */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt22[] = +{ + {ACPI_DMT_UINT8, ACPI_MADT22_OFFSET (Version), "Version", 0}, + {ACPI_DMT_UINT64, ACPI_MADT22_OFFSET (Address), "Address", 0}, + {ACPI_DMT_UINT16, ACPI_MADT22_OFFSET (Size), "Size", 0}, + {ACPI_DMT_UINT16, ACPI_MADT22_OFFSET (Id), "Id", 0}, + {ACPI_DMT_UINT16, ACPI_MADT22_OFFSET (GsiBase), "GsiBase", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 23: LPC interrupt controller */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt23[] = +{ + {ACPI_DMT_UINT8, ACPI_MADT23_OFFSET (Version), "Version", 0}, + {ACPI_DMT_UINT64, ACPI_MADT23_OFFSET (Address), "Address", 0}, + {ACPI_DMT_UINT16, ACPI_MADT23_OFFSET (Size), "Size", 0}, + {ACPI_DMT_UINT8, ACPI_MADT23_OFFSET (Cascade), "Cascade", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 24: RINTC interrupt controller */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt24[] = +{ + {ACPI_DMT_UINT8, ACPI_MADT24_OFFSET (Version), "Version", 0}, + {ACPI_DMT_UINT8, ACPI_MADT24_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (Flags), "Flags", 0}, + {ACPI_DMT_UINT64, ACPI_MADT24_OFFSET (HartId), "HartId", 0}, + {ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (Uid), "Uid", 0}, + {ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (ExtIntcId), "ExtIntcId", 0}, + {ACPI_DMT_UINT64, ACPI_MADT24_OFFSET (ImsicAddr), "ImsicAddr", 0}, + {ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (ImsicSize), "ImsicSize", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 25: RISC-V IMSIC interrupt controller */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt25[] = +{ + {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (Version), "Version", 0}, + {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT32, ACPI_MADT25_OFFSET (Flags), "Flags", 0}, + {ACPI_DMT_UINT16, ACPI_MADT25_OFFSET (NumIds), "NumIds", 0}, + {ACPI_DMT_UINT16, ACPI_MADT25_OFFSET (NumGuestIds), "NumGuestIds", 0}, + {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (GuestIndexBits), "GuestIndexBits", 0}, + {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (HartIndexBits), "HartIndexBits", 0}, + {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (GroupIndexBits), "GroupIndexBits", 0}, + {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (GroupIndexShift), "GroupIndexShift", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 26: RISC-V APLIC interrupt controller */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt26[] = +{ + {ACPI_DMT_UINT8, ACPI_MADT26_OFFSET (Version), "Version", 0}, + {ACPI_DMT_UINT8, ACPI_MADT26_OFFSET (Id), "Id", 0}, + {ACPI_DMT_UINT32, ACPI_MADT26_OFFSET (Flags), "Flags", 0}, + {ACPI_DMT_UINT64, ACPI_MADT26_OFFSET (HwId), "HwId", 0}, + {ACPI_DMT_UINT16, ACPI_MADT26_OFFSET (NumIdcs), "NumIdcs", 0}, + {ACPI_DMT_UINT16, ACPI_MADT26_OFFSET (NumSources), "NumSources", 0}, + {ACPI_DMT_UINT32, ACPI_MADT26_OFFSET (GsiBase), "GsiBase", 0}, + {ACPI_DMT_UINT64, ACPI_MADT26_OFFSET (BaseAddr), "BaseAddr", 0}, + {ACPI_DMT_UINT32, ACPI_MADT26_OFFSET (Size), "Size", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 27: RISC-V PLIC interrupt controller */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt27[] = +{ + {ACPI_DMT_UINT8, ACPI_MADT27_OFFSET (Version), "Version", 0}, + {ACPI_DMT_UINT8, ACPI_MADT27_OFFSET (Id), "Id", 0}, + {ACPI_DMT_UINT32, ACPI_MADT27_OFFSET (Flags), "Flags", 0}, + {ACPI_DMT_UINT64, ACPI_MADT27_OFFSET (HwId), "HwId", 0}, + {ACPI_DMT_UINT16, ACPI_MADT27_OFFSET (NumIrqs), "NumIrqs", 0}, + {ACPI_DMT_UINT16, ACPI_MADT27_OFFSET (MaxPrio), "MaxPrio", 0}, + {ACPI_DMT_UINT32, ACPI_MADT27_OFFSET (Flags), "Flags", 0}, + {ACPI_DMT_UINT32, ACPI_MADT27_OFFSET (Size), "Size", 0}, + {ACPI_DMT_UINT64, ACPI_MADT27_OFFSET (BaseAddr), "BaseAddr", 0}, + {ACPI_DMT_UINT32, ACPI_MADT27_OFFSET (GsiBase), "GsiBase", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 128: OEM data structure */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoMadt128[] = { {ACPI_DMT_RAW_BUFFER, 0, "OEM Data", 0}, - ACPI_DMT_TERMINATOR + ACPI_DMT_TERMINATOR }; /******************************************************************************* @@ -2080,7 +2221,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt0[] = ACPI_DMTABLE_INFO AcpiDmTableInfoRhct[] = { - {ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (Flags), "Flags", 0}, {ACPI_DMT_UINT64, ACPI_RHCT_OFFSET (TimeBaseFreq), "Timer Base Frequency", 0}, {ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (NodeCount), "Number of nodes", 0}, {ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (NodeOffset), "Offset to the node array", 0}, @@ -2092,7 +2233,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoRhct[] = ACPI_DMTABLE_INFO AcpiDmTableInfoRhctNodeHdr[] = { - {ACPI_DMT_UINT16, ACPI_RHCTH_OFFSET (Type), "Subtable Type", 0}, + {ACPI_DMT_RHCT, ACPI_RHCTH_OFFSET (Type), "Subtable Type", 0}, {ACPI_DMT_UINT16, ACPI_RHCTH_OFFSET (Length), "Length", 0}, {ACPI_DMT_UINT16, ACPI_RHCTH_OFFSET (Revision), "Revision", 0}, ACPI_DMT_TERMINATOR @@ -2116,6 +2257,26 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsaPad[] = ACPI_DMT_TERMINATOR }; +/* 1: CMO node type */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoRhctCmo1[] = +{ + {ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (CbomSize), "CBOM Block Size", 0}, + {ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (CbopSize), "CBOP Block Size", 0}, + {ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (CbozSize), "CBOZ Block Size", 0}, + ACPI_DMT_TERMINATOR +}; + +/* 2: MMU node type */ + +ACPI_DMTABLE_INFO AcpiDmTableInfoRhctMmu1[] = +{ + {ACPI_DMT_UINT8, ACPI_RHCT2_OFFSET (Reserved), "Reserved", 0}, + {ACPI_DMT_UINT8, ACPI_RHCT2_OFFSET (MmuType), "MMU Type", 0}, + ACPI_DMT_TERMINATOR +}; + /* 0xFFFF: Hart Info type */ ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo1[] = diff --git a/source/compiler/aslrestype2.c b/source/compiler/aslrestype2.c index bf6f77ed726d..6a1c1cbede0c 100644 --- a/source/compiler/aslrestype2.c +++ b/source/compiler/aslrestype2.c @@ -337,7 +337,7 @@ RsDoInterruptDescriptor ( Descriptor->ExtendedIrq.InterruptCount = 0; Rover = ACPI_CAST_PTR (AML_RESOURCE, - (&(Descriptor->ExtendedIrq.u.Interrupts[0]))); + (&(Descriptor->ExtendedIrq.Interrupts[0]))); /* Process all child initialization nodes */ @@ -466,7 +466,7 @@ RsDoInterruptDescriptor ( RsCreateDwordField (InitializerOp, ACPI_RESTAG_INTERRUPT, CurrentByteOffset + - ASL_RESDESC_OFFSET (ExtendedIrq.u.Interrupts[0])); + ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0])); } } @@ -494,7 +494,7 @@ RsDoInterruptDescriptor ( } Rnode->BufferLength = - (ASL_RESDESC_OFFSET (ExtendedIrq.u.Interrupts[0]) - + (ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]) - ASL_RESDESC_OFFSET (ExtendedIrq.DescriptorType)) + OptionIndex + StringLength; return (Rnode); diff --git a/source/compiler/dttable2.c b/source/compiler/dttable2.c index 007b67476319..e0317f4ccf89 100644 --- a/source/compiler/dttable2.c +++ b/source/compiler/dttable2.c @@ -371,11 +371,66 @@ DtCompileMadt ( InfoTable = AcpiDmTableInfoMadt16; break; + case ACPI_MADT_TYPE_CORE_PIC: + + InfoTable = AcpiDmTableInfoMadt17; + break; + + case ACPI_MADT_TYPE_LIO_PIC: + + InfoTable = AcpiDmTableInfoMadt18; + break; + + case ACPI_MADT_TYPE_HT_PIC: + + InfoTable = AcpiDmTableInfoMadt19; + break; + + case ACPI_MADT_TYPE_EIO_PIC: + + InfoTable = AcpiDmTableInfoMadt20; + break; + + case ACPI_MADT_TYPE_MSI_PIC: + + InfoTable = AcpiDmTableInfoMadt21; + break; + + case ACPI_MADT_TYPE_BIO_PIC: + + InfoTable = AcpiDmTableInfoMadt22; + break; + + case ACPI_MADT_TYPE_LPC_PIC: + + InfoTable = AcpiDmTableInfoMadt23; + break; + + case ACPI_MADT_TYPE_RINTC: + + InfoTable = AcpiDmTableInfoMadt24; + break; + + case ACPI_MADT_TYPE_IMSIC: + + InfoTable = AcpiDmTableInfoMadt25; + break; + + case ACPI_MADT_TYPE_APLIC: + + InfoTable = AcpiDmTableInfoMadt26; + break; + + case ACPI_MADT_TYPE_PLIC: + + InfoTable = AcpiDmTableInfoMadt27; + break; + default: if (MadtHeader->Type >= ACPI_MADT_TYPE_OEM_RESERVED) { - InfoTable = AcpiDmTableInfoMadt17; + InfoTable = AcpiDmTableInfoMadt128; } else { @@ -2190,6 +2245,16 @@ DtCompileRhct ( InfoTable = AcpiDmTableInfoRhctHartInfo1; break; + case ACPI_RHCT_NODE_TYPE_CMO: + + InfoTable = AcpiDmTableInfoRhctCmo1; + break; + + case ACPI_RHCT_NODE_TYPE_MMU: + + InfoTable = AcpiDmTableInfoRhctMmu1; + break; + default: DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "RHCT"); diff --git a/source/compiler/dttemplate.h b/source/compiler/dttemplate.h index 755da40224e4..c97a8ed24eee 100644 --- a/source/compiler/dttemplate.h +++ b/source/compiler/dttemplate.h @@ -1128,11 +1128,11 @@ const unsigned char TemplateLpit[] = const unsigned char TemplateMadt[] = { - 0x41,0x50,0x49,0x43,0x6A,0x01,0x00,0x00, /* 00000000 "APICj..." */ - 0x05,0x9D,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ + 0x41,0x50,0x49,0x43,0x60,0x02,0x00,0x00, /* 00000000 "APIC...." */ + 0x05,0x69,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */ 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */ 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ - 0x13,0x11,0x20,0x20,0x00,0x00,0x00,0x00, /* 00000020 ".. ...." */ + 0x31,0x03,0x22,0x20,0x00,0x00,0x00,0x00, /* 00000020 "1." ...." */ 0x01,0x00,0x00,0x00,0x00,0x08,0x00,0x00, /* 00000028 "........" */ 0x01,0x00,0x00,0x00,0x01,0x0C,0x01,0x00, /* 00000030 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */ @@ -1173,7 +1173,37 @@ const unsigned char TemplateMadt[] = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000150 "........" */ 0x00,0x00,0x10,0x10,0x00,0x00,0x00,0x00, /* 00000158 "........" */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000160 "........" */ - 0x00,0x00 /* 00000168 ".." */ + 0x00,0x00,0x11,0x0F,0x01,0x01,0x00,0x00, /* 00000168 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, /* 00000170 "........" */ + 0x00,0x12,0x17,0x01,0x00,0x14,0xE0,0x1F, /* 00000178 "........" */ + 0x00,0x00,0x00,0x00,0x80,0x00,0x02,0x03, /* 00000180 "........" */ + 0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF, /* 00000188 "........" */ + 0x13,0x15,0x01,0x80,0x00,0x00,0xFB,0xFD, /* 00000190 "........" */ + 0x0E,0x00,0x00,0x40,0x00,0x00,0x00,0x00, /* 00000198 "...@...." */ + 0xFF,0x00,0x00,0x00,0x00,0x14,0x0D,0x01, /* 000001A0 "........" */ + 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001A8 "........" */ + 0x00,0x00,0x15,0x13,0x01,0x00,0x00,0xF0, /* 000001B0 "........" */ + 0x2F,0x00,0x00,0x00,0x00,0x40,0x00,0x00, /* 000001B8 "/....@.." */ + 0x00,0xC0,0x00,0x00,0x00,0x16,0x11,0x01, /* 000001C0 "........" */ + 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00, /* 000001C8 "........" */ + 0x00,0x10,0x00,0x00,0x40,0x00,0x17,0x0E, /* 000001D0 "....@..." */ + 0x01,0x00,0x20,0x00,0x10,0x00,0x00,0x00, /* 000001D8 ".. ....." */ + 0x00,0x00,0x10,0x13,0x18,0x24,0x01,0x00, /* 000001E0 "........" */ + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001E8 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001F0 "........" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28, /* 000001F8 ".......(" */ + 0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00, /* 00000200 "........" */ + 0x19,0x10,0x01,0x00,0x00,0x00,0x00,0x00, /* 00000208 "........" */ + 0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x18, /* 00000210 "........" */ + 0x1A,0x24,0x01,0x00,0x00,0x00,0x00,0x00, /* 00000218 ".$......" */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000220 "........" */ + 0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00, /* 00000228 "..`....." */ + 0x00,0x00,0x00,0x0D,0x00,0x00,0x00,0x00, /* 00000230 "........" */ + 0x00,0x80,0x00,0x00,0x1B,0x24,0x01,0x00, /* 00000238 ".....$.." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000240 "........" */ + 0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000248 "`.....`." */ + 0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x0C, /* 00000250 "..`....." */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* 00000258 "........" */ }; const unsigned char TemplateMcfg[] = @@ -1718,8 +1748,8 @@ const unsigned char TemplateRgrt[] = const unsigned char TemplateRhct[] = { - 0x52,0x48,0x43,0x54,0x7C,0x00,0x00,0x00, /* 00000000 "RHCT|..." */ - 0x01,0x7D,0x4F,0x45,0x4D,0x43,0x41,0x00, /* 00000008 "..OEMCA." */ + 0x52,0x48,0x43,0x54,0x96,0x00,0x00,0x00, /* 00000000 "RHCT|..." */ + 0x01,0x24,0x4F,0x45,0x4D,0x43,0x41,0x00, /* 00000008 "..OEMCA." */ 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */ 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ 0x28,0x09,0x22,0x20,0x00,0x00,0x00,0x00, /* 00000020 "... ...." */ @@ -1731,9 +1761,12 @@ const unsigned char TemplateRhct[] = 0x72,0x5F,0x7A,0x69,0x66,0x65,0x6E,0x63, /* 00000050 "r_zifenc" */ 0x65,0x69,0x5F,0x7A,0x62,0x61,0x5F,0x7A, /* 00000058 "ei_zba_z" */ 0x62,0x62,0x5F,0x7A,0x62,0x63,0x5F,0x7A, /* 00000060 "bb_zbc_z" */ - 0x62,0x73,0x00,0x00,0xFF,0xFF,0x10,0x00, /* 00000068 "bs......" */ - 0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 00000070 "........" */ - 0x38,0x00,0x00,0x00 /* 00000078 "........" */ + 0x62,0x73,0x00,0x00,0xFF,0xFF,0x18,0x00, /* 00000068 "bs......" */ + 0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00, /* 00000070 "........" */ + 0x38,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, /* 00000078 "........" */ + 0x8E,0x00,0x00,0x00,0x01,0x00,0x0A,0x00, /* 00000080 "........" */ + 0x01,0x00,0x00,0x06,0x06,0x06,0x02,0x00, /* 00000088 "........" */ + 0x08,0x00,0x01,0x00,0x00,0x02 /* 00000090 "........" */ }; const unsigned char TemplateRsdp[] = diff --git a/source/components/debugger/dbcmds.c b/source/components/debugger/dbcmds.c index b8c2b4228013..6636f7b9736c 100644 --- a/source/components/debugger/dbcmds.c +++ b/source/components/debugger/dbcmds.c @@ -156,7 +156,7 @@ #include "acnamesp.h" #include "acresrc.h" #include "actables.h" - +#include "limits.h" #define _COMPONENT ACPI_CA_DEBUGGER ACPI_MODULE_NAME ("dbcmds") @@ -1291,6 +1291,64 @@ AcpiDbDisplayResources ( } +/******************************************************************************* + * + * FUNCTION: AcpiDbGenerateGed + * + * PARAMETERS: GedArg - Raw GED number, ascii string + * + * RETURN: None + * + * DESCRIPTION: Simulate firing of a GED + * + ******************************************************************************/ + +void +AcpiDbGenerateInterrupt ( + char *GsivArg) +{ + UINT32 GsivNumber; + ACPI_GED_HANDLER_INFO *GedInfo = AcpiGbl_GedHandlerList; + + if (!GedInfo) { + AcpiOsPrintf ("No GED handling present\n"); + } + + GsivNumber = strtoul (GsivArg, NULL, 0); + + while (GedInfo) { + + if (GedInfo->IntId == GsivNumber) { + ACPI_OBJECT_LIST ArgList; + ACPI_OBJECT Arg0; + ACPI_HANDLE EvtHandle = GedInfo->EvtMethod; + ACPI_STATUS Status; + + AcpiOsPrintf ("Evaluate GED _EVT (GSIV=%d)\n", GsivNumber); + + if (!EvtHandle) { + AcpiOsPrintf ("Undefined _EVT method\n"); + return; + } + + Arg0.Integer.Type = ACPI_TYPE_INTEGER; + Arg0.Integer.Value = GsivNumber; + + ArgList.Count = 1; + ArgList.Pointer = &Arg0; + + Status = AcpiEvaluateObject (EvtHandle, NULL, &ArgList, NULL); + if (ACPI_FAILURE (Status)) + { + AcpiOsPrintf ("Could not evaluate _EVT\n"); + return; + } + + } + GedInfo = GedInfo->Next; + } +} + #if (!ACPI_REDUCED_HARDWARE) /******************************************************************************* * diff --git a/source/components/debugger/dbinput.c b/source/components/debugger/dbinput.c index 5e5c62893bf6..d98c24870c12 100644 --- a/source/components/debugger/dbinput.c +++ b/source/components/debugger/dbinput.c @@ -264,6 +264,7 @@ enum AcpiExDebuggerCommands CMD_THREADS, CMD_TEST, + CMD_INTERRUPT, #endif }; @@ -345,6 +346,7 @@ static const ACPI_DB_COMMAND_INFO AcpiGbl_DbCommands[] = {"THREADS", 3}, {"TEST", 1}, + {"INTERRUPT", 1}, #endif {NULL, 0} }; @@ -461,6 +463,7 @@ static const ACPI_DB_COMMAND_HELP AcpiGbl_DbCommandHelp[] = {1, " Gpes", "Display info on all GPE devices\n"}, {1, " Sci", "Generate an SCI\n"}, {1, " Sleep [SleepState]", "Simulate sleep/wake sequence(s) (0-5)\n"}, + {1, " Interrupt ", "Simulate an interrupt\n"}, #endif {0, NULL, NULL} }; @@ -1263,6 +1266,11 @@ AcpiDbCommandDispatch ( AcpiOsPrintf ("Event command not implemented\n"); break; + case CMD_INTERRUPT: + + AcpiDbGenerateInterrupt (AcpiGbl_DbArgs[1]); + break; + case CMD_GPE: AcpiDbGenerateGpe (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]); diff --git a/source/components/disassembler/dmresrcl.c b/source/components/disassembler/dmresrcl.c index 88d19036ad73..75cafe5da117 100644 --- a/source/components/disassembler/dmresrcl.c +++ b/source/components/disassembler/dmresrcl.c @@ -1112,7 +1112,7 @@ AcpiDmInterruptDescriptor ( { AcpiDmIndent (Level + 1); AcpiOsPrintf ("0x%8.8X,\n", - (UINT32) Resource->ExtendedIrq.u.Interrupts[i]); + (UINT32) Resource->ExtendedIrq.Interrupts[i]); } AcpiDmIndent (Level); diff --git a/source/components/dispatcher/dswstate.c b/source/components/dispatcher/dswstate.c index cc648e3aeb75..e67de6bc6743 100644 --- a/source/components/dispatcher/dswstate.c +++ b/source/components/dispatcher/dswstate.c @@ -310,8 +310,8 @@ AcpiDsResultPush ( if (!Object) { ACPI_ERROR ((AE_INFO, - "Null Object! Obj=%p State=%p Num=%u", - Object, WalkState, WalkState->ResultCount)); + "Null Object! State=%p Num=%u", + WalkState, WalkState->ResultCount)); return (AE_BAD_PARAMETER); } diff --git a/source/components/events/evevent.c b/source/components/events/evevent.c index 913cbd143a1a..b7f6692a83fb 100644 --- a/source/components/events/evevent.c +++ b/source/components/events/evevent.c @@ -312,8 +312,7 @@ AcpiEvFixedEventInitialize ( { Status = AcpiWriteBitRegister ( AcpiGbl_FixedEventInfo[i].EnableRegisterId, - (i == ACPI_EVENT_PCIE_WAKE) ? - ACPI_ENABLE_EVENT : ACPI_DISABLE_EVENT); + ACPI_DISABLE_EVENT); if (ACPI_FAILURE (Status)) { return (Status); @@ -362,11 +361,6 @@ AcpiEvFixedEventDetect ( return (IntStatus); } - if (FixedEnable & ACPI_BITMASK_PCIEXP_WAKE_DISABLE) - FixedEnable &= ~ACPI_BITMASK_PCIEXP_WAKE_DISABLE; - else - FixedEnable |= ACPI_BITMASK_PCIEXP_WAKE_DISABLE; - ACPI_DEBUG_PRINT ((ACPI_DB_INTERRUPTS, "Fixed Event Block: Enable %08X Status %08X\n", FixedEnable, FixedStatus)); @@ -437,8 +431,7 @@ AcpiEvFixedEventDispatch ( { (void) AcpiWriteBitRegister ( AcpiGbl_FixedEventInfo[Event].EnableRegisterId, - (Event == ACPI_EVENT_PCIE_WAKE) ? - ACPI_ENABLE_EVENT : ACPI_DISABLE_EVENT); + ACPI_DISABLE_EVENT); ACPI_ERROR ((AE_INFO, "No installed handler for fixed event - %s (%u), disabling", diff --git a/source/components/executer/exserial.c b/source/components/executer/exserial.c index 6d57e3761ef4..f51047f93b9c 100644 --- a/source/components/executer/exserial.c +++ b/source/components/executer/exserial.c @@ -505,8 +505,7 @@ AcpiExWriteSerialBus ( /* Copy the input buffer data to the transfer buffer */ Buffer = BufferDesc->Buffer.Pointer; - DataLength = (BufferLength < SourceDesc->Buffer.Length ? - BufferLength : SourceDesc->Buffer.Length); + DataLength = ACPI_MIN (BufferLength, SourceDesc->Buffer.Length); memcpy (Buffer, SourceDesc->Buffer.Pointer, DataLength); /* Lock entire transaction if requested */ diff --git a/source/components/hardware/hwsleep.c b/source/components/hardware/hwsleep.c index d9bb8ae03aa4..0e4e17a0c05f 100644 --- a/source/components/hardware/hwsleep.c +++ b/source/components/hardware/hwsleep.c @@ -475,17 +475,6 @@ AcpiHwLegacyWake ( AcpiGbl_FixedEventInfo[ACPI_EVENT_SLEEP_BUTTON].StatusRegisterId, ACPI_CLEAR_STATUS); - /* Enable pcie wake event if support */ - if ((AcpiGbl_FADT.Flags & ACPI_FADT_PCI_EXPRESS_WAKE)) - { - (void) AcpiWriteBitRegister ( - AcpiGbl_FixedEventInfo[ACPI_EVENT_PCIE_WAKE].EnableRegisterId, - ACPI_DISABLE_EVENT); - (void) AcpiWriteBitRegister ( - AcpiGbl_FixedEventInfo[ACPI_EVENT_PCIE_WAKE].StatusRegisterId, - ACPI_CLEAR_STATUS); - } - AcpiHwExecuteSleepMethod (METHOD_PATHNAME__SST, ACPI_SST_WORKING); return_ACPI_STATUS (Status); } diff --git a/source/components/parser/psopcode.c b/source/components/parser/psopcode.c index db0c2e4758cb..a161fa45143b 100644 --- a/source/components/parser/psopcode.c +++ b/source/components/parser/psopcode.c @@ -436,7 +436,7 @@ const ACPI_OPCODE_INFO AcpiGbl_AmlOpInfo[AML_NUM_OPCODES] = /* ACPI 3.0 opcodes */ -/* 7E */ ACPI_OP ("Timer", ARGP_TIMER_OP, ARGI_TIMER_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_0A_0T_1R, AML_FLAGS_EXEC_0A_0T_1R), +/* 7E */ ACPI_OP ("Timer", ARGP_TIMER_OP, ARGI_TIMER_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_0A_0T_1R, AML_FLAGS_EXEC_0A_0T_1R | AML_NO_OPERAND_RESOLVE), /* ACPI 5.0 opcodes */ diff --git a/source/components/resources/rsaddr.c b/source/components/resources/rsaddr.c index beee83803c57..8bad02ddc30e 100644 --- a/source/components/resources/rsaddr.c +++ b/source/components/resources/rsaddr.c @@ -431,11 +431,11 @@ AcpiRsGetAddressCommon ( ACPI_RESOURCE *Resource, AML_RESOURCE *Aml) { + /* Avoid undefined behavior: member access within misaligned address */ AML_RESOURCE_ADDRESS Address; memcpy(&Address, Aml, sizeof(Address)); - ACPI_FUNCTION_ENTRY(); /* Validate the Resource Type */ diff --git a/source/components/resources/rscreate.c b/source/components/resources/rscreate.c index 583abe1a75ca..da0967ee81f9 100644 --- a/source/components/resources/rscreate.c +++ b/source/components/resources/rscreate.c @@ -475,9 +475,9 @@ AcpiRsCreatePciRoutingTable ( /* Use *remaining* length of the buffer as max for pathname */ PathBuffer.Length = OutputBuffer->Length - - (UINT32) ((UINT8 *) UserPrt->u.Source - + (UINT32) ((UINT8 *) UserPrt->Source - (UINT8 *) OutputBuffer->Pointer); - PathBuffer.Pointer = UserPrt->u.Source; + PathBuffer.Pointer = UserPrt->Source; Status = AcpiNsHandleToPathname ( (ACPI_HANDLE) Node, &PathBuffer, FALSE); @@ -488,12 +488,12 @@ AcpiRsCreatePciRoutingTable ( /* +1 to include null terminator */ - UserPrt->Length += (UINT32) strlen (UserPrt->u.Source) + 1; + UserPrt->Length += (UINT32) strlen (UserPrt->Source) + 1; break; case ACPI_TYPE_STRING: - strcpy (UserPrt->u.Source, ObjDesc->String.Pointer); + strcpy (UserPrt->Source, ObjDesc->String.Pointer); /* * Add to the Length field the length of the string diff --git a/source/components/resources/rsdumpinfo.c b/source/components/resources/rsdumpinfo.c index 2801e0d778d0..f15b7b981334 100644 --- a/source/components/resources/rsdumpinfo.c +++ b/source/components/resources/rsdumpinfo.c @@ -182,7 +182,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpIrq[7] = {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Polarity), "Polarity", AcpiGbl_LlDecode}, {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Irq.Shareable), "Sharing", AcpiGbl_ShrDecode}, {ACPI_RSD_UINT8 , ACPI_RSD_OFFSET (Irq.InterruptCount), "Interrupt Count", NULL}, - {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Irq.u.Interrupts[0]), "Interrupt List", NULL} + {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Irq.Interrupts[0]), "Interrupt List", NULL} }; ACPI_RSDUMP_INFO AcpiRsDumpDma[6] = @@ -192,7 +192,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpDma[6] = {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Dma.BusMaster), "Mastering", AcpiGbl_BmDecode}, {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Dma.Transfer), "Transfer Type", AcpiGbl_SizDecode}, {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (Dma.ChannelCount), "Channel Count", NULL}, - {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Dma.u.Channels[0]), "Channel List", NULL} + {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Dma.Channels[0]), "Channel List", NULL} }; ACPI_RSDUMP_INFO AcpiRsDumpStartDpf[4] = @@ -327,7 +327,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpExtIrq[8] = {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Shareable), "Sharing", AcpiGbl_ShrDecode}, {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (ExtendedIrq.ResourceSource), NULL, NULL}, {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (ExtendedIrq.InterruptCount), "Interrupt Count", NULL}, - {ACPI_RSD_DWORDLIST,ACPI_RSD_OFFSET (ExtendedIrq.u.Interrupts[0]), "Interrupt List", NULL} + {ACPI_RSD_DWORDLIST,ACPI_RSD_OFFSET (ExtendedIrq.Interrupts[0]), "Interrupt List", NULL} }; ACPI_RSDUMP_INFO AcpiRsDumpGenericReg[6] = @@ -555,7 +555,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpPrt[5] = {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpPrt), NULL, NULL}, {ACPI_RSD_UINT64, ACPI_PRT_OFFSET (Address), "Address", NULL}, {ACPI_RSD_UINT32, ACPI_PRT_OFFSET (Pin), "Pin", NULL}, - {ACPI_RSD_STRING, ACPI_PRT_OFFSET (u.Source[0]), "Source", NULL}, + {ACPI_RSD_STRING, ACPI_PRT_OFFSET (Source[0]), "Source", NULL}, {ACPI_RSD_UINT32, ACPI_PRT_OFFSET (SourceIndex), "Source Index", NULL} }; diff --git a/source/components/resources/rsirq.c b/source/components/resources/rsirq.c index 10256c50b54a..c2d306aa27a5 100644 --- a/source/components/resources/rsirq.c +++ b/source/components/resources/rsirq.c @@ -171,7 +171,7 @@ ACPI_RSCONVERT_INFO AcpiRsGetIrq[9] = /* Get the IRQ mask (bytes 1:2) */ - {ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.u.Interrupts[0]), + {ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.Interrupts[0]), AML_OFFSET (Irq.IrqMask), ACPI_RS_OFFSET (Data.Irq.InterruptCount)}, @@ -227,7 +227,7 @@ ACPI_RSCONVERT_INFO AcpiRsSetIrq[14] = /* Convert interrupt list to 16-bit IRQ bitmask */ - {ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.u.Interrupts[0]), + {ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.Interrupts[0]), AML_OFFSET (Irq.IrqMask), ACPI_RS_OFFSET (Data.Irq.InterruptCount)}, @@ -345,14 +345,14 @@ ACPI_RSCONVERT_INFO AcpiRsConvertExtIrq[10] = /* Copy every IRQ in the table, each is 32 bits */ - {ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.ExtendedIrq.u.Interrupts[0]), - AML_OFFSET (ExtendedIrq.u.Interrupts[0]), + {ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.ExtendedIrq.Interrupts[0]), + AML_OFFSET (ExtendedIrq.Interrupts[0]), 0}, /* Optional ResourceSource (Index and String) */ {ACPI_RSC_SOURCEX, ACPI_RS_OFFSET (Data.ExtendedIrq.ResourceSource), - ACPI_RS_OFFSET (Data.ExtendedIrq.u.Interrupts[0]), + ACPI_RS_OFFSET (Data.ExtendedIrq.Interrupts[0]), sizeof (AML_RESOURCE_EXTENDED_IRQ)} }; @@ -389,7 +389,7 @@ ACPI_RSCONVERT_INFO AcpiRsConvertDma[6] = /* DMA channel mask bits */ - {ACPI_RSC_BITMASK, ACPI_RS_OFFSET (Data.Dma.u.Channels[0]), + {ACPI_RSC_BITMASK, ACPI_RS_OFFSET (Data.Dma.Channels[0]), AML_OFFSET (Dma.DmaChannelMask), ACPI_RS_OFFSET (Data.Dma.ChannelCount)} }; diff --git a/source/components/utilities/utdebug.c b/source/components/utilities/utdebug.c index b0c3640f2f72..82e8a62050be 100644 --- a/source/components/utilities/utdebug.c +++ b/source/components/utilities/utdebug.c @@ -185,7 +185,12 @@ AcpiUtInitStackPtrTrace ( ACPI_SIZE CurrentSp; +#pragma GCC diagnostic push +#if defined(__GNUC__) && __GNUC__ >= 12 +#pragma GCC diagnostic ignored "-Wdangling-pointer=" +#endif AcpiGbl_EntryStackPointer = &CurrentSp; +#pragma GCC diagnostic pop } diff --git a/source/components/utilities/utglobal.c b/source/components/utilities/utglobal.c index 28e4c341d9a7..c3b3688b0a52 100644 --- a/source/components/utilities/utglobal.c +++ b/source/components/utilities/utglobal.c @@ -287,7 +287,6 @@ ACPI_FIXED_EVENT_INFO AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS] = /* ACPI_EVENT_POWER_BUTTON */ {ACPI_BITREG_POWER_BUTTON_STATUS, ACPI_BITREG_POWER_BUTTON_ENABLE, ACPI_BITMASK_POWER_BUTTON_STATUS, ACPI_BITMASK_POWER_BUTTON_ENABLE}, /* ACPI_EVENT_SLEEP_BUTTON */ {ACPI_BITREG_SLEEP_BUTTON_STATUS, ACPI_BITREG_SLEEP_BUTTON_ENABLE, ACPI_BITMASK_SLEEP_BUTTON_STATUS, ACPI_BITMASK_SLEEP_BUTTON_ENABLE}, /* ACPI_EVENT_RTC */ {ACPI_BITREG_RT_CLOCK_STATUS, ACPI_BITREG_RT_CLOCK_ENABLE, ACPI_BITMASK_RT_CLOCK_STATUS, ACPI_BITMASK_RT_CLOCK_ENABLE}, - /* ACPI_EVENT_PCIE_WAKE */ {ACPI_BITREG_PCIEXP_WAKE_STATUS, ACPI_BITREG_PCIEXP_WAKE_DISABLE, ACPI_BITMASK_PCIEXP_WAKE_STATUS, ACPI_BITMASK_PCIEXP_WAKE_DISABLE}, }; #endif /* !ACPI_REDUCED_HARDWARE */ diff --git a/source/include/acdebug.h b/source/include/acdebug.h index c1596ee89ddd..054de129efc3 100644 --- a/source/include/acdebug.h +++ b/source/include/acdebug.h @@ -619,4 +619,8 @@ AcpiDbUint32ToHexString ( UINT32 Value, char *Buffer); +void +AcpiDbGenerateInterrupt ( + char *GsivArg); + #endif /* __ACDEBUG_H__ */ diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h index afc9034b8b26..6f37d355fa23 100644 --- a/source/include/acdisasm.h +++ b/source/include/acdisasm.h @@ -554,6 +554,17 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt14[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt16[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt17[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt18[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt19[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt20[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt21[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt22[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt23[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt24[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt25[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt26[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt27[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt128[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[]; @@ -646,6 +657,8 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhct[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctNodeHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsa1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsaPad[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctCmo1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctMmu1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[]; diff --git a/source/include/acglobal.h b/source/include/acglobal.h index 28fc6514bf94..9df72a576d45 100644 --- a/source/include/acglobal.h +++ b/source/include/acglobal.h @@ -268,6 +268,7 @@ ACPI_GLOBAL (ACPI_TABLE_HANDLER, AcpiGbl_TableHandler); ACPI_GLOBAL (void *, AcpiGbl_TableHandlerContext); ACPI_GLOBAL (ACPI_INTERFACE_HANDLER, AcpiGbl_InterfaceHandler); ACPI_GLOBAL (ACPI_SCI_HANDLER_INFO *, AcpiGbl_SciHandlerList); +ACPI_GLOBAL (ACPI_GED_HANDLER_INFO *, AcpiGbl_GedHandlerList); /* Owner ID support */ diff --git a/source/include/aclocal.h b/source/include/aclocal.h index 9c090a07d9b4..99459a8b8b56 100644 --- a/source/include/aclocal.h +++ b/source/include/aclocal.h @@ -767,6 +767,15 @@ typedef struct acpi_field_info } ACPI_FIELD_INFO; +/* Information about the interrupt ID and _EVT of a GED device */ + +typedef struct acpi_ged_handler_info +{ + struct acpi_ged_handler_info *Next; + UINT32 IntId; /* The interrupt ID that triggers the execution ofthe EvtMethod. */ + ACPI_NAMESPACE_NODE *EvtMethod; /* The _EVT method to be executed when an interrupt with ID = IntID is received */ + +} ACPI_GED_HANDLER_INFO; /***************************************************************************** * @@ -786,13 +795,13 @@ typedef struct acpi_field_info UINT8 DescriptorType; /* To differentiate various internal objs */\ UINT8 Flags; \ UINT16 Value; \ - UINT16 State; + UINT16 State /* There are 2 bytes available here until the next natural alignment boundary */ typedef struct acpi_common_state { - ACPI_STATE_COMMON + ACPI_STATE_COMMON; } ACPI_COMMON_STATE; @@ -801,7 +810,7 @@ typedef struct acpi_common_state */ typedef struct acpi_update_state { - ACPI_STATE_COMMON + ACPI_STATE_COMMON; union acpi_operand_object *Object; } ACPI_UPDATE_STATE; @@ -812,7 +821,7 @@ typedef struct acpi_update_state */ typedef struct acpi_pkg_state { - ACPI_STATE_COMMON + ACPI_STATE_COMMON; UINT32 Index; union acpi_operand_object *SourceObject; union acpi_operand_object *DestObject; @@ -829,7 +838,7 @@ typedef struct acpi_pkg_state */ typedef struct acpi_control_state { - ACPI_STATE_COMMON + ACPI_STATE_COMMON; UINT16 Opcode; union acpi_parse_object *PredicateOp; UINT8 *AmlPredicateStart; /* Start of if/while predicate */ @@ -844,7 +853,7 @@ typedef struct acpi_control_state */ typedef struct acpi_scope_state { - ACPI_STATE_COMMON + ACPI_STATE_COMMON; ACPI_NAMESPACE_NODE *Node; } ACPI_SCOPE_STATE; @@ -852,7 +861,7 @@ typedef struct acpi_scope_state typedef struct acpi_pscope_state { - ACPI_STATE_COMMON + ACPI_STATE_COMMON; UINT32 ArgCount; /* Number of fixed arguments */ union acpi_parse_object *Op; /* Current op being parsed */ UINT8 *ArgEnd; /* Current argument end */ @@ -868,7 +877,7 @@ typedef struct acpi_pscope_state */ typedef struct acpi_thread_state { - ACPI_STATE_COMMON + ACPI_STATE_COMMON; UINT8 CurrentSyncLevel; /* Mutex Sync (nested acquire) level */ struct acpi_walk_state *WalkStateList; /* Head of list of WalkStates for this thread */ union acpi_operand_object *AcquiredMutexList; /* List of all currently acquired mutexes */ @@ -883,7 +892,7 @@ typedef struct acpi_thread_state */ typedef struct acpi_result_values { - ACPI_STATE_COMMON + ACPI_STATE_COMMON; union acpi_operand_object *ObjDesc [ACPI_RESULTS_FRAME_OBJ_NUM]; } ACPI_RESULT_VALUES; @@ -914,7 +923,7 @@ typedef struct acpi_global_notify_handler */ typedef struct acpi_notify_info { - ACPI_STATE_COMMON + ACPI_STATE_COMMON; UINT8 HandlerListId; ACPI_NAMESPACE_NODE *Node; union acpi_operand_object *HandlerListHead; diff --git a/source/include/acnames.h b/source/include/acnames.h index a6cdd2e2c7e4..e9f0af8c8ace 100644 --- a/source/include/acnames.h +++ b/source/include/acnames.h @@ -164,6 +164,7 @@ #define METHOD_NAME__DDN "_DDN" #define METHOD_NAME__DIS "_DIS" #define METHOD_NAME__DMA "_DMA" +#define METHOD_NAME__EVT "_EVT" #define METHOD_NAME__HID "_HID" #define METHOD_NAME__INI "_INI" #define METHOD_NAME__PLD "_PLD" diff --git a/source/include/acpixf.h b/source/include/acpixf.h index a7d61033a7b8..c8e3b4c42fdb 100644 --- a/source/include/acpixf.h +++ b/source/include/acpixf.h @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20230331 +#define ACPI_CA_VERSION 0x20230628 #include "acconfig.h" #include "actypes.h" diff --git a/source/include/acpredef.h b/source/include/acpredef.h index ca47e7cc0963..303dfaec938e 100644 --- a/source/include/acpredef.h +++ b/source/include/acpredef.h @@ -579,6 +579,9 @@ const ACPI_PREDEFINED_INFO AcpiGbl_PredefinedMethods[] = {{"_DOS", METHOD_1ARGS (ACPI_TYPE_INTEGER), METHOD_NO_RETURN_VALUE}}, + + { {"_DSC", METHOD_0ARGS, + METHOD_RETURNS (ACPI_RTYPE_INTEGER)}}, {{"_DSD", METHOD_0ARGS, /* ACPI 6.0 */ METHOD_RETURNS (ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each: 1 Buf, 1 Pkg */ diff --git a/source/include/acrestyp.h b/source/include/acrestyp.h index 3065bdcee9f2..0dab6ec7bb69 100644 --- a/source/include/acrestyp.h +++ b/source/include/acrestyp.h @@ -293,7 +293,7 @@ typedef struct acpi_resource_irq union { UINT8 Interrupt; ACPI_FLEX_ARRAY(UINT8, Interrupts); - } u; + }; } ACPI_RESOURCE_IRQ; @@ -306,7 +306,7 @@ typedef struct acpi_resource_dma union { UINT8 Channel; ACPI_FLEX_ARRAY(UINT8, Channels); - } u; + }; } ACPI_RESOURCE_DMA; @@ -547,7 +547,7 @@ typedef struct acpi_resource_extended_irq union { UINT32 Interrupt; ACPI_FLEX_ARRAY(UINT32, Interrupts); - } u; + }; } ACPI_RESOURCE_EXTENDED_IRQ; @@ -951,7 +951,7 @@ typedef struct acpi_pci_routing_table union { char Pad[4]; /* pad to 64 bits so sizeof() works in all cases */ ACPI_FLEX_ARRAY(char, Source); - } u; + }; } ACPI_PCI_ROUTING_TABLE; #endif /* __ACRESTYP_H__ */ diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h index 5417aff4a313..e0ad61bbdc04 100644 --- a/source/include/actbinfo.h +++ b/source/include/actbinfo.h @@ -334,7 +334,18 @@ #define ACPI_MADT14_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_REDISTRIBUTOR,f) #define ACPI_MADT15_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_TRANSLATOR,f) #define ACPI_MADT16_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_MULTIPROC_WAKEUP,f) -#define ACPI_MADT17_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_OEM_DATA,f) +#define ACPI_MADT17_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_CORE_PIC,f) +#define ACPI_MADT18_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_LIO_PIC,f) +#define ACPI_MADT19_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_HT_PIC,f) +#define ACPI_MADT20_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_EIO_PIC,f) +#define ACPI_MADT21_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_MSI_PIC,f) +#define ACPI_MADT22_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_BIO_PIC,f) +#define ACPI_MADT23_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_LPC_PIC,f) +#define ACPI_MADT24_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_RINTC,f) +#define ACPI_MADT25_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_IMSIC,f) +#define ACPI_MADT26_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_APLIC,f) +#define ACPI_MADT27_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_PLIC,f) +#define ACPI_MADT128_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_OEM_DATA,f) #define ACPI_MADTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SUBTABLE_HEADER,f) #define ACPI_MCFG0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MCFG_ALLOCATION,f) #define ACPI_MPAM0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_MSC_NODE,f) @@ -403,6 +414,8 @@ #define ACPI_PRMT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PRMT_HANDLER_INFO,f) #define ACPI_RHCTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_NODE_HEADER,f) #define ACPI_RHCT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_ISA_STRING,f) +#define ACPI_RHCT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_CMO_NODE,f) +#define ACPI_RHCT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_MMU_NODE,f) #define ACPI_RHCTFFFF_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_HART_INFO,f) #define ACPI_S3PTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_FPDT_HEADER,f) #define ACPI_S3PT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_S3PT_RESUME,f) diff --git a/source/include/actbl1.h b/source/include/actbl1.h index 1b115ae357a3..c1a960acf67d 100644 --- a/source/include/actbl1.h +++ b/source/include/actbl1.h @@ -635,7 +635,7 @@ typedef struct acpi_cdat_dsmas /* Flags for subtable above */ -#define ACPI_CEDT_DSMAS_NON_VOLATILE (1 << 2) +#define ACPI_CDAT_DSMAS_NON_VOLATILE (1 << 2) /* Subtable 1: Device scoped Latency and Bandwidth Information Structure (DSLBIS) */ @@ -1222,7 +1222,7 @@ typedef struct acpi_dmar_andd union { char __pad; ACPI_FLEX_ARRAY(char, DeviceName); - } u; + }; } ACPI_DMAR_ANDD; diff --git a/source/include/actbl2.h b/source/include/actbl2.h index 9b2812a0f22f..140b386f802f 100644 --- a/source/include/actbl2.h +++ b/source/include/actbl2.h @@ -1136,7 +1136,10 @@ enum AcpiMadtType ACPI_MADT_TYPE_BIO_PIC = 22, ACPI_MADT_TYPE_LPC_PIC = 23, ACPI_MADT_TYPE_RINTC = 24, - ACPI_MADT_TYPE_RESERVED = 25, /* 25 to 0x7F are reserved */ + ACPI_MADT_TYPE_IMSIC = 25, + ACPI_MADT_TYPE_APLIC = 26, + ACPI_MADT_TYPE_PLIC = 27, + ACPI_MADT_TYPE_RESERVED = 28, /* 28 to 0x7F are reserved */ ACPI_MADT_TYPE_OEM_RESERVED = 0x80 /* 0x80 to 0xFF are reserved for OEM use */ }; @@ -1550,14 +1553,17 @@ enum AcpiMadtLpcPicVersion { }; /* 24: RISC-V INTC */ -struct acpi_madt_rintc { +typedef struct acpi_madt_rintc { ACPI_SUBTABLE_HEADER Header; UINT8 Version; UINT8 Reserved; UINT32 Flags; UINT64 HartId; UINT32 Uid; /* ACPI processor UID */ -}; + UINT32 ExtIntcId; /* External INTC Id */ + UINT64 ImsicAddr; /* IMSIC base address */ + UINT32 ImsicSize; /* IMSIC size */ +} ACPI_MADT_RINTC; /* Values for RISC-V INTC Version field above */ @@ -1567,6 +1573,49 @@ enum AcpiMadtRintcVersion { ACPI_MADT_RINTC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ }; +/* 25: RISC-V IMSIC */ +typedef struct acpi_madt_imsic { + ACPI_SUBTABLE_HEADER Header; + UINT8 Version; + UINT8 Reserved; + UINT32 Flags; + UINT16 NumIds; + UINT16 NumGuestIds; + UINT8 GuestIndexBits; + UINT8 HartIndexBits; + UINT8 GroupIndexBits; + UINT8 GroupIndexShift; +} ACPI_MADT_IMSIC; + +/* 26: RISC-V APLIC */ +typedef struct acpi_madt_aplic { + ACPI_SUBTABLE_HEADER Header; + UINT8 Version; + UINT8 Id; + UINT32 Flags; + UINT8 HwId[8]; + UINT16 NumIdcs; + UINT16 NumSources; + UINT32 GsiBase; + UINT64 BaseAddr; + UINT32 Size; +} ACPI_MADT_APLIC; + +/* 27: RISC-V PLIC */ +typedef struct acpi_madt_plic { + ACPI_SUBTABLE_HEADER Header; + UINT8 Version; + UINT8 Id; + UINT8 HwId[8]; + UINT16 NumIrqs; + UINT16 MaxPrio; + UINT32 Flags; + UINT32 Size; + UINT64 BaseAddr; + UINT32 GsiBase; +} ACPI_MADT_PLIC; + + /* 80: OEM data */ typedef struct acpi_madt_oem_data @@ -3285,12 +3334,15 @@ enum AcpiRgrtImageType typedef struct acpi_table_rhct { ACPI_TABLE_HEADER Header; /* Common ACPI table header */ - UINT32 Reserved; + UINT32 Flags; /* RHCT flags */ UINT64 TimeBaseFreq; UINT32 NodeCount; UINT32 NodeOffset; } ACPI_TABLE_RHCT; +/* RHCT Flags */ + +#define ACPI_RHCT_TIMER_CANNOT_WAKEUP_CPU (1) /* * RHCT subtables */ @@ -3304,6 +3356,9 @@ typedef struct acpi_rhct_node_header { enum acpi_rhct_node_type { ACPI_RHCT_NODE_TYPE_ISA_STRING = 0x0000, + ACPI_RHCT_NODE_TYPE_CMO = 0x0001, + ACPI_RHCT_NODE_TYPE_MMU = 0x0002, + ACPI_RHCT_NODE_TYPE_RESERVED = 0x0003, ACPI_RHCT_NODE_TYPE_HART_INFO = 0xFFFF, }; @@ -3317,6 +3372,24 @@ typedef struct acpi_rhct_isa_string { char Isa[]; } ACPI_RHCT_ISA_STRING; +typedef struct acpi_rhct_cmo_node { + UINT8 Reserved; /* Must be zero */ + UINT8 CbomSize; /* CBOM size in powerof 2 */ + UINT8 CbopSize; /* CBOP size in powerof 2 */ + UINT8 CbozSize; /* CBOZ size in powerof 2 */ +} ACPI_RHCT_CMO_NODE; + +typedef struct acpi_rhct_mmu_node { + UINT8 Reserved; /* Must be zero */ + UINT8 MmuType; /* Virtual Address Scheme */ +} ACPI_RHCT_MMU_NODE; + +enum acpi_rhct_mmu_type { + ACPI_RHCT_MMU_TYPE_SV39 = 0, + ACPI_RHCT_MMU_TYPE_SV48 = 1, + ACPI_RHCT_MMU_TYPE_SV57 = 2 +}; + /* Hart Info node structure */ typedef struct acpi_rhct_hart_info { UINT16 NumOffsets; diff --git a/source/include/actbl3.h b/source/include/actbl3.h index 15ef01959300..1438c1db507c 100644 --- a/source/include/actbl3.h +++ b/source/include/actbl3.h @@ -454,13 +454,15 @@ typedef struct acpi_srat_gic_its_affinity * 6: ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY */ +#define ACPI_SRAT_DEVICE_HANDLE_SIZE 16 + typedef struct acpi_srat_generic_affinity { ACPI_SUBTABLE_HEADER Header; UINT8 Reserved; UINT8 DeviceHandleType; UINT32 ProximityDomain; - UINT8 DeviceHandle[16]; + UINT8 DeviceHandle[ACPI_SRAT_DEVICE_HANDLE_SIZE]; UINT32 Flags; UINT32 Reserved1; diff --git a/source/include/actypes.h b/source/include/actypes.h index c0f0a87f4c65..933820521ed4 100644 --- a/source/include/actypes.h +++ b/source/include/actypes.h @@ -873,8 +873,7 @@ typedef UINT32 ACPI_EVENT_TYPE; #define ACPI_EVENT_POWER_BUTTON 2 #define ACPI_EVENT_SLEEP_BUTTON 3 #define ACPI_EVENT_RTC 4 -#define ACPI_EVENT_PCIE_WAKE 5 -#define ACPI_EVENT_MAX 5 +#define ACPI_EVENT_MAX 4 #define ACPI_NUM_FIXED_EVENTS ACPI_EVENT_MAX + 1 /* diff --git a/source/include/amlresrc.h b/source/include/amlresrc.h index a8e288add7ff..05fa1505d19f 100644 --- a/source/include/amlresrc.h +++ b/source/include/amlresrc.h @@ -506,7 +506,7 @@ typedef struct aml_resource_extended_irq union { UINT32 Interrupt; ACPI_FLEX_ARRAY(UINT32, Interrupts); - } u; + }; /* ResSourceIndex, ResSource optional fields follow */ } AML_RESOURCE_EXTENDED_IRQ; diff --git a/source/include/platform/aclinux.h b/source/include/platform/aclinux.h index da37a2fad03d..f5234b972c49 100644 --- a/source/include/platform/aclinux.h +++ b/source/include/platform/aclinux.h @@ -312,6 +312,7 @@ #ifdef ACPI_USE_STANDARD_HEADERS #include #include +#include #define ACPI_OFFSET(d, f) offsetof(d, f) #endif diff --git a/source/include/platform/aczephyr.h b/source/include/platform/aczephyr.h index 20d3c040cc2e..8446e9973040 100644 --- a/source/include/platform/aczephyr.h +++ b/source/include/platform/aczephyr.h @@ -152,9 +152,6 @@ #ifndef __ACZEPHYR_H__ #define __ACZEPHYR_H__ -#define SEEK_SET FS_SEEK_SET -#define SEEK_END FS_SEEK_END - #define ACPI_MACHINE_WIDTH 64 #define ACPI_NO_ERROR_MESSAGES diff --git a/source/tools/acpiexec/aeinstall.c b/source/tools/acpiexec/aeinstall.c index 9e1940c3fbe3..b855fcbce2d6 100644 --- a/source/tools/acpiexec/aeinstall.c +++ b/source/tools/acpiexec/aeinstall.c @@ -176,6 +176,13 @@ AeInstallPciHandler ( void *Context, void **ReturnValue); +static ACPI_STATUS +AeInstallGedHandler ( + ACPI_HANDLE ObjHandle, + UINT32 Level, + void *Context, + void **ReturnValue); + BOOLEAN AcpiGbl_DisplayRegionAccess = FALSE; ACPI_CONNECTION_INFO AeMyContext; @@ -343,6 +350,110 @@ AeInstallRegionHandlers ( } } +/******************************************************************************* + * + * FUNCTION: AeInstallGedHandler + * + * PARAMETERS: ACPI_WALK_NAMESPACE callback + * + * RETURN: Status + * + * DESCRIPTION: Walk entire namespace, install a handler for every GED + * device found. + * + ******************************************************************************/ +static ACPI_STATUS +AeInstallGedHandler ( + ACPI_HANDLE ObjHandle, + UINT32 Level, + void *Context, + void **ReturnValue) +{ + + ACPI_BUFFER ReturnBuffer; + ACPI_STATUS Status; + ACPI_RESOURCE *ResourceList; + ACPI_RESOURCE_EXTENDED_IRQ *extended_irq_rsc; + ACPI_NAMESPACE_NODE *Node; + ACPI_NAMESPACE_NODE *EvtMethodNode; + + ACPI_FUNCTION_ENTRY(); + + /* Obtain the Namespace Node of this GED object handle. */ + Node = AcpiNsValidateHandle (ObjHandle); + if (!Node) + { + return (AE_BAD_PARAMETER); + } + + /* + * A GED device must have one _EVT method. + * Obtain the _EVT method and store it in the global + * GED register. + */ + Status = AcpiNsSearchOneScope ( + *ACPI_CAST_PTR (ACPI_NAME, METHOD_NAME__EVT), + Node, + ACPI_TYPE_METHOD, + &EvtMethodNode + ); + if (ACPI_FAILURE (Status)) + { + AcpiOsPrintf ("Failed to obtain _EVT method for the GED device.\n"); + return Status; + } + + ReturnBuffer.Pointer = NULL; + ReturnBuffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER; + + Status = AcpiGetCurrentResources (ObjHandle, &ReturnBuffer); + if (ACPI_FAILURE (Status)) + { + AcpiOsPrintf ("AcpiGetCurrentResources failed: %s\n", + AcpiFormatException (Status)); + return Status; + } + + /* Traverse the _CRS resource list */ + ResourceList = ACPI_CAST_PTR (ACPI_RESOURCE, ReturnBuffer.Pointer); + while (ResourceList->Type != ACPI_RESOURCE_TYPE_END_TAG) { + + switch (ResourceList->Type) { + case ACPI_RESOURCE_TYPE_EXTENDED_IRQ: { + + /* + * Found an Interrupt resource. Link the interrupt resource + * and the _EVT method of this GED device in the GED event handler list. + */ + ACPI_GED_HANDLER_INFO *GedHandler = + ACPI_ALLOCATE (sizeof (ACPI_SCI_HANDLER_INFO)); + if (!GedHandler) + { + return AE_NO_MEMORY; + } + + GedHandler->Next = AcpiGbl_GedHandlerList; + AcpiGbl_GedHandlerList = GedHandler; + + extended_irq_rsc = &ResourceList->Data.ExtendedIrq; + + GedHandler->IntId = extended_irq_rsc->Interrupts[0]; + GedHandler->EvtMethod = EvtMethodNode; + + AcpiOsPrintf ("Interrupt ID %d\n", extended_irq_rsc->Interrupts[0]); + + break; + } + default: + + AcpiOsPrintf ("Resource type %X\n", ResourceList->Type); + } + + ResourceList = ACPI_NEXT_RESOURCE (ResourceList); + } + + return AE_OK; +} /******************************************************************************* * @@ -352,7 +463,7 @@ AeInstallRegionHandlers ( * * RETURN: Status * - * DESCRIPTION: Install handlers for all EC and PCI devices in the namespace + * DESCRIPTION: Install handlers for all EC, PCI and GED devices in the namespace * ******************************************************************************/ @@ -368,6 +479,11 @@ AeInstallDeviceHandlers ( /* Install a PCI handler */ AcpiGetDevices ("PNP0A08", AeInstallPciHandler, NULL, NULL); + + /* Install a GED handler */ + + AcpiGetDevices ("ACPI0013", AeInstallGedHandler, NULL, NULL); + return (AE_OK); }