edk2/0084-OvmfPkg-AmdSev-Disable-PcdFirstTimeWakeUpAPsBySipi.patch
hanliyang ca2a749250 Fix boot failure on OvmfPkg/AmdSev
This PR backports 3 commits:

  020cc9e2e705 OvmfPkg: Disable PcdFirstTimeWakeUpAPsBySipi
  8b66f9df1bb0 OvmfPkg/AmdSev: Disable PcdFirstTimeWakeUpAPsBySipi
  f008890ae559 OvmfPkg/AmdSev: fix BdsPlatform.c assertion failure during boot

from upstream to fix the regression of boot failure on OvmfPkg/AmdSev

Signed-off-by: hanliyang <hanliyang@hygon.cn>
2025-03-13 17:44:44 +08:00

48 lines
1.9 KiB
Diff

From 84f0fb21e90100753b897b34162748216e44ec8d Mon Sep 17 00:00:00 2001
From: Michael Roth <michael.roth@amd.com>
Date: Wed, 16 Aug 2023 15:11:46 -0500
Subject: [PATCH 2/3] OvmfPkg/AmdSev: Disable PcdFirstTimeWakeUpAPsBySipi
commit 8b66f9df1bb0fd5ebb743944d41cb33178cf2fdd upstream.
PcdFirstTimeWakeUpAPsBySipi was recently introduced to indicate when the
full INIT-SIPI-SIPI sequence can be skipped for AP bringup. It is true
by default, but needs to be disabled for QEMU/OVMF where early INIT is
not simulated. Commit 1d76560146 ("OvmfPkg: Disable
PcdFirstTimeWakeUpAPsBySipi.") added changes to disable it by default
for OvmfPkg, but a similar change was not made for the AmdSev package.
This breaks booting of SEV and SNP guests.
Fix this defaulting PcdFirstTimeWakeUpAPsBySipi to false for AmdSev
package, as was previously done for OvmfPkg variants.
Fixes: eaffa1d7ff ("UefiCpuPkg:Wake up APs after power-up or RESET through SIPI.")
Signed-off-by: Michael Roth <michael.roth@amd.com>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
---
OvmfPkg/AmdSev/AmdSevX64.dsc | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/OvmfPkg/AmdSev/AmdSevX64.dsc b/OvmfPkg/AmdSev/AmdSevX64.dsc
index 31bff348..44acbb7f 100644
--- a/OvmfPkg/AmdSev/AmdSevX64.dsc
+++ b/OvmfPkg/AmdSev/AmdSevX64.dsc
@@ -469,6 +469,14 @@
gEfiMdeModulePkgTokenSpaceGuid.PcdConInConnectOnDemand|TRUE
gUefiOvmfPkgTokenSpaceGuid.PcdBootRestrictToFirmware|TRUE
+ #
+ # INIT is now triggered before BIOS by ucode/hardware. In the OVMF
+ # environment, QEMU lacks a simulation for the INIT process.
+ # To address this, PcdFirstTimeWakeUpAPsBySipi set to FALSE to
+ # broadcast INIT-SIPI-SIPI for the first time.
+ #
+ gUefiCpuPkgTokenSpaceGuid.PcdFirstTimeWakeUpAPsBySipi|FALSE
+
################################################################################
#
# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform
--
2.25.1