Signed-off-by: Albert ARIBAUD <albert.u.b...@aribaud.net> --- arch/arm/cpu/arm1136/start.S | 7 +++---- arch/arm/cpu/arm1136/u-boot-spl.lds | 3 ++- arch/arm/cpu/arm720t/start.S | 11 +++++++---- arch/arm/cpu/arm920t/ep93xx/u-boot.lds | 6 +++++- arch/arm/cpu/arm926ejs/start.S | 7 +++---- arch/arm/cpu/armv7/am33xx/u-boot-spl.lds | 2 -- arch/arm/cpu/armv7/omap-common/u-boot-spl.lds | 2 -- arch/arm/cpu/armv7/socfpga/u-boot-spl.lds | 1 - arch/arm/cpu/armv7/start.S | 6 ++---- arch/arm/cpu/ixp/u-boot.lds | 6 +++++- arch/arm/cpu/u-boot-spl.lds | 3 +-- arch/arm/cpu/u-boot.lds | 7 +++++-- arch/arm/lib/sections.c | 4 +++- 13 files changed, 36 insertions(+), 29 deletions(-)
diff --git a/arch/arm/cpu/arm1136/start.S b/arch/arm/cpu/arm1136/start.S index ccea2d5..ab8fd56 100644 --- a/arch/arm/cpu/arm1136/start.S +++ b/arch/arm/cpu/arm1136/start.S @@ -104,10 +104,6 @@ _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 @@ -239,6 +235,9 @@ relocate_done: bx lr +_image_copy_end_ofs: + .word __image_copy_end - _start + #ifndef CONFIG_SPL_BUILD _rel_dyn_start_ofs: diff --git a/arch/arm/cpu/arm1136/u-boot-spl.lds b/arch/arm/cpu/arm1136/u-boot-spl.lds index 8296e5d..04fc881 100644 --- a/arch/arm/cpu/arm1136/u-boot-spl.lds +++ b/arch/arm/cpu/arm1136/u-boot-spl.lds @@ -37,7 +37,6 @@ SECTIONS { .text : { - __start = .; arch/arm/cpu/arm1136/start.o (.text*) *(.text*) } >.sram @@ -48,7 +47,9 @@ SECTIONS . = ALIGN(4); .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram . = ALIGN(4); + __image_copy_end = .; + _end = .; .bss : diff --git a/arch/arm/cpu/arm720t/start.S b/arch/arm/cpu/arm720t/start.S index 9facc7e..b85509c 100644 --- a/arch/arm/cpu/arm720t/start.S +++ b/arch/arm/cpu/arm720t/start.S @@ -101,10 +101,6 @@ _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 @@ -221,6 +217,11 @@ relocate_done: mov pc, lr +_image_copy_end_ofs: + .word __image_copy_end - _start + +#ifndef CONFIG_SPL_BUILD + _rel_dyn_start_ofs: .word __rel_dyn_start - _start _rel_dyn_end_ofs: @@ -228,6 +229,8 @@ _rel_dyn_end_ofs: _dynsym_start_ofs: .word __dynsym_start - _start +#endif + .globl c_runtime_cpu_setup c_runtime_cpu_setup: diff --git a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds index cf55bf7..2b32c0a 100644 --- a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds +++ b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds @@ -31,6 +31,7 @@ SECTIONS . = ALIGN(4); .text : { + *(.__image_copy_start) arch/arm/cpu/arm920t/start.o (.text*) /* the EP93xx expects to find the pattern 'CRUS' at 0x1000 */ . = 0x1000; @@ -56,7 +57,10 @@ SECTIONS . = ALIGN(4); - __image_copy_end = .; + .image_copy_end : + { + *(.__image_copy_end); + } __bss_start = .; .bss : { *(.bss*) } diff --git a/arch/arm/cpu/arm926ejs/start.S b/arch/arm/cpu/arm926ejs/start.S index 4c56711..736361a 100644 --- a/arch/arm/cpu/arm926ejs/start.S +++ b/arch/arm/cpu/arm926ejs/start.S @@ -136,10 +136,6 @@ _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 @@ -256,6 +252,9 @@ relocate_done: bx lr +_image_copy_end_ofs: + .word __image_copy_end - _start + #ifndef CONFIG_SPL_BUILD _rel_dyn_start_ofs: diff --git a/arch/arm/cpu/armv7/am33xx/u-boot-spl.lds b/arch/arm/cpu/armv7/am33xx/u-boot-spl.lds index b6a929f..29cefd0 100644 --- a/arch/arm/cpu/armv7/am33xx/u-boot-spl.lds +++ b/arch/arm/cpu/armv7/am33xx/u-boot-spl.lds @@ -37,7 +37,6 @@ SECTIONS { .text : { - __start = .; arch/arm/cpu/armv7/start.o (.text) *(.text*) } >.sram @@ -53,7 +52,6 @@ SECTIONS } >.sram . = ALIGN(4); - __image_copy_end = .; _end = .; .bss : diff --git a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds index bd218c0..81cafe1 100644 --- a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds +++ b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds @@ -37,7 +37,6 @@ SECTIONS { .text : { - __start = .; arch/arm/cpu/armv7/start.o (.text*) *(.text*) } >.sram @@ -49,7 +48,6 @@ SECTIONS .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram . = ALIGN(4); - __image_copy_end = .; _end = .; .bss : diff --git a/arch/arm/cpu/armv7/socfpga/u-boot-spl.lds b/arch/arm/cpu/armv7/socfpga/u-boot-spl.lds index 15f8c01..c0dcfd7 100644 --- a/arch/arm/cpu/armv7/socfpga/u-boot-spl.lds +++ b/arch/arm/cpu/armv7/socfpga/u-boot-spl.lds @@ -38,7 +38,6 @@ SECTIONS .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sdram . = ALIGN(4); - __image_copy_end = .; _end = .; .bss : { diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S index e9e57e6..3ade510 100644 --- a/arch/arm/cpu/armv7/start.S +++ b/arch/arm/cpu/armv7/start.S @@ -94,10 +94,6 @@ _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 @@ -231,6 +227,8 @@ relocate_done: bx lr +_image_copy_end_ofs: + .word __image_copy_end - _start _rel_dyn_start_ofs: .word __rel_dyn_start - _start _rel_dyn_end_ofs: diff --git a/arch/arm/cpu/ixp/u-boot.lds b/arch/arm/cpu/ixp/u-boot.lds index 553589c..1a0ba17 100644 --- a/arch/arm/cpu/ixp/u-boot.lds +++ b/arch/arm/cpu/ixp/u-boot.lds @@ -31,6 +31,7 @@ SECTIONS . = ALIGN(4); .text : { + *(.__image_copy_start) arch/arm/cpu/ixp/start.o(.text*) *(.text*) } @@ -54,7 +55,10 @@ SECTIONS . = ALIGN(4); - __image_copy_end = .; + .image_copy_end : + { + *(.__image_copy_end); + } .rel.dyn : { __rel_dyn_start = .; diff --git a/arch/arm/cpu/u-boot-spl.lds b/arch/arm/cpu/u-boot-spl.lds index 1408f03..87341c1 100644 --- a/arch/arm/cpu/u-boot-spl.lds +++ b/arch/arm/cpu/u-boot-spl.lds @@ -33,7 +33,6 @@ SECTIONS . = ALIGN(4); .text : { - __image_copy_start = .; CPUDIR/start.o (.text*) *(.text*) } @@ -80,7 +79,7 @@ SECTIONS } #if defined(CONFIG_SPL_MAX_SIZE) -ASSERT(__image_copy_end - __image_copy_start < (CONFIG_SPL_MAX_SIZE), \ +ASSERT(__image_copy_end - _start < (CONFIG_SPL_MAX_SIZE), \ "SPL image too big"); #endif diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds index d9bbee3..5b43621 100644 --- a/arch/arm/cpu/u-boot.lds +++ b/arch/arm/cpu/u-boot.lds @@ -33,7 +33,7 @@ SECTIONS . = ALIGN(4); .text : { - __image_copy_start = .; + *(.__image_copy_start) CPUDIR/start.o (.text*) *(.text*) } @@ -57,7 +57,10 @@ SECTIONS . = ALIGN(4); - __image_copy_end = .; + .image_copy_end : + { + *(.__image_copy_end); + } .rel.dyn : { __rel_dyn_start = .; diff --git a/arch/arm/lib/sections.c b/arch/arm/lib/sections.c index 99eda59..80a0c38 100644 --- a/arch/arm/lib/sections.c +++ b/arch/arm/lib/sections.c @@ -21,7 +21,7 @@ */ /** - * These two symbols are declared in a C file so that the linker + * The following symbols are declared in a C file so that the linker * uses R_ARM_RELATIVE relocation, rather than the R_ARM_ABS32 one * it would use if the symbols were defined in the linker file. * Using only R_ARM_RELATIVE relocation ensures that references to @@ -37,3 +37,5 @@ char __bss_start[0] __attribute__((used, section(".__bss_start"))); char __bss_end[0] __attribute__((used, section(".__bss_end"))); +char __image_copy_start[0] __attribute__((used, section(".__image_copy_start"))); +char __image_copy_end[0] __attribute__((used, section(".__image_copy_end"))); -- 1.7.10.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot