aboutsummaryrefslogtreecommitdiff
path: root/platform/ext/target/mps2/an521/gcc/mps2_an521_bl2.ld
diff options
context:
space:
mode:
Diffstat (limited to 'platform/ext/target/mps2/an521/gcc/mps2_an521_bl2.ld')
-rw-r--r--platform/ext/target/mps2/an521/gcc/mps2_an521_bl2.ld45
1 files changed, 15 insertions, 30 deletions
diff --git a/platform/ext/target/mps2/an521/gcc/mps2_an521_bl2.ld b/platform/ext/target/mps2/an521/gcc/mps2_an521_bl2.ld
index 23136a89cf..16f0d8ce7c 100644
--- a/platform/ext/target/mps2/an521/gcc/mps2_an521_bl2.ld
+++ b/platform/ext/target/mps2/an521/gcc/mps2_an521_bl2.ld
@@ -28,9 +28,8 @@ MEMORY
RAM (rwx) : ORIGIN = BL2_DATA_START, LENGTH = BL2_DATA_SIZE
}
-__heap_size__ = 0x00010000;
-__psp_stack_size__ = 0x00000800;
-__msp_stack_size__ = 0x00000800;
+__heap_size__ = BL2_HEAP_SIZE;
+__msp_stack_size__ = BL2_MSP_STACK_SIZE;
/* Library configurations */
GROUP(libgcc.a libc.a libm.a libnosys.a)
@@ -85,7 +84,7 @@ SECTIONS
/* To copy multiple ROM to RAM sections,
* define etext2/data2_start/data2_end and
- * define __STARTUP_COPY_MULTIPLE in startup_cmsdk_mps2_sse_200.S */
+ * define __STARTUP_COPY_MULTIPLE in startup_cmsdk_mps2_an521_bl2.S */
.copy.table :
{
. = ALIGN(4);
@@ -101,7 +100,7 @@ SECTIONS
/* To clear multiple BSS sections,
* uncomment .zero.table section and,
- * define __STARTUP_CLEAR_BSS_MULTIPLE in startup_ARMCMx.S */
+ * define __STARTUP_CLEAR_BSS_MULTIPLE in startup_cmsdk_mps2_an521_bl2.S */
.zero.table :
{
. = ALIGN(4);
@@ -115,6 +114,13 @@ SECTIONS
__etext = .;
+ .tfm_bl2_shared_data : ALIGN(32)
+ {
+ . += BOOT_TFM_SHARED_DATA_SIZE;
+ } > RAM
+ Image$$SHARED_DATA$$RW$$Base = ADDR(.tfm_bl2_shared_data);
+ Image$$SHARED_DATA$$RW$$Limit = ADDR(.tfm_bl2_shared_data) + SIZEOF(.tfm_bl2_shared_data);
+
.data : AT (__etext)
{
__data_start__ = .;
@@ -161,35 +167,14 @@ SECTIONS
bss_size = __bss_end__ - __bss_start__;
- .heap (COPY):
- {
- __HeapBase = .;
- __end__ = .;
- end = __end__;
- KEEP(*(.heap*))
- __HeapLimit = .;
- } > RAM
-
- .psp_stack :
- {
- . = ALIGN(8);
- KEEP(*(.psp_stack*))
- . += __psp_stack_size__;
- } > RAM
- __initial_sp = ADDR(.psp_stack) + SIZEOF(.psp_stack);
- Stack_Mem = ADDR(.psp_stack);
-
- .msp_stack :
+ .msp_stack : ALIGN(32)
{
- . = ALIGN(8);
- KEEP(*(.psp_stack*))
. += __msp_stack_size__;
} > RAM
- __initial_msp = ADDR(.msp_stack) + SIZEOF(.msp_stack);
+ Image$$ARM_LIB_STACK$$ZI$$Limit = ADDR(.msp_stack) + SIZEOF(.msp_stack);
- .heap :
+ .heap : ALIGN(8)
{
- . = ALIGN(8);
__end__ = .;
PROVIDE(end = .);
__HeapBase = .;
@@ -198,5 +183,5 @@ SECTIONS
__heap_limit = .; /* Add for _sbrk */
} > RAM
- PROVIDE( __stack = __initial_msp);
+ PROVIDE(__stack = Image$$ARM_LIB_STACK$$ZI$$Limit);
}