]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - board/gaisler/grsim_leon2/u-boot.lds
Merge branch 'master' of git://git.denx.de/u-boot-usb
[karo-tx-uboot.git] / board / gaisler / grsim_leon2 / u-boot.lds
1 /* Linker script for Gaisler Research AB's GRSIM LEON2 simulator.
2  *
3  * (C) Copyright 2007
4  * Daniel Hellstrom, Gaisler Research, daniel@gaisler.com.
5  *
6  * See file CREDITS for list of people who contributed to this
7  * project.
8  *
9  * This program is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License as
11  * published by the Free Software Foundation; either version 2 of
12  * the License, or (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
22  * MA 02111-1307 USA
23  *
24  */
25
26 OUTPUT_FORMAT("elf32-sparc", "elf32-sparc", "elf32-sparc")
27 OUTPUT_ARCH(sparc)
28 ENTRY(_start)
29 SECTIONS
30 {
31
32 /* Read-only sections, merged into text segment: */
33         . = + SIZEOF_HEADERS;
34         .interp : { *(.interp) }
35         .hash          : { *(.hash) }
36         .dynsym        : { *(.dynsym) }
37         .dynstr        : { *(.dynstr) }
38         .rel.text      : { *(.rel.text) }
39         .rela.text     : { *(.rela.text) }
40         .rel.data      : { *(.rel.data) }
41         .rela.data     : { *(.rela.data) }
42         .rel.rodata    : { *(.rel.rodata) }
43         .rela.rodata   : { *(.rela.rodata) }
44         .rel.got       : { *(.rel.got) }
45         .rela.got      : { *(.rela.got) }
46         .rel.ctors     : { *(.rel.ctors) }
47         .rela.ctors    : { *(.rela.ctors) }
48         .rel.dtors     : { *(.rel.dtors) }
49         .rela.dtors    : { *(.rela.dtors) }
50         .rel.bss       : { *(.rel.bss) }
51         .rela.bss      : { *(.rela.bss) }
52         .rel.plt       : { *(.rel.plt) }
53         .rela.plt      : { *(.rela.plt) }
54         .init          : { *(.init) }
55         .plt : { *(.plt) }
56
57         .text : {
58                 _load_addr = .;
59                 _text = .;
60
61                 *(.start)
62                 arch/sparc/cpu/leon2/start.o (.text)
63 /* 8k is the same as the PROM offset from end of main memory, (CONFIG_SYS_PROM_SIZE) */
64                 . = ALIGN(8192);
65 /* PROM CODE, Will be relocated to the end of memory,
66  * no global data accesses please.
67  */
68                 __prom_start = .;
69                 *(.prom.pgt)
70                 *(.prom.data)
71                 *(.prom.text)
72                 . = ALIGN(16);
73                 __prom_end = .;
74                 *(.text)
75                 *(.fixup)
76                 *(.gnu.warning)
77 /*              *(.got1)*/
78                 . = ALIGN(16);
79                 *(.eh_frame)
80                 *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
81         }
82         . = ALIGN(4);
83         _etext = .;
84
85         /* CMD Table */
86
87
88         . = ALIGN(4);
89         .u_boot_list : {
90                 KEEP(*(SORT(.u_boot_list*)));
91         }
92
93         .data   :
94         {
95                 *(.data)
96                 *(.data1)
97                 *(.data.rel)
98                 *(.data.rel.*)
99                 *(.sdata)
100                 *(.sdata2)
101                 *(.dynamic)
102                 CONSTRUCTORS
103         }
104         _edata  =       .;
105         PROVIDE (edata = .);
106
107         . = ALIGN(4);
108         __got_start = .;
109         .got : {
110                 *(.got)
111 /*              *(.data.rel)
112                 *(.data.rel.local)*/
113                 . = ALIGN(16);
114         }
115         __got_end = .;
116
117 /*      .data.rel : { } */
118
119         . = ALIGN(4096);
120         __init_begin = .;
121         .text.init : { *(.text.init) }
122         .data.init : { *(.data.init) }
123         . = ALIGN(4096);
124         __init_end = .;
125
126         __bss_start = .;
127         .bss    :
128         {
129          *(.sbss) *(.scommon)
130          *(.dynbss)
131          *(.bss)
132          *(COMMON)
133         . = ALIGN(16); /* to speed clearing of bss up */
134         }
135         __bss_end = . ;
136         __bss_end = . ;
137         PROVIDE (end = .);
138
139 /* Relocated into main memory */
140
141         /* Start of main memory */
142         /*. = 0x40000000;*/
143
144         .stack (NOLOAD) : { *(.stack) }
145
146         /* PROM CODE */
147
148         /* global data in RAM passed to kernel after booting */
149
150         .stab 0         : { *(.stab) }
151         .stabstr 0              : { *(.stabstr) }
152         .stab.excl 0            : { *(.stab.excl) }
153         .stab.exclstr 0 : { *(.stab.exclstr) }
154         .stab.index 0           : { *(.stab.index) }
155         .stab.indexstr 0        : { *(.stab.indexstr) }
156         .comment 0              : { *(.comment) }
157
158 }