]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg: Add support to perform SEV-ES initialization
authorTom Lendacky <thomas.lendacky@amd.com>
Wed, 12 Aug 2020 20:21:39 +0000 (15:21 -0500)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Mon, 17 Aug 2020 02:46:39 +0000 (02:46 +0000)
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.justen@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
OvmfPkg/OvmfPkgIa32.dsc
OvmfPkg/OvmfPkgIa32X64.dsc
OvmfPkg/OvmfPkgX64.dsc
OvmfPkg/PlatformPei/AmdSev.c
OvmfPkg/PlatformPei/PlatformPei.inf

index c57bba1ba197bddfd03201c95c6b1687a0caa35e..f84f23f250ef0716a6486e2d7c9f4c7e7127beb7 100644 (file)
   # Set memory encryption mask\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask|0x0\r
 \r
+  # Set SEV-ES defaults\r
+  gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled|0\r
+\r
 !if $(SMM_REQUIRE) == TRUE\r
   gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes|8\r
   gUefiOvmfPkgTokenSpaceGuid.PcdQ35SmramAtDefaultSmbase|FALSE\r
index 22e930b12b9bdf8ab9f5a1e0b62c4625c54f80ee..a66abccf82660dc0db1fa9c26bc998a999316d77 100644 (file)
   # Set memory encryption mask\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask|0x0\r
 \r
+  # Set SEV-ES defaults\r
+  gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled|0\r
+\r
 !if $(SMM_REQUIRE) == TRUE\r
   gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes|8\r
   gUefiOvmfPkgTokenSpaceGuid.PcdQ35SmramAtDefaultSmbase|FALSE\r
index 60be5eae3d2b9375e67c5f182701fc146063e323..2a8975fd3d296f72a0e055a0571ea26af8e4a997 100644 (file)
   # Set memory encryption mask\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask|0x0\r
 \r
+  # Set SEV-ES defaults\r
+  gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled|0\r
+\r
 !if $(SMM_REQUIRE) == TRUE\r
   gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes|8\r
   gUefiOvmfPkgTokenSpaceGuid.PcdQ35SmramAtDefaultSmbase|FALSE\r
index e484f4b311feaf7cc473f2aea44d0e9b30f67b46..4dc5340caa7a2814e8914ecfa7a3a6deb12acbd8 100644 (file)
 \r
 #include "Platform.h"\r
 \r
+/**\r
+\r
+  Initialize SEV-ES support if running as an SEV-ES guest.\r
+\r
+  **/\r
+STATIC\r
+VOID\r
+AmdSevEsInitialize (\r
+  VOID\r
+  )\r
+{\r
+  RETURN_STATUS     PcdStatus;\r
+\r
+  if (!MemEncryptSevEsIsEnabled ()) {\r
+    return;\r
+  }\r
+\r
+  PcdStatus = PcdSetBoolS (PcdSevEsIsEnabled, TRUE);\r
+  ASSERT_RETURN_ERROR (PcdStatus);\r
+}\r
+\r
 /**\r
 \r
   Function checks if SEV support is available, if present then it sets\r
@@ -103,4 +124,9 @@ AmdSevInitialize (
         );\r
     }\r
   }\r
+\r
+  //\r
+  // Check and perform SEV-ES initialization if required.\r
+  //\r
+  AmdSevEsInitialize ();\r
 }\r
index ff397b3ee9d75fd0676f708ce50184bd6d97b2d5..00feb96c93085781b15d57555597a2395e1d2b2e 100644 (file)
   gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber\r
   gUefiCpuPkgTokenSpaceGuid.PcdCpuBootLogicalProcessorNumber\r
   gUefiCpuPkgTokenSpaceGuid.PcdCpuApStackSize\r
+  gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled\r
 \r
 [FixedPcd]\r
   gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress\r