#include <Library/DxeServicesTableLib.h>\r
#include <Library/MemEncryptSevLib.h>\r
#include <Library/MemoryAllocationLib.h>\r
+#include <Library/UefiBootServicesTableLib.h>\r
+#include <Guid/ConfidentialComputingSevSnpBlob.h>\r
#include <Library/PcdLib.h>\r
\r
+STATIC CONFIDENTIAL_COMPUTING_SNP_BLOB_LOCATION mSnpBootDxeTable = {\r
+ SIGNATURE_32 ('A', 'M', 'D', 'E'),\r
+ 1,\r
+ 0,\r
+ (UINT64)(UINTN)FixedPcdGet32 (PcdOvmfSnpSecretsBase),\r
+ FixedPcdGet32 (PcdOvmfSnpSecretsSize),\r
+ (UINT64)(UINTN)FixedPcdGet32 (PcdOvmfCpuidBase),\r
+ FixedPcdGet32 (PcdOvmfCpuidSize),\r
+};\r
+\r
EFI_STATUS\r
EFIAPI\r
AmdSevDxeEntryPoint (\r
}\r
}\r
\r
+ //\r
+ // If its SEV-SNP active guest then install the CONFIDENTIAL_COMPUTING_SEV_SNP_BLOB.\r
+ // It contains the location for both the Secrets and CPUID page.\r
+ //\r
+ if (MemEncryptSevSnpIsEnabled ()) {\r
+ return gBS->InstallConfigurationTable (\r
+ &gConfidentialComputingSevSnpBlobGuid,\r
+ &mSnpBootDxeTable\r
+ );\r
+ }\r
+\r
return EFI_SUCCESS;\r
}\r