* [U-Boot-Users] [PATCH] Allow building mips versions with ELDK 3.1.1
@ 2008-05-05 11:04 Vlad Lungu
2008-05-05 12:46 ` Wolfgang Denk
0 siblings, 1 reply; 3+ messages in thread
From: Vlad Lungu @ 2008-05-05 11:04 UTC (permalink / raw)
To: u-boot
.gpword works only with local symbols on certain binutils versions
Signed-off-by: Vlad Lungu <vlad.lungu@windrvier.com>
---
cpu/mips/start.S | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/cpu/mips/start.S b/cpu/mips/start.S
index 6e1a78c..947128d 100644
--- a/cpu/mips/start.S
+++ b/cpu/mips/start.S
@@ -345,7 +345,8 @@ relocate_code:
jr t0
nop
- .gpword _GLOBAL_OFFSET_TABLE_ /* _GLOBAL_OFFSET_TABLE_ - _gp */
+ .word _gp
+ .word _GLOBAL_OFFSET_TABLE_
.word uboot_end_data
.word uboot_end
.word num_got_entries
@@ -358,8 +359,10 @@ in_ram:
* generated by GNU ld. Skip these reserved entries from relocation.
*/
lw t3, -4(t0) /* t3 <-- num_got_entries */
- lw t4, -16(t0) /* t4 <-- (_GLOBAL_OFFSET_TABLE_ - _gp) */
- add t4, t4, gp /* t4 now holds _GLOBAL_OFFSET_TABLE_ */
+ lw t4, -16(t0) /* t4 <-- _GLOBAL_OFFSET_TABLE_ */
+ lw t5, -20(t0) /* t5 <-- _gp */
+ sub t4, t5 /* compute offset*/
+ add t4, t4, gp /* t4 now holds relocated _GLOBAL_OFFSET_TABLE_ */
addi t4, t4, 8 /* Skipping first two entries. */
li t2, 2
1:
--
1.5.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [U-Boot-Users] [PATCH] Allow building mips versions with ELDK 3.1.1
2008-05-05 11:04 [U-Boot-Users] [PATCH] Allow building mips versions with ELDK 3.1.1 Vlad Lungu
@ 2008-05-05 12:46 ` Wolfgang Denk
2008-05-06 2:37 ` Shinya Kuribayashi
0 siblings, 1 reply; 3+ messages in thread
From: Wolfgang Denk @ 2008-05-05 12:46 UTC (permalink / raw)
To: u-boot
In message <481EE9A0.60403@windriver.com> you wrote:
> .gpword works only with local symbols on certain binutils versions
>
> Signed-off-by: Vlad Lungu <vlad.lungu@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.
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.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Hiring experienced unix people is like a built-in filter against
idiots. Hiring experienced NT people provides no such guarantee.
-- Miguel Cruz in WgL96.349$CC.122704 at typhoon2.ba-dsg.net
^ permalink raw reply [flat|nested] 3+ messages in thread
* [U-Boot-Users] [PATCH] Allow building mips versions with ELDK 3.1.1
2008-05-05 12:46 ` Wolfgang Denk
@ 2008-05-06 2:37 ` Shinya Kuribayashi
0 siblings, 0 replies; 3+ messages in thread
From: Shinya Kuribayashi @ 2008-05-06 2:37 UTC (permalink / raw)
To: u-boot
Wolfgang Denk wrote:
> In message <481EE9A0.60403@windriver.com> you wrote:
>> .gpword works only with local symbols on certain binutils versions
>>
>> Signed-off-by: Vlad Lungu <vlad.lungu@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
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-05-06 2:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-05 11:04 [U-Boot-Users] [PATCH] Allow building mips versions with ELDK 3.1.1 Vlad Lungu
2008-05-05 12:46 ` Wolfgang Denk
2008-05-06 2:37 ` Shinya Kuribayashi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox