[edk2-devel] [Patch V3] UefiCpuPkg: Decouple the SEV-ES functionality.
Lendacky, Thomas via groups.io
thomas.lendacky=amd.com at groups.io
Wed Jul 26 13:58:29 UTC 2023
On 7/26/23 02:51, YuanhaoXie wrote:
> The purpose is to fix an issue where an exception occurs at the start
> of the DXE phase by applying the following patch series on INTEL-based
> systems.
>
> UefiCpuPkg: Refactor the logic for placing APs in HltLoop.
> UefiCpuPkg: Refactor the logic for placing APs in Mwait/Runloop.
> UefiCpuPkg: Create MpHandOff.
> UefiCpuPkg: ApWakeupFunction directly use CpuMpData.
> UefiCpuPkg: Eliminate the second INIT-SIPI-SIPI sequence.
>
> This series of patches makes changes to the way the APs are
> initialized and woken up. It removes the 2nd time INIT-SIPI-SIPI and
> introduces a special startup signal to wake up APs. These patches also
> create a new HOB identified by the mMpHandOffGuid, which stores only the
> minimum information required from the PEI phase to the DXE phase.
> As a result, the original HOB (mCpuInitMpLibHobGuid) is now used only
> as a global variable in the PEI phase and is no longer necessary in the
> DXE phase for INTEL-based systems. The AMD SEV-ES related code
> still relies on the OldCpuMpData in the DXE phase.
>
> This patch decouple the SEV-ES functionality of assigning CpuMpData to
> OldCpuMpData->NewCpuMpData from the Intel logic.
>
> Cc: Eric Dong <eric.dong at intel.com>
> Cc: Rahul Kumar <rahul1.kumar at intel.com>
> Cc: Tom Lendacky <thomas.lendacky at amd.com>
> Cc: Ray Ni <ray.ni at intel.com>
> Signed-off-by: Yuanhao Xie <yuanhao.xie at intel.com>
> ---
> UefiCpuPkg/Library/MpInitLib/MpLib.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c b/UefiCpuPkg/Library/MpInitLib/MpLib.c
> index 737e03ffc5..e7054adbcc 100644
> --- a/UefiCpuPkg/Library/MpInitLib/MpLib.c
> +++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c
> @@ -2160,7 +2160,10 @@ MpInitLibInitialize (
> // APs have been wakeup before, just get the CPU Information
> // from HOB
> //
> - AmdSevUpdateCpuMpData (CpuMpData);
> + if (CpuMpData->UseSevEsAPMethod) {
> + AmdSevUpdateCpuMpData (CpuMpData);
> + }
This looks fine. Applying this patch did not regress SEV-ES or SEV-SNP
guest boots.
Reviewed-by: Tom Lendacky <thomas.lendacky at amd.com>
Thanks,
Tom
> +
> CpuMpData->CpuCount = MpHandOff->CpuCount;
> CpuMpData->BspNumber = GetBspNumber (MpHandOff);
> CpuInfoInHob = (CPU_INFO_IN_HOB *)(UINTN)CpuMpData->CpuInfoInHob;
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#107270): https://edk2.groups.io/g/devel/message/107270
Mute This Topic: https://groups.io/mt/100366586/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