]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Include/WorkArea.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / OvmfPkg / Include / WorkArea.h
index d982e026def774bfd61f7c7792874e94a1d62513..b1c7045ce18c336aca2cc23fa74efebc13297f1f 100644 (file)
 #ifndef __OVMF_WORK_AREA_H__\r
 #define __OVMF_WORK_AREA_H__\r
 \r
-//\r
-// Guest type for the work area\r
-//\r
-typedef enum {\r
-  GUEST_TYPE_NON_ENCRYPTED,\r
-  GUEST_TYPE_AMD_SEV,\r
-  GUEST_TYPE_INTEL_TDX,\r
-} GUEST_TYPE;\r
+#include <ConfidentialComputingGuestAttr.h>\r
+#include <IndustryStandard/Tpm20.h>\r
 \r
 //\r
 // Confidential computing work area header definition. Any change\r
@@ -28,7 +22,7 @@ typedef enum {
 //   sizeof (CONFIDENTIAL_COMPUTING_WORK_AREA_HEADER)\r
 // PcdOvmfConfidentialComputingWorkAreaHeader defined in:\r
 //   OvmfPkg/OvmfPkg.dec\r
-//   OvmfPkg/OvmfPkgDefines.fdf.inc\r
+//   OvmfPkg/Include/Fdf/OvmfPkgDefines.fdf.inc\r
 typedef struct _CONFIDENTIAL_COMPUTING_WORK_AREA_HEADER {\r
   UINT8    GuestType;\r
   UINT8    Reserved1[3];\r
@@ -71,9 +65,42 @@ typedef struct _SEV_WORK_AREA {
   SEC_SEV_ES_WORK_AREA                       SevEsWorkArea;\r
 } SEV_WORK_AREA;\r
 \r
+//\r
+// Start of TDX Specific WorkArea definition\r
+//\r
+\r
+#define TDX_MEASUREMENT_TDHOB_BITMASK   0x1\r
+#define TDX_MEASUREMENT_CFVIMG_BITMASK  0x2\r
+\r
+typedef struct _TDX_MEASUREMENTS_DATA {\r
+  UINT32    MeasurementsBitmap;\r
+  UINT8     TdHobHashValue[SHA384_DIGEST_SIZE];\r
+  UINT8     CfvImgHashValue[SHA384_DIGEST_SIZE];\r
+} TDX_MEASUREMENTS_DATA;\r
+\r
+//\r
+// The TDX work area definition\r
+//\r
+typedef struct _SEC_TDX_WORK_AREA {\r
+  UINT32                   PageTableReady;\r
+  UINT32                   Gpaw;\r
+  UINT64                   HobList;\r
+  TDX_MEASUREMENTS_DATA    TdxMeasurementsData;\r
+} SEC_TDX_WORK_AREA;\r
+\r
+typedef struct _TDX_WORK_AREA {\r
+  CONFIDENTIAL_COMPUTING_WORK_AREA_HEADER    Header;\r
+  SEC_TDX_WORK_AREA                          SecTdxWorkArea;\r
+} TDX_WORK_AREA;\r
+\r
+//\r
+// End of TDX Specific WorkArea definition\r
+//\r
+\r
 typedef union {\r
   CONFIDENTIAL_COMPUTING_WORK_AREA_HEADER    Header;\r
   SEV_WORK_AREA                              SevWorkArea;\r
+  TDX_WORK_AREA                              TdxWorkArea;\r
 } OVMF_WORK_AREA;\r
 \r
 #endif\r