[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