[PATCH 0/4] Enable EFI Capsule on Disk on Libre Computer LePotato & LaFrite
Neil Armstrong
neil.armstrong at linaro.org
Wed Apr 22 10:36:21 CEST 2026
On 4/8/26 22:30, Ferass El Hafidi via groups.io wrote:
> Mostly everything is already in place to enable EFI capsules and in particular
> EFI capsule on disk.
>
> First, switch all Amlogic boards to use SYSRESET. EFI Capsule on Disk
> functionality expects sysreset to be present. As the current reset_cpu()
> function in board-common.c is basically only doing PSCI reset on U-Boot
> proper, we can replace it with sysreset's PSCI support, which works just
> fine for that purpose provided BL31 is running (SPL stays on an
> SoC-specific reset_cpu() which does for(;;);, as the overhead for
> sysreset is too high and we don't have PSCI yet at that point).
>
> Then we can enable capsule on disk. LaFrite has Capsule updates enabled
> already, so it is simply a matter of enabling CoD. LePotato does not
> have Capsule updates enabled by default, however it can be easily enabled
> and setup to update u-boot on eMMC/SD.
>
> With Capsule on Disk setup, it becomes possible to update U-Boot directly
> from Linux, without having to worry about manually using `flashprog`
> (for SPI flash) or `dd` (for eMMC/SD). Instead, thanks to CoD, updates
> can be handled by `fwupd` and applied upon next EFI boot.
>
> To test:
>
> * build U-Boot as usual
>
> * in that running U-Boot, run: `efidebug capsule esrt` to get the GUID
> -OR-
> run the following in your tree:
> tools/mkeficapsule guidgen path_to_devicetree_here U_BOOT_MESON_MMC
> (or U_BOOT_MESON_SPI on LaFrite)
>
> * proceed with the following guide to create a capsule file:
> https://docs.u-boot.org/en/latest/develop/uefi/uefi.html#enabling-uefi-capsule-update-feature
>
> * generate a .cab file suitable for fwupd using `mkcab`:
> https://gitlab.postmarketos.org/tauchgang/tauchgang-ci/-/tree/main/mkcab
> mkcab u-boot-libretech-cc.capsule GUID-GOES-HERE libretech-cc "LePotato" 2026.04
> (as of writing, the README.md suggests this is for Qualcomm only. It
> actually does nothing that is Qualcomm-specific, and works on any
> board that supports Capsule on Disk and fwupd)
>
> * on the board itself, boot to Linux via EFI, install fwupd, copy the resulting
> .cab file, and run as root:
> fwupdtool --force install u-boot-libretech-cc.cab
>
> * reboot, make sure you boot over EFI, else the capsule update will not
> start
>
> Signed-off-by: Ferass El Hafidi <funderscore at postmarketos.org>
> ---
> Ferass El Hafidi (4):
> arm: mach-meson: move reset_cpu to spl only
> arm: meson: enable SYSRESET_PSCI
> configs: libretech-ac_defconfig: enable EFI Capsule on Disk
> configs: libretech-cc_defconfig: enable EFI Capsule on Disk
>
> arch/arm/mach-meson/Kconfig | 2 ++
> arch/arm/mach-meson/board-common.c | 14 --------------
> arch/arm/mach-meson/spl.c | 10 ++++++++++
> configs/libretech-ac_defconfig | 1 +
> configs/libretech-cc_defconfig | 4 ++++
> 5 files changed, 17 insertions(+), 14 deletions(-)
> ---
> base-commit: 4dc4080805fac1b1ed7606ce3bc8fb44a6d59d5e
> change-id: 20260408-b4-amlogic-sysreset-capsules-8f5962defafb
>
> Best regards,
Got the following failure in CI:
aarch64: + sei510
+
+WARNING: unmet direct dependencies detected for SYSRESET_PSCI
+ Depends on [n]: SYSRESET [=y] && ARM_PSCI_FW [=n]
+ Selected by [y]:
+ - MESON64_COMMON [=y] && ARM [=y] && ARCH_MESON [=y]
+drivers/sysreset/sysreset_psci.c: In function 'psci_sysreset_request':
+drivers/sysreset/sysreset_psci.c:21:17: error: implicit declaration of function 'psci_sys_reset' [-Werror=implicit-function-declaration]
+ 21 | psci_sys_reset(type);
+ | ^~~~~~~~~~~~~~
+drivers/sysreset/sysreset_psci.c:24:17: error: implicit declaration of function 'psci_sys_poweroff' [-Werror=implicit-function-declaration]
+ 24 | psci_sys_poweroff();
+ | ^~~~~~~~~~~~~~~~~
+cc1: all warnings being treated as errors
+make[3]: *** [scripts/Makefile.build:271: drivers/sysreset/sysreset_psci.o] Error 1
+make[2]: *** [scripts/Makefile.build:492: drivers/sysreset] Error 2
+make[1]: *** [Makefile:2205: drivers] Error 2
+make: *** [Makefile:189: __sub-make] Error 2
aarch64: + sei610
+
+WARNING: unmet direct dependencies detected for SYSRESET_PSCI
+ Depends on [n]: SYSRESET [=y] && ARM_PSCI_FW [=n]
+ Selected by [y]:
+ - MESON64_COMMON [=y] && ARM [=y] && ARCH_MESON [=y]
+drivers/sysreset/sysreset_psci.c: In function 'psci_sysreset_request':
+drivers/sysreset/sysreset_psci.c:21:17: error: implicit declaration of function 'psci_sys_reset' [-Werror=implicit-function-declaration]
+ 21 | psci_sys_reset(type);
+ | ^~~~~~~~~~~~~~
+drivers/sysreset/sysreset_psci.c:24:17: error: implicit declaration of function 'psci_sys_poweroff' [-Werror=implicit-function-declaration]
+ 24 | psci_sys_poweroff();
+ | ^~~~~~~~~~~~~~~~~
Could you fix it ?
Neil
More information about the U-Boot
mailing list