On 08/02/2022 21:49, Simon Glass wrote: > These symbols are incorrect, meaning that binman cannot find the > associated entry. This leads to errors like: > > binman: Section '/binman/simple-bin': Symbol '_binman_spl_prop_size' > in entry '/binman/simple-bin/u-boot-spl/u-boot-spl-nodtb': > Entry 'spl' not found in list (mkimage,u-boot-spl-nodtb, > u-boot-spl-bss-pad,u-boot-spl-dtb,u-boot-spl,u-boot-img,main-section)
I can't help but feel like this is a bug with entry expansion where the name of the expanded node is ignored (and replaced by its type?) when it comes to the symbols. > > Fix it. > > Signed-off-by: Simon Glass <s...@chromium.org> > --- > > arch/x86/dts/u-boot.dtsi | 2 +- > common/spl/spl.c | 8 ++++---- > include/spl.h | 4 ++-- > 3 files changed, 7 insertions(+), 7 deletions(-) > > diff --git a/arch/x86/dts/u-boot.dtsi b/arch/x86/dts/u-boot.dtsi > index ca84d18ad9..24e692f988 100644 > --- a/arch/x86/dts/u-boot.dtsi > +++ b/arch/x86/dts/u-boot.dtsi > @@ -37,7 +37,7 @@ > u-boot-tpl-dtb { > }; > #endif > - spl { > + u-boot-spl { > type = "u-boot-spl"; I guess the type can be removed now that it's the same as the node name. > offset = <CONFIG_X86_OFFSET_SPL>; > }; > diff --git a/common/spl/spl.c b/common/spl/spl.c > index 884102bdea..444907432c 100644 > --- a/common/spl/spl.c > +++ b/common/spl/spl.c > @@ -54,8 +54,8 @@ binman_sym_declare(ulong, u_boot_any, image_pos); > binman_sym_declare(ulong, u_boot_any, size); > > #ifdef CONFIG_TPL > -binman_sym_declare(ulong, spl, image_pos); > -binman_sym_declare(ulong, spl, size); > +binman_sym_declare(ulong, u_boot_spl, image_pos); > +binman_sym_declare(ulong, u_boot_spl, size); > #endif > > /* Define board data structure */ > @@ -143,14 +143,14 @@ void spl_fixup_fdt(void *fdt_blob) > ulong spl_get_image_pos(void) > { > return spl_phase() == PHASE_TPL ? > - binman_sym(ulong, spl, image_pos) : > + binman_sym(ulong, u_boot_spl, image_pos) : > binman_sym(ulong, u_boot_any, image_pos); > } > > ulong spl_get_image_size(void) > { > return spl_phase() == PHASE_TPL ? > - binman_sym(ulong, spl, size) : > + binman_sym(ulong, u_boot_spl, size) : > binman_sym(ulong, u_boot_any, size); > } > > diff --git a/include/spl.h b/include/spl.h > index bb92bc6ec6..8ceb3c0f09 100644 > --- a/include/spl.h > +++ b/include/spl.h > @@ -269,8 +269,8 @@ struct spl_load_info { > */ > binman_sym_extern(ulong, u_boot_any, image_pos); > binman_sym_extern(ulong, u_boot_any, size); > -binman_sym_extern(ulong, spl, image_pos); > -binman_sym_extern(ulong, spl, size); > +binman_sym_extern(ulong, u_boot_spl, image_pos); > +binman_sym_extern(ulong, u_boot_spl, size); > > /** > * spl_get_image_pos() - get the image position of the next phase