[edk2-devel] [PATCH v3 3/4] OvmfPkg: Initialize the PcdSevSnpSecretsAddress PCD during PEI phase

Michael Roth via groups.io michael.roth=amd.com at groups.io
Fri May 20 15:27:29 UTC 2022


This needs to be set so that UefiCpuPkg can locate the SEV-SNP secrets
page later to set the AP Jump Table address.

Signed-off-by: Michael Roth <michael.roth at amd.com>
---
 OvmfPkg/AmdSev/AmdSevX64.dsc        | 3 +++
 OvmfPkg/CloudHv/CloudHvX64.dsc      | 3 +++
 OvmfPkg/IntelTdx/IntelTdxX64.dsc    | 3 +++
 OvmfPkg/Microvm/MicrovmX64.dsc      | 3 +++
 OvmfPkg/OvmfPkgIa32.dsc             | 3 +++
 OvmfPkg/OvmfPkgIa32X64.dsc          | 3 +++
 OvmfPkg/OvmfPkgX64.dsc              | 3 +++
 OvmfPkg/PlatformPei/AmdSev.c        | 5 +++++
 OvmfPkg/PlatformPei/PlatformPei.inf | 1 +
 9 files changed, 27 insertions(+)

diff --git a/OvmfPkg/AmdSev/AmdSevX64.dsc b/OvmfPkg/AmdSev/AmdSevX64.dsc
index bead9722ea..c0a3548f22 100644
--- a/OvmfPkg/AmdSev/AmdSevX64.dsc
+++ b/OvmfPkg/AmdSev/AmdSevX64.dsc
@@ -576,6 +576,9 @@
   # Set ConfidentialComputing defaults

   gEfiMdePkgTokenSpaceGuid.PcdConfidentialComputingGuestAttr|0

 

+  # Set SEV-SNP Secrets page address default

+  gEfiMdePkgTokenSpaceGuid.PcdSevSnpSecretsAddress|0

+

 !include OvmfPkg/OvmfTpmPcds.dsc.inc

 

   gEfiMdePkgTokenSpaceGuid.PcdFSBClock|100000000

diff --git a/OvmfPkg/CloudHv/CloudHvX64.dsc b/OvmfPkg/CloudHv/CloudHvX64.dsc
index 92664f319b..ba4c14dd02 100644
--- a/OvmfPkg/CloudHv/CloudHvX64.dsc
+++ b/OvmfPkg/CloudHv/CloudHvX64.dsc
@@ -631,6 +631,9 @@
   # Set ConfidentialComputing defaults

   gEfiMdePkgTokenSpaceGuid.PcdConfidentialComputingGuestAttr|0

 

+  # Set SEV-SNP Secrets page address default

+  gEfiMdePkgTokenSpaceGuid.PcdSevSnpSecretsAddress|0

+

 [PcdsDynamicHii]

 !include OvmfPkg/OvmfTpmPcdsHii.dsc.inc

 

diff --git a/OvmfPkg/IntelTdx/IntelTdxX64.dsc b/OvmfPkg/IntelTdx/IntelTdxX64.dsc
index 00bc1255bc..c069bd9d1e 100644
--- a/OvmfPkg/IntelTdx/IntelTdxX64.dsc
+++ b/OvmfPkg/IntelTdx/IntelTdxX64.dsc
@@ -513,6 +513,9 @@
 

   gEfiMdePkgTokenSpaceGuid.PcdFSBClock|100000000

 

+  # Set SEV-SNP Secrets page address default

+  gEfiMdePkgTokenSpaceGuid.PcdSevSnpSecretsAddress|0

+

 ################################################################################

 #

 # Components Section - list of all EDK II Modules needed by this Platform.

diff --git a/OvmfPkg/Microvm/MicrovmX64.dsc b/OvmfPkg/Microvm/MicrovmX64.dsc
index f8fc977cb2..774e5e2ca9 100644
--- a/OvmfPkg/Microvm/MicrovmX64.dsc
+++ b/OvmfPkg/Microvm/MicrovmX64.dsc
@@ -614,6 +614,9 @@
   # Set ConfidentialComputing defaults

   gEfiMdePkgTokenSpaceGuid.PcdConfidentialComputingGuestAttr|0

 

+  # Set SEV-SNP Secrets page address default

+  gEfiMdePkgTokenSpaceGuid.PcdSevSnpSecretsAddress|0

