Hi Quentin, On Wed, 5 Feb 2025 at 06:00, Quentin Schulz <quentin.sch...@cherry.de> wrote: > > Hi Naoki, > > On 1/29/25 2:25 PM, FUKAUMI Naoki wrote: > > After adding the below configs, binman produces an error. > > > > CONFIG_SPL_DFU > > CONFIG_SPL_ENV_SUPPORT > > CONFIG_SPL_USB_DWC3_GENERIC > > CONFIG_SPL_USB_GADGET > > > > binman: Section '/binman/simple-bin-spi': Symbol > > '_binman_u_boot_any_prop_size' > > in entry '/binman/simple-bin-spi/mkimage/u-boot-spl/u-boot-spl-nodtb': > > Entry 'u-boot-any' not found in list > > (u-boot-tpl-nodtb,u-boot-tpl-dtb,u-boot-tpl,u-boot-spl-nodtb,u-boot-spl-dtb,u-boot-spl,mkimage,fit,simple-bin-spi) > > > > Add "no-write-symbols;" to u-boot-tpl and u-boot-spl. > > > > I'll be frank with you, I have no clue what's happening :)
I means that simple-bin-spi has a binary inside it, u-boot-spl, which uses binman_sym_declare(ulong, u_boot_any, size). Most likely it is the one at the top of common/spl.c This symbol is filled in (by binman, at build-time) with the size of the U-Boot binary. If there is no such U-Boot image then it cannot do this. There is more information at [1] > > But, it seems this only applies to the SPI image (disable > ROCKCHIP_SPI_IMAGE and it'll built just fine). Why? No clue. > > I've never liked how the simple-bin-spi was built because we should be > reusing artifacts from simple-bin instead of rebuilding stuff. That's > why you have /binman/simple-bin-spi/mkimage/fit being a blob, because we > want to reuse the fitImage from /binman/simple-bin/mkimage/fit but we > didn't do this for the other ones. > > Can you try to revert your patch here and use this instead: > > """ > diff --git a/arch/arm/dts/rk3399-u-boot.dtsi > b/arch/arm/dts/rk3399-u-boot.dtsi > index 70f35b6c197..0a5771b706f 100644 > --- a/arch/arm/dts/rk3399-u-boot.dtsi > +++ b/arch/arm/dts/rk3399-u-boot.dtsi > @@ -45,9 +45,15 @@ > }; > #elif defined(CONFIG_TPL) > u-boot-tpl { > + /* sync with > /binman/simple-bin/mkimage/u-boot-tpl */ > + type = "blob"; > + filename = "tpl/u-boot-tpl.bin"; > }; > #endif > u-boot-spl { > + /* sync with > /binman/simple-bin/mkimage/u-boot-spl */ > + type = "blob"; > + filename = "spl/u-boot-spl.bin"; > }; > }; > fit { > diff --git a/arch/arm/dts/rockchip-u-boot.dtsi > b/arch/arm/dts/rockchip-u-boot.dtsi > index c8c928c7e50..fea49eb3145 100644 > --- a/arch/arm/dts/rockchip-u-boot.dtsi > +++ b/arch/arm/dts/rockchip-u-boot.dtsi > @@ -187,9 +187,15 @@ > }; > #elif defined(CONFIG_TPL) > u-boot-tpl { > + /* sync with > /binman/simple-bin/mkimage/u-boot-tpl */ > + type = "blob"; > + filename = "tpl/u-boot-tpl.bin"; > }; > #endif > u-boot-spl { > + /* sync with > /binman/simple-bin/mkimage/u-boot-spl */ > + type = "blob"; > + filename = "spl/u-boot-spl.bin"; > }; > }; > """ > > This seems to work for me on RK3399 Puma and Rock-Pi-4 builds with the > symbols you listed enabled. I also believe this should be "better" than > what we have today. > > If that works, I'll send a proper patch for this :) Regards, Simon [1] https://docs.u-boot.org/en/latest/develop/package/binman.html#access-to-binman-entry-offsets-at-run-time-symbols