4e311e9af37a55924943491242d79d5169639d11
[processor-sdk/open-amp.git] / apps / system / generic / machine / zynq7 / linker_remote.ld
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-A9 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 : 4096;
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    ps7_ddr_0_S_AXI_BASEADDR : ORIGIN = 0x00100000, LENGTH = 0x08000000
27    ps7_ram_0_S_AXI_BASEADDR : ORIGIN = 0x00000000, LENGTH = 0x00030000
28    ps7_ram_1_S_AXI_BASEADDR : ORIGIN = 0xFFFF0000, LENGTH = 0x0000FE00
29 }
31 /* Specify the default entry point to the program */
33 ENTRY(_vector_table)
35 /* Define the sections, and where they are mapped in memory */
37 SECTIONS
38 {
39 .text : {
41 _binary_firmware1_start = 0;
42 _binary_firmware1_end = 0;
43 _binary_firmware2_start = 0;
44 _binary_firmware2_end = 0;
46    *(.vectors)
47    *(.boot)
48    *(.text)
49    *(.text.*)
50    *(.gnu.linkonce.t.*)
51    *(.plt)
52    *(.gnu_warning)
53    *(.gcc_execpt_table)
54    *(.glue_7)
55    *(.glue_7t)
56    *(.vfp11_veneer)
57    *(.ARM.extab)
58    *(.gnu.linkonce.armextab.*)
59 } > ps7_ddr_0_S_AXI_BASEADDR
61 .init : {
62    KEEP (*(.init))
63 } > ps7_ddr_0_S_AXI_BASEADDR
65 .fini : {
66    KEEP (*(.fini))
67 } > ps7_ddr_0_S_AXI_BASEADDR
69 .rodata : {
70    __rodata_start = .;
71    *(.rodata)
72    *(.rodata.*)
73    *(.gnu.linkonce.r.*)
74    __rodata_end = .;
75 } > ps7_ddr_0_S_AXI_BASEADDR
77 .rodata1 : {
78    __rodata1_start = .;
79    *(.rodata1)
80    *(.rodata1.*)
81    __rodata1_end = .;
82 } > ps7_ddr_0_S_AXI_BASEADDR
84 .sdata2 : {
85    __sdata2_start = .;
86    *(.sdata2)
87    *(.sdata2.*)
88    *(.gnu.linkonce.s2.*)
89    __sdata2_end = .;
90 } > ps7_ddr_0_S_AXI_BASEADDR
92 .sbss2 : {
93    __sbss2_start = .;
94    *(.sbss2)
95    *(.sbss2.*)
96    *(.gnu.linkonce.sb2.*)
97    __sbss2_end = .;
98 } > ps7_ddr_0_S_AXI_BASEADDR
100 .data : {
101    __data_start = .;
102    *(.data)
103    *(.data.*)
104    *(.gnu.linkonce.d.*)
105    *(.jcr)
106    *(.got)
107    *(.got.plt)
108    __data_end = .;
109 } > ps7_ddr_0_S_AXI_BASEADDR
111 .data1 : {
112    __data1_start = .;
113    *(.data1)
114    *(.data1.*)
115    __data1_end = .;
116 } > ps7_ddr_0_S_AXI_BASEADDR
118 .got : {
119    *(.got)
120 } > ps7_ddr_0_S_AXI_BASEADDR
122 .ctors : {
123    __CTOR_LIST__ = .;
124    ___CTORS_LIST___ = .;
125    KEEP (*crtbegin.o(.ctors))
126    KEEP (*(EXCLUDE_FILE(*crtend.o) .ctors))
127    KEEP (*(SORT(.ctors.*)))
128    KEEP (*(.ctors))
129    __CTOR_END__ = .;
130    ___CTORS_END___ = .;
131 } > ps7_ddr_0_S_AXI_BASEADDR
133 .dtors : {
134    __DTOR_LIST__ = .;
135    ___DTORS_LIST___ = .;
136    KEEP (*crtbegin.o(.dtors))
137    KEEP (*(EXCLUDE_FILE(*crtend.o) .dtors))
138    KEEP (*(SORT(.dtors.*)))
139    KEEP (*(.dtors))
140    __DTOR_END__ = .;
141    ___DTORS_END___ = .;
142 } > ps7_ddr_0_S_AXI_BASEADDR
144 .fixup : {
145    __fixup_start = .;
146    *(.fixup)
147    __fixup_end = .;
148 } > ps7_ddr_0_S_AXI_BASEADDR
150 .eh_frame : {
151    *(.eh_frame)
152 } > ps7_ddr_0_S_AXI_BASEADDR
154 .eh_framehdr : {
155    __eh_framehdr_start = .;
156    *(.eh_framehdr)
157    __eh_framehdr_end = .;
158 } > ps7_ddr_0_S_AXI_BASEADDR
160 .gcc_except_table : {
161    *(.gcc_except_table)
162 } > ps7_ddr_0_S_AXI_BASEADDR
164 .mmu_tbl (ALIGN(16384)) : {
165    __mmu_tbl_start = .;
166    *(.mmu_tbl)
167    __mmu_tbl_end = .;
168 } > ps7_ddr_0_S_AXI_BASEADDR
170 .ARM.exidx : {
171    __exidx_start = .;
172    *(.ARM.exidx*)
173    *(.gnu.linkonce.armexidix.*.*)
174    __exidx_end = .;
175 } > ps7_ddr_0_S_AXI_BASEADDR
177 .preinit_array : {
178    __preinit_array_start = .;
179    KEEP (*(SORT(.preinit_array.*)))
180    KEEP (*(.preinit_array))
181    __preinit_array_end = .;
182 } > ps7_ddr_0_S_AXI_BASEADDR
184 .init_array : {
185    __init_array_start = .;
186    KEEP (*(SORT(.init_array.*)))
187    KEEP (*(.init_array))
188    __init_array_end = .;
189 } > ps7_ddr_0_S_AXI_BASEADDR
191 .fini_array : {
192    __fini_array_start = .;
193    KEEP (*(SORT(.fini_array.*)))
194    KEEP (*(.fini_array))
195    __fini_array_end = .;
196 } > ps7_ddr_0_S_AXI_BASEADDR
198 .ARM.attributes : {
199    __ARM.attributes_start = .;
200    *(.ARM.attributes)
201    __ARM.attributes_end = .;
202 } > ps7_ddr_0_S_AXI_BASEADDR
204 .sdata : {
205    __sdata_start = .;
206    *(.sdata)
207    *(.sdata.*)
208    *(.gnu.linkonce.s.*)
209    __sdata_end = .;
210 } > ps7_ddr_0_S_AXI_BASEADDR
212 .sbss (NOLOAD) : {
213    __sbss_start = .;
214    *(.sbss)
215    *(.sbss.*)
216    *(.gnu.linkonce.sb.*)
217    __sbss_end = .;
218 } > ps7_ddr_0_S_AXI_BASEADDR
220 .tdata : {
221    __tdata_start = .;
222    *(.tdata)
223    *(.tdata.*)
224    *(.gnu.linkonce.td.*)
225    __tdata_end = .;
226 } > ps7_ddr_0_S_AXI_BASEADDR
228 .tbss : {
229    __tbss_start = .;
230    *(.tbss)
231    *(.tbss.*)
232    *(.gnu.linkonce.tb.*)
233    __tbss_end = .;
234 } > ps7_ddr_0_S_AXI_BASEADDR
236 .bss (NOLOAD) : {
237    __bss_start = .;
238    *(.bss)
239    *(.bss.*)
240    *(.gnu.linkonce.b.*)
241    *(COMMON)
242    __bss_end = .;
243 } > ps7_ddr_0_S_AXI_BASEADDR
245 _SDA_BASE_ = __sdata_start + ((__sbss_end - __sdata_start) / 2 );
247 _SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 );
249 /* Generate Stack and Heap definitions */
251 .heap (NOLOAD) : {
252    . = ALIGN(16);
253    _heap = .;
254    HeapBase = .;
255    _heap_start = .;
256    . += _HEAP_SIZE;
257    _heap_end = .;
258    HeapLimit = .;
259 } > ps7_ddr_0_S_AXI_BASEADDR
261 .stack (NOLOAD) : {
262    . = ALIGN(16);
263    _stack_end = .;
264    . += _STACK_SIZE;
265    _stack = .;
266    __stack = _stack;
267    . = ALIGN(16);
268    _irq_stack_end = .;
269    . += _IRQ_STACK_SIZE;
270    __irq_stack = .;
271    _supervisor_stack_end = .;
272    . += _SUPERVISOR_STACK_SIZE;
273    . = ALIGN(16);
274    __supervisor_stack = .;
275    _abort_stack_end = .;
276    . += _ABORT_STACK_SIZE;
277    . = ALIGN(16);
278    __abort_stack = .;
279    _fiq_stack_end = .;
280    . += _FIQ_STACK_SIZE;
281    . = ALIGN(16);
282    __fiq_stack = .;
283    _undef_stack_end = .;
284    . += _UNDEF_STACK_SIZE;
285    . = ALIGN(16);
286    __undef_stack = .;
287 } > ps7_ddr_0_S_AXI_BASEADDR
289 _end = .;