+

 ################################################################################

 #

 # Components Section - list of all EDK II Modules needed by this Platform.

diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
index c16a840fff..a531fcd070 100644
--- a/OvmfPkg/OvmfPkgIa32.dsc
+++ b/OvmfPkg/OvmfPkgIa32.dsc
@@ -650,6 +650,9 @@
   # Set ConfidentialComputing defaults

   gEfiMdePkgTokenSpaceGuid.PcdConfidentialComputingGuestAttr|0

 

+  # Set SEV-SNP Secrets page address default

+  gEfiMdePkgTokenSpaceGuid.PcdSevSnpSecretsAddress|0

+

 !if $(CSM_ENABLE) == FALSE

   gEfiMdePkgTokenSpaceGuid.PcdFSBClock|100000000

 !endif

diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
index d3a80cb568..cd579246f8 100644
--- a/OvmfPkg/OvmfPkgIa32X64.dsc
+++ b/OvmfPkg/OvmfPkgIa32X64.dsc
@@ -658,6 +658,9 @@
   # Set ConfidentialComputing defaults

   gEfiMdePkgTokenSpaceGuid.PcdConfidentialComputingGuestAttr|0

 

+  # Set SEV-SNP Secrets page address default

+  gEfiMdePkgTokenSpaceGuid.PcdSevSnpSecretsAddress|0

+

 !if $(CSM_ENABLE) == FALSE

   gEfiMdePkgTokenSpaceGuid.PcdFSBClock|100000000

 !endif

diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
index 7b3d48aac4..a026706279 100644
--- a/OvmfPkg/OvmfPkgX64.dsc
+++ b/OvmfPkg/OvmfPkgX64.dsc
@@ -683,6 +683,9 @@
   # Set ConfidentialComputing defaults

   gEfiMdePkgTokenSpaceGuid.PcdConfidentialComputingGuestAttr|0

 

+  # Set SEV-SNP Secrets page address default

+  gEfiMdePkgTokenSpaceGuid.PcdSevSnpSecretsAddress|0

+

 !if $(CSM_ENABLE) == FALSE

   gEfiMdePkgTokenSpaceGuid.PcdFSBClock|100000000

 !endif

diff --git a/OvmfPkg/PlatformPei/AmdSev.c b/OvmfPkg/PlatformPei/AmdSev.c
index 385562b44c..70352ca43b 100644
--- a/OvmfPkg/PlatformPei/AmdSev.c
+++ b/OvmfPkg/PlatformPei/AmdSev.c
@@ -408,6 +408,11 @@ AmdSevInitialize (
   //

   if (MemEncryptSevSnpIsEnabled ()) {

     PcdStatus = PcdSet64S (PcdConfidentialComputingGuestAttr, CCAttrAmdSevSnp);

+    ASSERT_RETURN_ERROR (PcdStatus);

+    PcdStatus = PcdSet64S (

+                  PcdSevSnpSecretsAddress,

+                  (UINT64)(UINTN)PcdGet32 (PcdOvmfSnpSecretsBase)

+                  );

   } else if (MemEncryptSevEsIsEnabled ()) {

     PcdStatus = PcdSet64S (PcdConfidentialComputingGuestAttr, CCAttrAmdSevEs);

   } else {

diff --git a/OvmfPkg/PlatformPei/PlatformPei.inf b/OvmfPkg/PlatformPei/PlatformPei.inf
index 00372fa0eb..c688e4ee24 100644
--- a/OvmfPkg/PlatformPei/PlatformPei.inf
+++ b/OvmfPkg/PlatformPei/PlatformPei.inf
@@ -114,6 +114,7 @@
   gEfiMdePkgTokenSpaceGuid.PcdConfidentialComputingGuestAttr

   gUefiCpuPkgTokenSpaceGuid.PcdGhcbHypervisorFeatures

   gEfiMdeModulePkgTokenSpaceGuid.PcdTdxSharedBitMask

+  gEfiMdePkgTokenSpaceGuid.PcdSevSnpSecretsAddress

 

 [FixedPcd]

   gUefiOvmfPkgTokenSpaceGuid.PcdOvmfCpuidBase

-- 
2.25.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#89948): https://edk2.groups.io/g/devel/message/89948
Mute This Topic: https://groups.io/mt/91279453/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list