1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24#include <asm-offsets.h>
25#include <config.h>
26#include "version.h"
27#include <asm/cache.h>
28
29#ifndef CONFIG_IDENT_STRING
30#define CONFIG_IDENT_STRING ""
31#endif
32
33#define _START _start
34#define _FAULT _fault
35
36
37#define SAVE_ALL \
38 move.w
39 subl
40 moveml %d0-%d7/%a0-%a6,%sp@; \
41
42#define RESTORE_ALL \
43 moveml %sp@,%d0-%d7/%a0-%a6; \
44 addl
45 rte
46
47
48
49
50
51
52.text
53
54
55
56
57_vectors:
58
59.long 0x00000000
60
61.long _start - CONFIG_SYS_TEXT_BASE
62#else
63.long _START
64#endif
65
66.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
67.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
68.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
69.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
70.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
71.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
72.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
73.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
74
75.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
76.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
77.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
78.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
79.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
80.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
81.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
82.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
83
84.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
85.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
86.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
87.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
88.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
89.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
90.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
91.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
92
93.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
94.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
95.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
96.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
97.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
98.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
99.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
100.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
101
102#endif
103
104 .text
105
106
107
108 (defined(CONFIG_M5282) || defined(CONFIG_M5281))
109
110 .long 0x55AA55AA,0xAA55AA55
111 .long 0xFFFFFFFF
112 .long 0x00000000
113 .long 0x00000000
114 .long 0x00000000
115 #endif
116#endif
117 .globl _start
118_start:
119 nop
120 nop
121 move.w
122
123
124
125 move.l
126 movec %d0, %RAMBAR1
127#endif
128
129
130 move.l
131 move.c %d0, %MBAR
132
133
134#ifdef CONFIG_SYS_MBAR2
135 move.l
136 movec %d0,
137#endif
138
139 move.l
140 movec %d0, %RAMBAR0
141#endif
142
143
144
145 move.l
146 move.l %d0, 0x40000000
147
148
149 move.l
150 movec %d0, %RAMBAR1
151
152
153
154
155
156 move.l
157 move.l
158 move.l
159_copy_flash:
160 move.l (%a0)+, (%a2)+
161 cmp.l %a0, %a1
162 bgt.s _copy_flash
163 jmp CONFIG_SYS_INIT_RAM_ADDR
164
165_flashbar_setup:
166
167 move.l
168 movec %d0, %FLASHBAR
169 jmp _after_flashbar_copy.L
170_flashbar_setup_end:
171 nop
172_after_flashbar_copy:
173#else
174
175 move.l
176 movec %d0, %FLASHBAR
177#endif
178
179#endif
180#endif
181
182
183
184
185
186 move.l
187#else
188 move.l
189#endif
190 movec %d0, %VBR
191#endif
192
193#ifdef CONFIG_M5275
194
195 move.l
196 move.l %d0, 0x40000000
197
198
199
200 move.l
201 movec %d0, %RAMBAR1
202#endif
203
204
205 move.l
206 move.l
207 move.l
208 move.l %d0, (%a1)
209 move.l %d0, (%a2)
210
211
212 move.l
213 clr.l %sp@-
214
215 move.l
216
217 bsr cpu_init_f
218 bsr board_init_f
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235 .globl relocate_code
236relocate_code:
237 link.w %a6,
238 move.l 8(%a6), %sp
239
240 move.l 12(%a6), %d0
241 move.l 16(%a6), %a0
242
243 move.l
244 move.l
245 move.l %a0, %a3
246
2471:
248 move.l (%a1)+, (%a3)+
249 cmp.l %a1,%a2
250 bgt.s 1b
251
252
253
254
255
256 move.l %a0, %a1
257 add.l
258 jmp (%a1)
259
260in_ram:
261
262clear_bss:
263
264
265
266 move.l %a0, %a1
267 add.l
268 move.l %a0, %d1
269 add.l
2706:
271 clr.l (%a1)+
272 cmp.l %a1,%d1
273 bgt.s 6b
274
275
276
277
278 move.l %a0, %a1
279 add.l
280 move.l %a1,%a5
281
282 move.l %a0, %a2
283 add.l
284
2857:
286 move.l (%a1),%d1
287 sub.l
288 add.l %a0,%d1
289 move.l %d1,(%a1)+
290 cmp.l %a2, %a1
291 bne 7b
292
293
294 move.l %a0, %a1
295 add.l
296
297
298 move.l %a0,-(%sp)
299 move.l %d0,-(%sp)
300
301 defined(CONFIG_SYS_HALT_BEFOR_RAM_JUMP)
302 halt
303#endif
304 jsr (%a1)
305
306
307
308 .globl _fault
309_fault:
310 jmp _fault
311
312 .globl _exc_handler
313_exc_handler:
314 SAVE_ALL
315 movel %sp,%sp@-
316 bsr exc_handler
317 addql
318 RESTORE_ALL
319
320 .globl _int_handler
321_int_handler:
322 SAVE_ALL
323 movel %sp,%sp@-
324 bsr int_handler
325 addql
326 RESTORE_ALL
327
328
329
330 .globl version_string
331version_string:
332 .ascii U_BOOT_VERSION_STRING, "\0"
333 .align 4
334