coreboot/payloads/external
Sean Rhodes 817394f12c Makefile.mk: generate EDK2 update capsule
Generate a signed UEFI capsule from the final coreboot ROM image using
EDK2 BaseTools.

When using an EDK2 payload and enabling DRIVERS_EFI_UPDATE_CAPSULES and
DRIVERS_EFI_GENERATE_CAPSULE, the build produces build/coreboot.cap once
the ROM is finalised (after all files were added to CBFS). The capsule
can also be generated explicitly with `make capsule`.

Move the capsule generation and certificate preparation into
payloads/external/edk2/Makefile, including generating the trusted root
certificate PCD include via BinToPcd.

Support capsule flows with an embedded FmpDxe driver by optionally
embedding FmpDxe.efi into generated capsules, and wiring the
embedded-driver Kconfig options through to the EDK2 payload build and
capsule generation.

Always set PersistAcrossReset on the capsule. Make InitiateReset
configurable (default off) because Linux rejects capsules with
InitiateReset when writing via /dev/efi_capsule_loader.

Use CONFIG_DRIVERS_EFI_MAIN_FW_VERSION for GenerateCapsule
--fw-version, but fall back to parsing a leading <major>.<minor> from
CONFIG_LOCALVERSION when it is left at 0. If
CONFIG_DRIVERS_EFI_MAIN_FW_LSV is 0, use the resolved firmware version.

Document capsule generation and embedded driver configuration.

Corresponding edk2 patches can be found at:
https://github.com/tianocore/edk2/pull/12053

Change-Id: I5f56b894d40ddb49f3158bb72f0143d0ebe9c34c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90862
Reviewed-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-16 19:51:14 +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 default 64-bit libpayload config 2026-02-14 22:30:52 +00:00
edk2 Makefile.mk: generate EDK2 update capsule 2026-03-16 19:51:14 +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: Unconditionally restore config files post-build 2026-01-17 23:40:33 +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 Makefile.mk: generate EDK2 update capsule 2026-03-16 19:51:14 +00:00