[U-Boot] [PATCH RFC] mpc8572ds relocatable
Joakim Tjernlund
joakim.tjernlund at transmode.se
Mon Oct 13 15:06:24 CEST 2008
On Mon, 2008-10-13 at 00:53 +0200, Wolfgang Denk wrote:
> Dear Ed Swarthout,
>
> In message <1220862412-16162-1-git-send-email-Ed.Swarthout at freescale.com> you wrote:
> > Fixes boot crash from bad string pointers in get_table_entry_name
> > when flash is erased or differs from current u-boot image.
> >
> > Signed-off-by: Ed Swarthout <Ed.Swarthout at freescale.com>
> > ---
> >
> > Fix was pointed out by Peter Tyser in Image.c get_table_entry_name thread.
> >
> > This redoes Grant Likey's relocation change, but leaves control to each board.
> > This also fixes the "mii dump" command when flash is erased.
> > Tested with gcc 4.2
Just wanted to point out that the problems from Grants relocation change
might come from something I found a while back, quoting from previous
mail:
For fun I had a look into eabi.asm code at
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/eabi.asm?rev=1.13&content-type=text/x-cvsweb-markup
and I noticed one difference:
The __eabi_uconvert() function skips NULL ptrs.
Perhaps this is the missing piece needed in start.S for PPC?
__eabi_convert pasted below for convenience.
Jocke
FUNC_START(__eabi_convert)
cmplw 1,3,4 /* any pointers to convert? */
subf 5,3,4 /* calculate number of words to convert */
bclr 4,4 /* return if no pointers */
srawi 5,5,2
addi 3,3,-4 /* start-4 for use with lwzu */
mtctr 5
.Lcvt:
lwzu 6,4(3) /* pointer to convert */
cmpwi 0,6,0
beq- .Lcvt2 /* if pointer is null, don't convert */
add 6,6,12 /* convert pointer */
stw 6,0(3)
.Lcvt2:
bdnz+ .Lcvt
blr
More information about the U-Boot
mailing list