summaryrefslogtreecommitdiff
path: root/bl2
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.masahiro@socionext.com>2020-04-22 10:50:12 +0900
committerMasahiro Yamada <yamada.masahiro@socionext.com>2020-04-25 20:09:08 +0900
commitcaa3e7e0a4aeb657873bbd2c002c0e33a614eb1d (patch)
treeeefef8ca9add77dbd7524741d632b367d1d0f99f /bl2
parenta926a9f60aa94a034b0a06eed296996363245d30 (diff)
downloadarm-trusted-firmware-caa3e7e0a4aeb657873bbd2c002c0e33a614eb1d.tar.gz
linker_script: move .data section to bl_common.ld.h
Move the data section to the common header. I slightly tweaked some scripts as follows: [1] bl1.ld.S has ALIGN(16). I added DATA_ALIGN macro, which is 1 by default, but overridden by bl1.ld.S. Currently, ALIGN(16) of the .data section is redundant because commit 412865907699 ("Fix boot failures on some builds linked with ld.lld.") padded out the previous section to work around the issue of LLD version <= 10.0. This will be fixed in the future release of LLVM, so I am keeping the proper way to align LMA. [2] bl1.ld.S and bl2_el3.ld.S define __DATA_RAM_{START,END}__ instead of __DATA_{START,END}__. I put them out of the .data section. [3] SORT_BY_ALIGNMENT() is missing tsp.ld.S, sp_min.ld.S, and mediatek/mt6795/bl31.ld.S. This commit adds SORT_BY_ALIGNMENT() for all images, so the symbol order in those three will change, but I do not think it is a big deal. Change-Id: I215bb23c319f045cd88e6f4e8ee2518c67f03692 Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Diffstat (limited to 'bl2')
-rw-r--r--bl2/bl2.ld.S12
-rw-r--r--bl2/bl2_el3.ld.S13
2 files changed, 4 insertions, 21 deletions
diff --git a/bl2/bl2.ld.S b/bl2/bl2.ld.S
index 17475f061..37849c312 100644
--- a/bl2/bl2.ld.S
+++ b/bl2/bl2.ld.S
@@ -77,17 +77,7 @@ SECTIONS
*/
__RW_START__ = . ;
- /*
- * .data must be placed at a lower address than the stacks if the stack
- * protector is enabled. Alternatively, the .data.stack_protector_canary
- * section can be placed independently of the main .data section.
- */
- .data . : {
- __DATA_START__ = .;
- *(SORT_BY_ALIGNMENT(.data*))
- __DATA_END__ = .;
- } >RAM
-
+ DATA_SECTION >RAM
STACK_SECTION >RAM
BSS_SECTION >RAM
XLAT_TABLE_SECTION >RAM
diff --git a/bl2/bl2_el3.ld.S b/bl2/bl2_el3.ld.S
index ea7a23500..8c45d9898 100644
--- a/bl2/bl2_el3.ld.S
+++ b/bl2/bl2_el3.ld.S
@@ -101,16 +101,9 @@ SECTIONS
*/
__RW_START__ = . ;
- /*
- * .data must be placed at a lower address than the stacks if the stack
- * protector is enabled. Alternatively, the .data.stack_protector_canary
- * section can be placed independently of the main .data section.
- */
- .data . : {
- __DATA_RAM_START__ = .;
- *(SORT_BY_ALIGNMENT(.data*))
- __DATA_RAM_END__ = .;
- } >RAM AT>ROM
+ DATA_SECTION >RAM AT>ROM
+ __DATA_RAM_START__ = __DATA_START__;
+ __DATA_RAM_END__ = __DATA_END__;
/*
* .rela.dyn needs to come after .data for the read-elf utility to parse