[U-Boot-Users] [PATCH] Allow building mips versions with ELDK 3.1.1

Shinya Kuribayashi skuribay at ruby.dti.ne.jp
Tue May 6 04:37:49 CEST 2008


Wolfgang Denk wrote:
> In message <481EE9A0.60403 at windriver.com> you wrote:
>> .gpword works only with local symbols on certain binutils versions
>>
>> Signed-off-by: Vlad Lungu <vlad.lungu at windrvier.com>
>> ---
>>  cpu/mips/start.S |    9 ++++++---
>>  1 files changed, 6 insertions(+), 3 deletions(-)
> 
> Applied, thanks a lot.
> 
> This fixes the start.S erros/warnings.

This patch works with my two different CPUs. Thanks!

> So the only obvious problem remaining for MIPS are the cache.S
> warnings:
> 
> cache.S:243: Warning: Pretending global symbol used as branch target is local.
> cache.S:250: Warning: Pretending global symbol used as branch target is local.

Assembler might be sensitive to global symbol references under PIC code
because they should be processed through GOT in principle.

Therefore, we should have set up function entry point explicitly like:

diff --git a/cpu/mips/cache.S b/cpu/mips/cache.S
index 8024a2e..7966079 100644
--- a/cpu/mips/cache.S
+++ b/cpu/mips/cache.S
@@ -239,14 +239,16 @@ NESTED(mips_cache_reset, 0, ra)
         */
        move    a1, t2
        move    a2, t4
-       bal     mips_init_icache
+       PTR_LA  t7, mips_init_icache
+       jalr    t7
 
        /*
         * then initialize D-cache.
         */
        move    a1, t3
        move    a2, t5
-       bal     mips_init_dcache
+       PTR_LA  t7, mips_init_dcache
+       jalr    t7
 
        jr      RA
        END(mips_cache_reset)

I'll post the patch later.

thanks,

  Shinya





More information about the U-Boot mailing list