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]] -=-=-=-=-=-=-=-=-=-=-=-
