[PATCH RFT 0/4] efi: payload: allow extension via fragments

chalianis1 at gmail.com chalianis1 at gmail.com
Wed Aug 26 15:56:18 PDT 2026


On 2026-08-26 14:15 +0200, Ahmad Fatoum wrote:
> CONFIG_EXTERNAL_DTS_FRAGMENTS can't be used with the EFI payload, because
> it has no internal DT at build-time and until recently not even a DT at
> runtime.
> 
> This series adds the necessary bits to have this work the same on
> non-EFI-payload platforms.
> 
> @Fabian, can you give this a test?
> 
> Ahmad Fatoum (4):
>   efi: payload: ignore ESP state.dtb if device tree is populated
>   kbuild: dtc: introduce empty fallback device tree
>   efi: payload: export device tree in barebox-dtb EFI variable
>   Documentation: efi: describe device tree handling
> 
>  Documentation/boards/efi.rst | 75 ++++++++++++++++++++++++++++++++++--
>  Documentation/user/state.rst |  5 +++
>  arch/arm/dts/Makefile        |  2 +
>  arch/riscv/dts/Makefile      |  2 +
>  arch/x86/Kbuild              |  2 +
>  arch/x86/dts/Makefile        |  5 +++
>  common/fallback.dts          | 10 +++++
>  efi/payload/boarddata.c      | 11 ------
>  efi/payload/fdt.c            | 53 +++++++++++++++++++++++++
>  efi/payload/handover.c       |  2 +
>  efi/payload/image.c          |  2 +
>  efi/payload/init.c           | 16 ++++++++
>  include/efi/payload.h        |  6 +++
>  scripts/Makefile.dtbs        | 10 +++++
>  14 files changed, 186 insertions(+), 15 deletions(-)
>  create mode 100644 arch/x86/dts/Makefile
>  create mode 100644 common/fallback.dts
> 
> -- 
> 2.47.3
> 
> 
> 
> 
does this work for using state fragment on arm platforms?
I tried quickly to compile with a dtsi for RPi4 and get an error
because the emmc label is not known for RPi3.

For EFI it works on both qemu (x86/arm).

make -j 8 CONFIG_EXTERNAL_DTS_FRAGMENTS=../barebox-arm64-poc/state-rpi.dtsi 
  UPD     include/generated/utsversion.h
  ENV     arch/arm/boards/raspberry-pi/defaultenv-rpi.bbenv
  DTC     arch/arm/dts/fallback.dtb
  ENV     defaultenv/barebox_default_env
  CC [P]  common/imd-barebox.pbl.o
  DTC     arch/arm/dts/bcm2837-rpi-3.dtb
  DTC     arch/arm/dts/bcm2837-rpi-cm3.dtb
./../barebox-arm64-poc/state-rpi.dtsi:11.8-78.4: ERROR (phandle_references): /state: Reference to non-existent node or label "emmc2"

ERROR: Input tree has errors, aborting (use -f to force output)
make[4]: *** [scripts/Makefile.dtbs:100: arch/arm/dts/fallback.dtb] Error 2
make[4]: *** Waiting for unfinished jobs....
  ENV     defaultenv/defaultenv-2-base.bbenv
./../barebox-arm64-poc/state-rpi.dtsi:11.8-78.4: ERROR (phandle_references): /state: Reference to non-existent node or label "emmc2"

ERROR: Input tree has errors, aborting (use -f to force output)
make[4]: *** [scripts/Makefile.dtbs:95: arch/arm/dts/bcm2837-rpi-cm3.dtb] Error 2
  CC      common/version.o
./../barebox-arm64-poc/state-rpi.dtsi:11.8-78.4: ERROR (phandle_references): /state: Reference to non-existent node or label "emmc2"

ERROR: Input tree has errors, aborting (use -f to force output)
make[4]: *** [scripts/Makefile.dtbs:95: arch/arm/dts/bcm2837-rpi-3.dtb] Error 2
make[3]: *** [scripts/Makefile.build:468: arch/arm/dts] Error 2
make[2]: *** [scripts/Makefile.build:468: arch/arm] Error 2
make[2]: *** Waiting for unfinished jobs....
  AR      common/built-in.pbl.a
  AR      common/built-in.a
make[1]: *** [/home/anicha1/sources/barebox-intern/Makefile:1801: .] Error 2
make: *** [Makefile:200: __sub-make] Error 2

best regards.
Anis




More information about the barebox mailing list