Linux-2.6.12-rc2
[safe/jmp/linux-2.6] / arch / h8300 / kernel / vmlinux.lds.S
1 #define VMLINUX_SYMBOL(_sym_) _##_sym_
2 #include <asm-generic/vmlinux.lds.h>
3 #include <linux/config.h>
4
5 /* target memory map */
6 #ifdef CONFIG_H8300H_GENERIC
7 #define ROMTOP  0x000000
8 #define ROMSIZE 0x400000
9 #define RAMTOP  0x400000
10 #define RAMSIZE 0x400000
11 #endif
12
13 #ifdef CONFIG_H8300H_AKI3068NET
14 #define ROMTOP  0x000000
15 #define ROMSIZE 0x080000
16 #define RAMTOP  0x400000
17 #define RAMSIZE 0x200000
18 #endif
19
20 #ifdef CONFIG_H8300H_H8MAX
21 #define ROMTOP  0x000000
22 #define ROMSIZE 0x080000
23 #define RAMTOP  0x400000
24 #define RAMSIZE 0x200000
25 #endif
26
27 #ifdef CONFIG_H8300H_SIM
28 #define ROMTOP  0x000000
29 #define ROMSIZE 0x400000
30 #define RAMTOP  0x400000
31 #define RAMSIZE 0x400000
32 #endif
33
34 #ifdef CONFIG_H8S_SIM
35 #define ROMTOP  0x000000
36 #define ROMSIZE 0x400000
37 #define RAMTOP  0x400000
38 #define RAMSIZE 0x800000
39 #endif
40
41 #ifdef CONFIG_H8S_EDOSK2674
42 #define ROMTOP  0x000000
43 #define ROMSIZE 0x400000
44 #define RAMTOP  0x400000
45 #define RAMSIZE 0x800000
46 #endif
47
48 #if defined(CONFIG_H8300H_SIM) || defined(CONFIG_H8S_SIM)
49 INPUT(romfs.o)
50 #endif
51
52 _jiffies = _jiffies_64 + 4;
53
54 ENTRY(__start)
55
56 SECTIONS
57 {
58 #if defined(CONFIG_ROMKERNEL)
59         . = ROMTOP; 
60         .vectors :
61         {
62         __vector = . ;
63                 *(.vectors*)
64         }
65 #else
66         . = RAMTOP; 
67         .bootvec :      
68         {
69                 *(.bootvec)
70         }
71 #endif
72         .text :
73         {
74 #if defined(CONFIG_ROMKERNEL)
75         *(.int_redirect)
76 #endif
77         __stext = . ;
78                 *(.text)
79         SCHED_TEXT
80         LOCK_TEXT
81         __etext = . ;
82         . = ALIGN(16);          /* Exception table              */
83         ___start___ex_table = .;
84                 *(__ex_table)
85         ___stop___ex_table = .;
86         }
87
88         RODATA
89 #if defined(CONFIG_ROMKERNEL)
90         SECURITY_INIT
91 #endif
92         ROEND = .; 
93 #if defined(CONFIG_ROMKERNEL)
94         . = RAMTOP;
95         .data : AT(ROEND)
96 #else
97         .data : 
98 #endif
99         {
100         __sdata = . ;
101         ___data_start = . ;
102
103         . = ALIGN(0x2000) ;
104                 *(.data.init_task)
105         . = ALIGN(0x4) ;
106                 *(.data)
107         . = ALIGN(0x4) ;
108                 *(.data.*)      
109
110         . = ALIGN(0x4) ;
111         ___init_begin = .;
112         __sinittext = .; 
113                 *(.init.text)
114         __einittext = .; 
115                 *(.init.data)
116         . = ALIGN(0x4) ;
117         ___setup_start = .;
118                 *(.init.setup)
119         . = ALIGN(0x4) ;
120         ___setup_end = .;
121         ___initcall_start = .;
122                 *(.initcall1.init)
123                 *(.initcall2.init)
124                 *(.initcall3.init)
125                 *(.initcall4.init)
126                 *(.initcall5.init)
127                 *(.initcall6.init)
128                 *(.initcall7.init)
129         ___initcall_end = .;
130         ___con_initcall_start = .;
131                 *(.con_initcall.init)
132         ___con_initcall_end = .;
133                 *(.exit.text)
134                 *(.exit.data)
135                 . = ALIGN(4);
136         ___initramfs_start = .;
137                 *(.init.ramfs)
138         ___initramfs_end = .;
139         . = ALIGN(0x4) ;
140         ___init_end = .;
141         __edata = . ;
142         }
143 #if defined(CONFIG_RAMKERNEL)
144         SECURITY_INIT
145 #endif
146         __begin_data = LOADADDR(.data);
147         .bss : 
148         {
149         . = ALIGN(0x4) ;
150         __sbss = . ;
151                 *(.bss*)
152         . = ALIGN(0x4) ;
153                 *(COMMON)
154         . = ALIGN(0x4) ;
155         __ebss = . ;
156         __end = . ;
157         __ramstart = .;
158         }
159         /DISCARD/ : {
160                 *(.exitcall.exit)
161         }
162         .romfs :        
163         {
164                 *(.romfs*)
165         }
166         . = RAMTOP+RAMSIZE;
167         .dummy :
168         {
169         COMMAND_START = . - 0x200 ;
170         __ramend = . ;
171         }
172 }