[U-Boot] [PATCH v2 1/4] mx31pdk: copy SPL directly, not using relocate_code.

Albert ARIBAUD albert.u.boot at aribaud.net
Tue May 14 18:13:55 CEST 2013


Hi Benoît,

On Tue, 14 May 2013 17:14:12 +0200 (CEST), Benoît Thébaudeau
<benoit.thebaudeau at advansee.com> wrote:

> Hi Albert,
> 
> On Tuesday, May 14, 2013 11:50:27 AM, Albert ARIBAUD wrote:
> > Signed-off-by: Albert ARIBAUD <albert.u.boot at aribaud.net>
> > ---
> > Changes in v2:
> > - dropped relocate_code() call from mx31pdk SPL
> > 
> >  board/freescale/mx31pdk/mx31pdk.c |   16 +++++++++++++++-
> >  1 file changed, 15 insertions(+), 1 deletion(-)
> > 
> > diff --git a/board/freescale/mx31pdk/mx31pdk.c
> > b/board/freescale/mx31pdk/mx31pdk.c
> > index 49158bd..4f6cfee 100644
> > --- a/board/freescale/mx31pdk/mx31pdk.c
> > +++ b/board/freescale/mx31pdk/mx31pdk.c
> > @@ -39,7 +39,21 @@ DECLARE_GLOBAL_DATA_PTR;
> >  #ifdef CONFIG_SPL_BUILD
> >  void board_init_f(ulong bootflag)
> >  {
> > -	relocate_code(CONFIG_SPL_TEXT_BASE);
> > +	/*
> > +	 * copy ourselves from where we are running to where we were
> > +	 * linked at. Use ulong pointers as all addresses involved
> > +	 * are 4-byte-aligned.
> > +	 */
> > +	ulong *start_ptr, *end_ptr, *link_ptr, *run_ptr, *dst;
> > +	asm volatile ("ldr %0, =_start" : "=r"(start_ptr));
> > +	asm volatile ("ldr %0, =_end" : "=r"(end_ptr));
> 
> Why not __image_copy_start/end instead? I know that the result will be the same
> here, but the naming would be more appropriate. The existing u-boot-spl.lds
> still gives access to __image_copy_*.

Well, yes, the naming seems appropriate, and I thought and said so
myself some time ago. But then, I realize that __image_copy_start and
__image_copy_end are tightly coupled with relocation, and I want to
avoid creating any additional ties between relocation and SPL just when
I am severing them. IOW, I want to keep the option of having a reduced
SPL linker file, distinct from the u-boot one, and where none of
__image_copy_*, __rel_dyn_* or __dynsym_start exist.

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list