605e0f8074038f44da92f0e8e2c60ecddd5828d6
1 /*******************************************************************/
2 /* */
3 /* This file is automatically generated by linker script generator.*/
4 /* */
5 /* Version: */
6 /* */
7 /* Copyright (c) 2010 Xilinx, Inc. All rights reserved. */
8 /* */
9 /* Description : Cortex-R5 Linker Script */
10 /* */
11 /*******************************************************************/
13 _STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x2000;
14 _HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x4000;
16 _ABORT_STACK_SIZE = DEFINED(_ABORT_STACK_SIZE) ? _ABORT_STACK_SIZE : 1024;
17 _SUPERVISOR_STACK_SIZE = DEFINED(_SUPERVISOR_STACK_SIZE) ? _SUPERVISOR_STACK_SIZE : 2048;
18 _IRQ_STACK_SIZE = DEFINED(_IRQ_STACK_SIZE) ? _IRQ_STACK_SIZE : 1024;
19 _FIQ_STACK_SIZE = DEFINED(_FIQ_STACK_SIZE) ? _FIQ_STACK_SIZE : 1024;
20 _UNDEF_STACK_SIZE = DEFINED(_UNDEF_STACK_SIZE) ? _UNDEF_STACK_SIZE : 1024;
22 /* Define Memories in the system */
24 MEMORY
25 {
26 ps8_r5_tcm_ram_0_S_AXI_BASEADDR : ORIGIN = 0x00000000, LENGTH = 0x00010000
27 ps8_r5_tcm_ram_1_S_AXI_BASEADDR : ORIGIN = 0x00020000, LENGTH = 0x00020000
28 }
30 /* Specify the default entry point to the program */
32 /* ENTRY(_boot) */
34 ENTRY(_vector_table)
36 /* Define the sections, and where they are mapped in memory */
38 SECTIONS
39 {
41 .vectors : {
42 KEEP (*(.vectors))
43 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
46 _binary_firmware1_start = 0;
47 _binary_firmware1_end = 0;
48 _binary_firmware2_start = 0;
49 _binary_firmware2_end = 0;
51 .text : {
52 /* *(.vectors) */
53 *(.boot)
54 *(.text)
55 *(.text.*)
56 *(.gnu.linkonce.t.*)
57 *(.plt)
58 *(.gnu_warning)
59 *(.gcc_execpt_table)
60 *(.glue_7)
61 *(.glue_7t)
62 *(.vfp11_veneer)
63 *(.ARM.extab)
64 *(.gnu.linkonce.armextab.*)
65 } > ps8_r5_tcm_ram_1_S_AXI_BASEADDR
67 .init : {
68 KEEP (*(.init))
69 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
71 .fini : {
72 KEEP (*(.fini))
73 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
75 .interp : {
76 KEEP (*(.interp))
77 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
79 .note-ABI-tag : {
80 KEEP (*(.note-ABI-tag))
81 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
83 .rodata : {
84 __rodata_start = .;
85 *(.rodata)
86 *(.rodata.*)
87 *(.gnu.linkonce.r.*)
88 __rodata_end = .;
89 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
91 .rodata1 : {
92 __rodata1_start = .;
93 *(.rodata1)
94 *(.rodata1.*)
95 __rodata1_end = .;
96 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
98 .sdata2 : {
99 __sdata2_start = .;
100 *(.sdata2)
101 *(.sdata2.*)
102 *(.gnu.linkonce.s2.*)
103 __sdata2_end = .;
104 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
106 .sbss2 : {
107 __sbss2_start = .;
108 *(.sbss2)
109 *(.sbss2.*)
110 *(.gnu.linkonce.sb2.*)
111 __sbss2_end = .;
112 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
114 .data : {
115 __data_start = .;
116 *(.data)
117 *(.data.*)
118 *(.gnu.linkonce.d.*)
119 *(.jcr)
120 *(.got)
121 *(.got.plt)
122 __data_end = .;
123 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
125 .data1 : {
126 __data1_start = .;
127 *(.data1)
128 *(.data1.*)
129 __data1_end = .;
130 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
132 .got : {
133 *(.got)
134 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
136 .ctors : {
137 __CTOR_LIST__ = .;
138 ___CTORS_LIST___ = .;
139 KEEP (*crtbegin.o(.ctors))
140 KEEP (*(EXCLUDE_FILE(*crtend.o) .ctors))
141 KEEP (*(SORT(.ctors.*)))
142 KEEP (*(.ctors))
143 __CTOR_END__ = .;
144 ___CTORS_END___ = .;
145 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
147 .dtors : {
148 __DTOR_LIST__ = .;
149 ___DTORS_LIST___ = .;
150 KEEP (*crtbegin.o(.dtors))
151 KEEP (*(EXCLUDE_FILE(*crtend.o) .dtors))
152 KEEP (*(SORT(.dtors.*)))
153 KEEP (*(.dtors))
154 __DTOR_END__ = .;
155 ___DTORS_END___ = .;
156 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
158 .fixup : {
159 __fixup_start = .;
160 *(.fixup)
161 __fixup_end = .;
162 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
164 .eh_frame : {
165 *(.eh_frame)
166 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
168 .eh_framehdr : {
169 __eh_framehdr_start = .;
170 *(.eh_framehdr)
171 __eh_framehdr_end = .;
172 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
174 .gcc_except_table : {
175 *(.gcc_except_table)
176 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
178 .mmu_tbl (ALIGN(16384)) : {
179 __mmu_tbl_start = .;
180 *(.mmu_tbl)
181 __mmu_tbl_end = .;
182 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
184 .ARM.exidx : {
185 __exidx_start = .;
186 *(.ARM.exidx*)
187 *(.gnu.linkonce.armexidix.*.*)
188 __exidx_end = .;
189 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
191 .preinit_array : {
192 __preinit_array_start = .;
193 KEEP (*(SORT(.preinit_array.*)))
194 KEEP (*(.preinit_array))
195 __preinit_array_end = .;
196 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
198 .init_array : {
199 __init_array_start = .;
200 KEEP (*(SORT(.init_array.*)))
201 KEEP (*(.init_array))
202 __init_array_end = .;
203 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
205 .fini_array : {
206 __fini_array_start = .;
207 KEEP (*(SORT(.fini_array.*)))
208 KEEP (*(.fini_array))
209 __fini_array_end = .;
210 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
212 .ARM.attributes : {
213 __ARM.attributes_start = .;
214 *(.ARM.attributes)
215 __ARM.attributes_end = .;
216 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
218 .sdata : {
219 __sdata_start = .;
220 *(.sdata)
221 *(.sdata.*)
222 *(.gnu.linkonce.s.*)
223 __sdata_end = .;
224 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
226 .sbss (NOLOAD) : {
227 __sbss_start = .;
228 *(.sbss)
229 *(.sbss.*)
230 *(.gnu.linkonce.sb.*)
231 __sbss_end = .;
232 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
234 .tdata : {
235 __tdata_start = .;
236 *(.tdata)
237 *(.tdata.*)
238 *(.gnu.linkonce.td.*)
239 __tdata_end = .;
240 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
242 .tbss : {
243 __tbss_start = .;
244 *(.tbss)
245 *(.tbss.*)
246 *(.gnu.linkonce.tb.*)
247 __tbss_end = .;
248 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
250 .bss (NOLOAD) : {
251 . = ALIGN(4);
252 __bss_start__ = .;
253 *(.bss)
254 *(.bss.*)
255 *(.gnu.linkonce.b.*)
256 *(COMMON)
257 . = ALIGN(4);
258 __bss_end__ = .;
259 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
261 _SDA_BASE_ = __sdata_start + ((__sbss_end - __sdata_start) / 2 );
263 _SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 );
265 /* Generate Stack and Heap definitions */
267 .heap (NOLOAD) : {
268 . = ALIGN(16);
269 _heap = .;
270 HeapBase = .;
271 _heap_start = .;
272 . += _HEAP_SIZE;
273 _heap_end = .;
274 HeapLimit = .;
275 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
277 .stack (NOLOAD) : {
278 . = ALIGN(16);
279 _stack_end = .;
280 . += _STACK_SIZE;
281 _stack = .;
282 __stack = _stack;
283 . = ALIGN(16);
284 _irq_stack_end = .;
285 . += _IRQ_STACK_SIZE;
286 __irq_stack = .;
287 _supervisor_stack_end = .;
288 . += _SUPERVISOR_STACK_SIZE;
289 . = ALIGN(16);
290 __supervisor_stack = .;
291 _abort_stack_end = .;
292 . += _ABORT_STACK_SIZE;
293 . = ALIGN(16);
294 __abort_stack = .;
295 _fiq_stack_end = .;
296 . += _FIQ_STACK_SIZE;
297 . = ALIGN(16);
298 __fiq_stack = .;
299 _undef_stack_end = .;
300 . += _UNDEF_STACK_SIZE;
301 . = ALIGN(16);
302 __undef_stack = .;
303 } > ps8_r5_tcm_ram_0_S_AXI_BASEADDR
305 _end = .;
306 }