summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Moore <Robert.Moore@intel.com>2022-03-29 09:55:18 -0700
committerGitHub <noreply@github.com>2022-03-29 09:55:18 -0700
commit06aec76730fe6da96550df6d196d76cb4f7be87d (patch)
tree27666d93d89e99488513f87e777d82d1b229675a
parent87602aafc793b5e884a889fb109a899523c1a672 (diff)
parentfc00da7aa878cf46b76735bde3952ac1e82bd944 (diff)
downloadacpica-06aec76730fe6da96550df6d196d76cb4f7be87d.tar.gz
Merge pull request #753 from marcj303/master
Add DMAR SATC structure to iasl
-rw-r--r--source/common/dmtable.c1
-rw-r--r--source/common/dmtbdump1.c6
-rw-r--r--source/common/dmtbinfo1.c9
-rw-r--r--source/compiler/dttable1.c5
-rw-r--r--source/compiler/dttemplate.h10
-rw-r--r--source/include/acdisasm.h1
-rw-r--r--source/include/actbinfo.h1
-rw-r--r--source/include/actbl1.h15
8 files changed, 43 insertions, 5 deletions
diff --git a/source/common/dmtable.c b/source/common/dmtable.c
index 1497a2e96..7535338e8 100644
--- a/source/common/dmtable.c
+++ b/source/common/dmtable.c
@@ -248,6 +248,7 @@ static const char *AcpiDmDmarSubnames[] =
"Root Port ATS Capability",
"Remapping Hardware Static Affinity",
"ACPI Namespace Device Declaration",
+ "SoC Integrated Address Translation Cache",
"Unknown Subtable Type" /* Reserved */
};
diff --git a/source/common/dmtbdump1.c b/source/common/dmtbdump1.c
index 4b659750b..13662611e 100644
--- a/source/common/dmtbdump1.c
+++ b/source/common/dmtbdump1.c
@@ -1066,6 +1066,12 @@ AcpiDmDumpDmar (
ScopeOffset = sizeof (ACPI_DMAR_ANDD);
break;
+ case ACPI_DMAR_TYPE_SATC:
+
+ InfoTable = AcpiDmTableInfoDmar5;
+ ScopeOffset = sizeof (ACPI_DMAR_SATC);
+ break;
+
default:
AcpiOsPrintf ("\n**** Unknown DMAR subtable type 0x%X\n\n",
diff --git a/source/common/dmtbinfo1.c b/source/common/dmtbinfo1.c
index bb9d4b9da..d6a94bfc1 100644
--- a/source/common/dmtbinfo1.c
+++ b/source/common/dmtbinfo1.c
@@ -790,6 +790,15 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoDmar4[] =
ACPI_DMT_TERMINATOR
};
+/* 5: Hardware Unit Definition */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoDmar5[] =
+{
+ {ACPI_DMT_UINT8, ACPI_DMAR5_OFFSET (Flags), "Flags", 0},
+ {ACPI_DMT_UINT8, ACPI_DMAR5_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT16, ACPI_DMAR5_OFFSET (Segment), "PCI Segment Number", 0},
+ ACPI_DMT_TERMINATOR
+};
/*******************************************************************************
*
diff --git a/source/compiler/dttable1.c b/source/compiler/dttable1.c
index 1df24d49f..7aba01393 100644
--- a/source/compiler/dttable1.c
+++ b/source/compiler/dttable1.c
@@ -1151,6 +1151,11 @@ DtCompileDmar (
InfoTable = AcpiDmTableInfoDmar4;
break;
+ case ACPI_DMAR_TYPE_SATC:
+
+ InfoTable = AcpiDmTableInfoDmar5;
+ break;
+
default:
DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "DMAR");
diff --git a/source/compiler/dttemplate.h b/source/compiler/dttemplate.h
index 9c46e33b2..8ac0f7614 100644
--- a/source/compiler/dttemplate.h
+++ b/source/compiler/dttemplate.h
@@ -494,11 +494,11 @@ const unsigned char TemplateDbgp[] =
const unsigned char TemplateDmar[] =
{
- 0x44,0x4D,0x41,0x52,0x8C,0x00,0x00,0x00, /* 00000000 "DMAR...." */
- 0x01,0x03,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
+ 0x44,0x4D,0x41,0x52,0x9C,0x00,0x00,0x00, /* 00000000 "DMAR...." */
+ 0x01,0xB8,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */
0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
- 0x17,0x05,0x13,0x20,0x2F,0x01,0x00,0x00, /* 00000020 "... /..." */
+ 0x17,0x12,0x21,0x20,0x2F,0x01,0x00,0x00, /* 00000020 "..! /..." */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000028 "........" */
0x00,0x00,0x18,0x00,0x01,0x00,0x00,0x00, /* 00000030 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */
@@ -511,7 +511,9 @@ const unsigned char TemplateDmar[] =
0x02,0x08,0x00,0x00,0x00,0x00,0x00,0x03, /* 00000070 "........" */
0x03,0x00,0x14,0x00,0x00,0x00,0x00,0x00, /* 00000078 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000080 "........" */
- 0x00,0x00,0x00,0x00 /* 00000088 "...." */
+ 0x00,0x00,0x00,0x00,0x05,0x00,0x10,0x00, /* 00000088 "........" */
+ 0x00,0x00,0x00,0x00,0x01,0x08,0x00,0x00, /* 00000090 "........" */
+ 0x00,0x00,0x00,0x02 /* 00000098 "...." */
};
const unsigned char TemplateDrtm[] =
diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h
index e81affadb..37b1511fa 100644
--- a/source/include/acdisasm.h
+++ b/source/include/acdisasm.h
@@ -426,6 +426,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar4[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar5[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0a[];
diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h
index de0bea849..633f7349b 100644
--- a/source/include/actbinfo.h
+++ b/source/include/actbinfo.h
@@ -248,6 +248,7 @@
#define ACPI_DMAR2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DMAR_ATSR,f)
#define ACPI_DMAR3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DMAR_RHSA,f)
#define ACPI_DMAR4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DMAR_ANDD,f)
+#define ACPI_DMAR5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DMAR_SATC,f)
#define ACPI_DRTM0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DRTM_VTABLE_LIST,f)
#define ACPI_DRTM1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DRTM_RESOURCE_LIST,f)
#define ACPI_DRTM1a_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DRTM_RESOURCE,f)
diff --git a/source/include/actbl1.h b/source/include/actbl1.h
index be61e1247..3de78b0d8 100644
--- a/source/include/actbl1.h
+++ b/source/include/actbl1.h
@@ -853,7 +853,8 @@ enum AcpiDmarType
ACPI_DMAR_TYPE_ROOT_ATS = 2,
ACPI_DMAR_TYPE_HARDWARE_AFFINITY = 3,
ACPI_DMAR_TYPE_NAMESPACE = 4,
- ACPI_DMAR_TYPE_RESERVED = 5 /* 5 and greater are reserved */
+ ACPI_DMAR_TYPE_SATC = 5,
+ ACPI_DMAR_TYPE_RESERVED = 6 /* 6 and greater are reserved */
};
@@ -968,6 +969,18 @@ typedef struct acpi_dmar_andd
} ACPI_DMAR_ANDD;
+/* 5: SoC Integrated Address Translation Cache (SATC) */
+
+typedef struct acpi_dmar_satc
+{
+ ACPI_DMAR_HEADER Header;
+ UINT8 Flags;
+ UINT8 Reserved;
+ UINT16 Segment;
+
+} ACPI_DMAR_SATC
+
+;
/*******************************************************************************
*
* DRTM - Dynamic Root of Trust for Measurement table