21#ifndef __IO_REMAPPING_TABLE_H__
22#define __IO_REMAPPING_TABLE_H__
26#define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_00 0x0
27#define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_04 0x4
28#define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_05 0x5
29#define EFI_ACPI_IO_REMAPPING_TABLE_REVISION_06 0x6
31#define EFI_ACPI_IORT_TYPE_ITS_GROUP 0x0
32#define EFI_ACPI_IORT_TYPE_NAMED_COMP 0x1
33#define EFI_ACPI_IORT_TYPE_ROOT_COMPLEX 0x2
34#define EFI_ACPI_IORT_TYPE_SMMUv1v2 0x3
35#define EFI_ACPI_IORT_TYPE_SMMUv3 0x4
36#define EFI_ACPI_IORT_TYPE_PMCG 0x5
37#define EFI_ACPI_IORT_TYPE_RMR 0x6
39#define EFI_ACPI_IORT_MEM_ACCESS_PROP_CCA BIT0
41#define EFI_ACPI_IORT_MEM_ACCESS_PROP_AH_TR BIT0
42#define EFI_ACPI_IORT_MEM_ACCESS_PROP_AH_WA BIT1
43#define EFI_ACPI_IORT_MEM_ACCESS_PROP_AH_RA BIT2
44#define EFI_ACPI_IORT_MEM_ACCESS_PROP_AH_AHO BIT3
46#define EFI_ACPI_IORT_MEM_ACCESS_FLAGS_CPM BIT0
47#define EFI_ACPI_IORT_MEM_ACCESS_FLAGS_DACS BIT1
48#define EFI_ACPI_IORT_MEM_ACCESS_FLAGS_CANWBS BIT2
50#define EFI_ACPI_IORT_SMMUv1v2_MODEL_v1 0x0
51#define EFI_ACPI_IORT_SMMUv1v2_MODEL_v2 0x1
52#define EFI_ACPI_IORT_SMMUv1v2_MODEL_MMU400 0x2
53#define EFI_ACPI_IORT_SMMUv1v2_MODEL_MMU500 0x3
54#define EFI_ACPI_IORT_SMMUv1v2_MODEL_MMU401 0x4
55#define EFI_ACPI_IORT_SMMUv1v2_MODEL_CAVIUM_THX_v2 0x5
57#define EFI_ACPI_IORT_SMMUv1v2_FLAG_DVM BIT0
58#define EFI_ACPI_IORT_SMMUv1v2_FLAG_COH_WALK BIT1
60#define EFI_ACPI_IORT_SMMUv1v2_INT_FLAG_LEVEL 0x0
61#define EFI_ACPI_IORT_SMMUv1v2_INT_FLAG_EDGE 0x1
63#define EFI_ACPI_IORT_SMMUv3_FLAG_COHAC_OVERRIDE BIT0
64#define EFI_ACPI_IORT_SMMUv3_FLAG_HTTU_OVERRIDE BIT1
65#define EFI_ACPI_IORT_SMMUv3_FLAG_HTTU_OVERRIDE_DS BIT2
66#define EFI_ACPI_IORT_SMMUv3_FLAG_PROXIMITY_DOMAIN BIT3
67#define EFI_ACPI_IORT_SMMUv3_FLAG_DEVICEID_VALID BIT4
69#define EFI_ACPI_IORT_SMMUv3_MODEL_GENERIC 0x0
70#define EFI_ACPI_IORT_SMMUv3_MODEL_HISILICON_HI161X 0x1
71#define EFI_ACPI_IORT_SMMUv3_MODEL_CAVIUM_CN99XX 0x2
73#define EFI_ACPI_IORT_ROOT_COMPLEX_ATS_UNSUPPORTED 0x0
74#define EFI_ACPI_IORT_ROOT_COMPLEX_ATS_SUPPORTED BIT0
76#define EFI_ACPI_IORT_ROOT_COMPLEX_PRI_UNSUPPORTED 0x0
77#define EFI_ACPI_IORT_ROOT_COMPLEX_PRI_SUPPORTED BIT1
79#define EFI_ACPI_IORT_ROOT_COMPLEX_PASID_FWD_UNSUPPORTED 0x0
80#define EFI_ACPI_IORT_ROOT_COMPLEX_PASID_FWD_SUPPORTED BIT2
82#define EFI_ACPI_IORT_ROOT_COMPLEX_PASID_UNSUPPORTED 0x0
83#define EFI_ACPI_IORT_ROOT_COMPLEX_PASID_SUPPORTED BIT1
85#define EFI_ACPI_IORT_RMR_REMAP_NOT_PERMITTED 0x0
86#define EFI_ACPI_IORT_RMR_REMAP_PERMITTED BIT0
88#define EFI_ACPI_IORT_RMR_ACCESS_REQ_NOT_PRIVILEGED 0x0
89#define EFI_ACPI_IORT_RMR_ACCESS_REQ_PRIVILEGED BIT1
91#define EFI_ACPI_IORT_RMR_ACCESS_ATTRIB_DEV_NGNRNE 0x0
92#define EFI_ACPI_IORT_RMR_ACCESS_ATTRIB_DEV_NGNRE 0x1
93#define EFI_ACPI_IORT_RMR_ACCESS_ATTRIB_DEV_NGRE 0x2
94#define EFI_ACPI_IORT_RMR_ACCESS_ATTRIB_DEV_GRE 0x3
95#define EFI_ACPI_IORT_RMR_ACCESS_ATTRIB_NORM_IN_NC_OUT_NC 0x4
96#define EFI_ACPI_IORT_RMR_ACCESS_ATTRIB_NORM_IN_WB_OUT_WB_ISH 0x5
98#define EFI_ACPI_IORT_ID_MAPPING_FLAGS_SINGLE BIT0
100#define EFI_ACPI_IORT_RMR_NODE_REVISION_02 0x2
121 UINT32 OutputReference;
133 UINT32 NumIdMappings;
143 UINT32 NumItsIdentifiers;
153 UINT32 CacheCoherent;
154 UINT8 AllocationHints;
156 UINT8 MemoryAccessFlags;
159 UINT32 PciSegmentNumber;
160 UINT8 MemoryAddressSize;
161 UINT16 PasidCapabilities;
173 UINT32 CacheCoherent;
174 UINT8 AllocationHints;
176 UINT8 MemoryAccessFlags;
177 UINT8 AddressSizeLimit;
186 UINT32 InterruptFlags;
196 UINT32 GlobalInterruptArrayRef;
197 UINT32 NumContextInterrupts;
198 UINT32 ContextInterruptArrayRef;
199 UINT32 NumPmuInterrupts;
200 UINT32 PmuInterruptArrayRef;
203 UINT32 SMMU_NSgIrptFlags;
204 UINT32 SMMU_NSgCfgIrpt;
205 UINT32 SMMU_NSgCfgIrptFlags;
226 UINT32 ProximityDomain;
227 UINT32 DeviceIdMappingIndex;
237 UINT32 OverflowInterruptGsiv;
238 UINT32 NodeReference;
UINT32 Reserved
Reserved, must be zero.
UINT32 MemRangeDescRef
Offset of the memory range descriptor array.
UINT32 NumMemRangeDesc
Memory range descriptor count.