]> git.proxmox.com Git - mirror_edk2.git/commitdiff
UefiCpuPkg/MpInitLib: Add CPU MP data flag to indicate if SEV-ES is enabled
authorTom Lendacky <thomas.lendacky@amd.com>
Wed, 12 Aug 2020 20:21:42 +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 starting APs in an SMP configuration, the AP needs to know if it is
running as an SEV-ES guest in order to assign a GHCB page.

Add a field to the CPU_MP_DATA structure that will indicate if SEV-ES is
enabled. This new field is set during MP library initialization with the
PCD value PcdSevEsIsEnabled. This flag can then be used to determine if
SEV-ES is enabled.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf
UefiCpuPkg/Library/MpInitLib/MpLib.c
UefiCpuPkg/Library/MpInitLib/MpLib.h
UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf

index 9907f4157b099a0647f838d32e75405e8578a34a..5832765956193e1145d4d4b9a78eee6cf63549be 100644 (file)
@@ -71,4 +71,5 @@
   gUefiCpuPkgTokenSpaceGuid.PcdCpuApLoopMode                           ## CONSUMES\r
   gUefiCpuPkgTokenSpaceGuid.PcdCpuApTargetCstate                       ## SOMETIMES_CONSUMES\r
   gUefiCpuPkgTokenSpaceGuid.PcdCpuApStatusCheckIntervalInMicroSeconds  ## CONSUMES\r
+  gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled                          ## CONSUMES\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdCpuStackGuard                      ## CONSUMES\r
index 9b0660a5d4ea9d0710c4dbfdb314919230c80266..2a3fbeef35f78738ca8d16b938ae16fb53328fd3 100644 (file)
@@ -1704,6 +1704,7 @@ MpInitLibInitialize (
   CpuMpData->CpuData          = (CPU_AP_DATA *) (CpuMpData + 1);\r
   CpuMpData->CpuInfoInHob     = (UINT64) (UINTN) (CpuMpData->CpuData + MaxLogicalProcessorNumber);\r
   InitializeSpinLock(&CpuMpData->MpLock);\r
+  CpuMpData->SevEsIsEnabled = PcdGetBool (PcdSevEsIsEnabled);\r
 \r
   //\r
   // Make sure no memory usage outside of the allocated buffer.\r
index a8ca03efb8e3d8e75363dd66ad77fcb740b1c8ed..5b46c295b6b2b5a01c199b1e1b38832562198ef4 100644 (file)
@@ -276,6 +276,8 @@ struct _CPU_MP_DATA {
   // driver.\r
   //\r
   BOOLEAN                        WakeUpByInitSipiSipi;\r
+\r
+  BOOLEAN                        SevEsIsEnabled;\r
 };\r
 \r
 extern EFI_GUID mCpuInitMpLibHobGuid;\r
index 89ee9a79d8c5266273ad1ae71a5c5327ba25bdec..4b3d39fbf36c84186319906ecba4b38f49b66ce9 100644 (file)
@@ -61,6 +61,7 @@
   gUefiCpuPkgTokenSpaceGuid.PcdCpuMicrocodePatchRegionSize         ## CONSUMES\r
   gUefiCpuPkgTokenSpaceGuid.PcdCpuApLoopMode                       ## CONSUMES\r
   gUefiCpuPkgTokenSpaceGuid.PcdCpuApTargetCstate                   ## SOMETIMES_CONSUMES\r
+  gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled                      ## CONSUMES\r
 \r
 [Ppis]\r
   gEdkiiPeiShadowMicrocodePpiGuid        ## SOMETIMES_CONSUMES\r