Merge changes from topic "linker-script" into integration
* changes: linker_script: move .data section to bl_common.ld.h linker_script: move stacks section to bl_common.ld.h bl1: remove '.' from stacks section in linker script
This commit is contained in:
commit
455a6f3b14
33
bl1/bl1.ld.S
33
bl1/bl1.ld.S
|
@ -4,6 +4,14 @@
|
|||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
/*
|
||||
* The .data section gets copied from ROM to RAM at runtime.
|
||||
* Its LMA should be 16-byte aligned to allow efficient copying of 16-bytes
|
||||
* aligned regions in it.
|
||||
* Its VMA must be page-aligned as it marks the first read/write page.
|
||||
*/
|
||||
#define DATA_ALIGN 16
|
||||
|
||||
#include <common/bl_common.ld.h>
|
||||
#include <lib/xlat_tables/xlat_tables_defs.h>
|
||||
|
||||
|
@ -87,28 +95,11 @@ SECTIONS
|
|||
ASSERT(BL1_RW_BASE == ALIGN(PAGE_SIZE),
|
||||
"BL1_RW_BASE address is not aligned on a page boundary.")
|
||||
|
||||
/*
|
||||
* The .data section gets copied from ROM to RAM at runtime.
|
||||
* Its LMA should be 16-byte aligned to allow efficient copying of 16-bytes
|
||||
* aligned regions in it.
|
||||
* Its VMA must be page-aligned as it marks the first read/write page.
|
||||
*
|
||||
* It 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 . : ALIGN(16) {
|
||||
__DATA_RAM_START__ = .;
|
||||
*(SORT_BY_ALIGNMENT(.data*))
|
||||
__DATA_RAM_END__ = .;
|
||||
} >RAM AT>ROM
|
||||
|
||||
stacks . (NOLOAD) : {
|
||||
__STACKS_START__ = .;
|
||||
*(tzfw_normal_stacks)
|
||||
__STACKS_END__ = .;
|
||||
} >RAM
|
||||
DATA_SECTION >RAM AT>ROM
|
||||
__DATA_RAM_START__ = __DATA_START__;
|
||||
__DATA_RAM_END__ = __DATA_END__;
|
||||
|
||||
STACK_SECTION >RAM
|
||||
BSS_SECTION >RAM
|
||||
XLAT_TABLE_SECTION >RAM
|
||||
|
||||
|
|
19
bl2/bl2.ld.S
19
bl2/bl2.ld.S
|
@ -77,23 +77,8 @@ 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
|
||||
|
||||
stacks (NOLOAD) : {
|
||||
__STACKS_START__ = .;
|
||||
*(tzfw_normal_stacks)
|
||||
__STACKS_END__ = .;
|
||||
} >RAM
|
||||
|
||||
DATA_SECTION >RAM
|
||||
STACK_SECTION >RAM
|
||||
BSS_SECTION >RAM
|
||||
XLAT_TABLE_SECTION >RAM
|
||||
|
||||
|
|
|
@ -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
|
||||
|
@ -123,12 +116,7 @@ SECTIONS
|
|||
} >RAM
|
||||
__RELA_END__ = .;
|
||||
|
||||
stacks (NOLOAD) : {
|
||||
__STACKS_START__ = .;
|
||||
*(tzfw_normal_stacks)
|
||||
__STACKS_END__ = .;
|
||||
} >RAM
|
||||
|
||||
STACK_SECTION >RAM
|
||||
BSS_SECTION >RAM
|
||||
XLAT_TABLE_SECTION >RAM
|
||||
|
||||
|
|
|
@ -79,23 +79,8 @@ 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
|
||||
|
||||
stacks (NOLOAD) : {
|
||||
__STACKS_START__ = .;
|
||||
*(tzfw_normal_stacks)
|
||||
__STACKS_END__ = .;
|
||||
} >RAM
|
||||
|
||||
DATA_SECTION >RAM
|
||||
STACK_SECTION >RAM
|
||||
BSS_SECTION >RAM
|
||||
XLAT_TABLE_SECTION >RAM
|
||||
|
||||
|
|
|
@ -114,16 +114,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
|
||||
|
||||
/*
|
||||
* .rela.dyn needs to come after .data for the read-elf utility to parse
|
||||
|
@ -158,12 +149,7 @@ SECTIONS
|
|||
__NOBITS_START__ = .;
|
||||
#endif
|
||||
|
||||
stacks (NOLOAD) : {
|
||||
__STACKS_START__ = .;
|
||||
*(tzfw_normal_stacks)
|
||||
__STACKS_END__ = .;
|
||||
} >NOBITS
|
||||
|
||||
STACK_SECTION >NOBITS
|
||||
BSS_SECTION >NOBITS
|
||||
XLAT_TABLE_SECTION >NOBITS
|
||||
|
||||
|
|
|
@ -91,22 +91,13 @@ SECTIONS
|
|||
*/
|
||||
__RW_START__ = . ;
|
||||
|
||||
.data . : {
|
||||
__DATA_START__ = .;
|
||||
*(.data*)
|
||||
__DATA_END__ = .;
|
||||
} >RAM
|
||||
DATA_SECTION >RAM
|
||||
|
||||
#ifdef BL32_PROGBITS_LIMIT
|
||||
ASSERT(. <= BL32_PROGBITS_LIMIT, "BL32 progbits has exceeded its limit.")
|
||||
#endif
|
||||
|
||||
stacks (NOLOAD) : {
|
||||
__STACKS_START__ = .;
|
||||
*(tzfw_normal_stacks)
|
||||
__STACKS_END__ = .;
|
||||
} >RAM
|
||||
|
||||
STACK_SECTION >RAM
|
||||
BSS_SECTION >RAM
|
||||
XLAT_TABLE_SECTION >RAM
|
||||
|
||||
|
|
|
@ -70,11 +70,7 @@ SECTIONS
|
|||
*/
|
||||
__RW_START__ = . ;
|
||||
|
||||
.data . : {
|
||||
__DATA_START__ = .;
|
||||
*(.data*)
|
||||
__DATA_END__ = .;
|
||||
} >RAM
|
||||
DATA_SECTION >RAM
|
||||
|
||||
/*
|
||||
* .rela.dyn needs to come after .data for the read-elf utility to parse
|
||||
|
@ -91,12 +87,7 @@ SECTIONS
|
|||
ASSERT(. <= TSP_PROGBITS_LIMIT, "TSP progbits has exceeded its limit.")
|
||||
#endif
|
||||
|
||||
stacks (NOLOAD) : {
|
||||
__STACKS_START__ = .;
|
||||
*(tzfw_normal_stacks)
|
||||
__STACKS_END__ = .;
|
||||
} >RAM
|
||||
|
||||
STACK_SECTION >RAM
|
||||
BSS_SECTION >RAM
|
||||
XLAT_TABLE_SECTION >RAM
|
||||
|
||||
|
|
|
@ -17,6 +17,10 @@
|
|||
#define BSS_ALIGN 8
|
||||
#endif
|
||||
|
||||
#ifndef DATA_ALIGN
|
||||
#define DATA_ALIGN 1
|
||||
#endif
|
||||
|
||||
#define CPU_OPS \
|
||||
. = ALIGN(STRUCT_ALIGN); \
|
||||
__CPU_OPS_START__ = .; \
|
||||
|
@ -85,6 +89,18 @@
|
|||
GOT \
|
||||
BASE_XLAT_TABLE_RO
|
||||
|
||||
/*
|
||||
* .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.
|
||||
*/
|
||||
#define DATA_SECTION \
|
||||
.data . : ALIGN(DATA_ALIGN) { \
|
||||
__DATA_START__ = .; \
|
||||
*(SORT_BY_ALIGNMENT(.data*)) \
|
||||
__DATA_END__ = .; \
|
||||
}
|
||||
|
||||
#define STACK_SECTION \
|
||||
stacks (NOLOAD) : { \
|
||||
__STACKS_START__ = .; \
|
||||
|
|
|
@ -59,27 +59,13 @@ 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__ = .;
|
||||
*(.data*)
|
||||
__DATA_END__ = .;
|
||||
} >RAM
|
||||
DATA_SECTION >RAM
|
||||
|
||||
#ifdef BL31_PROGBITS_LIMIT
|
||||
ASSERT(. <= BL31_PROGBITS_LIMIT, "BL3-1 progbits has exceeded its limit.")
|
||||
#endif
|
||||
|
||||
stacks (NOLOAD) : {
|
||||
__STACKS_START__ = .;
|
||||
*(tzfw_normal_stacks)
|
||||
__STACKS_END__ = .;
|
||||
} >RAM
|
||||
|
||||
STACK_SECTION >RAM
|
||||
BSS_SECTION >RAM
|
||||
__RW_END__ = __BSS_END__;
|
||||
|
||||
|
|
Loading…
Reference in New Issue