When the payload inherits APs from an outer UEFI whose shutdown
sequence and AP wait state are unknown, MpInitLib's SIPI-only
first-wakeup optimisation can miss APs.

Set PcdFirstTimeWakeUpAPsBySipi to FALSE so that the full
INIT-SIPI-SIPI sequence is used for the first wakeup. This is gated by
CHAINLOAD_DEFAULTS: coreboot and Slim Bootloader are known bootloaders
that leave APs in wait-for-SIPI, so we keep the UefiCpuPkg default
(TRUE) for them.

Cc: Benjamin Doron <[email protected]>
Cc: Gua Guo <[email protected]>
Cc: Guo Dong <[email protected]>
Cc: James Lu <[email protected]>
Cc: Sean Rhodes <[email protected]>
Cc: Shuo Liu <[email protected]>
Assisted-by: claude-opus-5
Signed-off-by: Alexander Graf <[email protected]>
---
 UefiPayloadPkg/UefiPayloadPkg.dsc | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc 
b/UefiPayloadPkg/UefiPayloadPkg.dsc
index 38240e4e40..bff20fd4d5 100644
--- a/UefiPayloadPkg/UefiPayloadPkg.dsc
+++ b/UefiPayloadPkg/UefiPayloadPkg.dsc
@@ -689,6 +689,8 @@
   # different PCD with the same name; UefiPayloadEntry consumes only the

   # gUefiPayloadPkgTokenSpaceGuid one below.

   gUefiPayloadPkgTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x10000000

+  # Only consumed by UefiCpuPkg MpInitLib on IA32/X64; harmless on AArch64.

+  gUefiCpuPkgTokenSpaceGuid.PcdFirstTimeWakeUpAPsBySipi|FALSE

 !endif

 

 [PcdsFixedAtBuild.AARCH64]

-- 
2.47.3



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#122095): https://edk2.groups.io/g/devel/message/122095
Mute This Topic: https://groups.io/mt/120797268/21656
Group Owner: [email protected]
Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to