summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'arch/cris/arch-v10/vmlinux.lds.S')
-rw-r--r--arch/cris/arch-v10/vmlinux.lds.S120
1 files changed, 120 insertions, 0 deletions
diff --git a/arch/cris/arch-v10/vmlinux.lds.S b/arch/cris/arch-v10/vmlinux.lds.S
new file mode 100644
index 000000000000..71ba736be8f0
--- /dev/null
+++ b/arch/cris/arch-v10/vmlinux.lds.S
@@ -0,0 +1,120 @@
1/* ld script to make the Linux/CRIS kernel
2 * Authors: Bjorn Wesen (bjornw@axis.com)
3 *
4 * It is VERY DANGEROUS to fiddle around with the symbols in this
5 * script. It is for example quite vital that all generated sections
6 * that are used are actually named here, otherwise the linker will
7 * put them at the end, where the init stuff is which is FREED after
8 * the kernel has booted.
9 */
10
11#include <linux/config.h>
12#include <asm-generic/vmlinux.lds.h>
13
14jiffies = jiffies_64;
15SECTIONS
16{
17 . = DRAM_VIRTUAL_BASE;
18 dram_start = .;
19 ibr_start = .;
20 . = . + 0x4000; /* see head.S and pages reserved at the start */
21
22 _text = .; /* Text and read-only data */
23 text_start = .; /* lots of aliases */
24 _stext = .;
25 __stext = .;
26 .text : {
27 *(.text)
28 SCHED_TEXT
29 LOCK_TEXT
30 *(.fixup)
31 *(.text.__*)
32 }
33
34 _etext = . ; /* End of text section */
35 __etext = .;
36
37 . = ALIGN(4); /* Exception table */
38 __start___ex_table = .;
39 __ex_table : { *(__ex_table) }
40 __stop___ex_table = .;
41
42 RODATA
43
44 . = ALIGN (4);
45 ___data_start = . ;
46 __Sdata = . ;
47 .data : { /* Data */
48 *(.data)
49 }
50 __edata = . ; /* End of data section */
51 _edata = . ;
52
53 . = ALIGN(8192); /* init_task and stack, must be aligned */
54 .data.init_task : { *(.data.init_task) }
55
56 . = ALIGN(8192); /* Init code and data */
57 __init_begin = .;
58 .init.text : {
59 _sinittext = .;
60 *(.init.text)
61 _einittext = .;
62 }
63 .init.data : { *(.init.data) }
64 . = ALIGN(16);
65 __setup_start = .;
66 .init.setup : { *(.init.setup) }
67 __setup_end = .;
68 .initcall.init : {
69 __initcall_start = .;
70 *(.initcall1.init);
71 *(.initcall2.init);
72 *(.initcall3.init);
73 *(.initcall4.init);
74 *(.initcall5.init);
75 *(.initcall6.init);
76 *(.initcall7.init);
77 __initcall_end = .;
78 }
79
80 .con_initcall.init : {
81 __con_initcall_start = .;
82 *(.con_initcall.init)
83 __con_initcall_end = .;
84 }
85 SECURITY_INIT
86
87 .init.ramfs : {
88 __initramfs_start = .;
89 *(.init.ramfs)
90 __initramfs_end = .;
91 /* We fill to the next page, so we can discard all init
92 pages without needing to consider what payload might be
93 appended to the kernel image. */
94 FILL (0);
95 . = ALIGN (8192);
96 }
97
98 __vmlinux_end = .; /* last address of the physical file */
99 __init_end = .;
100
101 __data_end = . ; /* Move to _edata ? */
102 __bss_start = .; /* BSS */
103 .bss : {
104 *(COMMON)
105 *(.bss)
106 }
107
108 . = ALIGN (0x20);
109 _end = .;
110 __end = .;
111
112 /* Sections to be discarded */
113 /DISCARD/ : {
114 *(.text.exit)
115 *(.data.exit)
116 *(.exitcall.exit)
117 }
118
119 dram_end = dram_start + CONFIG_ETRAX_DRAM_SIZE*1024*1024;
120}