diff options
author | Robert Moore <Robert.Moore@intel.com> | 2022-03-29 09:55:18 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-29 09:55:18 -0700 |
commit | 06aec76730fe6da96550df6d196d76cb4f7be87d (patch) | |
tree | 27666d93d89e99488513f87e777d82d1b229675a | |
parent | 87602aafc793b5e884a889fb109a899523c1a672 (diff) | |
parent | fc00da7aa878cf46b76735bde3952ac1e82bd944 (diff) | |
download | acpica-06aec76730fe6da96550df6d196d76cb4f7be87d.tar.gz |
Merge pull request #753 from marcj303/master
Add DMAR SATC structure to iasl
-rw-r--r-- | source/common/dmtable.c | 1 | ||||
-rw-r--r-- | source/common/dmtbdump1.c | 6 | ||||
-rw-r--r-- | source/common/dmtbinfo1.c | 9 | ||||
-rw-r--r-- | source/compiler/dttable1.c | 5 | ||||
-rw-r--r-- | source/compiler/dttemplate.h | 10 | ||||
-rw-r--r-- | source/include/acdisasm.h | 1 | ||||
-rw-r--r-- | source/include/actbinfo.h | 1 | ||||
-rw-r--r-- | source/include/actbl1.h | 15 |
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 |