mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-29 08:01:08 +00:00
MIPS: start.S: use symbol __image_copy_end for U-Boot image relocation
Use the newly introduced symbol __image_copy_end as end address for relocation of U-Boot image. This is needed for dynamic relocation added in later patches. This patch obsoletes the symbols uboot_end and uboot_end_data which are removed. Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
This commit is contained in:
parent
696a3b2a53
commit
28875e2c47
5 changed files with 9 additions and 19 deletions
|
@ -173,7 +173,7 @@ relocate_code:
|
||||||
sub s1, s2, t0 # s1 <-- relocation offset
|
sub s1, s2, t0 # s1 <-- relocation offset
|
||||||
|
|
||||||
la t3, in_ram
|
la t3, in_ram
|
||||||
lw t2, -12(t3) # t2 <-- uboot_end_data
|
lw t2, -12(t3) # t2 <-- __image_copy_end
|
||||||
move t1, a2
|
move t1, a2
|
||||||
|
|
||||||
add gp, s1 # adjust gp
|
add gp, s1 # adjust gp
|
||||||
|
@ -201,9 +201,8 @@ relocate_code:
|
||||||
jr t0
|
jr t0
|
||||||
nop
|
nop
|
||||||
|
|
||||||
|
.word __image_copy_end
|
||||||
.word _GLOBAL_OFFSET_TABLE_
|
.word _GLOBAL_OFFSET_TABLE_
|
||||||
.word uboot_end_data
|
|
||||||
.word uboot_end
|
|
||||||
.word num_got_entries
|
.word num_got_entries
|
||||||
|
|
||||||
in_ram:
|
in_ram:
|
||||||
|
@ -214,7 +213,7 @@ in_ram:
|
||||||
* generated by GNU ld. Skip these reserved entries from relocation.
|
* generated by GNU ld. Skip these reserved entries from relocation.
|
||||||
*/
|
*/
|
||||||
lw t3, -4(t0) # t3 <-- num_got_entries
|
lw t3, -4(t0) # t3 <-- num_got_entries
|
||||||
lw t4, -16(t0) # t4 <-- _GLOBAL_OFFSET_TABLE_
|
lw t4, -8(t0) # t4 <-- _GLOBAL_OFFSET_TABLE_
|
||||||
add t4, s1 # t4 now holds relocated _G_O_T_
|
add t4, s1 # t4 now holds relocated _G_O_T_
|
||||||
addi t4, t4, 8 # skipping first two entries
|
addi t4, t4, 8 # skipping first two entries
|
||||||
li t2, 2
|
li t2, 2
|
||||||
|
|
|
@ -165,7 +165,7 @@ relocate_code:
|
||||||
dsub s1, s2, t0 # s1 <-- relocation offset
|
dsub s1, s2, t0 # s1 <-- relocation offset
|
||||||
|
|
||||||
dla t3, in_ram
|
dla t3, in_ram
|
||||||
ld t2, -24(t3) # t2 <-- uboot_end_data
|
ld t2, -24(t3) # t2 <-- __image_copy_end
|
||||||
move t1, a2
|
move t1, a2
|
||||||
|
|
||||||
dadd gp, s1 # adjust gp
|
dadd gp, s1 # adjust gp
|
||||||
|
@ -193,9 +193,8 @@ relocate_code:
|
||||||
jr t0
|
jr t0
|
||||||
nop
|
nop
|
||||||
|
|
||||||
|
.dword __image_copy_end
|
||||||
.dword _GLOBAL_OFFSET_TABLE_
|
.dword _GLOBAL_OFFSET_TABLE_
|
||||||
.dword uboot_end_data
|
|
||||||
.dword uboot_end
|
|
||||||
.dword num_got_entries
|
.dword num_got_entries
|
||||||
|
|
||||||
in_ram:
|
in_ram:
|
||||||
|
@ -206,7 +205,7 @@ in_ram:
|
||||||
* generated by GNU ld. Skip these reserved entries from relocation.
|
* generated by GNU ld. Skip these reserved entries from relocation.
|
||||||
*/
|
*/
|
||||||
ld t3, -8(t0) # t3 <-- num_got_entries
|
ld t3, -8(t0) # t3 <-- num_got_entries
|
||||||
ld t8, -32(t0) # t8 <-- _GLOBAL_OFFSET_TABLE_
|
ld t8, -16(t0) # t8 <-- _GLOBAL_OFFSET_TABLE_
|
||||||
dadd t8, s1 # t8 now holds relocated _G_O_T_
|
dadd t8, s1 # t8 now holds relocated _G_O_T_
|
||||||
daddi t8, t8, 16 # skipping first two entries
|
daddi t8, t8, 16 # skipping first two entries
|
||||||
dli t2, 2
|
dli t2, 2
|
||||||
|
|
|
@ -67,8 +67,6 @@ SECTIONS
|
||||||
#include <u-boot.lst>
|
#include <u-boot.lst>
|
||||||
}
|
}
|
||||||
|
|
||||||
uboot_end_data = .;
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
__image_copy_end = .;
|
__image_copy_end = .;
|
||||||
|
|
||||||
|
@ -80,6 +78,4 @@ SECTIONS
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
__bss_end = .;
|
__bss_end = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
uboot_end = .;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,7 +67,7 @@ relocate_code:
|
||||||
sub t6, a2, t0 # t6 <-- relocation offset
|
sub t6, a2, t0 # t6 <-- relocation offset
|
||||||
|
|
||||||
la t3, in_ram
|
la t3, in_ram
|
||||||
lw t2, -12(t3) # t2 <-- uboot_end_data
|
lw t2, -12(t3) # t2 <-- __image_copy_end
|
||||||
move t1, a2
|
move t1, a2
|
||||||
|
|
||||||
add gp, t6 # adjust gp
|
add gp, t6 # adjust gp
|
||||||
|
@ -116,9 +116,8 @@ relocate_code:
|
||||||
jr t0
|
jr t0
|
||||||
nop
|
nop
|
||||||
|
|
||||||
|
.word __image_copy_end
|
||||||
.word _GLOBAL_OFFSET_TABLE_
|
.word _GLOBAL_OFFSET_TABLE_
|
||||||
.word uboot_end_data
|
|
||||||
.word uboot_end
|
|
||||||
.word num_got_entries
|
.word num_got_entries
|
||||||
|
|
||||||
in_ram:
|
in_ram:
|
||||||
|
@ -129,7 +128,7 @@ in_ram:
|
||||||
* generated by GNU ld. Skip these reserved entries from relocation.
|
* generated by GNU ld. Skip these reserved entries from relocation.
|
||||||
*/
|
*/
|
||||||
lw t3, -4(t0) # t3 <-- num_got_entries
|
lw t3, -4(t0) # t3 <-- num_got_entries
|
||||||
lw t4, -16(t0) # t4 <-- _GLOBAL_OFFSET_TABLE_
|
lw t4, -8(t0) # t4 <-- _GLOBAL_OFFSET_TABLE_
|
||||||
add t4, t6 # t4 now holds relocated _G_O_T_
|
add t4, t6 # t4 now holds relocated _G_O_T_
|
||||||
addi t4, t4, 8 # skipping first two entries
|
addi t4, t4, 8 # skipping first two entries
|
||||||
li t2, 2
|
li t2, 2
|
||||||
|
|
|
@ -5,9 +5,6 @@
|
||||||
* Copyright (C) 2003 Wolfgang Denk, DENX Software Engineering, wd@denx.de
|
* Copyright (C) 2003 Wolfgang Denk, DENX Software Engineering, wd@denx.de
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern ulong uboot_end_data;
|
|
||||||
extern ulong uboot_end;
|
|
||||||
|
|
||||||
static inline unsigned long bss_start(void)
|
static inline unsigned long bss_start(void)
|
||||||
{
|
{
|
||||||
extern ulong __bss_start;
|
extern ulong __bss_start;
|
||||||
|
|
Loading…
Reference in a new issue