summaryrefslogtreecommitdiff
path: root/arch/arm/cpu/arm946es
diff options
context:
space:
mode:
authorBenoît Thébaudeau <benoit.thebaudeau@advansee.com>2013-04-11 09:35:46 +0000
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2013-04-12 07:55:05 +0200
commit7086e91b0e9930139e703c8f9f857b52baf2bef4 (patch)
treeb28343755d8a8fc463d4e9542811e3f040b6abde /arch/arm/cpu/arm946es
parent4b3db1cd31cbf690b4bf5d704211a7385ff31e03 (diff)
downloadu-boot-imx-7086e91b0e9930139e703c8f9f857b52baf2bef4.zip
u-boot-imx-7086e91b0e9930139e703c8f9f857b52baf2bef4.tar.gz
u-boot-imx-7086e91b0e9930139e703c8f9f857b52baf2bef4.tar.bz2
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/arm946es')
-rw-r--r--arch/arm/cpu/arm946es/start.S6
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/arm/cpu/arm946es/start.S b/arch/arm/cpu/arm946es/start.S
index 90c15f2..2dd1fa3 100644
--- a/arch/arm/cpu/arm946es/start.S
+++ b/arch/arm/cpu/arm946es/start.S
@@ -105,6 +105,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
@@ -170,7 +174,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: