[processor-sdk/pdk.git] / packages / ti / boot / sbl / example / k3MulticoreApp / mpu1_0_Smplinker.lds
1 /* File: linker_a53.lds
2 * Semihosting supported gcc Linker script for AM65XX A53 for QT
3 * Purpose: single core A53 C app
4 */
5 __STACK_SIZE = 0x10000;
6 __TI_STACK_SIZE = __STACK_SIZE;
8 MEMORY
9 {
11 DDR_0 (RWX) : ORIGIN = 0x80100000, LENGTH = 0x200000
12 }
14 REGION_ALIAS("REGION_TEXT", DDR_0);
15 REGION_ALIAS("REGION_BSS", DDR_0);
16 REGION_ALIAS("REGION_DATA", DDR_0);
17 REGION_ALIAS("REGION_STACK", DDR_0);
18 REGION_ALIAS("REGION_HEAP", DDR_0);
19 REGION_ALIAS("REGION_ARM_EXIDX", DDR_0);
20 REGION_ALIAS("REGION_ARM_EXTAB", DDR_0);
21 REGION_ALIAS("REGION_TEXT_STARTUP", DDR_0);
22 REGION_ALIAS("REGION_DATA_BUFFER", DDR_0);
24 SECTIONS {
26 .vecs : {
27 *(.vecs)
28 } > DDR_0 AT> DDR_0
30 .text.csl_a53_startup : {
31 *(.text.csl_a53_startup)
32 *(.Entry)
33 } > REGION_TEXT_STARTUP AT> REGION_TEXT_STARTUP
35 .text : {
36 CREATE_OBJECT_SYMBOLS
37 *(.text)
38 *(.text.*)
39 . = ALIGN(0x8);
40 KEEP (*(.ctors))
41 . = ALIGN(0x4);
42 KEEP (*(.dtors))
43 . = ALIGN(0x8);
44 __init_array_start = .;
45 KEEP (*(.init_array*))
46 __init_array_end = .;
47 *(.init)
48 *(.fini*)
49 } > REGION_TEXT AT> REGION_TEXT
51 PROVIDE (__etext = .);
52 PROVIDE (_etext = .);
53 PROVIDE (etext = .);
55 .rodata : {
56 *(.rodata)
57 *(.rodata*)
58 } > REGION_TEXT AT> REGION_TEXT
60 .data_buffer (NOLOAD) : ALIGN (8) {
61 __data_buffer_load__ = LOADADDR (.data_buffer);
62 __data_buffer_start__ = .;
63 *(.data_buffer)
64 *(.data_buffer*)
65 . = ALIGN (8);
66 __data_buffer_end__ = .;
67 } > REGION_DATA_BUFFER AT> REGION_DATA_BUFFER
69 .data : ALIGN (8) {
70 __data_load__ = LOADADDR (.data);
71 __data_start__ = .;
72 *(.data)
73 *(.data*)
74 . = ALIGN (8);
75 __data_end__ = .;
76 } > REGION_DATA AT> REGION_TEXT
78 .ARM.exidx : {
79 __exidx_start = .;
80 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
81 __exidx_end = .;
82 } > REGION_ARM_EXIDX AT> REGION_ARM_EXIDX
84 .ARM.extab : {
85 *(.ARM.extab* .gnu.linkonce.armextab.*)
86 } > REGION_ARM_EXTAB AT> REGION_ARM_EXTAB
88 .bss:extMemCache:ramdisk : {
89 } > DDR_0
91 .bss:frameBuffer (NOLOAD) : ALIGN (32) {
92 } > DDR_0
94 .bss : {
95 __bss_start__ = .;
96 *(.shbss)
97 *(.bss)
98 *(.bss.*)
99 . = ALIGN (8);
100 __bss_end__ = .;
101 . = ALIGN (8);
102 *(COMMON)
103 } > REGION_BSS AT> REGION_BSS
105 .heap : {
106 __heap_start__ = .;
107 end = __heap_start__;
108 _end = end;
109 __end = end;
110 KEEP(*(.heap))
111 __heap_end__ = .;
112 __HeapLimit = __heap_end__;
113 } > REGION_HEAP AT> REGION_HEAP
115 .stack (NOLOAD) : ALIGN(16) {
116 _stack = .;
117 __stack = .;
118 KEEP(*(.stack))
119 } > REGION_STACK AT> REGION_STACK
121 __TI_STACK_BASE = __stack;
123 /* Stabs debugging sections. */
124 .stab 0 : { *(.stab) }
125 .stabstr 0 : { *(.stabstr) }
126 .stab.excl 0 : { *(.stab.excl) }
127 .stab.exclstr 0 : { *(.stab.exclstr) }
128 .stab.index 0 : { *(.stab.index) }
129 .stab.indexstr 0 : { *(.stab.indexstr) }
130 .comment 0 : { *(.comment) }
131 /*
132 * DWARF debug sections.
133 * Symbols in the DWARF debugging sections are relative to the beginning
134 * of the section so we begin them at 0.
135 */
136 /* DWARF 1 */
137 .debug 0 : { *(.debug) }
138 .line 0 : { *(.line) }
139 /* GNU DWARF 1 extensions */
140 .debug_srcinfo 0 : { *(.debug_srcinfo) }
141 .debug_sfnames 0 : { *(.debug_sfnames) }
142 /* DWARF 1.1 and DWARF 2 */
143 .debug_aranges 0 : { *(.debug_aranges) }
144 .debug_pubnames 0 : { *(.debug_pubnames) }
145 /* DWARF 2 */
146 .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
147 .debug_abbrev 0 : { *(.debug_abbrev) }
148 .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end ) }
149 .debug_frame 0 : { *(.debug_frame) }
150 .debug_str 0 : { *(.debug_str) }
151 .debug_loc 0 : { *(.debug_loc) }
152 .debug_macinfo 0 : { *(.debug_macinfo) }
153 /* SGI/MIPS DWARF 2 extensions */
154 .debug_weaknames 0 : { *(.debug_weaknames) }
155 .debug_funcnames 0 : { *(.debug_funcnames) }
156 .debug_typenames 0 : { *(.debug_typenames) }
157 .debug_varnames 0 : { *(.debug_varnames) }
158 /* DWARF 3 */
159 .debug_pubtypes 0 : { *(.debug_pubtypes) }
160 .debug_ranges 0 : { *(.debug_ranges) }
161 /* DWARF Extension. */
162 .debug_macro 0 : { *(.debug_macro) }
163 .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
164 /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
165 }