[PATCH v4 07/10] rockchip: binman: Include a compatible string in each configuration

Jonas Karlman jonas at kwiboo.se
Wed Apr 9 17:05:58 CEST 2025


Hi Quentin,

On 2025-04-09 12:02, Quentin Schulz wrote:
> Hi Jonas, Simon,
> 
> On 3/29/25 4:06 PM, Jonas Karlman wrote:
>> From: Simon Glass <sjg at chromium.org>
>>
>> Provide a compatible string in the config nodes that U-Boot can use to
>> help decide which configuration to use.
>>
> 
> Can you tell us more about this?

I think the VBE can use this to determine what config/fdt would be used
in a multi-dtb FIT image.

This also sparked an idea to use this compatible for board selection in SPL
instead of the description (fdtfile) field. I have started to play around
with a board_fit_config_compatible_match() a few patches in at [1], e.g.:

- WIP: boot: fit: add board_fit_config_compatible_match()
- WIP: rockchip: implement fit config compatible match for boards

[1] https://source.denx.de/u-boot/contributors/kwiboo/u-boot/-/commits/for-next

That could also be used for having board specific TPL+SPL and use a 
single multi-dtb FIT with U-Boot proper and multiple fdt/config nodes,
one for each board.

> 
> I don't think mkimage -l/dumpimage -l actually provide that information 
> and the docs are sparse as to what "so that things work correctly with 
> FIT's configuration-matching algortihm." means.
> 
> Looking a bit into tools/binman/ftest.py it seems like it's a way to 
> expose the DT compatible property from within the first entry in `fdt` 
> array property (a DTB) into the configuration node in the fit image.
> 
> I think it'd make sense to update dumpimage/mkimage/etc... to dump that 
> information as well?

I think so too, I know there are a few load/entry addresses for some
image type that is also not shown by dumpimage. This is something that
can be improved in a different series.

For FIT you can always use: dtc -I dtb -O dts u-boot.itb

  [...]
        configurations {
                default = "config-1";

                config-1 {
                        compatible = "radxa,e20c\0rockchip,rk3528";
                        loadables = "u-boot\0atf-2\0atf-3";
                        firmware = "atf-1";
                        fdt = "fdt-1";
                        description = "rockchip/rk3528-radxa-e20c.dtb";
                };

                config-2 {
                        compatible = "radxa,rock-2a\0rockchip,rk3528";
                        loadables = "u-boot\0atf-2\0atf-3";
                        firmware = "atf-1";
                        fdt = "fdt-2";
                        description = "rockchip/rk3528-rock-2a.dtb";
                };

                config-3 {
                        compatible = "radxa,rock-2f\0rockchip,rk3528";
                        loadables = "u-boot\0atf-2\0atf-3";
                        firmware = "atf-1";
                        fdt = "fdt-3";
                        description = "rockchip/rk3528-rock-2f.dtb";
                };
        };
  [...]

Regards,
Jonas

> 
> Reviewed-by: Quentin Schulz <quentin.schulz at cherry.de>
> 
> Thanks!
> Quentin



More information about the U-Boot mailing list