Module Name: src
Committed By: christos
Date: Sat Dec 18 17:58:49 UTC 2021
Modified Files:
src/sys/external/bsd/acpica/dist/common: dmtbinfo.c
src/sys/external/bsd/acpica/dist/compiler: aslfiles.c aslutils.c
dttable.c dtutils.c
src/sys/external/bsd/acpica/dist/dispatcher: dsopcode.c
src/sys/external/bsd/acpica/dist/events: evregion.c evrgnini.c
src/sys/external/bsd/acpica/dist/executer: exconfig.c exdebug.c
src/sys/external/bsd/acpica/dist/include: acapps.h acdisasm.h acpixf.h
actables.h actypes.h
src/sys/external/bsd/acpica/dist/resources: rsdumpinfo.c
src/sys/external/bsd/acpica/dist/tables: tbdata.c tbfadt.c tbinstal.c
tbutils.c tbxfload.c
src/sys/external/bsd/acpica/dist/utilities: utdelete.c
Log Message:
merge changes from acpica-20210930 to acpica-20211217
To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/sys/external/bsd/acpica/dist/common/dmtbinfo.c
cvs rdiff -u -r1.17 -r1.18 \
src/sys/external/bsd/acpica/dist/compiler/aslfiles.c
cvs rdiff -u -r1.30 -r1.31 \
src/sys/external/bsd/acpica/dist/compiler/aslutils.c
cvs rdiff -u -r1.15 -r1.16 \
src/sys/external/bsd/acpica/dist/compiler/dttable.c
cvs rdiff -u -r1.18 -r1.19 \
src/sys/external/bsd/acpica/dist/compiler/dtutils.c
cvs rdiff -u -r1.16 -r1.17 \
src/sys/external/bsd/acpica/dist/dispatcher/dsopcode.c
cvs rdiff -u -r1.13 -r1.14 src/sys/external/bsd/acpica/dist/events/evregion.c
cvs rdiff -u -r1.18 -r1.19 src/sys/external/bsd/acpica/dist/events/evrgnini.c
cvs rdiff -u -r1.17 -r1.18 \
src/sys/external/bsd/acpica/dist/executer/exconfig.c
cvs rdiff -u -r1.14 -r1.15 \
src/sys/external/bsd/acpica/dist/executer/exdebug.c
cvs rdiff -u -r1.17 -r1.18 src/sys/external/bsd/acpica/dist/include/acapps.h
cvs rdiff -u -r1.23 -r1.24 \
src/sys/external/bsd/acpica/dist/include/acdisasm.h
cvs rdiff -u -r1.31 -r1.32 src/sys/external/bsd/acpica/dist/include/acpixf.h
cvs rdiff -u -r1.15 -r1.16 \
src/sys/external/bsd/acpica/dist/include/actables.h
cvs rdiff -u -r1.25 -r1.26 src/sys/external/bsd/acpica/dist/include/actypes.h
cvs rdiff -u -r1.12 -r1.13 \
src/sys/external/bsd/acpica/dist/resources/rsdumpinfo.c
cvs rdiff -u -r1.16 -r1.17 src/sys/external/bsd/acpica/dist/tables/tbdata.c \
src/sys/external/bsd/acpica/dist/tables/tbfadt.c \
src/sys/external/bsd/acpica/dist/tables/tbinstal.c
cvs rdiff -u -r1.18 -r1.19 src/sys/external/bsd/acpica/dist/tables/tbutils.c
cvs rdiff -u -r1.14 -r1.15 src/sys/external/bsd/acpica/dist/tables/tbxfload.c
cvs rdiff -u -r1.7 -r1.8 \
src/sys/external/bsd/acpica/dist/utilities/utdelete.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/external/bsd/acpica/dist/common/dmtbinfo.c
diff -u src/sys/external/bsd/acpica/dist/common/dmtbinfo.c:1.19 src/sys/external/bsd/acpica/dist/common/dmtbinfo.c:1.20
--- src/sys/external/bsd/acpica/dist/common/dmtbinfo.c:1.19 Sat Apr 3 13:45:02 2021
+++ src/sys/external/bsd/acpica/dist/common/dmtbinfo.c Sat Dec 18 12:58:48 2021
@@ -184,7 +184,7 @@ ACPI_DMTABLE_INFO AcpiDmTableI
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},
@@ -300,7 +300,7 @@ ACPI_DMTABLE_INFO AcpiDmTableI
ACPI_DMT_TERMINATOR
};
-/* ACPI 5.0 Extensions (FADT version 5) */
+/* Extensions for FADT version 5 */
ACPI_DMTABLE_INFO AcpiDmTableInfoFadt5[] =
{
@@ -309,7 +309,7 @@ ACPI_DMTABLE_INFO AcpiDmTableI
ACPI_DMT_TERMINATOR
};
-/* ACPI 6.0 Extensions (FADT version 6) */
+/* Extensions for FADT version 6 */
ACPI_DMTABLE_INFO AcpiDmTableInfoFadt6[] =
{
Index: src/sys/external/bsd/acpica/dist/compiler/aslfiles.c
diff -u src/sys/external/bsd/acpica/dist/compiler/aslfiles.c:1.17 src/sys/external/bsd/acpica/dist/compiler/aslfiles.c:1.18
--- src/sys/external/bsd/acpica/dist/compiler/aslfiles.c:1.17 Sat Apr 3 13:45:02 2021
+++ src/sys/external/bsd/acpica/dist/compiler/aslfiles.c Sat Dec 18 12:58:48 2021
@@ -727,8 +727,8 @@ ErrorExit:
* 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.
*
******************************************************************************/
Index: src/sys/external/bsd/acpica/dist/compiler/aslutils.c
diff -u src/sys/external/bsd/acpica/dist/compiler/aslutils.c:1.30 src/sys/external/bsd/acpica/dist/compiler/aslutils.c:1.31
--- src/sys/external/bsd/acpica/dist/compiler/aslutils.c:1.30 Thu Oct 28 10:53:08 2021
+++ src/sys/external/bsd/acpica/dist/compiler/aslutils.c Sat Dec 18 12:58:48 2021
@@ -530,7 +530,7 @@ UtDisplayOneSummary (
/* Compiler name and version number */
FlPrintFile (FileId, "%s version %X [%s]\n\n",
- ASL_COMPILER_NAME, (UINT32) ACPI_CA_VERSION, "2017-01-19");
+ ASL_COMPILER_NAME, (UINT32) ACPI_CA_VERSION, ACPI_DATE);
}
/* Summary of main input and output files */
Index: src/sys/external/bsd/acpica/dist/compiler/dttable.c
diff -u src/sys/external/bsd/acpica/dist/compiler/dttable.c:1.15 src/sys/external/bsd/acpica/dist/compiler/dttable.c:1.16
--- src/sys/external/bsd/acpica/dist/compiler/dttable.c:1.15 Sat Apr 3 13:45:02 2021
+++ src/sys/external/bsd/acpica/dist/compiler/dttable.c Sat Dec 18 12:58:48 2021
@@ -115,10 +115,12 @@ DtCompileRsdp (
*
* RETURN: Status
*
- * DESCRIPTION: Compile FADT.
+ * DESCRIPTION: Compile FADT (signature FACP).
*
*****************************************************************************/
+#define ACPI_XDSDT_LOCATION_IN_LIST 11
+
ACPI_STATUS
DtCompileFadt (
void **List)
@@ -127,10 +129,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))
@@ -141,8 +150,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)
{
@@ -155,8 +172,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))
@@ -166,6 +199,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,
@@ -178,6 +225,8 @@ DtCompileFadt (
DtInsertSubtable (ParentTable, Subtable);
}
+ /* Fields specific to FADT Revision 6 (appended to previous) */
+
if (Revision >= 6)
{
Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt6,
Index: src/sys/external/bsd/acpica/dist/compiler/dtutils.c
diff -u src/sys/external/bsd/acpica/dist/compiler/dtutils.c:1.18 src/sys/external/bsd/acpica/dist/compiler/dtutils.c:1.19
--- src/sys/external/bsd/acpica/dist/compiler/dtutils.c:1.18 Thu Oct 28 10:53:08 2021
+++ src/sys/external/bsd/acpica/dist/compiler/dtutils.c Sat Dec 18 12:58:48 2021
@@ -329,6 +329,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:
@@ -475,6 +476,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:
@@ -503,6 +508,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:
@@ -574,7 +580,7 @@ DtGetFieldLength (
else
{ /* At this point, this is a fatal error */
- sprintf (AslGbl_MsgBuffer, "Expected \"%s\"", Info->Name);
+ snprintf (AslGbl_MsgBuffer, sizeof(AslGbl_MsgBuffer), "Expected \"%s\"", Info->Name);
DtFatal (ASL_MSG_COMPILER_INTERNAL, NULL, AslGbl_MsgBuffer);
return (0);
}
@@ -629,6 +635,11 @@ DtGetFieldLength (
ByteLength = 16;
break;
+ case ACPI_DMT_BUF18:
+
+ ByteLength = 18;
+ break;
+
case ACPI_DMT_BUF128:
ByteLength = 128;
Index: src/sys/external/bsd/acpica/dist/dispatcher/dsopcode.c
diff -u src/sys/external/bsd/acpica/dist/dispatcher/dsopcode.c:1.16 src/sys/external/bsd/acpica/dist/dispatcher/dsopcode.c:1.17
--- src/sys/external/bsd/acpica/dist/dispatcher/dsopcode.c:1.16 Sat Apr 3 13:45:02 2021
+++ src/sys/external/bsd/acpica/dist/dispatcher/dsopcode.c Sat Dec 18 12:58:48 2021
@@ -599,6 +599,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),
Index: src/sys/external/bsd/acpica/dist/events/evregion.c
diff -u src/sys/external/bsd/acpica/dist/events/evregion.c:1.13 src/sys/external/bsd/acpica/dist/events/evregion.c:1.14
--- src/sys/external/bsd/acpica/dist/events/evregion.c:1.13 Sat Apr 3 13:45:02 2021
+++ src/sys/external/bsd/acpica/dist/events/evregion.c Sat Dec 18 12:58:49 2021
@@ -212,6 +212,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
Index: src/sys/external/bsd/acpica/dist/events/evrgnini.c
diff -u src/sys/external/bsd/acpica/dist/events/evrgnini.c:1.18 src/sys/external/bsd/acpica/dist/events/evrgnini.c:1.19
--- src/sys/external/bsd/acpica/dist/events/evrgnini.c:1.18 Sat Apr 3 13:45:02 2021
+++ src/sys/external/bsd/acpica/dist/events/evrgnini.c Sat Dec 18 12:58:49 2021
@@ -493,6 +493,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
*
* PARAMETERS: Handle - Region we are interested in
Index: src/sys/external/bsd/acpica/dist/executer/exconfig.c
diff -u src/sys/external/bsd/acpica/dist/executer/exconfig.c:1.17 src/sys/external/bsd/acpica/dist/executer/exconfig.c:1.18
--- src/sys/external/bsd/acpica/dist/executer/exconfig.c:1.17 Sat Apr 3 13:45:03 2021
+++ src/sys/external/bsd/acpica/dist/executer/exconfig.c Sat Dec 18 12:58:49 2021
@@ -487,7 +487,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))
{
Index: src/sys/external/bsd/acpica/dist/executer/exdebug.c
diff -u src/sys/external/bsd/acpica/dist/executer/exdebug.c:1.14 src/sys/external/bsd/acpica/dist/executer/exdebug.c:1.15
--- src/sys/external/bsd/acpica/dist/executer/exdebug.c:1.14 Sat Apr 3 13:45:03 2021
+++ src/sys/external/bsd/acpica/dist/executer/exdebug.c Sat Dec 18 12:58:49 2021
@@ -66,9 +66,10 @@
*
* This function is not compiled if ACPI_NO_ERROR_MESSAGES is set.
*
- * This function is only enabled if AcpiGbl_EnableAmlDebugObject is set.
- * Thus, in the normal operational case, stores to the debug object are
- * ignored but can be easily enabled if necessary.
+ * This function is only enabled if AcpiGbl_EnableAmlDebugObject is set, or
+ * if ACPI_LV_DEBUG_OBJECT is set in the AcpiDbgLevel. Thus, in the normal
+ * operational case, stores to the debug object are ignored but can be easily
+ * enabled if necessary.
*
******************************************************************************/
@@ -87,9 +88,10 @@ AcpiExDoDebugObject (
ACPI_FUNCTION_TRACE_PTR (ExDoDebugObject, SourceDesc);
- /* Output must be enabled via the DebugObject global */
+ /* Output must be enabled via the DebugObject global or the DbgLevel */
- if (!AcpiGbl_EnableAmlDebugObject)
+ if (!AcpiGbl_EnableAmlDebugObject &&
+ !(AcpiDbgLevel & ACPI_LV_DEBUG_OBJECT))
{
return_VOID;
}
Index: src/sys/external/bsd/acpica/dist/include/acapps.h
diff -u src/sys/external/bsd/acpica/dist/include/acapps.h:1.17 src/sys/external/bsd/acpica/dist/include/acapps.h:1.18
--- src/sys/external/bsd/acpica/dist/include/acapps.h:1.17 Sat Apr 3 13:45:03 2021
+++ src/sys/external/bsd/acpica/dist/include/acapps.h Sat Dec 18 12:58:49 2021
@@ -67,7 +67,7 @@
/* Macros for signons and file headers */
#ifdef ACPI_REPRO
-#define ACPI_DATE "18 Dec 2013"
+#define ACPI_DATE "18 Dec 2021"
#define ACPI_TIME "00:00:00"
#else
#define ACPI_DATE __DATE__
Index: src/sys/external/bsd/acpica/dist/include/acdisasm.h
diff -u src/sys/external/bsd/acpica/dist/include/acdisasm.h:1.23 src/sys/external/bsd/acpica/dist/include/acdisasm.h:1.24
--- src/sys/external/bsd/acpica/dist/include/acdisasm.h:1.23 Thu Oct 28 10:53:09 2021
+++ src/sys/external/bsd/acpica/dist/include/acdisasm.h Sat Dec 18 12:58:49 2021
@@ -149,6 +149,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,
@@ -172,6 +173,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,
@@ -273,6 +279,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTa
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestGicError[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXrupt[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAgdi[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[];
@@ -451,9 +458,13 @@ extern ACPI_DMTABLE_INFO AcpiDmTa
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 AcpiDmTableInfoNhlt7b[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt8[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt9[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhatHdr[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0a[];
@@ -527,6 +538,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTa
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[];
@@ -775,6 +787,10 @@ AcpiDmDumpTcpa (
ACPI_TABLE_HEADER *Table);
void
+AcpiDmDumpTdel (
+ ACPI_TABLE_HEADER *Table);
+
+void
AcpiDmDumpTpm2 (
ACPI_TABLE_HEADER *Table);
Index: src/sys/external/bsd/acpica/dist/include/acpixf.h
diff -u src/sys/external/bsd/acpica/dist/include/acpixf.h:1.31 src/sys/external/bsd/acpica/dist/include/acpixf.h:1.32
--- src/sys/external/bsd/acpica/dist/include/acpixf.h:1.31 Thu Oct 28 10:53:09 2021
+++ src/sys/external/bsd/acpica/dist/include/acpixf.h Sat Dec 18 12:58:49 2021
@@ -46,7 +46,7 @@
/* Current ACPICA subsystem version in YYYYMMDD format */
-#define ACPI_CA_VERSION 0x20210930
+#define ACPI_CA_VERSION 0x20211217
#include "acconfig.h"
#include "actypes.h"
@@ -550,8 +550,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
Index: src/sys/external/bsd/acpica/dist/include/actables.h
diff -u src/sys/external/bsd/acpica/dist/include/actables.h:1.15 src/sys/external/bsd/acpica/dist/include/actables.h:1.16
--- src/sys/external/bsd/acpica/dist/include/actables.h:1.15 Sat Apr 3 13:45:03 2021
+++ src/sys/external/bsd/acpica/dist/include/actables.h Sat Dec 18 12:58:49 2021
@@ -85,7 +85,8 @@ ACPI_STATUS
AcpiTbAcquireTempTable (
ACPI_TABLE_DESC *TableDesc,
ACPI_PHYSICAL_ADDRESS Address,
- UINT8 Flags);
+ UINT8 Flags,
+ ACPI_TABLE_HEADER *Table);
void
AcpiTbReleaseTempTable (
@@ -171,6 +172,7 @@ ACPI_STATUS
AcpiTbInstallStandardTable (
ACPI_PHYSICAL_ADDRESS Address,
UINT8 Flags,
+ ACPI_TABLE_HEADER *Table,
BOOLEAN Reload,
BOOLEAN Override,
UINT32 *TableIndex);
@@ -188,6 +190,7 @@ ACPI_STATUS
AcpiTbInstallAndLoadTable (
ACPI_PHYSICAL_ADDRESS Address,
UINT8 Flags,
+ ACPI_TABLE_HEADER *Table,
BOOLEAN Override,
UINT32 *TableIndex);
Index: src/sys/external/bsd/acpica/dist/include/actypes.h
diff -u src/sys/external/bsd/acpica/dist/include/actypes.h:1.25 src/sys/external/bsd/acpica/dist/include/actypes.h:1.26
--- src/sys/external/bsd/acpica/dist/include/actypes.h:1.25 Thu Oct 28 10:53:09 2021
+++ src/sys/external/bsd/acpica/dist/include/actypes.h Sat Dec 18 12:58:49 2021
@@ -1216,6 +1216,13 @@ 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) (
@@ -1355,6 +1362,11 @@ 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
Index: src/sys/external/bsd/acpica/dist/resources/rsdumpinfo.c
diff -u src/sys/external/bsd/acpica/dist/resources/rsdumpinfo.c:1.12 src/sys/external/bsd/acpica/dist/resources/rsdumpinfo.c:1.13
--- src/sys/external/bsd/acpica/dist/resources/rsdumpinfo.c:1.12 Sat Apr 3 13:45:04 2021
+++ src/sys/external/bsd/acpica/dist/resources/rsdumpinfo.c Sat Dec 18 12:58:49 2021
@@ -410,20 +410,18 @@ ACPI_RSDUMP_INFO AcpiRsDumpGenera
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.MaxAddressFixed), "Max Relocatability", AcpiGbl_MaxDecode}
};
-static const char *AcpiGbl_MemoryRange[] = { "Memory Range" };
ACPI_RSDUMP_INFO AcpiRsDumpMemoryFlags[5] =
{
- {ACPI_RSD_LITERAL, ACPI_RSD_TABLE_SIZE (AcpiRsDumpMemoryFlags), "Resource Type", AcpiGbl_MemoryRange},
+ {ACPI_RSD_LITERAL, ACPI_RSD_TABLE_SIZE (AcpiRsDumpMemoryFlags), "Resource Type", __UNCONST("Memory Range")},
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.WriteProtect), "Write Protect", AcpiGbl_RwDecode},
{ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.Caching), "Caching", AcpiGbl_MemDecode},
{ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.RangeType), "Range Type", AcpiGbl_MtpDecode},
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.Translation), "Translation", AcpiGbl_TtpDecode}
};
-static const char *AcpiGbl_IORange[] = { "I/O Range" };
ACPI_RSDUMP_INFO AcpiRsDumpIoFlags[4] =
{
- {ACPI_RSD_LITERAL, ACPI_RSD_TABLE_SIZE (AcpiRsDumpIoFlags), "Resource Type", AcpiGbl_IORange },
+ {ACPI_RSD_LITERAL, ACPI_RSD_TABLE_SIZE (AcpiRsDumpIoFlags), "Resource Type", __UNCONST("I/O Range")},
{ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Address.Info.Io.RangeType), "Range Type", AcpiGbl_RngDecode},
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Io.Translation), "Translation", AcpiGbl_TtpDecode},
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Io.TranslationType), "Translation Type", AcpiGbl_TrsDecode}
Index: src/sys/external/bsd/acpica/dist/tables/tbdata.c
diff -u src/sys/external/bsd/acpica/dist/tables/tbdata.c:1.16 src/sys/external/bsd/acpica/dist/tables/tbdata.c:1.17
--- src/sys/external/bsd/acpica/dist/tables/tbdata.c:1.16 Sat Apr 3 13:45:04 2021
+++ src/sys/external/bsd/acpica/dist/tables/tbdata.c Sat Dec 18 12:58:49 2021
@@ -135,14 +135,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;
+ }
}
@@ -182,8 +196,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:
@@ -251,6 +264,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
*
@@ -265,9 +280,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)
@@ -276,37 +292,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);
}
@@ -405,7 +427,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;
}
@@ -1111,6 +1146,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
*
@@ -1124,6 +1162,7 @@ ACPI_STATUS
AcpiTbInstallAndLoadTable (
ACPI_PHYSICAL_ADDRESS Address,
UINT8 Flags,
+ ACPI_TABLE_HEADER *Table,
BOOLEAN Override,
UINT32 *TableIndex)
{
@@ -1136,7 +1175,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))
{
Index: src/sys/external/bsd/acpica/dist/tables/tbfadt.c
diff -u src/sys/external/bsd/acpica/dist/tables/tbfadt.c:1.16 src/sys/external/bsd/acpica/dist/tables/tbfadt.c:1.17
--- src/sys/external/bsd/acpica/dist/tables/tbfadt.c:1.16 Sat Apr 3 13:45:04 2021
+++ src/sys/external/bsd/acpica/dist/tables/tbfadt.c Sat Dec 18 12:58:49 2021
@@ -378,7 +378,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 */
@@ -389,14 +389,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);
}
}
Index: src/sys/external/bsd/acpica/dist/tables/tbinstal.c
diff -u src/sys/external/bsd/acpica/dist/tables/tbinstal.c:1.16 src/sys/external/bsd/acpica/dist/tables/tbinstal.c:1.17
--- src/sys/external/bsd/acpica/dist/tables/tbinstal.c:1.16 Sat Apr 3 13:45:04 2021
+++ src/sys/external/bsd/acpica/dist/tables/tbinstal.c Sat Dec 18 12:58:49 2021
@@ -119,6 +119,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
@@ -137,6 +139,7 @@ ACPI_STATUS
AcpiTbInstallStandardTable (
ACPI_PHYSICAL_ADDRESS Address,
UINT8 Flags,
+ ACPI_TABLE_HEADER *Table,
BOOLEAN Reload,
BOOLEAN Override,
UINT32 *TableIndex)
@@ -151,7 +154,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,
@@ -261,7 +264,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;
}
@@ -273,7 +276,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;
}
@@ -349,11 +352,8 @@ AcpiTbUninstallTable (
if ((TableDesc->Flags & ACPI_TABLE_ORIGIN_MASK) ==
ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL)
{
- void *ptr = ACPI_PHYSADDR_TO_PTR (TableDesc->Address);
- if (ptr)
- {
- ACPI_FREE (ptr);
- }
+ ACPI_FREE (TableDesc->Pointer);
+ TableDesc->Pointer = NULL;
}
TableDesc->Address = ACPI_PTR_TO_PHYSADDR (NULL);
Index: src/sys/external/bsd/acpica/dist/tables/tbutils.c
diff -u src/sys/external/bsd/acpica/dist/tables/tbutils.c:1.18 src/sys/external/bsd/acpica/dist/tables/tbutils.c:1.19
--- src/sys/external/bsd/acpica/dist/tables/tbutils.c:1.18 Sat Apr 3 13:45:04 2021
+++ src/sys/external/bsd/acpica/dist/tables/tbutils.c Sat Dec 18 12:58:49 2021
@@ -228,9 +228,8 @@ AcpiTbGetRootTableEntry (
* 32-bit platform, RSDT: Return 32-bit table entry
* 64-bit platform, RSDT: Expand 32-bit to 64-bit and return
*/
- UINT32 addr;
- memcpy(&addr, ACPI_CAST_PTR (UINT32, TableEntry), sizeof(addr));
- return (ACPI_PHYSICAL_ADDRESS) addr;
+ return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR (
+ UINT32, TableEntry)));
}
else
{
@@ -393,7 +392,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 (
Index: src/sys/external/bsd/acpica/dist/tables/tbxfload.c
diff -u src/sys/external/bsd/acpica/dist/tables/tbxfload.c:1.14 src/sys/external/bsd/acpica/dist/tables/tbxfload.c:1.15
--- src/sys/external/bsd/acpica/dist/tables/tbxfload.c:1.14 Sat Apr 3 13:45:04 2021
+++ src/sys/external/bsd/acpica/dist/tables/tbxfload.c Sat Dec 18 12:58:49 2021
@@ -157,7 +157,6 @@ AcpiTbLoadNamespace (
ACPI_FUNCTION_TRACE (TbLoadNamespace);
-
(void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
#ifdef __ia64__
@@ -170,7 +169,7 @@ AcpiTbLoadNamespace (
goto UnlockAndExit;
}
#endif
-
+
/*
* Load the namespace. The DSDT is required, but any SSDT and
* PSDT tables are optional. Verify the DSDT.
@@ -299,9 +298,7 @@ UnlockAndExit:
*
* 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
*
@@ -313,28 +310,17 @@ UnlockAndExit:
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);
}
@@ -344,6 +330,40 @@ ACPI_EXPORT_SYMBOL_INIT (AcpiInstallTabl
/*******************************************************************************
*
+ * 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
*
* PARAMETERS: Table - Pointer to a buffer containing the ACPI
@@ -384,7 +404,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;
Index: src/sys/external/bsd/acpica/dist/utilities/utdelete.c
diff -u src/sys/external/bsd/acpica/dist/utilities/utdelete.c:1.7 src/sys/external/bsd/acpica/dist/utilities/utdelete.c:1.8
--- src/sys/external/bsd/acpica/dist/utilities/utdelete.c:1.7 Tue Jul 6 08:23:46 2021
+++ src/sys/external/bsd/acpica/dist/utilities/utdelete.c Sat Dec 18 12:58:49 2021
@@ -486,6 +486,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,