coreboot/payloads/external
Michał Żygowski 0ba4505024 payloads/external/edk2/Makefile: Configure AP wakeup in UEFI payload
PcdFirstTimeWakeUpAPsBySipi controls the sequence of IPIs sent to APs
during AP wakeup in UefiCpuPkg. Since coreboot leaves APs parked in
halt loop, SIPI is not enough to wake them up. They need to go through
regular INIT-SIPI-SIPI sequence. Set PcdFirstTimeWakeUpAPsBySipi to
FALSE to cause the MP code in UEFI Payload to send INIT-SIPI-SIPI
sequence, otherwise the APs are not detected in UEFI Payload.

Additionally, after rebasing to the latest UefiCpuPkg, CpuDxe now calls
MpInitLibStartupAllCPUs() while setting up per-CPU exception stacks.
If we leave `PcdFirstTimeWakeUpAPsBySipi` at its default (TRUE), only a
SIPI is issued on the first wake attempt. The APs that coreboot parks in
an HLT loop never acknowledge that SIPI, the DXE driver trips
`ASSERT_EFI_ERROR()` and the UEFI payload reboots straight back into
coreboot. Explicitly set the PCD to FALSE so the INIT-SIPI-SIPI flow is
used and all cores report in.

before:
MpInitLib: Find 1 processors in system.

after:
MpInitLib: Find 4 processors in system.


TEST=edk2 boots cleanly on Star Labs Lite ADL (Intel N200) and
Gigabyte MZ33-AR1; DXE log shows all processors detected.

Change-Id: I299b74892a56894c3e15507b507a50bdf7e59860
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89210
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-11-12 14:37:47 +00:00
..
BOOTBOOT treewide: Move stdlib.h to commonlib 2024-03-15 10:09:43 +00:00
coreDOOM payloads: Add SPDX headers to Kconfig 2024-02-18 01:57:39 +00:00
depthcharge payloads/depthcharge: Add DEPTHCHARGE_REPO and DEPTHCHARGE_BRANCH 2024-03-04 22:47:08 +00:00
edk2 payloads/external/edk2/Makefile: Configure AP wakeup in UEFI payload 2025-11-12 14:37:47 +00:00
FILO payloads: Add SPDX headers to Kconfig 2024-02-18 01:57:39 +00:00
GRUB2 payloads: Add SPDX headers to Kconfig 2024-02-18 01:57:39 +00:00
iPXE payloads/ipxe/kconfig: Fix option name prefix 2024-07-09 01:59:08 +00:00
leanefi payloads/external/leanefi: Add missing license 2024-06-05 19:56:23 +00:00
linux payloads: Add SPDX headers to Kconfig 2024-02-18 01:57:39 +00:00
LinuxBoot payloads/external/LinuxBoot/Makefile: Fix build prerequisite 2025-07-17 20:39:15 +00:00
Memtest86Plus payloads: Add SPDX headers to Kconfig 2024-02-18 01:57:39 +00:00
SeaBIOS payload/seabios: Update from 1.16.3 to 1.17.0 2025-08-18 23:44:36 +00:00
skiboot payloads/external/skiboot/Makefile: fix output on make clean 2022-09-28 17:35:37 +00:00
tint tint: upgrade the tint payload to 0.07 version 2023-08-08 16:03:38 +00:00
U-Boot payloads/external/U-Boot/Makefile: Add custom repo and tag 2025-11-02 18:17:19 +00:00
.gitignore payloads/edk2: Move building to directory called workspace 2022-08-24 21:27:24 +00:00
Makefile.mk payloads/edk2: Drop EDK2_PCO_MMIO_EMMC Kconfig option 2025-11-05 14:21:18 +00:00