trezor-core/embed/boardloader/memory.ld

55 lines
1.4 KiB
Plaintext
Raw Normal View History

2017-09-10 12:23:47 -07:00
/* TREZORv2 boardloader linker script */
2017-02-06 06:38:45 -08:00
2017-09-10 12:23:47 -07:00
ENTRY(reset_handler)
MEMORY {
FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 48K
2017-09-10 12:23:47 -07:00
CCMRAM (wal) : ORIGIN = 0x10000000, LENGTH = 64K
2017-10-11 14:36:07 -07:00
SRAM (wal) : ORIGIN = 0x20000000, LENGTH = 192K
2017-02-06 06:38:45 -08:00
}
2017-09-10 12:23:47 -07:00
main_stack_base = ORIGIN(CCMRAM) + LENGTH(CCMRAM); /* 8-byte aligned full descending stack */
2017-02-06 06:38:45 -08:00
2017-09-10 12:23:47 -07:00
/* used by the startup code to populate variables used by the C code */
data_lma = LOADADDR(.data);
data_vma = ADDR(.data);
data_size = SIZEOF(.data);
2017-02-06 06:38:45 -08:00
2017-09-10 12:23:47 -07:00
/* used by the startup code to wipe memory */
ccmram_start = ORIGIN(CCMRAM);
ccmram_end = ORIGIN(CCMRAM) + LENGTH(CCMRAM);
2017-02-06 06:38:45 -08:00
2017-09-10 12:23:47 -07:00
/* used by the startup code to wipe memory */
sram_start = ORIGIN(SRAM);
sram_end = ORIGIN(SRAM) + LENGTH(SRAM);
2017-02-06 06:38:45 -08:00
2017-09-10 12:23:47 -07:00
SECTIONS {
.vector_table : ALIGN(512) {
KEEP(*(.vector_table));
2017-09-10 12:23:47 -07:00
} >FLASH AT>FLASH
2017-02-06 06:38:45 -08:00
.text : ALIGN(4) {
*(.text*);
. = ALIGN(4); /* make the section size a multiple of the word size */
2017-09-10 12:23:47 -07:00
} >FLASH AT>FLASH
2017-02-06 06:38:45 -08:00
2017-09-10 12:23:47 -07:00
.rodata : ALIGN(4) {
*(.rodata*);
. = ALIGN(4); /* make the section size a multiple of the word size */
2017-09-10 12:23:47 -07:00
} >FLASH AT>FLASH
2017-02-06 06:38:45 -08:00
2017-09-10 12:23:47 -07:00
.data : ALIGN(4) {
*(.data*);
. = ALIGN(4); /* make the section size a multiple of the word size */
2017-09-10 12:23:47 -07:00
} >CCMRAM AT>FLASH
2017-02-06 06:38:45 -08:00
2017-09-10 12:23:47 -07:00
.bss : ALIGN(4) {
*(.bss*);
. = ALIGN(4); /* make the section size a multiple of the word size */
2017-09-10 12:23:47 -07:00
} >CCMRAM
2017-02-06 06:38:45 -08:00
.stack : ALIGN(8) {
. = 4K; /* this acts as a build time assertion that at least this much memory is available for stack use */
2017-09-10 12:23:47 -07:00
} >CCMRAM
}