#ifndef __VTD_INFO_PPI_H__\r
#define __VTD_INFO_PPI_H__\r
\r
+#include <IndustryStandard/DmaRemappingReportingTable.h>\r
+\r
#define EDKII_VTD_INFO_PPI_GUID \\r
{ \\r
0x8a59fcb3, 0xf191, 0x400c, { 0x97, 0x67, 0x67, 0xaf, 0x2b, 0x25, 0x68, 0x4a } \\r
}\r
\r
-typedef struct _EDKII_VTD_INFO_PPI EDKII_VTD_INFO_PPI;\r
-\r
-#define EDKII_VTD_INFO_PPI_REVISION 0x00010000\r
-\r
-struct _EDKII_VTD_INFO_PPI {\r
- UINT64 Revision;\r
- UINT8 HostAddressWidth;\r
- UINT8 Reserved[3];\r
- UINT32 VTdEngineCount;\r
- UINT64 VTdEngineAddress[1];\r
-};\r
+//\r
+// VTD info PPI just use same data structure as DMAR table.\r
+//\r
+// The reported information must include what is needed in PEI phase, e.g.\r
+// the VTd engine (such as DRHD)\r
+// the reserved DMA address in PEI for eary graphic (such as RMRR for graphic UMA)\r
+//\r
+// The reported information can be and might be a subset of full DMAR table, e.g.\r
+// if some data is not avaiable (such as ANDD),\r
+// if some data is not needed (such as RMRR for legacy USB).\r
+//\r
+typedef EFI_ACPI_DMAR_HEADER EDKII_VTD_INFO_PPI;\r
\r
extern EFI_GUID gEdkiiVTdInfoPpiGuid;\r
\r