X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdePkg%2FInclude%2FIndustryStandard%2FIoRemappingTable.h;h=389f352c2fbc725e5e9a881a73adc306035dc0de;hb=76c09700edc67686b29662e81a3ca7d947594ce5;hp=430df3b956bbdb41c6d0dbadd81f4f13cfef35d1;hpb=75ce7ef7cf054e1a266ae0e54c19a1ab66d80c6e;p=mirror_edk2.git
diff --git a/MdePkg/Include/IndustryStandard/IoRemappingTable.h b/MdePkg/Include/IndustryStandard/IoRemappingTable.h
index 430df3b956..389f352c2f 100644
--- a/MdePkg/Include/IndustryStandard/IoRemappingTable.h
+++ b/MdePkg/Include/IndustryStandard/IoRemappingTable.h
@@ -1,9 +1,10 @@
/** @file
- ACPI IO Remapping Table (IORT) as specified in ARM spec DEN0049B
+ ACPI IO Remapping Table (IORT) as specified in ARM spec DEN0049D
- http://infocenter.arm.com/help/topic/com.arm.doc.den0049b/DEN0049B_IO_Remapping_Table.pdf
+ http://infocenter.arm.com/help/topic/com.arm.doc.den0049d/DEN0049D_IO_Remapping_Table.pdf
Copyright (c) 2017, Linaro Limited. All rights reserved.
+ Copyright (c) 2018, ARM Limited. All rights reserved.
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -26,6 +27,7 @@
#define EFI_ACPI_IORT_TYPE_ROOT_COMPLEX 0x2
#define EFI_ACPI_IORT_TYPE_SMMUv1v2 0x3
#define EFI_ACPI_IORT_TYPE_SMMUv3 0x4
+#define EFI_ACPI_IORT_TYPE_PMCG 0x5
#define EFI_ACPI_IORT_MEM_ACCESS_PROP_CCA BIT0
@@ -41,6 +43,8 @@
#define EFI_ACPI_IORT_SMMUv1v2_MODEL_v2 0x1
#define EFI_ACPI_IORT_SMMUv1v2_MODEL_MMU400 0x2
#define EFI_ACPI_IORT_SMMUv1v2_MODEL_MMU500 0x3
+#define EFI_ACPI_IORT_SMMUv1v2_MODEL_MMU401 0x4
+#define EFI_ACPI_IORT_SMMUv1v2_MODEL_CAVIUM_THX_v2 0x5
#define EFI_ACPI_IORT_SMMUv1v2_FLAG_DVM BIT0
#define EFI_ACPI_IORT_SMMUv1v2_FLAG_COH_WALK BIT1
@@ -50,6 +54,11 @@
#define EFI_ACPI_IORT_SMMUv3_FLAG_COHAC_OVERRIDE BIT0
#define EFI_ACPI_IORT_SMMUv3_FLAG_HTTU_OVERRIDE BIT1
+#define EFI_ACPI_IORT_SMMUv3_FLAG_PROXIMITY_DOMAIN BIT3
+
+#define EFI_ACPI_IORT_SMMUv3_MODEL_GENERIC 0x0
+#define EFI_ACPI_IORT_SMMUv3_MODEL_HISILICON_HI161X 0x1
+#define EFI_ACPI_IORT_SMMUv3_MODEL_CAVIUM_CN99XX 0x2
#define EFI_ACPI_IORT_ROOT_COMPLEX_ATS_UNSUPPORTED 0x0
#define EFI_ACPI_IORT_ROOT_COMPLEX_ATS_SUPPORTED 0x1
@@ -114,6 +123,8 @@ typedef struct {
UINT32 AtsAttribute;
UINT32 PciSegmentNumber;
+ UINT8 MemoryAddressSize;
+ UINT8 Reserved1[3];
} EFI_ACPI_6_0_IO_REMAPPING_RC_NODE;
///
@@ -162,7 +173,7 @@ typedef struct {
} EFI_ACPI_6_0_IO_REMAPPING_SMMU_NODE;
///
-/// Node type 4: SMMUv4 node
+/// Node type 4: SMMUv3 node
///
typedef struct {
EFI_ACPI_6_0_IO_REMAPPING_NODE Node;
@@ -176,8 +187,23 @@ typedef struct {
UINT32 Pri;
UINT32 Gerr;
UINT32 Sync;
+ UINT32 ProximityDomain;
+ UINT32 DeviceIdMappingIndex;
} EFI_ACPI_6_0_IO_REMAPPING_SMMU3_NODE;
+///
+/// Node type 5: PMCG node
+///
+typedef struct {
+ EFI_ACPI_6_0_IO_REMAPPING_NODE Node;
+
+ UINT64 Base;
+ UINT32 OverflowInterruptGsiv;
+ UINT32 NodeReference;
+ UINT64 Page1Base;
+//EFI_ACPI_6_0_IO_REMAPPING_ID_TABLE OverflowInterruptMsiMapping[1];
+} EFI_ACPI_6_0_IO_REMAPPING_PMCG_NODE;
+
#pragma pack()
#endif