aboutsummaryrefslogtreecommitdiff
path: root/source/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'source/compiler')
-rw-r--r--source/compiler/aslallocate.c2
-rw-r--r--source/compiler/aslascii.c4
-rw-r--r--source/compiler/aslcompiler.h4
-rw-r--r--source/compiler/aslcompiler.l1
-rw-r--r--source/compiler/aslerror.c6
-rw-r--r--source/compiler/aslhelpers.y5
-rw-r--r--source/compiler/aslmap.c1
-rw-r--r--source/compiler/aslmessages.c3
-rw-r--r--source/compiler/aslmessages.h1
-rw-r--r--source/compiler/aslnamesp.c3
-rw-r--r--source/compiler/aslopcodes.c2
-rw-r--r--source/compiler/asloperands.c2
-rw-r--r--source/compiler/aslparser.y2
-rw-r--r--source/compiler/aslprintf.c2
-rw-r--r--source/compiler/aslresource.c5
-rw-r--r--source/compiler/aslresources.y20
-rw-r--r--source/compiler/aslrestype2s.c136
-rw-r--r--source/compiler/asltokens.y1
-rw-r--r--source/compiler/asltransform.c5
-rw-r--r--source/compiler/asltypes.y2
-rw-r--r--source/compiler/dtcompiler.h15
-rw-r--r--source/compiler/dttable1.c143
-rw-r--r--source/compiler/dttable2.c454
-rw-r--r--source/compiler/dttemplate.h343
-rw-r--r--source/compiler/dtutils.c5
25 files changed, 959 insertions, 208 deletions
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
@@ -1539,6 +1539,10 @@ 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 {$<n>$ = 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 ($<n>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 {$<n>$ = 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
@@ -1389,6 +1389,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
*
* PARAMETERS: Info - Parse Op and resource template offset
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 <i> PARSEOP_FUNCTION
%token <i> PARSEOP_GPIO_INT
%token <i> PARSEOP_GPIO_IO
+%token <i> PARSEOP_CSI2_SERIALBUS
%token <i> PARSEOP_I2C_SERIALBUS
%token <i> PARSEOP_I2C_SERIALBUS_V2
%token <i> 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 <n> ConnectionTerm
+%type <n> Csi2SerialBusTerm
%type <n> DMATerm
%type <n> DWordIOTerm
%type <n> DWordMemoryTerm
@@ -501,6 +502,7 @@ NoEcho('
%type <n> OptionalShareType
%type <n> OptionalShareType_First
%type <n> OptionalSlaveMode
+%type <n> OptionalSlaveMode_First
%type <n> OptionalStopBits
%type <n> OptionalStringData
%type <n> 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
@@ -574,6 +574,10 @@ DtCompileCpep (
void **PFieldList);
ACPI_STATUS
+DtCompileCedt (
+ void **PFieldList);
+
+ACPI_STATUS
DtCompileCsrt (
void **PFieldList);
@@ -658,6 +662,10 @@ DtCompilePdtt (
void **PFieldList);
ACPI_STATUS
+DtCompilePhat (
+ void **PFieldList);
+
+ACPI_STATUS
DtCompilePmtt (
void **PFieldList);
@@ -706,6 +714,10 @@ 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
@@ -344,6 +344,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
*
* PARAMETERS: List - Current field list pointer
@@ -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");
@@ -941,6 +951,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
*
* PARAMETERS: List - Current field list pointer
@@ -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);
- }
-
- PmttHeader = ACPI_CAST_PTR (ACPI_PMTT_HEADER, Subtable->Buffer);
- while (PrevType >= PmttHeader->Type)
- {
- DtPopSubtable ();
-
- if (PrevType == ACPI_PMTT_TYPE_SOCKET)
- {
- break;
- }
-
- PrevType--;
- }
+ DtCompileInteger ((UINT8 *) &Type, *PFieldList, 2, 0);
- 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,40 +1158,34 @@ DtCompilePmtt (
return (Status);
}
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
+ break;
- PmttController = ACPI_CAST_PTR (ACPI_PMTT_CONTROLLER,
- (Subtable->Buffer - sizeof (ACPI_PMTT_HEADER)));
- DomainCount = PmttController->DomainCount;
+ case ACPI_PMTT_TYPE_DIMM:
- while (DomainCount)
- {
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt1a,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
+ /* Subtable: Physical Component (DIMM) Structure */
- DtInsertSubtable (ParentTable, Subtable);
- DomainCount--;
+ DbgPrint (ASL_DEBUG_OUTPUT, "Compile PMTT_TYPE_DIMM (2)\n");
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt2,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
}
+
break;
- case ACPI_PMTT_TYPE_DIMM:
+ case ACPI_PMTT_TYPE_VENDOR:
- /* Subtable: Physical Component Structure */
+ /* Subtable: Vendor-specific Structure */
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt2,
+ DbgPrint (ASL_DEBUG_OUTPUT, "Compile PMTT_TYPE_VENDOR(FF)\n");
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmttVendor,
&Subtable);
if (ACPI_FAILURE (Status))
{
return (Status);
}
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
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;
}
}
@@ -2139,6 +2360,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
*
* PARAMETERS: List - Current field list pointer
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)