\r
typedef union {\r
struct {\r
- UINT64 Present:1;\r
- UINT64 Reserved_1:11;\r
- UINT64 ContextTablePointer:52;\r
+ UINT32 Present:1;\r
+ UINT32 Reserved_1:11;\r
+ UINT32 ContextTablePointerLo:20;\r
+ UINT32 ContextTablePointerHi:32;\r
\r
UINT64 Reserved_64;\r
} Bits;\r
\r
typedef union {\r
struct {\r
- UINT64 LowerPresent:1;\r
- UINT64 Reserved_1:11;\r
- UINT64 LowerContextTablePointer:52;\r
-\r
- UINT64 UpperPresent:1;\r
- UINT64 Reserved_65:11;\r
- UINT64 UpperContextTablePointer:52;\r
+ UINT32 LowerPresent:1;\r
+ UINT32 Reserved_1:11;\r
+ UINT32 LowerContextTablePointerLo:20;\r
+ UINT32 LowerContextTablePointerHi:32;\r
+\r
+ UINT32 UpperPresent:1;\r
+ UINT32 Reserved_65:11;\r
+ UINT32 UpperContextTablePointerLo:20;\r
+ UINT32 UpperContextTablePointerHi:32;\r
} Bits;\r
struct {\r
UINT64 Uint64Lo;\r
\r
typedef union {\r
struct {\r
- UINT64 Present:1;\r
- UINT64 FaultProcessingDisable:1;\r
- UINT64 TranslationType:2;\r
- UINT64 Reserved_4:8;\r
- UINT64 SecondLevelPageTranslationPointer:52;\r
-\r
- UINT64 AddressWidth:3;\r
- UINT64 Ignored_67:4;\r
- UINT64 Reserved_71:1;\r
- UINT64 DomainIdentifier:16;\r
- UINT64 Reserved_88:40;\r
+ UINT32 Present:1;\r
+ UINT32 FaultProcessingDisable:1;\r
+ UINT32 TranslationType:2;\r
+ UINT32 Reserved_4:8;\r
+ UINT32 SecondLevelPageTranslationPointerLo:20;\r
+ UINT32 SecondLevelPageTranslationPointerHi:32;\r
+\r
+ UINT32 AddressWidth:3;\r
+ UINT32 Ignored_67:4;\r
+ UINT32 Reserved_71:1;\r
+ UINT32 DomainIdentifier:16;\r
+ UINT32 Reserved_88:8;\r
+ UINT32 Reserved_96:32;\r
} Bits;\r
struct {\r
UINT64 Uint64Lo;\r
\r
typedef union {\r
struct {\r
- UINT64 Present:1;\r
- UINT64 FaultProcessingDisable:1;\r
- UINT64 TranslationType:3;\r
- UINT64 ExtendedMemoryType:3;\r
- UINT64 DeferredInvalidateEnable:1;\r
- UINT64 PageRequestEnable:1;\r
- UINT64 NestedTranslationEnable:1;\r
- UINT64 PASIDEnable:1;\r
- UINT64 SecondLevelPageTranslationPointer:52;\r
-\r
- UINT64 AddressWidth:3;\r
- UINT64 PageGlobalEnable:1;\r
- UINT64 NoExecuteEnable:1;\r
- UINT64 WriteProtectEnable:1;\r
- UINT64 CacheDisable:1;\r
- UINT64 ExtendedMemoryTypeEnable:1;\r
- UINT64 DomainIdentifier:16;\r
- UINT64 SupervisorModeExecuteProtection:1;\r
- UINT64 ExtendedAccessedFlagEnable:1;\r
- UINT64 ExecuteRequestsEnable:1;\r
- UINT64 SecondLevelExecuteEnable:1;\r
- UINT64 Reserved_92:4;\r
- UINT64 PageAttributeTable0:3;\r
- UINT64 Reserved_Pat0:1;\r
- UINT64 PageAttributeTable1:3;\r
- UINT64 Reserved_Pat1:1;\r
- UINT64 PageAttributeTable2:3;\r
- UINT64 Reserved_Pat2:1;\r
- UINT64 PageAttributeTable3:3;\r
- UINT64 Reserved_Pat3:1;\r
- UINT64 PageAttributeTable4:3;\r
- UINT64 Reserved_Pat4:1;\r
- UINT64 PageAttributeTable5:3;\r
- UINT64 Reserved_Pat5:1;\r
- UINT64 PageAttributeTable6:3;\r
- UINT64 Reserved_Pat6:1;\r
- UINT64 PageAttributeTable7:3;\r
- UINT64 Reserved_Pat7:1;\r
-\r
- UINT64 PASIDTableSize:4;\r
- UINT64 Reserved_132:8;\r
- UINT64 PASIDTablePointer:52;\r
-\r
- UINT64 Reserved_192:12;\r
- UINT64 PASIDStateTablePointer:52;\r
+ UINT32 Present:1;\r
+ UINT32 FaultProcessingDisable:1;\r
+ UINT32 TranslationType:3;\r
+ UINT32 ExtendedMemoryType:3;\r
+ UINT32 DeferredInvalidateEnable:1;\r
+ UINT32 PageRequestEnable:1;\r
+ UINT32 NestedTranslationEnable:1;\r
+ UINT32 PASIDEnable:1;\r
+ UINT32 SecondLevelPageTranslationPointerLo:20;\r
+ UINT32 SecondLevelPageTranslationPointerHi:32;\r
+\r
+ UINT32 AddressWidth:3;\r
+ UINT32 PageGlobalEnable:1;\r
+ UINT32 NoExecuteEnable:1;\r
+ UINT32 WriteProtectEnable:1;\r
+ UINT32 CacheDisable:1;\r
+ UINT32 ExtendedMemoryTypeEnable:1;\r
+ UINT32 DomainIdentifier:16;\r
+ UINT32 SupervisorModeExecuteProtection:1;\r
+ UINT32 ExtendedAccessedFlagEnable:1;\r
+ UINT32 ExecuteRequestsEnable:1;\r
+ UINT32 SecondLevelExecuteEnable:1;\r
+ UINT32 Reserved_92:4;\r
+ UINT32 PageAttributeTable0:3;\r
+ UINT32 Reserved_Pat0:1;\r
+ UINT32 PageAttributeTable1:3;\r
+ UINT32 Reserved_Pat1:1;\r
+ UINT32 PageAttributeTable2:3;\r
+ UINT32 Reserved_Pat2:1;\r
+ UINT32 PageAttributeTable3:3;\r
+ UINT32 Reserved_Pat3:1;\r
+ UINT32 PageAttributeTable4:3;\r
+ UINT32 Reserved_Pat4:1;\r
+ UINT32 PageAttributeTable5:3;\r
+ UINT32 Reserved_Pat5:1;\r
+ UINT32 PageAttributeTable6:3;\r
+ UINT32 Reserved_Pat6:1;\r
+ UINT32 PageAttributeTable7:3;\r
+ UINT32 Reserved_Pat7:1;\r
+\r
+ UINT32 PASIDTableSize:4;\r
+ UINT32 Reserved_132:8;\r
+ UINT32 PASIDTablePointerLo:20;\r
+ UINT32 PASIDTablePointerHi:32;\r
+\r
+ UINT32 Reserved_192:12;\r
+ UINT32 PASIDStateTablePointerLo:20;\r
+ UINT32 PASIDStateTablePointerHi:32;\r
} Bits;\r
struct {\r
UINT64 Uint64_1;\r
\r
typedef union {\r
struct {\r
- UINT64 Present:1;\r
- UINT64 Reserved_1:2;\r
- UINT64 PageLevelCacheDisable:1;\r
- UINT64 PageLevelWriteThrough:1;\r
- UINT64 Reserved_5:6;\r
- UINT64 SupervisorRequestsEnable:1;\r
- UINT64 FirstLevelPageTranslationPointer:52;\r
+ UINT32 Present:1;\r
+ UINT32 Reserved_1:2;\r
+ UINT32 PageLevelCacheDisable:1;\r
+ UINT32 PageLevelWriteThrough:1;\r
+ UINT32 Reserved_5:6;\r
+ UINT32 SupervisorRequestsEnable:1;\r
+ UINT32 FirstLevelPageTranslationPointerLo:20;\r
+ UINT32 FirstLevelPageTranslationPointerHi:32;\r
} Bits;\r
UINT64 Uint64;\r
} VTD_PASID_ENTRY;\r
\r
typedef union {\r
struct {\r
- UINT64 Reserved_0:32;\r
- UINT64 ActiveReferenceCount:16;\r
- UINT64 Reserved_48:15;\r
- UINT64 DeferredInvalidate:1;\r
+ UINT32 Reserved_0:32;\r
+ UINT32 ActiveReferenceCount:16;\r
+ UINT32 Reserved_48:15;\r
+ UINT32 DeferredInvalidate:1;\r
} Bits;\r
UINT64 Uint64;\r
} VTD_PASID_STATE_ENTRY;\r
\r
typedef union {\r
struct {\r
- UINT64 Present:1;\r
- UINT64 ReadWrite:1;\r
- UINT64 UserSupervisor:1;\r
- UINT64 PageLevelWriteThrough:1;\r
- UINT64 PageLevelCacheDisable:1;\r
- UINT64 Accessed:1;\r
- UINT64 Dirty:1;\r
- UINT64 PageSize:1; // It is PageAttribute:1 for 4K page entry\r
- UINT64 Global:1;\r
- UINT64 Ignored_9:1;\r
- UINT64 ExtendedAccessed:1;\r
- UINT64 Ignored_11:1;\r
+ UINT32 Present:1;\r
+ UINT32 ReadWrite:1;\r
+ UINT32 UserSupervisor:1;\r
+ UINT32 PageLevelWriteThrough:1;\r
+ UINT32 PageLevelCacheDisable:1;\r
+ UINT32 Accessed:1;\r
+ UINT32 Dirty:1;\r
+ UINT32 PageSize:1; // It is PageAttribute:1 for 4K page entry\r
+ UINT32 Global:1;\r
+ UINT32 Ignored_9:1;\r
+ UINT32 ExtendedAccessed:1;\r
+ UINT32 Ignored_11:1;\r
// NOTE: There is PageAttribute:1 as bit12 for 1G page entry and 2M page entry\r
- UINT64 Address:40;\r
- UINT64 Ignored_52:11;\r
- UINT64 ExecuteDisable:1;\r
+ UINT32 AddressLo:20;\r
+ UINT32 AddressHi:20;\r
+ UINT32 Ignored_52:11;\r
+ UINT32 ExecuteDisable:1;\r
} Bits;\r
UINT64 Uint64;\r
} VTD_FIRST_LEVEL_PAGING_ENTRY;\r
\r
typedef union {\r
struct {\r
- UINT64 Read:1;\r
- UINT64 Write:1;\r
- UINT64 Execute:1;\r
- UINT64 ExtendedMemoryType:3;\r
- UINT64 IgnorePAT:1;\r
- UINT64 PageSize:1;\r
- UINT64 Ignored_8:3;\r
- UINT64 Snoop:1;\r
- UINT64 Address:40;\r
- UINT64 Ignored_52:10;\r
- UINT64 TransientMapping:1;\r
- UINT64 Ignored_63:1;\r
+ UINT32 Read:1;\r
+ UINT32 Write:1;\r
+ UINT32 Execute:1;\r
+ UINT32 ExtendedMemoryType:3;\r
+ UINT32 IgnorePAT:1;\r
+ UINT32 PageSize:1;\r
+ UINT32 Ignored_8:3;\r
+ UINT32 Snoop:1;\r
+ UINT32 AddressLo:20;\r
+ UINT32 AddressHi:20;\r
+ UINT32 Ignored_52:10;\r
+ UINT32 TransientMapping:1;\r
+ UINT32 Ignored_63:1;\r
} Bits;\r
UINT64 Uint64;\r
} VTD_SECOND_LEVEL_PAGING_ENTRY;\r
UINT32 NWFS:1; // No Write Flag Support\r
UINT32 EAFS:1; // Extended Accessed Flag Support\r
UINT32 PSS:5; // PASID Size Supported\r
-\r
UINT32 Rsvd_40:24;\r
} Bits;\r
UINT64 Uint64;\r
\r
typedef union {\r
struct {\r
- UINT64 Rsvd_0:12;\r
- UINT64 FI:52; // FaultInfo\r
+ UINT32 Rsvd_0:12;\r
+ UINT32 FILo:20; // FaultInfo\r
+ UINT32 FIHi:32; // FaultInfo\r
\r
UINT32 SID:16; // Source Identifier\r
UINT32 Rsvd_80:13;\r