diff options
author | Benoît Thébaudeau <benoit.thebaudeau@advansee.com> | 2013-04-11 09:35:46 +0000 |
---|---|---|
committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2013-04-12 07:55:05 +0200 |
commit | 7086e91b0e9930139e703c8f9f857b52baf2bef4 (patch) | |
tree | b28343755d8a8fc463d4e9542811e3f040b6abde /arch/arm/cpu/arm925t | |
parent | 4b3db1cd31cbf690b4bf5d704211a7385ff31e03 (diff) |
arm: relocate_code(): Use __image_copy_end for end of relocation
Use __image_copy_end instead of __bss_start for the end of the image to
relocate. This is the same as commit 033ca72, but applied to all ARM start.S.
This is a more appropriate symbol naming for an image copy & relocate feature,
and this also saves a useless copy of data put between __image_copy_end and
__bss_start in linker scripts (e.g. relocation information, or MMU
initialization tables used only before jumping to the relocated image).
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Diffstat (limited to 'arch/arm/cpu/arm925t')
-rw-r--r-- | arch/arm/cpu/arm925t/start.S | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/arm/cpu/arm925t/start.S b/arch/arm/cpu/arm925t/start.S index 9358f3e45f9..ed683b44d54 100644 --- a/arch/arm/cpu/arm925t/start.S +++ b/arch/arm/cpu/arm925t/start.S @@ -95,6 +95,10 @@ _TEXT_BASE: _bss_start_ofs: .word __bss_start - _start +.globl _image_copy_end_ofs +_image_copy_end_ofs: + .word __image_copy_end - _start + .globl _bss_end_ofs _bss_end_ofs: .word __bss_end - _start @@ -195,7 +199,7 @@ relocate_code: subs r9, r6, r0 /* r9 <- relocation offset */ beq relocate_done /* skip relocation */ mov r1, r6 /* r1 <- scratch for copy_loop */ - ldr r3, _bss_start_ofs + ldr r3, _image_copy_end_ofs add r2, r0, r3 /* r2 <- source end address */ copy_loop: |