[PATCH RFT 0/4] efi: payload: allow extension via fragments
Ahmad Fatoum
a.fatoum at pengutronix.de
Thu Aug 27 00:31:54 PDT 2026
Hello Anis,
On 8/27/26 12:56 AM, chalianis1 at gmail.com wrote:
> On 2026-08-26 14:15 +0200, Ahmad Fatoum wrote:
> 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.
The fragment is appended to all device trees that are being built. If
you want to customize it per device tree, use the preprocessor
#ifdef bcm2711_rpi_4_dts
backend = <&emmc2>;
#endif
There are similar macros defined for every DT, so you can have one
fragment that covers multiple boards or multiple fragments that each has
an ifdef to cover only a single board.
The alternative would be disabling other boards. I see now though that
this wouldn't fully work because empty.dts is built always, so I should
probably limit its build to only the EFI payload case for now.
Will do so in a later revision until I get more feedback.
Having a compile error when there is a mismatch is one reason why this
might be preferable to overlays. There's work underway for device tree
addons, which looks really interesting. Perhaps when that's widely
available, it would be a better fit for providing the state snippet as
boards could define an API of sorts to make it easy to plug addons into
them.
Thanks for giving this a try!
Ahmad
> ./../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
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list