b9e24907e6ea35422361d3ba119e4500c6c31ed4
[linux-2.6.git] / arch / h8300 / kernel / vmlinux.lds.S
1 #define VMLINUX_SYMBOL(_sym_) _##_sym_
2 #include <asm-generic/vmlinux.lds.h>
3 #include <asm/page.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         _text = .;
75 #if defined(CONFIG_ROMKERNEL)
76         *(.int_redirect)
77 #endif
78         __stext = . ;
79         TEXT_TEXT
80         SCHED_TEXT
81         LOCK_TEXT
82         __etext = . ;
83         }
84         EXCEPTION_TABLE(16)
85
86         RODATA
87 #if defined(CONFIG_ROMKERNEL)
88         SECURITY_INIT
89 #endif
90         ROEND = .; 
91 #if defined(CONFIG_ROMKERNEL)
92         . = RAMTOP;
93         .data : AT(ROEND)
94 #else
95         .data : 
96 #endif
97         {
98         __sdata = . ;
99         ___data_start = . ;
100
101         INIT_TASK_DATA(0x2000)
102         . = ALIGN(0x4) ;
103                 DATA_DATA
104         . = ALIGN(0x4) ;
105                 *(.data.*)      
106
107         . = ALIGN(0x4) ;
108         ___init_begin = .;
109         __sinittext = .; 
110                 INIT_TEXT
111         __einittext = .; 
112                 INIT_DATA
113         . = ALIGN(0x4) ;
114         INIT_SETUP(0x4)
115         ___setup_start = .;
116                 *(.init.setup)
117         . = ALIGN(0x4) ;
118         ___setup_end = .;
119         INIT_CALLS
120         CON_INITCALL
121                 EXIT_TEXT
122                 EXIT_DATA
123         INIT_RAM_FS
124         . = ALIGN(0x4) ;
125         ___init_end = .;
126         __edata = . ;
127         }
128 #if defined(CONFIG_RAMKERNEL)
129         SECURITY_INIT
130 #endif
131         __begin_data = LOADADDR(.data);
132         .bss : 
133         {
134         . = ALIGN(0x4) ;
135         __sbss = . ;
136                 *(.bss*)
137         . = ALIGN(0x4) ;
138                 *(COMMON)
139         . = ALIGN(0x4) ;
140         __ebss = . ;
141         __end = . ;
142         __ramstart = .;
143         }
144         .romfs :        
145         {
146                 *(.romfs*)
147         }
148         . = RAMTOP+RAMSIZE;
149         .dummy :
150         {
151         COMMAND_START = . - 0x200 ;
152         __ramend = . ;
153         }
154
155         DISCARDS
156 }