import acpica-tools-20180629-5.el8
This commit is contained in:
parent
f8400b50d3
commit
c1d74eafb2
179
SOURCES/CEDT-support_01.patch
Normal file
179
SOURCES/CEDT-support_01.patch
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
commit 0b03aa8ebd7a5b2b9407893f123ee587af45926f
|
||||||
|
Author: Ben Widawsky <ben@bwidawsk.net>
|
||||||
|
Date: Thu Feb 25 13:54:56 2021 -0800
|
||||||
|
|
||||||
|
CXL 2.0: CEDT: Add new CEDT table
|
||||||
|
|
||||||
|
This sets up all of the boilerplate without actually doing anything.
|
||||||
|
|
||||||
|
Signed-off-by: Ben Widawsky <ben.widawsky@intel.com>
|
||||||
|
|
||||||
|
diff --git a/source/common/ahtable.c b/source/common/ahtable.c
|
||||||
|
index a313c7f..2679fae 100644
|
||||||
|
--- a/source/common/ahtable.c
|
||||||
|
+++ b/source/common/ahtable.c
|
||||||
|
@@ -95,6 +95,7 @@ const AH_TABLE Gbl_AcpiSupportedTables[] =
|
||||||
|
{ACPI_SIG_BERT, "Boot Error Record Table"},
|
||||||
|
{ACPI_SIG_BGRT, "Boot Graphics Resource Table"},
|
||||||
|
{ACPI_SIG_BOOT, "Simple Boot Flag Table"},
|
||||||
|
+ {ACPI_SIG_CEDT, "CXL Early Discovery Table"},
|
||||||
|
{ACPI_SIG_CPEP, "Corrected Platform Error Polling table"},
|
||||||
|
{ACPI_SIG_CSRT, "Core System Resource Table"},
|
||||||
|
{ACPI_SIG_DBG2, "Debug Port table type 2"},
|
||||||
|
diff --git a/source/common/dmtable.c b/source/common/dmtable.c
|
||||||
|
index 0908e44..137b5b9 100644
|
||||||
|
--- a/source/common/dmtable.c
|
||||||
|
+++ b/source/common/dmtable.c
|
||||||
|
@@ -376,6 +376,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] =
|
||||||
|
{ACPI_SIG_BERT, AcpiDmTableInfoBert, NULL, NULL, TemplateBert},
|
||||||
|
{ACPI_SIG_BGRT, AcpiDmTableInfoBgrt, NULL, NULL, TemplateBgrt},
|
||||||
|
{ACPI_SIG_BOOT, AcpiDmTableInfoBoot, NULL, NULL, TemplateBoot},
|
||||||
|
+ {ACPI_SIG_CEDT, NULL, NULL, NULL, NULL},
|
||||||
|
{ACPI_SIG_CPEP, NULL, AcpiDmDumpCpep, DtCompileCpep, TemplateCpep},
|
||||||
|
{ACPI_SIG_CSRT, NULL, AcpiDmDumpCsrt, DtCompileCsrt, TemplateCsrt},
|
||||||
|
{ACPI_SIG_DBG2, AcpiDmTableInfoDbg2, AcpiDmDumpDbg2, DtCompileDbg2, TemplateDbg2},
|
||||||
|
diff --git a/source/common/dmtbinfo1.c b/source/common/dmtbinfo1.c
|
||||||
|
index 4adb42a..cb41915 100644
|
||||||
|
--- a/source/common/dmtbinfo1.c
|
||||||
|
+++ b/source/common/dmtbinfo1.c
|
||||||
|
@@ -236,6 +236,33 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[] =
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
+/*******************************************************************************
|
||||||
|
+ *
|
||||||
|
+ * CEDT - CXL Early Discovery Table
|
||||||
|
+ *
|
||||||
|
+ ******************************************************************************/
|
||||||
|
+
|
||||||
|
+ACPI_DMTABLE_INFO AcpiDmTableInfoCedtHdr[] =
|
||||||
|
+{
|
||||||
|
+ {ACPI_DMT_UINT8, ACPI_CEDT_OFFSET (Type), "Subtable Type", 0},
|
||||||
|
+ {ACPI_DMT_UINT8, ACPI_CEDT_OFFSET (Reserved), "Reserved", 0},
|
||||||
|
+ {ACPI_DMT_UINT16, ACPI_CEDT_OFFSET (Length), "Length", DT_LENGTH},
|
||||||
|
+ ACPI_DMT_TERMINATOR
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+/* 0: CXL Host Bridge Structure */
|
||||||
|
+
|
||||||
|
+ACPI_DMTABLE_INFO AcpiDmTableInfoCedt0[] =
|
||||||
|
+{
|
||||||
|
+ {ACPI_DMT_UINT32, ACPI_CEDT0_OFFSET (Uid), "Associated host bridge", 0},
|
||||||
|
+ {ACPI_DMT_UINT32, ACPI_CEDT0_OFFSET (CxlVersion), "Specification version", 0},
|
||||||
|
+ {ACPI_DMT_UINT32, ACPI_CEDT0_OFFSET (Reserved), "Reserved", 0},
|
||||||
|
+ {ACPI_DMT_UINT64, ACPI_CEDT0_OFFSET (Base), "Register base", 0},
|
||||||
|
+ {ACPI_DMT_UINT64, ACPI_CEDT0_OFFSET (Length), "Register length", 0},
|
||||||
|
+ ACPI_DMT_TERMINATOR
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* CPEP - Corrected Platform Error Polling table
|
||||||
|
diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h
|
||||||
|
index e9b7a48..5e94ee3 100644
|
||||||
|
--- a/source/include/acdisasm.h
|
||||||
|
+++ b/source/include/acdisasm.h
|
||||||
|
@@ -256,6 +256,8 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[];
|
||||||
|
extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[];
|
||||||
|
extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[];
|
||||||
|
extern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[];
|
||||||
|
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedtHdr[];
|
||||||
|
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt0[];
|
||||||
|
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[];
|
||||||
|
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[];
|
||||||
|
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt0[];
|
||||||
|
diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h
|
||||||
|
index 8a1fd74..9735f22 100644
|
||||||
|
--- a/source/include/actbinfo.h
|
||||||
|
+++ b/source/include/actbinfo.h
|
||||||
|
@@ -104,6 +104,8 @@
|
||||||
|
#define ACPI_ASF2a_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_CONTROL_DATA,f)
|
||||||
|
#define ACPI_ASF3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_RMCP,f)
|
||||||
|
#define ACPI_ASF4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_ADDRESS,f)
|
||||||
|
+#define ACPI_CEDT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_HEADER, f)
|
||||||
|
+#define ACPI_CEDT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CHBS, f)
|
||||||
|
#define ACPI_CPEP0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CPEP_POLLING,f)
|
||||||
|
#define ACPI_CSRT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CSRT_GROUP,f)
|
||||||
|
#define ACPI_CSRT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CSRT_SHARED_INFO,f)
|
||||||
|
diff --git a/source/include/actbl1.h b/source/include/actbl1.h
|
||||||
|
index b76195f..ce4737d 100644
|
||||||
|
--- a/source/include/actbl1.h
|
||||||
|
+++ b/source/include/actbl1.h
|
||||||
|
@@ -64,6 +64,7 @@
|
||||||
|
#define ACPI_SIG_BERT "BERT" /* Boot Error Record Table */
|
||||||
|
#define ACPI_SIG_BGRT "BGRT" /* Boot Graphics Resource Table */
|
||||||
|
#define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */
|
||||||
|
+#define ACPI_SIG_CEDT "CEDT" /* CXL Early Discovery Table */
|
||||||
|
#define ACPI_SIG_CPEP "CPEP" /* Corrected Platform Error Polling table */
|
||||||
|
#define ACPI_SIG_CSRT "CSRT" /* Core System Resource Table */
|
||||||
|
#define ACPI_SIG_DBG2 "DBG2" /* Debug Port table type 2 */
|
||||||
|
@@ -383,6 +384,56 @@ typedef struct acpi_table_boot
|
||||||
|
|
||||||
|
} ACPI_TABLE_BOOT;
|
||||||
|
|
||||||
|
+/*******************************************************************************
|
||||||
|
+ *
|
||||||
|
+ * CEDT - CXL Early Discovery Table
|
||||||
|
+ * Version 1
|
||||||
|
+ *
|
||||||
|
+ * Conforms to the "CXL Early Discovery Table" (CXL 2.0)
|
||||||
|
+ *
|
||||||
|
+ ******************************************************************************/
|
||||||
|
+
|
||||||
|
+typedef struct acpi_table_cedt
|
||||||
|
+{
|
||||||
|
+ ACPI_TABLE_HEADER Header; /* Common ACPI table header */
|
||||||
|
+
|
||||||
|
+} ACPI_TABLE_CEDT;
|
||||||
|
+
|
||||||
|
+/* CEDT subtable header (Performance Record Structure) */
|
||||||
|
+
|
||||||
|
+typedef struct acpi_cedt_header
|
||||||
|
+{
|
||||||
|
+ UINT8 Type;
|
||||||
|
+ UINT8 Reserved;
|
||||||
|
+ UINT16 Length;
|
||||||
|
+
|
||||||
|
+} ACPI_CEDT_HEADER;
|
||||||
|
+
|
||||||
|
+/* Values for Type field above */
|
||||||
|
+
|
||||||
|
+enum AcpiCedtType
|
||||||
|
+{
|
||||||
|
+ ACPI_CEDT_TYPE_CHBS = 0,
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * CEDT subtables
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+/* 0: CXL Host Bridge Structure */
|
||||||
|
+
|
||||||
|
+typedef struct acpi_cedt_chbs
|
||||||
|
+{
|
||||||
|
+ ACPI_CEDT_HEADER Header;
|
||||||
|
+ UINT32 Uid;
|
||||||
|
+ UINT32 CxlVersion;
|
||||||
|
+ UINT32 Reserved;
|
||||||
|
+ UINT64 Base;
|
||||||
|
+ UINT64 Length;
|
||||||
|
+
|
||||||
|
+} ACPI_CEDT_CHBS;
|
||||||
|
+
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
diff --git a/source/tools/acpisrc/astable.c b/source/tools/acpisrc/astable.c
|
||||||
|
index ef74f17..8aa35fe 100644
|
||||||
|
--- a/source/tools/acpisrc/astable.c
|
||||||
|
+++ b/source/tools/acpisrc/astable.c
|
||||||
|
@@ -529,6 +529,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = {
|
||||||
|
{"ACPI_TABLE_BERT", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_TABLE_BGRT", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_TABLE_BOOT", SRC_TYPE_STRUCT},
|
||||||
|
+ {"ACPI_TABLE_CEDT", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_TABLE_CPEP", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_TABLE_CSRT", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_TABLE_DBG2", SRC_TYPE_STRUCT},
|
123
SOURCES/CEDT-support_02.patch
Normal file
123
SOURCES/CEDT-support_02.patch
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
commit b980be9b7fd364f62f62655e458325581a4f239c
|
||||||
|
Author: Ben Widawsky <ben@bwidawsk.net>
|
||||||
|
Date: Thu Feb 25 14:11:46 2021 -0800
|
||||||
|
|
||||||
|
CXL 2.0: CEDT: Add table and subtable dumping
|
||||||
|
|
||||||
|
Signed-off-by: Ben Widawsky <ben.widawsky@intel.com>
|
||||||
|
|
||||||
|
diff --git a/source/common/dmtable.c b/source/common/dmtable.c
|
||||||
|
index 137b5b9..f483a78 100644
|
||||||
|
--- a/source/common/dmtable.c
|
||||||
|
+++ b/source/common/dmtable.c
|
||||||
|
@@ -376,7 +376,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] =
|
||||||
|
{ACPI_SIG_BERT, AcpiDmTableInfoBert, NULL, NULL, TemplateBert},
|
||||||
|
{ACPI_SIG_BGRT, AcpiDmTableInfoBgrt, NULL, NULL, TemplateBgrt},
|
||||||
|
{ACPI_SIG_BOOT, AcpiDmTableInfoBoot, NULL, NULL, TemplateBoot},
|
||||||
|
- {ACPI_SIG_CEDT, NULL, NULL, NULL, NULL},
|
||||||
|
+ {ACPI_SIG_CEDT, NULL, AcpiDmDumpCedt, NULL, NULL},
|
||||||
|
{ACPI_SIG_CPEP, NULL, AcpiDmDumpCpep, DtCompileCpep, TemplateCpep},
|
||||||
|
{ACPI_SIG_CSRT, NULL, AcpiDmDumpCsrt, DtCompileCsrt, TemplateCsrt},
|
||||||
|
{ACPI_SIG_DBG2, AcpiDmTableInfoDbg2, AcpiDmDumpDbg2, DtCompileDbg2, TemplateDbg2},
|
||||||
|
diff --git a/source/common/dmtbdump1.c b/source/common/dmtbdump1.c
|
||||||
|
index 0103a6c..19a810f 100644
|
||||||
|
--- a/source/common/dmtbdump1.c
|
||||||
|
+++ b/source/common/dmtbdump1.c
|
||||||
|
@@ -221,6 +221,82 @@ AcpiDmDumpAsf (
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+/*******************************************************************************
|
||||||
|
+ *
|
||||||
|
+ * FUNCTION: AcpiDmDumpCedt
|
||||||
|
+ *
|
||||||
|
+ * PARAMETERS: Table - A CEDT table
|
||||||
|
+ *
|
||||||
|
+ * RETURN: None
|
||||||
|
+ *
|
||||||
|
+ * DESCRIPTION: Format the contents of a CEDT. This table type consists
|
||||||
|
+ * of an open-ended number of subtables.
|
||||||
|
+ *
|
||||||
|
+ ******************************************************************************/
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+AcpiDmDumpCedt (
|
||||||
|
+ ACPI_TABLE_HEADER *Table)
|
||||||
|
+{
|
||||||
|
+ ACPI_STATUS Status;
|
||||||
|
+ ACPI_CEDT_HEADER *Subtable;
|
||||||
|
+ UINT32 Length = Table->Length;
|
||||||
|
+ UINT32 Offset = sizeof (ACPI_TABLE_CEDT);
|
||||||
|
+ ACPI_DMTABLE_INFO *InfoTable;
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+ /* There is no main table (other than the standard ACPI header) */
|
||||||
|
+
|
||||||
|
+ Subtable = ACPI_ADD_PTR (ACPI_CEDT_HEADER, Table, Offset);
|
||||||
|
+ while (Offset < Table->Length)
|
||||||
|
+ {
|
||||||
|
+ /* Common subtable header */
|
||||||
|
+
|
||||||
|
+ AcpiOsPrintf ("\n");
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
+ Subtable->Length, AcpiDmTableInfoCedtHdr);
|
||||||
|
+ if (ACPI_FAILURE (Status))
|
||||||
|
+ {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ switch (Subtable->Type)
|
||||||
|
+ {
|
||||||
|
+ case ACPI_CEDT_TYPE_CHBS:
|
||||||
|
+
|
||||||
|
+ InfoTable = AcpiDmTableInfoCedt0;
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
+ default:
|
||||||
|
+
|
||||||
|
+ AcpiOsPrintf ("\n**** Unknown CEDT subtable type 0x%X\n\n",
|
||||||
|
+ Subtable->Type);
|
||||||
|
+
|
||||||
|
+ /* Attempt to continue */
|
||||||
|
+
|
||||||
|
+ if (!Subtable->Length)
|
||||||
|
+ {
|
||||||
|
+ AcpiOsPrintf ("Invalid zero length subtable\n");
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ goto NextSubtable;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
+ Subtable->Length, InfoTable);
|
||||||
|
+ if (ACPI_FAILURE (Status))
|
||||||
|
+ {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+NextSubtable:
|
||||||
|
+ /* Point to next subtable */
|
||||||
|
+
|
||||||
|
+ Offset += Subtable->Length;
|
||||||
|
+ Subtable = ACPI_ADD_PTR (ACPI_CEDT_HEADER, Subtable,
|
||||||
|
+ Subtable->Length);
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h
|
||||||
|
index 5e94ee3..d7f348f 100644
|
||||||
|
--- a/source/include/acdisasm.h
|
||||||
|
+++ b/source/include/acdisasm.h
|
||||||
|
@@ -533,6 +533,10 @@ void
|
||||||
|
AcpiDmDumpAsf (
|
||||||
|
ACPI_TABLE_HEADER *Table);
|
||||||
|
|
||||||
|
+void
|
||||||
|
+AcpiDmDumpCedt (
|
||||||
|
+ ACPI_TABLE_HEADER *Table);
|
||||||
|
+
|
||||||
|
void
|
||||||
|
AcpiDmDumpCpep (
|
||||||
|
ACPI_TABLE_HEADER *Table);
|
58
SOURCES/CEDT-support_03.patch
Normal file
58
SOURCES/CEDT-support_03.patch
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
commit 187e2f286f503cce9f57748da639dfccaeaecf96
|
||||||
|
Author: Ben Widawsky <ben@bwidawsk.net>
|
||||||
|
Date: Thu Feb 25 14:19:51 2021 -0800
|
||||||
|
|
||||||
|
CXL 2.0: CEDT: Add template
|
||||||
|
|
||||||
|
Signed-off-by: Ben Widawsky <ben.widawsky@intel.com>
|
||||||
|
|
||||||
|
diff --git a/source/common/dmtable.c b/source/common/dmtable.c
|
||||||
|
index f483a78..5b204a8 100644
|
||||||
|
--- a/source/common/dmtable.c
|
||||||
|
+++ b/source/common/dmtable.c
|
||||||
|
@@ -376,7 +376,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] =
|
||||||
|
{ACPI_SIG_BERT, AcpiDmTableInfoBert, NULL, NULL, TemplateBert},
|
||||||
|
{ACPI_SIG_BGRT, AcpiDmTableInfoBgrt, NULL, NULL, TemplateBgrt},
|
||||||
|
{ACPI_SIG_BOOT, AcpiDmTableInfoBoot, NULL, NULL, TemplateBoot},
|
||||||
|
- {ACPI_SIG_CEDT, NULL, AcpiDmDumpCedt, NULL, NULL},
|
||||||
|
+ {ACPI_SIG_CEDT, NULL, AcpiDmDumpCedt, NULL, TemplateCedt},
|
||||||
|
{ACPI_SIG_CPEP, NULL, AcpiDmDumpCpep, DtCompileCpep, TemplateCpep},
|
||||||
|
{ACPI_SIG_CSRT, NULL, AcpiDmDumpCsrt, DtCompileCsrt, TemplateCsrt},
|
||||||
|
{ACPI_SIG_DBG2, AcpiDmTableInfoDbg2, AcpiDmDumpDbg2, DtCompileDbg2, TemplateDbg2},
|
||||||
|
diff --git a/source/compiler/dtcompiler.h b/source/compiler/dtcompiler.h
|
||||||
|
index 5136f75..fd20109 100644
|
||||||
|
--- a/source/compiler/dtcompiler.h
|
||||||
|
+++ b/source/compiler/dtcompiler.h
|
||||||
|
@@ -587,6 +587,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[];
|
||||||
|
diff --git a/source/compiler/dttemplate.h b/source/compiler/dttemplate.h
|
||||||
|
index e3fbd8b..275003c 100644
|
||||||
|
--- a/source/compiler/dttemplate.h
|
||||||
|
+++ b/source/compiler/dttemplate.h
|
||||||
|
@@ -96,6 +96,20 @@ const unsigned char TemplateBoot[] =
|
||||||
|
0x28,0x05,0x10,0x20,0x00,0x00,0x00,0x00 /* 00000020 "(.. ...." */
|
||||||
|
};
|
||||||
|
|
||||||
|
+const unsigned char TemplateCedt[] =
|
||||||
|
+{
|
||||||
|
+ /* FIXME: This is from QEMU */
|
||||||
|
+ 0x43,0x45,0x44,0x54,0x44,0x00,0x00,0x00, /* 00000000 "CEDTD..." */
|
||||||
|
+ 0x01,0x3E,0x42,0x4F,0x43,0x48,0x53,0x20, /* 00000008 ".>BOCHS " */
|
||||||
|
+ 0x42,0x58,0x50,0x43,0x20,0x20,0x20,0x20, /* 00000010 "BXPC " */
|
||||||
|
+ 0x01,0x00,0x00,0x00,0x42,0x58,0x50,0x43, /* 00000018 "....BXPC" */
|
||||||
|
+ 0x01,0x00,0x00,0x00,0x00,0x00,0x20,0x00, /* 00000020 "...... ." */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000028 "........" */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD0, /* 00000030 "........" */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, /* 00000038 "........" */
|
||||||
|
+ 0x00,0x00,0x00,0x00 /* 00000040 "...." */
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
const unsigned char TemplateCpep[] =
|
||||||
|
{
|
||||||
|
0x43,0x50,0x45,0x50,0x34,0x00,0x00,0x00, /* 00000000 "CPEP4..." */
|
278
SOURCES/CEDT-support_04.patch
Normal file
278
SOURCES/CEDT-support_04.patch
Normal file
@ -0,0 +1,278 @@
|
|||||||
|
commit 1e6dded267b13c4aa0c3e16de0fa89d3b9c880e9
|
||||||
|
Author: Robert Moore <Robert.Moore@intel.com>
|
||||||
|
Date: Thu Mar 11 13:12:08 2021 -0800
|
||||||
|
|
||||||
|
iASL/TableCompiler: Add compilation support for CEDT table.
|
||||||
|
Also, update the CEDT template.
|
||||||
|
|
||||||
|
diff --git a/source/common/dmtable.c b/source/common/dmtable.c
|
||||||
|
index 5b204a8..530e872 100644
|
||||||
|
--- a/source/common/dmtable.c
|
||||||
|
+++ b/source/common/dmtable.c
|
||||||
|
@@ -76,6 +76,12 @@ static const char *AcpiDmAsfSubnames[] =
|
||||||
|
"Unknown Subtable Type" /* Reserved */
|
||||||
|
};
|
||||||
|
|
||||||
|
+static const char *AcpiDmCedtSubnames[] =
|
||||||
|
+{
|
||||||
|
+ "CXL Host Bridge Structure",
|
||||||
|
+ "Unknown Subtable Type" /* Reserved */
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
static const char *AcpiDmDmarSubnames[] =
|
||||||
|
{
|
||||||
|
"Hardware Unit Definition",
|
||||||
|
@@ -376,7 +382,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] =
|
||||||
|
{ACPI_SIG_BERT, AcpiDmTableInfoBert, NULL, NULL, TemplateBert},
|
||||||
|
{ACPI_SIG_BGRT, AcpiDmTableInfoBgrt, NULL, NULL, TemplateBgrt},
|
||||||
|
{ACPI_SIG_BOOT, AcpiDmTableInfoBoot, NULL, NULL, TemplateBoot},
|
||||||
|
- {ACPI_SIG_CEDT, NULL, AcpiDmDumpCedt, NULL, TemplateCedt},
|
||||||
|
+ {ACPI_SIG_CEDT, NULL, AcpiDmDumpCedt, DtCompileCedt, TemplateCedt},
|
||||||
|
{ACPI_SIG_CPEP, NULL, AcpiDmDumpCpep, DtCompileCpep, TemplateCpep},
|
||||||
|
{ACPI_SIG_CSRT, NULL, AcpiDmDumpCsrt, DtCompileCsrt, TemplateCsrt},
|
||||||
|
{ACPI_SIG_DBG2, AcpiDmTableInfoDbg2, AcpiDmDumpDbg2, DtCompileDbg2, TemplateDbg2},
|
||||||
|
@@ -830,6 +836,7 @@ AcpiDmDumpTable (
|
||||||
|
case ACPI_DMT_CHKSUM:
|
||||||
|
case ACPI_DMT_SPACEID:
|
||||||
|
case ACPI_DMT_ACCWIDTH:
|
||||||
|
+ case ACPI_DMT_CEDT:
|
||||||
|
case ACPI_DMT_IVRS:
|
||||||
|
case ACPI_DMT_GTDT:
|
||||||
|
case ACPI_DMT_MADT:
|
||||||
|
@@ -1240,6 +1247,20 @@ AcpiDmDumpTable (
|
||||||
|
AcpiOsPrintf (UINT8_FORMAT, *Target, AcpiDmAsfSubnames[Temp16]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
+ case ACPI_DMT_CEDT:
|
||||||
|
+
|
||||||
|
+ /* CEDT subtable types */
|
||||||
|
+
|
||||||
|
+ Temp8 = *Target;
|
||||||
|
+ if (Temp8 > ACPI_CEDT_TYPE_RESERVED)
|
||||||
|
+ {
|
||||||
|
+ Temp8 = ACPI_CEDT_TYPE_RESERVED;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ AcpiOsPrintf (UINT8_FORMAT, *Target,
|
||||||
|
+ AcpiDmCedtSubnames[Temp8]);
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
case ACPI_DMT_DMAR:
|
||||||
|
|
||||||
|
/* DMAR subtable types */
|
||||||
|
diff --git a/source/common/dmtbinfo1.c b/source/common/dmtbinfo1.c
|
||||||
|
index cb41915..fb1c19a 100644
|
||||||
|
--- a/source/common/dmtbinfo1.c
|
||||||
|
+++ b/source/common/dmtbinfo1.c
|
||||||
|
@@ -244,7 +244,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[] =
|
||||||
|
|
||||||
|
ACPI_DMTABLE_INFO AcpiDmTableInfoCedtHdr[] =
|
||||||
|
{
|
||||||
|
- {ACPI_DMT_UINT8, ACPI_CEDT_OFFSET (Type), "Subtable Type", 0},
|
||||||
|
+ {ACPI_DMT_CEDT, ACPI_CEDT_OFFSET (Type), "Subtable Type", 0},
|
||||||
|
{ACPI_DMT_UINT8, ACPI_CEDT_OFFSET (Reserved), "Reserved", 0},
|
||||||
|
{ACPI_DMT_UINT16, ACPI_CEDT_OFFSET (Length), "Length", DT_LENGTH},
|
||||||
|
ACPI_DMT_TERMINATOR
|
||||||
|
diff --git a/source/compiler/dtcompiler.h b/source/compiler/dtcompiler.h
|
||||||
|
index fd20109..9a78519 100644
|
||||||
|
--- a/source/compiler/dtcompiler.h
|
||||||
|
+++ b/source/compiler/dtcompiler.h
|
||||||
|
@@ -419,6 +419,10 @@ ACPI_STATUS
|
||||||
|
DtCompileCpep (
|
||||||
|
void **PFieldList);
|
||||||
|
|
||||||
|
+ACPI_STATUS
|
||||||
|
+DtCompileCedt (
|
||||||
|
+ void **PFieldList);
|
||||||
|
+
|
||||||
|
ACPI_STATUS
|
||||||
|
DtCompileCsrt (
|
||||||
|
void **PFieldList);
|
||||||
|
diff --git a/source/compiler/dttable1.c b/source/compiler/dttable1.c
|
||||||
|
index 24d33c1..a3240f8 100644
|
||||||
|
--- a/source/compiler/dttable1.c
|
||||||
|
+++ b/source/compiler/dttable1.c
|
||||||
|
@@ -234,6 +234,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
|
||||||
|
diff --git a/source/compiler/dttemplate.h b/source/compiler/dttemplate.h
|
||||||
|
index 275003c..82f352a 100644
|
||||||
|
--- a/source/compiler/dttemplate.h
|
||||||
|
+++ b/source/compiler/dttemplate.h
|
||||||
|
@@ -98,16 +98,23 @@ const unsigned char TemplateBoot[] =
|
||||||
|
|
||||||
|
const unsigned char TemplateCedt[] =
|
||||||
|
{
|
||||||
|
- /* FIXME: This is from QEMU */
|
||||||
|
- 0x43,0x45,0x44,0x54,0x44,0x00,0x00,0x00, /* 00000000 "CEDTD..." */
|
||||||
|
- 0x01,0x3E,0x42,0x4F,0x43,0x48,0x53,0x20, /* 00000008 ".>BOCHS " */
|
||||||
|
- 0x42,0x58,0x50,0x43,0x20,0x20,0x20,0x20, /* 00000010 "BXPC " */
|
||||||
|
- 0x01,0x00,0x00,0x00,0x42,0x58,0x50,0x43, /* 00000018 "....BXPC" */
|
||||||
|
- 0x01,0x00,0x00,0x00,0x00,0x00,0x20,0x00, /* 00000020 "...... ." */
|
||||||
|
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000028 "........" */
|
||||||
|
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD0, /* 00000030 "........" */
|
||||||
|
- 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, /* 00000038 "........" */
|
||||||
|
- 0x00,0x00,0x00,0x00 /* 00000040 "...." */
|
||||||
|
+ 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[] =
|
||||||
|
diff --git a/source/compiler/dtutils.c b/source/compiler/dtutils.c
|
||||||
|
index 658726b..a5ef782 100644
|
||||||
|
--- a/source/compiler/dtutils.c
|
||||||
|
+++ b/source/compiler/dtutils.c
|
||||||
|
@@ -455,6 +455,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:
|
||||||
|
diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h
|
||||||
|
index d7f348f..f50adef 100644
|
||||||
|
--- a/source/include/acdisasm.h
|
||||||
|
+++ b/source/include/acdisasm.h
|
||||||
|
@@ -143,6 +143,7 @@ typedef enum
|
||||||
|
/* Types that are specific to particular ACPI tables */
|
||||||
|
|
||||||
|
ACPI_DMT_ASF,
|
||||||
|
+ ACPI_DMT_CEDT,
|
||||||
|
ACPI_DMT_DMAR,
|
||||||
|
ACPI_DMT_DMAR_SCOPE,
|
||||||
|
ACPI_DMT_EINJACT,
|
||||||
|
diff --git a/source/include/actbl1.h b/source/include/actbl1.h
|
||||||
|
index ce4737d..a551303 100644
|
||||||
|
--- a/source/include/actbl1.h
|
||||||
|
+++ b/source/include/actbl1.h
|
||||||
|
@@ -384,6 +384,7 @@ typedef struct acpi_table_boot
|
||||||
|
|
||||||
|
} ACPI_TABLE_BOOT;
|
||||||
|
|
||||||
|
+
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* CEDT - CXL Early Discovery Table
|
||||||
|
@@ -414,6 +415,7 @@ typedef struct acpi_cedt_header
|
||||||
|
enum AcpiCedtType
|
||||||
|
{
|
||||||
|
ACPI_CEDT_TYPE_CHBS = 0,
|
||||||
|
+ ACPI_CEDT_TYPE_RESERVED = 1
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/source/tools/acpisrc/astable.c b/source/tools/acpisrc/astable.c
|
||||||
|
index 8aa35fe..5fc0ab5 100644
|
||||||
|
--- a/source/tools/acpisrc/astable.c
|
||||||
|
+++ b/source/tools/acpisrc/astable.c
|
||||||
|
@@ -534,6 +534,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = {
|
||||||
|
{"ACPI_TABLE_CSRT", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_TABLE_DBG2", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_TABLE_DBGP", SRC_TYPE_STRUCT},
|
||||||
|
+ {"ACPI_TABLE_CEDT", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_TABLE_DMAR", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_TABLE_DRTM", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_TABLE_ECDT", SRC_TYPE_STRUCT},
|
||||||
|
@@ -592,6 +593,8 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = {
|
||||||
|
{"ACPI_ASF_REMOTE", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_ASF_RMCP", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_BERT_REGION", SRC_TYPE_STRUCT},
|
||||||
|
+ {"ACPI_CEDT_CHBS", SRC_TYPE_STRUCT},
|
||||||
|
+ {"ACPI_CEDT_HEADER", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_CPEP_POLLING", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_CSRT_GROUP", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_CSRT_DESCRIPTOR", SRC_TYPE_STRUCT},
|
31
SOURCES/CEDT-support_05.patch
Normal file
31
SOURCES/CEDT-support_05.patch
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
commit 5ace82441a34f8d45725f12f6bd2677e79c186a6
|
||||||
|
Author: Alison Schofield <alison.schofield@intel.com>
|
||||||
|
Date: Thu May 20 13:33:02 2021 -0700
|
||||||
|
|
||||||
|
Add defines for the CXL Host Bridge Structure (CHBS)
|
||||||
|
|
||||||
|
CXL 2.0 defines length and version field values for the CHBS.
|
||||||
|
Include them in the ACPI CEDT table definition.
|
||||||
|
|
||||||
|
Signed-off-by: Alison Schofield <alison.schofield@intel.com>
|
||||||
|
|
||||||
|
diff --git a/source/include/actbl1.h b/source/include/actbl1.h
|
||||||
|
index a551303..51fee30 100644
|
||||||
|
--- a/source/include/actbl1.h
|
||||||
|
+++ b/source/include/actbl1.h
|
||||||
|
@@ -418,6 +418,15 @@ enum AcpiCedtType
|
||||||
|
ACPI_CEDT_TYPE_RESERVED = 1
|
||||||
|
};
|
||||||
|
|
||||||
|
+/* Values for version field above */
|
||||||
|
+
|
||||||
|
+#define ACPI_CEDT_CHBS_VERSION_CXL11 (0)
|
||||||
|
+#define ACPI_CEDT_CHBS_VERSION_CXL20 (1)
|
||||||
|
+
|
||||||
|
+/* Values for length field above */
|
||||||
|
+
|
||||||
|
+#define ACPI_CEDT_CHBS_LENGTH_CXL11 (0x2000)
|
||||||
|
+#define ACPI_CEDT_CHBS_LENGTH_CXL20 (0x10000)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* CEDT subtables
|
66
SOURCES/CEDT-support_06.patch
Normal file
66
SOURCES/CEDT-support_06.patch
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
commit 699fc72e56936bebf3b9ba39b6e91bd957b44452
|
||||||
|
Author: Alison Schofield <alison.schofield@intel.com>
|
||||||
|
Date: Thu May 20 13:48:40 2021 -0700
|
||||||
|
|
||||||
|
Add the CFMWS structure definition to the CEDT table
|
||||||
|
|
||||||
|
The CXL Fixed Memory Window Structure (CFMWS) is added to the
|
||||||
|
CXL Early Discovery Table (CEDT). This new structure is defined
|
||||||
|
in an ECN to the CXL 2.0 specification.
|
||||||
|
|
||||||
|
https://www.computeexpresslink.org/spec-landing
|
||||||
|
|
||||||
|
Signed-off-by: Alison Schofield <alison.schofield@intel.com>
|
||||||
|
|
||||||
|
diff --git a/source/include/actbl1.h b/source/include/actbl1.h
|
||||||
|
index 51fee30..f274a85 100644
|
||||||
|
--- a/source/include/actbl1.h
|
||||||
|
+++ b/source/include/actbl1.h
|
||||||
|
@@ -415,7 +415,8 @@ typedef struct acpi_cedt_header
|
||||||
|
enum AcpiCedtType
|
||||||
|
{
|
||||||
|
ACPI_CEDT_TYPE_CHBS = 0,
|
||||||
|
- ACPI_CEDT_TYPE_RESERVED = 1
|
||||||
|
+ ACPI_CEDT_TYPE_CFMWS = 1,
|
||||||
|
+ ACPI_CEDT_TYPE_RESERVED = 2,
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Values for version field above */
|
||||||
|
@@ -446,6 +447,37 @@ typedef struct acpi_cedt_chbs
|
||||||
|
} ACPI_CEDT_CHBS;
|
||||||
|
|
||||||
|
|
||||||
|
+/* 1: CXL Fixed Memory Window Structure */
|
||||||
|
+
|
||||||
|
+typedef struct acpi_cedt_cfmws
|
||||||
|
+{
|
||||||
|
+ ACPI_CEDT_HEADER Header;
|
||||||
|
+ UINT32 Reserved1;
|
||||||
|
+ UINT64 BaseHpa;
|
||||||
|
+ UINT64 WindowSize;
|
||||||
|
+ UINT8 InterleaveWays;
|
||||||
|
+ UINT8 InterleaveArithmetic;
|
||||||
|
+ UINT16 Reserved2;
|
||||||
|
+ UINT32 Granularity;
|
||||||
|
+ UINT16 Restrictions;
|
||||||
|
+ UINT16 QtgId;
|
||||||
|
+ UINT32 InterleaveTargets[];
|
||||||
|
+
|
||||||
|
+} ACPI_CEDT_CFMWS;
|
||||||
|
+
|
||||||
|
+/* Values for Interleave Arithmetic field above */
|
||||||
|
+
|
||||||
|
+#define ACPI_CEDT_CFMWS_ARITHMETIC_MODULO (0)
|
||||||
|
+
|
||||||
|
+/* Values for Restrictions field above */
|
||||||
|
+
|
||||||
|
+#define ACPI_CEDT_CFMWS_RESTRICT_TYPE2 (1)
|
||||||
|
+#define ACPI_CEDT_CFMWS_RESTRICT_TYPE3 (1<<1)
|
||||||
|
+#define ACPI_CEDT_CFMWS_RESTRICT_VOLATILE (1<<2)
|
||||||
|
+#define ACPI_CEDT_CFMWS_RESTRICT_PMEM (1<<3)
|
||||||
|
+#define ACPI_CEDT_CFMWS_RESTRICT_FIXED (1<<4)
|
||||||
|
+
|
||||||
|
+
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* CPEP - Corrected Platform Error Polling table (ACPI 4.0)
|
20
SOURCES/CEDT-support_07.patch
Normal file
20
SOURCES/CEDT-support_07.patch
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
commit ec39d05939c799dc1a3635c766805924afdbbe9e
|
||||||
|
Author: Erik Kaneda <erik.kaneda@intel.com>
|
||||||
|
Date: Tue Jun 1 10:37:51 2021 -0700
|
||||||
|
|
||||||
|
Disassembler: add missing strings to decode subtable types
|
||||||
|
|
||||||
|
Signed-off-by: Erik Kaneda <erik.kaneda@intel.com>
|
||||||
|
|
||||||
|
diff --git a/source/common/dmtable.c b/source/common/dmtable.c
|
||||||
|
index 530e872..14aa927 100644
|
||||||
|
--- a/source/common/dmtable.c
|
||||||
|
+++ b/source/common/dmtable.c
|
||||||
|
@@ -79,6 +79,7 @@ static const char *AcpiDmAsfSubnames[] =
|
||||||
|
static const char *AcpiDmCedtSubnames[] =
|
||||||
|
{
|
||||||
|
"CXL Host Bridge Structure",
|
||||||
|
+ "CXL Fixed Memory Window Structure",
|
||||||
|
"Unknown Subtable Type" /* Reserved */
|
||||||
|
};
|
||||||
|
|
184
SOURCES/CEDT-support_08.patch
Normal file
184
SOURCES/CEDT-support_08.patch
Normal file
@ -0,0 +1,184 @@
|
|||||||
|
commit 19b11f91660b1a38a8e9655b0b1a4ad51ec4db1e
|
||||||
|
Author: Lawrence Hileman <larry.hileman@xconn-tech.com>
|
||||||
|
Date: Fri Jan 7 16:33:40 2022 -0800
|
||||||
|
|
||||||
|
Add the subtable CFMWS to the CEDT table
|
||||||
|
|
||||||
|
diff --git a/source/common/dmtbdump1.c b/source/common/dmtbdump1.c
|
||||||
|
index 19a810f..597bb3b 100644
|
||||||
|
--- a/source/common/dmtbdump1.c
|
||||||
|
+++ b/source/common/dmtbdump1.c
|
||||||
|
@@ -242,7 +242,6 @@ AcpiDmDumpCedt (
|
||||||
|
ACPI_CEDT_HEADER *Subtable;
|
||||||
|
UINT32 Length = Table->Length;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_CEDT);
|
||||||
|
- ACPI_DMTABLE_INFO *InfoTable;
|
||||||
|
|
||||||
|
|
||||||
|
/* There is no main table (other than the standard ACPI header) */
|
||||||
|
@@ -263,35 +262,50 @@ AcpiDmDumpCedt (
|
||||||
|
switch (Subtable->Type)
|
||||||
|
{
|
||||||
|
case ACPI_CEDT_TYPE_CHBS:
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
+ Subtable->Length, AcpiDmTableInfoCedt0);
|
||||||
|
+ if (ACPI_FAILURE (Status)) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
+ case ACPI_CEDT_TYPE_CFMWS: {
|
||||||
|
+ ACPI_CEDT_CFMWS *ptr = (ACPI_CEDT_CFMWS *) Subtable;
|
||||||
|
+ unsigned int i, max = 0x01 << (ptr->InterleaveWays);
|
||||||
|
+
|
||||||
|
+ // print out table with first "Interleave target"
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
+ Subtable->Length, AcpiDmTableInfoCedt1);
|
||||||
|
+ if (ACPI_FAILURE (Status)) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- InfoTable = AcpiDmTableInfoCedt0;
|
||||||
|
+ // Now, print out any interleave targets beyond the first.
|
||||||
|
+ for (i = 1; i < max; i++) {
|
||||||
|
+ unsigned int loc_offset = Offset + (i * 4) + ACPI_OFFSET(ACPI_CEDT_CFMWS, InterleaveTargets);
|
||||||
|
+ unsigned int *trg = &(ptr->InterleaveTargets[i]);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, loc_offset, trg,
|
||||||
|
+ Subtable->Length, AcpiDmTableInfoCedt1_te);
|
||||||
|
+ if (ACPI_FAILURE (Status)) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
break;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
default:
|
||||||
|
-
|
||||||
|
AcpiOsPrintf ("\n**** Unknown CEDT subtable type 0x%X\n\n",
|
||||||
|
Subtable->Type);
|
||||||
|
|
||||||
|
/* Attempt to continue */
|
||||||
|
-
|
||||||
|
if (!Subtable->Length)
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("Invalid zero length subtable\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
- goto NextSubtable;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
- Subtable->Length, InfoTable);
|
||||||
|
- if (ACPI_FAILURE (Status))
|
||||||
|
- {
|
||||||
|
- return;
|
||||||
|
}
|
||||||
|
|
||||||
|
-NextSubtable:
|
||||||
|
/* Point to next subtable */
|
||||||
|
-
|
||||||
|
Offset += Subtable->Length;
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_CEDT_HEADER, Subtable,
|
||||||
|
Subtable->Length);
|
||||||
|
diff --git a/source/common/dmtbinfo1.c b/source/common/dmtbinfo1.c
|
||||||
|
index fb1c19a..9fbb8fa 100644
|
||||||
|
--- a/source/common/dmtbinfo1.c
|
||||||
|
+++ b/source/common/dmtbinfo1.c
|
||||||
|
@@ -262,6 +262,28 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoCedt0[] =
|
||||||
|
ACPI_DMT_TERMINATOR
|
||||||
|
};
|
||||||
|
|
||||||
|
+/* 1: CXL Fixed Memory Window Structure */
|
||||||
|
+
|
||||||
|
+ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1[] =
|
||||||
|
+{
|
||||||
|
+ {ACPI_DMT_UINT32, ACPI_CEDT1_OFFSET (Reserved1), "Reserved", 0},
|
||||||
|
+ {ACPI_DMT_UINT64, ACPI_CEDT1_OFFSET (BaseHpa), "Window base address", 0},
|
||||||
|
+ {ACPI_DMT_UINT64, ACPI_CEDT1_OFFSET (WindowSize), "Window size", 0},
|
||||||
|
+ {ACPI_DMT_UINT8, ACPI_CEDT1_OFFSET (InterleaveWays), "Interleave Members (2^n)", 0},
|
||||||
|
+ {ACPI_DMT_UINT8, ACPI_CEDT1_OFFSET (InterleaveArithmetic), "Interleave Arithmetic", 0},
|
||||||
|
+ {ACPI_DMT_UINT16, ACPI_CEDT1_OFFSET (Reserved2), "Reserved", 0},
|
||||||
|
+ {ACPI_DMT_UINT32, ACPI_CEDT1_OFFSET (Granularity), "Granularity", 0},
|
||||||
|
+ {ACPI_DMT_UINT16, ACPI_CEDT1_OFFSET (Restrictions), "Restrictions", 0},
|
||||||
|
+ {ACPI_DMT_UINT16, ACPI_CEDT1_OFFSET (QtgId), "QtgId", 0},
|
||||||
|
+ {ACPI_DMT_UINT32, ACPI_CEDT1_OFFSET (InterleaveTargets), "First Target", 0},
|
||||||
|
+ ACPI_DMT_TERMINATOR
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1_te[] =
|
||||||
|
+{
|
||||||
|
+ {ACPI_DMT_UINT32, ACPI_CEDT1_TE_OFFSET (InterleaveTarget), "Next Target", 0},
|
||||||
|
+ ACPI_DMT_TERMINATOR
|
||||||
|
+};
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
diff --git a/source/compiler/dttable1.c b/source/compiler/dttable1.c
|
||||||
|
index a3240f8..79550ab 100644
|
||||||
|
--- a/source/compiler/dttable1.c
|
||||||
|
+++ b/source/compiler/dttable1.c
|
||||||
|
@@ -282,18 +282,18 @@ DtCompileCedt (
|
||||||
|
switch (CedtHeader->Type)
|
||||||
|
{
|
||||||
|
case ACPI_CEDT_TYPE_CHBS:
|
||||||
|
-
|
||||||
|
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoCedt0, &Subtable);
|
||||||
|
+ break;
|
||||||
|
+ case ACPI_CEDT_TYPE_CFMWS:
|
||||||
|
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoCedt1, &Subtable);
|
||||||
|
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);
|
||||||
|
diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h
|
||||||
|
index f50adef..233cef0 100644
|
||||||
|
--- a/source/include/acdisasm.h
|
||||||
|
+++ b/source/include/acdisasm.h
|
||||||
|
@@ -259,6 +259,8 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[];
|
||||||
|
extern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[];
|
||||||
|
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedtHdr[];
|
||||||
|
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt0[];
|
||||||
|
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1[];
|
||||||
|
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1_te[];
|
||||||
|
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[];
|
||||||
|
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[];
|
||||||
|
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt0[];
|
||||||
|
diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h
|
||||||
|
index 9735f22..91a3d2e 100644
|
||||||
|
--- a/source/include/actbinfo.h
|
||||||
|
+++ b/source/include/actbinfo.h
|
||||||
|
@@ -106,6 +106,8 @@
|
||||||
|
#define ACPI_ASF4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_ADDRESS,f)
|
||||||
|
#define ACPI_CEDT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_HEADER, f)
|
||||||
|
#define ACPI_CEDT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CHBS, f)
|
||||||
|
+#define ACPI_CEDT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CFMWS, f)
|
||||||
|
+#define ACPI_CEDT1_TE_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CFMWS_TARGET_ELEMENT, f)
|
||||||
|
#define ACPI_CPEP0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CPEP_POLLING,f)
|
||||||
|
#define ACPI_CSRT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CSRT_GROUP,f)
|
||||||
|
#define ACPI_CSRT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CSRT_SHARED_INFO,f)
|
||||||
|
diff --git a/source/include/actbl1.h b/source/include/actbl1.h
|
||||||
|
index f274a85..3c46b60 100644
|
||||||
|
--- a/source/include/actbl1.h
|
||||||
|
+++ b/source/include/actbl1.h
|
||||||
|
@@ -465,6 +465,11 @@ typedef struct acpi_cedt_cfmws
|
||||||
|
|
||||||
|
} ACPI_CEDT_CFMWS;
|
||||||
|
|
||||||
|
+typedef struct acpi_cedt_cfmws_target_element
|
||||||
|
+{
|
||||||
|
+ UINT32 InterleaveTarget;
|
||||||
|
+} ACPI_CEDT_CFMWS_TARGET_ELEMENT;
|
||||||
|
+
|
||||||
|
/* Values for Interleave Arithmetic field above */
|
||||||
|
|
||||||
|
#define ACPI_CEDT_CFMWS_ARITHMETIC_MODULO (0)
|
173
SOURCES/CEDT-support_09.patch
Normal file
173
SOURCES/CEDT-support_09.patch
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
commit d9798f5275bb20ab88ac854ba04e6e3bdb22cf6d
|
||||||
|
Author: Lawrence Hileman <larry.hileman@xconn-tech.com>
|
||||||
|
Date: Mon Jan 17 15:24:34 2022 -0800
|
||||||
|
|
||||||
|
Fix Compile issue with CEDT and add template
|
||||||
|
|
||||||
|
diff --git a/source/compiler/dttable1.c b/source/compiler/dttable1.c
|
||||||
|
index 79550ab..6eea2a4 100644
|
||||||
|
--- a/source/compiler/dttable1.c
|
||||||
|
+++ b/source/compiler/dttable1.c
|
||||||
|
@@ -262,6 +262,7 @@ DtCompileCedt (
|
||||||
|
|
||||||
|
while (*PFieldList)
|
||||||
|
{
|
||||||
|
+ int InsertFlag = 1; // if CFMWS and has more than one target, then set to zero later
|
||||||
|
SubtableStart = *PFieldList;
|
||||||
|
|
||||||
|
/* CEDT Header */
|
||||||
|
@@ -283,24 +284,68 @@ DtCompileCedt (
|
||||||
|
{
|
||||||
|
case ACPI_CEDT_TYPE_CHBS:
|
||||||
|
Status = DtCompileTable (PFieldList, AcpiDmTableInfoCedt0, &Subtable);
|
||||||
|
+ if (ACPI_FAILURE (Status))
|
||||||
|
+ {
|
||||||
|
+ return (Status);
|
||||||
|
+ }
|
||||||
|
break;
|
||||||
|
- case ACPI_CEDT_TYPE_CFMWS:
|
||||||
|
+ case ACPI_CEDT_TYPE_CFMWS: {
|
||||||
|
+ unsigned char *dump;
|
||||||
|
+ unsigned int idx, offset, max = 0;
|
||||||
|
+
|
||||||
|
+ // Compile table with first "Interleave target"
|
||||||
|
Status = DtCompileTable (PFieldList, AcpiDmTableInfoCedt1, &Subtable);
|
||||||
|
+ if (ACPI_FAILURE (Status))
|
||||||
|
+ {
|
||||||
|
+ return (Status);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ // Look in buffer for the number of targets
|
||||||
|
+ offset = (unsigned int) ACPI_OFFSET (ACPI_CEDT_CFMWS, InterleaveWays);
|
||||||
|
+ dump = (unsigned char *) Subtable->Buffer - 4; // place at beginning of cedt1
|
||||||
|
+ max = 0x01 << dump[offset]; // 2^max, so 0=1, 1=2, 2=4, 3=8. 8 is MAX
|
||||||
|
+ if (max > 8) max=1; // Error in encoding Interleaving Ways.
|
||||||
|
+ if (max == 1) // if only one target, then break here.
|
||||||
|
+ break; // break if only one target.
|
||||||
|
+
|
||||||
|
+ // We need to add more interleave targets, so write the current Subtable.
|
||||||
|
+ ParentTable = DtPeekSubtable ();
|
||||||
|
+ DtInsertSubtable (ParentTable, Subtable); // Insert AcpiDmTableInfoCedt1 table so we can put in
|
||||||
|
+ DtPushSubtable (Subtable); // the targets > the first.
|
||||||
|
+
|
||||||
|
+ // Now, find out all interleave targets beyond the first.
|
||||||
|
+ for (idx = 1; idx < max; idx++) {
|
||||||
|
+ ParentTable = DtPeekSubtable ();
|
||||||
|
+
|
||||||
|
+ if (*PFieldList)
|
||||||
|
+ {
|
||||||
|
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoCedt1_te, &Subtable);
|
||||||
|
+ if (ACPI_FAILURE (Status))
|
||||||
|
+ {
|
||||||
|
+ return (Status);
|
||||||
|
+ }
|
||||||
|
+ if (Subtable)
|
||||||
|
+ {
|
||||||
|
+ DtInsertSubtable (ParentTable, Subtable); // got a target, so insert table.
|
||||||
|
+ InsertFlag = 0;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ DtPopSubtable ();
|
||||||
|
+ ParentTable = DtPeekSubtable ();
|
||||||
|
break;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
default:
|
||||||
|
DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "CEDT");
|
||||||
|
return (AE_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
- /* CEDT Subtable */
|
||||||
|
- if (ACPI_FAILURE (Status))
|
||||||
|
- {
|
||||||
|
- return (Status);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
ParentTable = DtPeekSubtable ();
|
||||||
|
- DtInsertSubtable (ParentTable, Subtable);
|
||||||
|
+ if (InsertFlag == 1) {
|
||||||
|
+ DtInsertSubtable (ParentTable, Subtable);
|
||||||
|
+ }
|
||||||
|
DtPopSubtable ();
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/source/compiler/dttemplate.h b/source/compiler/dttemplate.h
|
||||||
|
index 82f352a..ceddb93 100644
|
||||||
|
--- a/source/compiler/dttemplate.h
|
||||||
|
+++ b/source/compiler/dttemplate.h
|
||||||
|
@@ -98,23 +98,58 @@ const unsigned char TemplateBoot[] =
|
||||||
|
|
||||||
|
const unsigned char TemplateCedt[] =
|
||||||
|
{
|
||||||
|
- 0x43,0x45,0x44,0x54,0x84,0x00,0x00,0x00, /* 00000000 "CEDT...." */
|
||||||
|
- 0x01,0x8B,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
|
||||||
|
- 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */
|
||||||
|
- 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
|
||||||
|
- 0x05,0x01,0x21,0x20,0x00,0x00,0x20,0x00, /* 00000020 "..! .. ." */
|
||||||
|
- 0x33,0x33,0xCD,0xAB,0x01,0x00,0x00,0x00, /* 00000028 "33......" */
|
||||||
|
- 0x00,0x00,0x00,0x00,0x00,0x21,0x43,0xD5, /* 00000030 ".....!C." */
|
||||||
|
- 0x00,0x00,0x00,0x00,0x45,0x23,0x01,0x00, /* 00000038 "....E#.." */
|
||||||
|
+ 0x43,0x45,0x44,0x54,0x9c,0x01,0x00,0x00, /* 00000000 "CEDT...." */
|
||||||
|
+ 0x01,0x87,0x49,0x4e,0x54,0x45,0x4c,0x20, /* 00000008 "..INTEL " */
|
||||||
|
+ 0x54,0x45,0x4d,0x50,0x4c,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x49,0x4e,0x54,0x4c, /* 00000018 "....INTL" */
|
||||||
|
+ 0x17,0x12,0x21,0x20,0x00,0x00,0x20,0x00, /* 00000020 "..! .. ." */
|
||||||
|
+ 0x00,0x5e,0xba,0x00,0x00,0x00,0x00,0x00, /* 00000028 ".^......" */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00, /* 00000030 "........" */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00, /* 00000038 "..... .." */
|
||||||
|
0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00, /* 00000040 "...... ." */
|
||||||
|
- 0x44,0x44,0xCD,0xAB,0x01,0x00,0x00,0x00, /* 00000048 "DD......" */
|
||||||
|
- 0x00,0x00,0x00,0x00,0x00,0x21,0x43,0xA5, /* 00000050 ".....!C." */
|
||||||
|
- 0x00,0x00,0x00,0x00,0x45,0x23,0xB1,0x00, /* 00000058 "....E#.." */
|
||||||
|
+ 0x01,0x5e,0xba,0x00,0x00,0x00,0x00,0x00, /* 00000048 ".^......" */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00, /* 00000050 "..... .." */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00, /* 00000058 "..... .." */
|
||||||
|
0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00, /* 00000060 "...... ." */
|
||||||
|
- 0x55,0x55,0xCD,0xAB,0x01,0x00,0x00,0x00, /* 00000068 "UU......" */
|
||||||
|
- 0x00,0x00,0x00,0x00,0x00,0x21,0x43,0xB5, /* 00000070 ".....!C." */
|
||||||
|
- 0x00,0x00,0x00,0x00,0x45,0x23,0xB1,0x00, /* 00000078 "....E#.." */
|
||||||
|
- 0x00,0x00,0x00,0x00 /* 00000080 "...." */
|
||||||
|
+ 0x02,0x5e,0xba,0x00,0x00,0x00,0x00,0x00, /* 00000068 ".^......" */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00, /* 00000070 ".....0.." */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00, /* 00000078 "..... .." */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00, /* 00000080 "...... ." */
|
||||||
|
+ 0x03,0x5e,0xba,0x00,0x00,0x00,0x00,0x00, /* 00000088 ".^......" */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00, /* 00000090 ".....@.." */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00, /* 00000098 "..... .." */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x28,0x00, /* 000000a0 "......(." */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000a8 "........" */
|
||||||
|
+ 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000b0 "........" */
|
||||||
|
+ 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000b8 "........" */
|
||||||
|
+ 0x03,0x00,0x00,0x00,0x06,0x00,0x01,0x00, /* 000000c0 "........" */
|
||||||
|
+ 0x00,0x5e,0xba,0x00,0x01,0x00,0x28,0x00, /* 000000c8 ".^....(." */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000d0 "........" */
|
||||||
|
+ 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000d8 "........" */
|
||||||
|
+ 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000e0 "........" */
|
||||||
|
+ 0x03,0x00,0x00,0x00,0x06,0x00,0x01,0x00, /* 000000e8 "........" */
|
||||||
|
+ 0x01,0x5e,0xba,0x00,0x01,0x00,0x28,0x00, /* 000000f0 ".^....(." */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000f8 "........" */
|
||||||
|
+ 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000100 "........" */
|
||||||
|
+ 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000108 "........" */
|
||||||
|
+ 0x03,0x00,0x00,0x00,0x06,0x00,0x01,0x00, /* 00000110 "........" */
|
||||||
|
+ 0x02,0x5e,0xba,0x00,0x01,0x00,0x28,0x00, /* 00000118 ".^....(." */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000120 "........" */
|
||||||
|
+ 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000128 "........" */
|
||||||
|
+ 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000130 "........" */
|
||||||
|
+ 0x03,0x00,0x00,0x00,0x06,0x00,0x01,0x00, /* 00000138 "........" */
|
||||||
|
+ 0x03,0x5e,0xba,0x00,0x01,0x00,0x2c,0x00, /* 00000140 ".^....,." */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000148 "........" */
|
||||||
|
+ 0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000150 "........" */
|
||||||
|
+ 0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000158 "........" */
|
||||||
|
+ 0x03,0x00,0x00,0x00,0x06,0x00,0x01,0x00, /* 00000160 "........" */
|
||||||
|
+ 0x00,0x5e,0xba,0x00,0x01,0x5e,0xba,0x00, /* 00000160 ".^...^.." */
|
||||||
|
+ 0x01,0x00,0x2c,0x00,0x00,0x00,0x00,0x00, /* 00000170 "..,....." */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00, /* 00000178 "........" */
|
||||||
|
+ 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, /* 00000180 "........" */
|
||||||
|
+ 0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00, /* 00000188 "........" */
|
||||||
|
+ 0x0a,0x00,0x01,0x00,0x02,0x5e,0xba,0x00, /* 00000190 ".....^.." */
|
||||||
|
+ 0x03,0x5e,0xba,0x00 /* 00000198 ".^.." */
|
||||||
|
};
|
||||||
|
|
||||||
|
const unsigned char TemplateCpep[] =
|
127
SOURCES/CEDT-support_10.patch
Normal file
127
SOURCES/CEDT-support_10.patch
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
commit 0914618b553d6f3366e568409cebf2656891ca69
|
||||||
|
Author: Robert Moore <Robert.Moore@intel.com>
|
||||||
|
Date: Thu Feb 17 14:24:24 2022 -0800
|
||||||
|
|
||||||
|
Automated cleanup; No functional changes
|
||||||
|
Removed some tabs and // comments.
|
||||||
|
|
||||||
|
diff --git a/source/common/dmtbdump1.c b/source/common/dmtbdump1.c
|
||||||
|
index 597bb3b..76662a4 100644
|
||||||
|
--- a/source/common/dmtbdump1.c
|
||||||
|
+++ b/source/common/dmtbdump1.c
|
||||||
|
@@ -273,14 +273,16 @@ AcpiDmDumpCedt (
|
||||||
|
ACPI_CEDT_CFMWS *ptr = (ACPI_CEDT_CFMWS *) Subtable;
|
||||||
|
unsigned int i, max = 0x01 << (ptr->InterleaveWays);
|
||||||
|
|
||||||
|
- // print out table with first "Interleave target"
|
||||||
|
+ /* print out table with first "Interleave target" */
|
||||||
|
+
|
||||||
|
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
Subtable->Length, AcpiDmTableInfoCedt1);
|
||||||
|
if (ACPI_FAILURE (Status)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- // Now, print out any interleave targets beyond the first.
|
||||||
|
+ /* Now, print out any interleave targets beyond the first. */
|
||||||
|
+
|
||||||
|
for (i = 1; i < max; i++) {
|
||||||
|
unsigned int loc_offset = Offset + (i * 4) + ACPI_OFFSET(ACPI_CEDT_CFMWS, InterleaveTargets);
|
||||||
|
unsigned int *trg = &(ptr->InterleaveTargets[i]);
|
||||||
|
diff --git a/source/compiler/dttable1.c b/source/compiler/dttable1.c
|
||||||
|
index 6eea2a4..e2e0379 100644
|
||||||
|
--- a/source/compiler/dttable1.c
|
||||||
|
+++ b/source/compiler/dttable1.c
|
||||||
|
@@ -262,7 +262,9 @@ DtCompileCedt (
|
||||||
|
|
||||||
|
while (*PFieldList)
|
||||||
|
{
|
||||||
|
- int InsertFlag = 1; // if CFMWS and has more than one target, then set to zero later
|
||||||
|
+ /* if CFMWS and has more than one target, then set to zero later */
|
||||||
|
+
|
||||||
|
+ int InsertFlag = 1;
|
||||||
|
SubtableStart = *PFieldList;
|
||||||
|
|
||||||
|
/* CEDT Header */
|
||||||
|
@@ -293,27 +295,30 @@ DtCompileCedt (
|
||||||
|
unsigned char *dump;
|
||||||
|
unsigned int idx, offset, max = 0;
|
||||||
|
|
||||||
|
- // Compile table with first "Interleave target"
|
||||||
|
+ /* Compile table with first "Interleave target" */
|
||||||
|
+
|
||||||
|
Status = DtCompileTable (PFieldList, AcpiDmTableInfoCedt1, &Subtable);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return (Status);
|
||||||
|
}
|
||||||
|
|
||||||
|
- // Look in buffer for the number of targets
|
||||||
|
+ /* Look in buffer for the number of targets */
|
||||||
|
offset = (unsigned int) ACPI_OFFSET (ACPI_CEDT_CFMWS, InterleaveWays);
|
||||||
|
- dump = (unsigned char *) Subtable->Buffer - 4; // place at beginning of cedt1
|
||||||
|
- max = 0x01 << dump[offset]; // 2^max, so 0=1, 1=2, 2=4, 3=8. 8 is MAX
|
||||||
|
- if (max > 8) max=1; // Error in encoding Interleaving Ways.
|
||||||
|
- if (max == 1) // if only one target, then break here.
|
||||||
|
- break; // break if only one target.
|
||||||
|
+ dump = (unsigned char *) Subtable->Buffer - 4; /* place at beginning of cedt1 */
|
||||||
|
+ max = 0x01 << dump[offset]; /* 2^max, so 0=1, 1=2, 2=4, 3=8. 8 is MAX */
|
||||||
|
+ if (max > 8) max=1; /* Error in encoding Interleaving Ways. */
|
||||||
|
+ if (max == 1) /* if only one target, then break here. */
|
||||||
|
+ break; /* break if only one target. */
|
||||||
|
+
|
||||||
|
+ /* We need to add more interleave targets, so write the current Subtable. */
|
||||||
|
|
||||||
|
- // We need to add more interleave targets, so write the current Subtable.
|
||||||
|
ParentTable = DtPeekSubtable ();
|
||||||
|
- DtInsertSubtable (ParentTable, Subtable); // Insert AcpiDmTableInfoCedt1 table so we can put in
|
||||||
|
- DtPushSubtable (Subtable); // the targets > the first.
|
||||||
|
+ DtInsertSubtable (ParentTable, Subtable); /* Insert AcpiDmTableInfoCedt1 table so we can put in */
|
||||||
|
+ DtPushSubtable (Subtable); /* the targets > the first. */
|
||||||
|
+
|
||||||
|
+ /* Now, find out all interleave targets beyond the first. */
|
||||||
|
|
||||||
|
- // Now, find out all interleave targets beyond the first.
|
||||||
|
for (idx = 1; idx < max; idx++) {
|
||||||
|
ParentTable = DtPeekSubtable ();
|
||||||
|
|
||||||
|
@@ -326,7 +331,7 @@ DtCompileCedt (
|
||||||
|
}
|
||||||
|
if (Subtable)
|
||||||
|
{
|
||||||
|
- DtInsertSubtable (ParentTable, Subtable); // got a target, so insert table.
|
||||||
|
+ DtInsertSubtable (ParentTable, Subtable); /* got a target, so insert table. */
|
||||||
|
InsertFlag = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/source/include/actbl1.h b/source/include/actbl1.h
|
||||||
|
index 3c46b60..b291aa2 100644
|
||||||
|
--- a/source/include/actbl1.h
|
||||||
|
+++ b/source/include/actbl1.h
|
||||||
|
@@ -468,19 +468,20 @@ typedef struct acpi_cedt_cfmws
|
||||||
|
typedef struct acpi_cedt_cfmws_target_element
|
||||||
|
{
|
||||||
|
UINT32 InterleaveTarget;
|
||||||
|
+
|
||||||
|
} ACPI_CEDT_CFMWS_TARGET_ELEMENT;
|
||||||
|
|
||||||
|
/* Values for Interleave Arithmetic field above */
|
||||||
|
|
||||||
|
-#define ACPI_CEDT_CFMWS_ARITHMETIC_MODULO (0)
|
||||||
|
+#define ACPI_CEDT_CFMWS_ARITHMETIC_MODULO (0)
|
||||||
|
|
||||||
|
/* Values for Restrictions field above */
|
||||||
|
|
||||||
|
-#define ACPI_CEDT_CFMWS_RESTRICT_TYPE2 (1)
|
||||||
|
-#define ACPI_CEDT_CFMWS_RESTRICT_TYPE3 (1<<1)
|
||||||
|
-#define ACPI_CEDT_CFMWS_RESTRICT_VOLATILE (1<<2)
|
||||||
|
-#define ACPI_CEDT_CFMWS_RESTRICT_PMEM (1<<3)
|
||||||
|
-#define ACPI_CEDT_CFMWS_RESTRICT_FIXED (1<<4)
|
||||||
|
+#define ACPI_CEDT_CFMWS_RESTRICT_TYPE2 (1)
|
||||||
|
+#define ACPI_CEDT_CFMWS_RESTRICT_TYPE3 (1<<1)
|
||||||
|
+#define ACPI_CEDT_CFMWS_RESTRICT_VOLATILE (1<<2)
|
||||||
|
+#define ACPI_CEDT_CFMWS_RESTRICT_PMEM (1<<3)
|
||||||
|
+#define ACPI_CEDT_CFMWS_RESTRICT_FIXED (1<<4)
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
18
SOURCES/CEDT-support_11.patch
Normal file
18
SOURCES/CEDT-support_11.patch
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
commit 7021087eedb0d7156286e9e4f255e93c07816921
|
||||||
|
Author: Robert Moore <Robert.Moore@intel.com>
|
||||||
|
Date: Fri Aug 26 12:20:07 2022 -0700
|
||||||
|
|
||||||
|
Remove a duplicate of ACPI_SIG_CEDT
|
||||||
|
|
||||||
|
diff --git a/source/tools/acpisrc/astable.c b/source/tools/acpisrc/astable.c
|
||||||
|
index 5fc0ab5..2946e0d 100644
|
||||||
|
--- a/source/tools/acpisrc/astable.c
|
||||||
|
+++ b/source/tools/acpisrc/astable.c
|
||||||
|
@@ -534,7 +534,6 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = {
|
||||||
|
{"ACPI_TABLE_CSRT", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_TABLE_DBG2", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_TABLE_DBGP", SRC_TYPE_STRUCT},
|
||||||
|
- {"ACPI_TABLE_CEDT", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_TABLE_DMAR", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_TABLE_DRTM", SRC_TYPE_STRUCT},
|
||||||
|
{"ACPI_TABLE_ECDT", SRC_TYPE_STRUCT},
|
@ -1,6 +1,6 @@
|
|||||||
Name: acpica-tools
|
Name: acpica-tools
|
||||||
Version: 20180629
|
Version: 20180629
|
||||||
Release: 3%{?dist}
|
Release: 5%{?dist}
|
||||||
Summary: ACPICA tools for the development and debug of ACPI tables
|
Summary: ACPICA tools for the development and debug of ACPI tables
|
||||||
|
|
||||||
Group: Development/Languages
|
Group: Development/Languages
|
||||||
@ -42,8 +42,19 @@ Patch13: cve-2017-13693.patch
|
|||||||
Patch14: cve-2017-13694.patch
|
Patch14: cve-2017-13694.patch
|
||||||
Patch15: cve-2017-13695.patch
|
Patch15: cve-2017-13695.patch
|
||||||
Patch16: str-trunc-warn.patch
|
Patch16: str-trunc-warn.patch
|
||||||
Patch17: ptr-cast.patch
|
Patch17: ptr-cast.patch
|
||||||
Patch18: aslcodegen.patch
|
Patch18: aslcodegen.patch
|
||||||
|
Patch19: CEDT-support_01.patch
|
||||||
|
Patch20: CEDT-support_02.patch
|
||||||
|
Patch21: CEDT-support_03.patch
|
||||||
|
Patch22: CEDT-support_04.patch
|
||||||
|
Patch23: CEDT-support_05.patch
|
||||||
|
Patch24: CEDT-support_06.patch
|
||||||
|
Patch25: CEDT-support_07.patch
|
||||||
|
Patch26: CEDT-support_08.patch
|
||||||
|
Patch27: CEDT-support_09.patch
|
||||||
|
Patch28: CEDT-support_10.patch
|
||||||
|
Patch29: CEDT-support_11.patch
|
||||||
|
|
||||||
BuildRequires: bison patchutils flex gcc
|
BuildRequires: bison patchutils flex gcc
|
||||||
|
|
||||||
@ -93,25 +104,7 @@ This version of the tools is being released under GPLv2 license.
|
|||||||
%setup -q -n acpica-unix2-%{version}
|
%setup -q -n acpica-unix2-%{version}
|
||||||
gzip -dc %{SOURCE1} | tar -x --strip-components=1 -f -
|
gzip -dc %{SOURCE1} | tar -x --strip-components=1 -f -
|
||||||
|
|
||||||
%patch0 -p1 -b .big-endian
|
%autopatch -p1
|
||||||
%patch1 -p1 -b .unaligned
|
|
||||||
%patch2 -p1 -b .OPT_LDFLAGS
|
|
||||||
%patch3 -p1 -b .int-format
|
|
||||||
%patch4 -p1 -b .f23-harden
|
|
||||||
%patch5 -p1 -b .template
|
|
||||||
%patch6 -p1 -b .free
|
|
||||||
%patch7 -p1 -b .ppc64le
|
|
||||||
%patch8 -p1 -b .arm7hl
|
|
||||||
%patch9 -p1 -b .big-endian-v2
|
|
||||||
%patch10 -p1 -b .simple-64bit
|
|
||||||
%patch11 -p1 -b .be-tpm2
|
|
||||||
%patch12 -p1 -b .mips-be-fix
|
|
||||||
%patch13 -p1 -b .cve-2017-13693
|
|
||||||
%patch14 -p1 -b .cve-2017-13694
|
|
||||||
%patch15 -p1 -b .cve-2017-13695
|
|
||||||
%patch16 -p1 -b .str-trunc-warn
|
|
||||||
%patch17 -p1 -b .ptr-cast
|
|
||||||
%patch18 -p1 -b .aslcodegen
|
|
||||||
|
|
||||||
cp -p %{SOURCE2} README.Fedora
|
cp -p %{SOURCE2} README.Fedora
|
||||||
cp -p %{SOURCE3} iasl.1
|
cp -p %{SOURCE3} iasl.1
|
||||||
@ -240,6 +233,24 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Oct 06 2022 Dean Nelson <dnelson@redhat.com> - 20180629-5
|
||||||
|
- Switch to using '%%autopatch -p1' and eliminate long list of '%%patch<N> -p1 -b <name>'.
|
||||||
|
- Backport 0b03aa8ebd7a ("CXL 2.0: CEDT: Add new CEDT table").
|
||||||
|
- Backport b980be9b7fd3 ("CXL 2.0: CEDT: Add table and subtable dumping").
|
||||||
|
- Backport 187e2f286f50 ("CXL 2.0: CEDT: Add template").
|
||||||
|
- Backport 1e6dded267b1 ("iASL/TableCompiler: Add compilation support for CEDT table.").
|
||||||
|
- Backport 5ace82441a34 ("Add defines for the CXL Host Bridge Structure (CHBS)").
|
||||||
|
- Backport 699fc72e5693 ("Add the CFMWS structure definition to the CEDT table").
|
||||||
|
- Backport ec39d05939c7 ("Disassembler: add missing strings to decode subtable types").
|
||||||
|
- Backport 19b11f91660b ("Add the subtable CFMWS to the CEDT table").
|
||||||
|
- Backport d9798f5275bb ("Fix Compile issue with CEDT and add template").
|
||||||
|
- Backport 0914618b553d ("Automated cleanup; No functional changes").
|
||||||
|
- Backport 7021087eedb0 ("Remove a duplicate of ACPI_SIG_CEDT").
|
||||||
|
|
||||||
|
* Mon Aug 19 2019 Al Stone <ahs3@redhat.com> - 20180629-4
|
||||||
|
- Add in OSCI testing to the build
|
||||||
|
- Resolves: rhbz#1682381
|
||||||
|
|
||||||
* Wed Aug 8 2018 Al Stone <ahs3@redhat.com> - 20180629-3
|
* Wed Aug 8 2018 Al Stone <ahs3@redhat.com> - 20180629-3
|
||||||
- Add in man page for acpiexamples. So that the man page makes some sense,
|
- Add in man page for acpiexamples. So that the man page makes some sense,
|
||||||
also copy the source code used for acpiexamples to the doc directory for
|
also copy the source code used for acpiexamples to the doc directory for
|
||||||
|
Loading…
Reference in New Issue
Block a user