coreboot/src/drivers
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
..
acpi/thermal_zone tree: Remove unused <string.h> 2024-05-29 10:34:08 +00:00
amd drivers/amd/opensil: Add hooks to populate CBMEM_ID_MEMINFO 2026-01-15 19:57:44 +00:00
ams drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
analogix/anx7625 drivers/analogix/anx7625: Add a retry mechanism to decode EDID 2025-06-07 09:50:32 +00:00
asmedia drivers/asmedia/asm1061: Align = only with tabs and not spaces 2025-02-10 15:14:32 +00:00
aspeed drivers/aspeed/common: Add AST2600 support 2024-09-26 15:09:17 +00:00
broadcom driver/acpi to /driver/gfx: Rename Makefiles from .inc to .mk 2024-01-24 10:03:39 +00:00
camera drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
crb drivers/crb/tpm: Add new method to retrieve base address 2025-07-02 16:15:09 +00:00
efi Makefile.mk: generate EDK2 update capsule 2026-03-16 19:51:14 +00:00
elog elog: Handle elog in later boot phase 2025-06-05 13:36:36 +00:00
emulation/qemu drivers/emulation/qemu: Adjust fw_cfg driver for Arm and RISCV 2025-09-28 18:16:57 +00:00
generic drivers/generic/gpio_keys: Set ACPI status to HIDDEN 2026-02-04 21:00:26 +00:00
genesyslogic drivers/genesyslogic/gl9763e: Generate ACPI device for attached eMMC 2026-01-30 17:08:00 +00:00
gfx/generic drivers/gfx/generic: Add support for non-VGA devices 2025-12-17 20:24:43 +00:00
hwid_dmi drivers/hwid_dmi: Populate SMBIOS product name from CBFS hwid file 2025-11-23 20:07:54 +00:00
i2c drivers/i2c/rv3028c7: Use byte ops for i801 SMBus compatibility 2026-02-17 14:23:18 +00:00
intel drivers/intel/dtbt: Add discrete Thunderbolt driver 2026-02-17 14:23:40 +00:00
ipmi drivers/ipmi: add Block Transfer (BT) interface 2025-10-16 12:16:43 +00:00
lenovo mb/lenovo: Convert PNP device to generic device 2026-02-28 15:04:03 +00:00
maxim driver/intel to /driver/ocp: Rename Makefiles from .inc to .mk 2024-01-24 10:04:10 +00:00
mipi drivers/mipi: Add support for TG-XTI05101 panel 2026-02-04 11:22:05 +00:00
mrc_cache lib/xxhash: Move to commonlib/bsd 2025-12-20 17:35:33 +00:00
net drivers/net/r8168.c: Add option to program MAC address to ERI registers 2025-04-29 22:17:48 +00:00
nxp/uwb tree: Remove unused <string.h> 2024-05-29 10:34:08 +00:00
ocp drivers/ocp/ewl: Remove space after a cast 2024-10-09 17:27:37 +00:00
option drivers/option/cfr: Fix numeric default override 2026-01-28 13:37:52 +00:00
parade driver/parade to /driver/wwan: Rename Makefiles from .inc to .mk 2024-01-24 10:04:33 +00:00
pc80 drivers/pc80/pc/keyboard.c: Add function to change a command byte bit 2025-01-22 20:45:37 +00:00
pcie drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
ricoh/rce822 drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
secunet/dmi drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
siemens/nc_fpga drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
sil/3114 drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
smbus console/i2c_smbus: Allow to send data w/o register offset 2024-07-11 00:06:22 +00:00
smmstore drivers/smmstore: Use lookup_store() for memory-mapped reads 2026-01-10 21:46:55 +00:00
sof drivers/sof: Add support for tas2563 speaker topology 2025-11-12 14:37:11 +00:00
soundwire drivers/soundwire/cs42l43: Add optional properties for controlling jack and accessory detect 2025-10-18 18:31:16 +00:00
spi drivers/spi/flashconsole.c: Fix flashconsole 2026-02-28 15:05:21 +00:00
ti driver/parade to /driver/wwan: Rename Makefiles from .inc to .mk 2024-01-24 10:04:33 +00:00
tpm drivers/tpm: Remove duplicated op 2025-12-08 03:03:36 +00:00
uart {drivers, soc/qualcomm/common}: Add configurable delay for UART bitbang 2025-08-04 16:26:29 +00:00
usb drivers/usb/acpi: Add DSM function 3 support for Intel Bluetooth 2026-02-28 15:05:45 +00:00
vpd drivers/vpd: Search VPD info at 0x0 first 2025-11-21 22:16:15 +00:00
wifi/generic drivers/wifi/generic: Fix typo in header guard comment 2025-09-10 21:38:51 +00:00
wwan/fm drivers/wwan/fm: Use _EVT method to enhance GPIO event handling 2026-01-07 16:25:22 +00:00