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

Reply via email to