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>
master
Benoît Thébaudeau 11 years ago committed by Albert ARIBAUD
parent 4b3db1cd31
commit 7086e91b0e
  1. 4
      arch/arm/cpu/arm1136/start.S
  2. 6
      arch/arm/cpu/arm1176/start.S
  3. 6
      arch/arm/cpu/arm720t/start.S
  4. 3
      arch/arm/cpu/arm920t/ep93xx/u-boot.lds
  5. 6
      arch/arm/cpu/arm920t/start.S
  6. 6
      arch/arm/cpu/arm925t/start.S
  7. 6
      arch/arm/cpu/arm926ejs/start.S
  8. 6
      arch/arm/cpu/arm946es/start.S
  9. 6
      arch/arm/cpu/arm_intcm/start.S
  10. 4
      arch/arm/cpu/armv7/start.S
  11. 6
      arch/arm/cpu/ixp/start.S
  12. 2
      arch/arm/cpu/ixp/u-boot.lds
  13. 6
      arch/arm/cpu/pxa/start.S
  14. 6
      arch/arm/cpu/s3c44b0/start.S
  15. 6
      arch/arm/cpu/sa1100/start.S
  16. 3
      board/actux1/u-boot.lds
  17. 3
      board/actux2/u-boot.lds
  18. 3
      board/actux3/u-boot.lds
  19. 1
      board/davinci/da8xxevm/u-boot-spl-hawk.lds
  20. 3
      board/dvlhost/u-boot.lds
  21. 4
      board/samsung/smdk6400/u-boot-nand.lds
  22. 2
      board/vpac270/u-boot-spl.lds
  23. 2
      nand_spl/board/karo/tx25/u-boot.lds
  24. 2
      nand_spl/board/samsung/smdk6400/u-boot.lds

@ -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…
Cancel
Save