[FixedPcd]\r
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfCpuidBase\r
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfCpuidSize\r
+ gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase\r
gUefiOvmfPkgTokenSpaceGuid.PcdSevLaunchSecretBase\r
gUefiOvmfPkgTokenSpaceGuid.PcdSevLaunchSecretSize\r
gUefiOvmfPkgTokenSpaceGuid.PcdQemuHashTableBase\r
%define SEV_SNP_SECRETS_SIZE (FixedPcdGet32 (PcdOvmfSnpSecretsSize))\r
%define CPUID_BASE (FixedPcdGet32 (PcdOvmfCpuidBase))\r
%define CPUID_SIZE (FixedPcdGet32 (PcdOvmfCpuidSize))\r
+ %define SNP_SEC_MEM_BASE_DESC_1 (FixedPcdGet32 (PcdOvmfSecPageTablesBase))\r
+ %define SNP_SEC_MEM_SIZE_DESC_1 (FixedPcdGet32 (PcdOvmfSecGhcbBase) - SNP_SEC_MEM_BASE_DESC_1)\r
+ ;\r
+ ; The PcdOvmfSecGhcbBase reserves two GHCB pages. The first page is used\r
+ ; as GHCB shared page and second is used for bookkeeping to support the\r
+ ; nested GHCB in SEC phase. The bookkeeping page is mapped private. The VMM\r
+ ; does not need to validate the shared page but it need to validate the\r
+ ; bookkeeping page.\r
+ ;\r
+ %define SNP_SEC_MEM_BASE_DESC_2 (GHCB_BASE + 0x1000)\r
+ %define SNP_SEC_MEM_SIZE_DESC_2 (SEV_SNP_SECRETS_BASE - SNP_SEC_MEM_BASE_DESC_2)\r
+ %define SNP_SEC_MEM_BASE_DESC_3 (CPUID_BASE + CPUID_SIZE)\r
+ %define SNP_SEC_MEM_SIZE_DESC_3 (FixedPcdGet32 (PcdOvmfPeiMemFvBase) - SNP_SEC_MEM_BASE_DESC_3)\r
\r
%include "X64/IntelTdxMetadata.asm"\r
%include "Ia32/Flat32ToFlat64.asm"\r
DD OVMF_SEV_METADATA_VERSION ; Version\r
DD (OvmfSevGuidedStructureEnd - _DescriptorSev - 16) / 12 ; Number of sections\r
\r
+; Region need to be pre-validated by the hypervisor\r
+PreValidate1:\r
+ DD SNP_SEC_MEM_BASE_DESC_1\r
+ DD SNP_SEC_MEM_SIZE_DESC_1\r
+ DD OVMF_SECTION_TYPE_SNP_SEC_MEM\r
+PreValidate2:\r
+ DD SNP_SEC_MEM_BASE_DESC_2\r
+ DD SNP_SEC_MEM_SIZE_DESC_2\r
+ DD OVMF_SECTION_TYPE_SNP_SEC_MEM\r
+\r
; SEV-SNP Secrets page\r
SevSnpSecrets:\r
DD SEV_SNP_SECRETS_BASE\r
DD CPUID_SIZE\r
DD OVMF_SECTION_TYPE_CPUID\r
\r
+; Region need to be pre-validated by the hypervisor\r
+PreValidate3:\r
+ DD SNP_SEC_MEM_BASE_DESC_3\r
+ DD SNP_SEC_MEM_SIZE_DESC_3\r
+ DD OVMF_SECTION_TYPE_SNP_SEC_MEM\r
OvmfSevGuidedStructureEnd:\r
ALIGN 16\r