[U-Boot-Users] [PATCH] Fixup relocation patch.

Joakim Tjernlund joakim.tjernlund at transmode.se
Tue Feb 13 17:25:27 CET 2007


Hi

I tested this on my mpc832x based board and it worked for me as well.
I had to add -mrelocatable too though.

Tools is:
powerpc-softfloat-linux-gnu-gcc --version
powerpc-softfloat-linux-gnu-gcc (GCC) 3.4.6 (Gentoo 3.4.6-r2,
ssp-3.4.6-1.0, pie-8.7.9)

powerpc-softfloat-linux-gnu-ld --version 
GNU ld version 2.16.1


Question, why do remove 83xx here:
-#if defined(CONFIG_IP860) || defined(CONFIG_PCU_E) || \
-       defined (CONFIG_FLAGADM) || defined(CONFIG_MPC83XX)
+#if defined(CONFIG_IP860) || defined(CONFIG_PCU_E) || defined (CONFIG_FLAGADM)
        icache_enable ();       /* it's time to enable the instruction cache */
 #endif

On Tue, 2007-02-13 at 10:25 +0100, Txema Lopez wrote:
> Hi all,
> This is a patch to make relocation simpler and more reliable. It's for a 
> 1.1.6 U-Boot version.
> 
> The FIXUP section in U-Boot is empty so when U-Boot is relocated from 
> flash to sdram these lines in the file start.S have no effect:
>    /*
>     * Now adjust the fixups and the pointers to the fixups
>     * in case we need to move ourselves again.
>     */
> 2:    li    r0,__fixup_entries at sectoff@l
>    lwz    r3,GOT(_FIXUP_TABLE_)
>    cmpwi    r0,0
>    mtctr    r0
>    addi    r3,r3,-4
>    beq    4f
> 3:    lwzu    r4,4(r3)
>    lwzux    r0,r4,r11
>    add    r0,r0,r11
>    stw    r10,0(r3)
>    stw    r0,0(r4)
>    bdnz    3b
> 4:
> Because of it, in some places of U-Boot the relocation must be done 
> manually: i.e malloc_bin_reloc().
> 
> I submit the patch only for the Lite5200 boards and the rest of boards 
> will be not affected. If someone want to use or test the fixup 
> relocation for his board only has to do two changes:
>     - cleanup the fixup section from the text section in  the u-boot.lds 
> file.
>     - define CFG_FIXUP_RELOCATION in the board configuration file.
> 
> I'm not sure if this patch could work for not PowerPC based 
> architectures. By example, taking a look in the U-Boot starting files 
> for mips and bf533 cpu's, it seems that only the GOT section is 
> relocated in ram, so the patch probably won't work.
> 
> Signed-off-by: Jose Maria Lopez <tlopez at aotek.es>
> 
> CHANGELOG
> 
> * Make relocation simpler and more reliable for Lite5200 boards:
>     Patch by Jose Maria Lopez, 13 February 2007
> 
> 
> 
> 
> Best regards,
> 
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier.
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________ U-Boot-Users mailing list U-Boot-Users at lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users




More information about the U-Boot mailing list