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>
This commit is contained in:
parent
4b3db1cd31
commit
7086e91b0e
arch/arm/cpu
arm1136
arm1176
arm720t
arm920t
arm925t
arm926ejs
arm946es
arm_intcm
armv7
ixp
pxa
s3c44b0
sa1100
board
actux1
actux2
actux3
davinci/da8xxevm
dvlhost
samsung/smdk6400
vpac270
nand_spl/board
@ -104,9 +104,9 @@ _TEXT_BASE:
|
||||
_bss_start_ofs:
|
||||
.word __bss_start - _start
|
||||
|
||||
.global _image_copy_end_ofs
|
||||
.globl _image_copy_end_ofs
|
||||
_image_copy_end_ofs:
|
||||
.word __image_copy_end - _start
|
||||
.word __image_copy_end - _start
|
||||
|
||||
.globl _bss_end_ofs
|
||||
_bss_end_ofs:
|
||||
|
@ -127,6 +127,10 @@ _TEXT_PHY_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
|
||||
@ -251,7 +255,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:
|
||||
|
@ -101,6 +101,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
|
||||
@ -166,7 +170,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:
|
||||
|
@ -55,6 +55,9 @@ SECTIONS
|
||||
}
|
||||
|
||||
. = ALIGN(4);
|
||||
|
||||
__image_copy_end = .;
|
||||
|
||||
__bss_start = .;
|
||||
.bss : { *(.bss) }
|
||||
__bss_end = .;
|
||||
|
@ -89,6 +89,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
|
||||
@ -205,7 +209,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:
|
||||
|
@ -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:
|
||||
|
@ -140,6 +140,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
|
||||
@ -212,7 +216,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:
|
||||
|
@ -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:
|
||||
|
@ -101,6 +101,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
|
||||
@ -166,7 +170,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:
|
||||
|
@ -94,9 +94,9 @@ _TEXT_BASE:
|
||||
_bss_start_ofs:
|
||||
.word __bss_start - _start
|
||||
|
||||
.global _image_copy_end_ofs
|
||||
.globl _image_copy_end_ofs
|
||||
_image_copy_end_ofs:
|
||||
.word __image_copy_end - _start
|
||||
.word __image_copy_end - _start
|
||||
|
||||
.globl _bss_end_ofs
|
||||
_bss_end_ofs:
|
||||
|
@ -114,6 +114,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
|
||||
@ -268,7 +272,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:
|
||||
|
@ -54,6 +54,8 @@ SECTIONS
|
||||
|
||||
. = ALIGN(4);
|
||||
|
||||
__image_copy_end = .;
|
||||
|
||||
.rel.dyn : {
|
||||
__rel_dyn_start = .;
|
||||
*(.rel*)
|
||||
|
@ -118,6 +118,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
|
||||
@ -190,7 +194,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:
|
||||
|
@ -80,6 +80,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
|
||||
@ -151,7 +155,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:
|
||||
|
@ -90,6 +90,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
|
||||
@ -155,7 +159,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:
|
||||
|
@ -61,6 +61,9 @@ SECTIONS
|
||||
}
|
||||
|
||||
. = ALIGN (4);
|
||||
|
||||
__image_copy_end = .;
|
||||
|
||||
.rel.dyn : {
|
||||
__rel_dyn_start = .;
|
||||
*(.rel*)
|
||||
|
@ -61,6 +61,9 @@ SECTIONS
|
||||
}
|
||||
|
||||
. = ALIGN (4);
|
||||
|
||||
__image_copy_end = .;
|
||||
|
||||
.rel.dyn : {
|
||||
__rel_dyn_start = .;
|
||||
*(.rel*)
|
||||
|
@ -61,6 +61,9 @@ SECTIONS
|
||||
}
|
||||
|
||||
. = ALIGN (4);
|
||||
|
||||
__image_copy_end = .;
|
||||
|
||||
.rel.dyn : {
|
||||
__rel_dyn_start = .;
|
||||
*(.rel*)
|
||||
|
@ -58,6 +58,7 @@ SECTIONS
|
||||
}
|
||||
|
||||
. = ALIGN(4);
|
||||
__image_copy_end = .;
|
||||
__rel_dyn_start = .;
|
||||
__rel_dyn_end = .;
|
||||
__dynsym_start = .;
|
||||
|
@ -61,6 +61,9 @@ SECTIONS
|
||||
}
|
||||
|
||||
. = ALIGN (4);
|
||||
|
||||
__image_copy_end = .;
|
||||
|
||||
.rel.dyn : {
|
||||
__rel_dyn_start = .;
|
||||
*(.rel*)
|
||||
|
@ -53,6 +53,10 @@ SECTIONS
|
||||
KEEP(*(SORT(.u_boot_list*)));
|
||||
}
|
||||
|
||||
. = ALIGN(4);
|
||||
|
||||
__image_copy_end = .;
|
||||
|
||||
. = align(4);
|
||||
.mmudata : { *(.mmudata) }
|
||||
|
||||
|
@ -59,6 +59,8 @@ SECTIONS
|
||||
|
||||
. = ALIGN(4);
|
||||
|
||||
__image_copy_end = .;
|
||||
|
||||
.rel.dyn : {
|
||||
__rel_dyn_start = .;
|
||||
*(.rel*)
|
||||
|
@ -54,6 +54,8 @@ SECTIONS
|
||||
|
||||
. = ALIGN(4);
|
||||
|
||||
__image_copy_end = .;
|
||||
|
||||
.rel.dyn : {
|
||||
__rel_dyn_start = .;
|
||||
*(.rel*)
|
||||
|
@ -58,6 +58,8 @@ SECTIONS
|
||||
|
||||
. = ALIGN(4);
|
||||
|
||||
__image_copy_end = .;
|
||||
|
||||
.rel.dyn : {
|
||||
__rel_dyn_start = .;
|
||||
*(.rel*)
|
||||
|
Loading…
Reference in New Issue
Block a user