BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2198

When SEV-ES is enabled, then SEV is also enabled. Add support to the SEV
initialization function to also check for SEV-ES being enabled, and if
enabled, set the SEV-ES enabled PCD (PcdSevEsIsEnabled).

Cc: Jordan Justen <jordan.l.jus...@intel.com>
Cc: Laszlo Ersek <ler...@redhat.com>
Cc: Ard Biesheuvel <ard.biesheu...@arm.com>
Reviewed-by: Laszlo Ersek <ler...@redhat.com>
Signed-off-by: Tom Lendacky <thomas.lenda...@amd.com>
---
 OvmfPkg/OvmfPkgIa32.dsc             |  3 +++
 OvmfPkg/OvmfPkgIa32X64.dsc          |  3 +++
 OvmfPkg/OvmfPkgX64.dsc              |  3 +++
 OvmfPkg/PlatformPei/PlatformPei.inf |  1 +
 OvmfPkg/PlatformPei/AmdSev.c        | 26 ++++++++++++++++++++
 5 files changed, 36 insertions(+)

diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
index 7d7297aa1cd8..b289260c1f2d 100644
--- a/OvmfPkg/OvmfPkgIa32.dsc
+++ b/OvmfPkg/OvmfPkgIa32.dsc
@@ -610,6 +610,9 @@ [PcdsDynamicDefault]
   # Set memory encryption mask

   gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask|0x0

 

+  # Set SEV-ES defaults

+  gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled|0

+

 !if $(SMM_REQUIRE) == TRUE

   gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes|8

   gUefiOvmfPkgTokenSpaceGuid.PcdQ35SmramAtDefaultSmbase|FALSE

diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
index c85e988372ec..00faf5036670 100644
--- a/OvmfPkg/OvmfPkgIa32X64.dsc
+++ b/OvmfPkg/OvmfPkgIa32X64.dsc
@@ -622,6 +622,9 @@ [PcdsDynamicDefault]
   # Set memory encryption mask

   gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask|0x0

 

+  # Set SEV-ES defaults

+  gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled|0

+

 !if $(SMM_REQUIRE) == TRUE

   gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes|8

   gUefiOvmfPkgTokenSpaceGuid.PcdQ35SmramAtDefaultSmbase|FALSE

diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
index b5f3859420d0..58671828c5fe 100644
--- a/OvmfPkg/OvmfPkgX64.dsc
+++ b/OvmfPkg/OvmfPkgX64.dsc
@@ -620,6 +620,9 @@ [PcdsDynamicDefault]
   # Set memory encryption mask

   gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask|0x0

 

+  # Set SEV-ES defaults

+  gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled|0

+

 !if $(SMM_REQUIRE) == TRUE

   gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes|8

   gUefiOvmfPkgTokenSpaceGuid.PcdQ35SmramAtDefaultSmbase|FALSE

diff --git a/OvmfPkg/PlatformPei/PlatformPei.inf 
b/OvmfPkg/PlatformPei/PlatformPei.inf
index ff397b3ee9d7..00feb96c9308 100644
--- a/OvmfPkg/PlatformPei/PlatformPei.inf
+++ b/OvmfPkg/PlatformPei/PlatformPei.inf
@@ -103,6 +103,7 @@ [Pcd]
   gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber

   gUefiCpuPkgTokenSpaceGuid.PcdCpuBootLogicalProcessorNumber

   gUefiCpuPkgTokenSpaceGuid.PcdCpuApStackSize

+  gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled

 

 [FixedPcd]

   gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress

diff --git a/OvmfPkg/PlatformPei/AmdSev.c b/OvmfPkg/PlatformPei/AmdSev.c
index e484f4b311fe..4dc5340caa7a 100644
--- a/OvmfPkg/PlatformPei/AmdSev.c
+++ b/OvmfPkg/PlatformPei/AmdSev.c
@@ -21,6 +21,27 @@
 

 #include "Platform.h"

 

+/**

+

+  Initialize SEV-ES support if running as an SEV-ES guest.

+

+  **/

+STATIC

+VOID

+AmdSevEsInitialize (

+  VOID

+  )

+{

+  RETURN_STATUS     PcdStatus;

+

+  if (!MemEncryptSevEsIsEnabled ()) {

+    return;

+  }

+

+  PcdStatus = PcdSetBoolS (PcdSevEsIsEnabled, TRUE);

+  ASSERT_RETURN_ERROR (PcdStatus);

+}

+

 /**

 

   Function checks if SEV support is available, if present then it sets

@@ -103,4 +124,9 @@ AmdSevInitialize (
         );

     }

   }

+

+  //

+  // Check and perform SEV-ES initialization if required.

+  //

+  AmdSevEsInitialize ();

 }

-- 
2.27.0


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#60798): https://edk2.groups.io/g/devel/message/60798
Mute This Topic: https://groups.io/mt/74692442/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to