[PATCH 2/2] riscv: Provide __image_copy_{start_end} symbols in linkerscript
Yao Zi
ziyao at disroot.org
Tue Apr 8 11:32:34 CEST 2025
On Mon, Apr 07, 2025 at 01:10:32PM +0200, Jonas Karlman wrote:
> Hi,
>
> On 2025-04-07 05:37, Yao Zi wrote:
> > Binman looks for __image_copy_start to determine the base address of an
> > entry if elf-base-sym isn't specified, which is missing in RISC-V port.
> > This causes binman skips RISC-V SPL entries without filling addresses
> > into its .binman_sym_table section.
> >
> > This patch defines __image_copy_start in linkerscript of both SPL and
> > proper U-Boot to ensure binman_sym functions correctly with the default
> > binman.dtsi. The paired symbol, __image_copy_end, is introduced as well
> > for completeness.
> >
> > Signed-off-by: Yao Zi <ziyao at disroot.org>
> > ---
> > arch/riscv/cpu/u-boot-spl.lds | 2 ++
> > arch/riscv/cpu/u-boot.lds | 3 +++
> > 2 files changed, 5 insertions(+)
> >
> > diff --git a/arch/riscv/cpu/u-boot-spl.lds b/arch/riscv/cpu/u-boot-spl.lds
> > index 907094620bd..18eb62c01c6 100644
> > --- a/arch/riscv/cpu/u-boot-spl.lds
> > +++ b/arch/riscv/cpu/u-boot-spl.lds
> > @@ -16,6 +16,7 @@ ENTRY(_start)
> > SECTIONS
> > {
> > . = ALIGN(4);
> > + __image_copy_start = ADDR(.text);
> > .text : {
> > arch/riscv/cpu/start.o (.text)
> > *(.text*)
> > @@ -46,6 +47,7 @@ SECTIONS
> >
> > _end = .;
> > _image_binary_end = .;
> > + _image_copy_end = .;
>
> This looks like a typo, should probably be with two _ ?
Yes, thanks for catching this. I'll correct it and apply Simon's tag in
v2. Simon, is it okay for you?
Thanks,
Yao Zi
> Regards,
> Jonas
>
> >
> > .bss : {
> > __bss_start = .;
> > diff --git a/arch/riscv/cpu/u-boot.lds b/arch/riscv/cpu/u-boot.lds
> > index 2ffe6ba3c8f..b11ea8b56d2 100644
> > --- a/arch/riscv/cpu/u-boot.lds
> > +++ b/arch/riscv/cpu/u-boot.lds
> > @@ -10,6 +10,7 @@ ENTRY(_start)
> > SECTIONS
> > {
> > . = ALIGN(4);
> > + __image_copy_start = ADDR(.text);
> > .text : {
> > arch/riscv/cpu/start.o (.text)
> > }
> > @@ -57,6 +58,8 @@ SECTIONS
> > __efi_runtime_rel_stop = .;
> > }
> >
> > + __image_copy_end = .;
> > +
> > /DISCARD/ : { *(.rela.plt*) }
> > .rela.dyn : {
> > __rel_dyn_start = .;
>
More information about the U-Boot
mailing list