diff options
author | Mike Frysinger <vapier.adi@gmail.com> | 2008-08-06 05:15:27 -0400 |
---|---|---|
committer | Bryan Wu <cooloney@kernel.org> | 2008-08-06 05:15:27 -0400 |
commit | 09e1f70e31ed6ca23dd42feb10aa104fc1b04c40 (patch) | |
tree | be3b8fb1813414395fa4c11ad51698414191e043 /arch/blackfin/mach-bf548 | |
parent | 778307d372555f979cf6cef112a6d7fbff056cd9 (diff) |
Blackfin arch: unify the duplicated _real_start functions
Signed-off-by: Mike Frysinger <vapier.adi@gmail.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Diffstat (limited to 'arch/blackfin/mach-bf548')
-rw-r--r-- | arch/blackfin/mach-bf548/head.S | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/arch/blackfin/mach-bf548/head.S b/arch/blackfin/mach-bf548/head.S index 06b9178cfcfe..96fbdb790a98 100644 --- a/arch/blackfin/mach-bf548/head.S +++ b/arch/blackfin/mach-bf548/head.S | |||
@@ -212,79 +212,6 @@ ENTRY(__start) | |||
212 | jump .LWAIT_HERE; | 212 | jump .LWAIT_HERE; |
213 | ENDPROC(__start) | 213 | ENDPROC(__start) |
214 | 214 | ||
215 | ENTRY(_real_start) | ||
216 | [ -- sp ] = reti; | ||
217 | p0.l = lo(WDOG_CTL); | ||
218 | p0.h = hi(WDOG_CTL); | ||
219 | r0 = 0xAD6(z); | ||
220 | w[p0] = r0; /* watchdog off for now */ | ||
221 | ssync; | ||
222 | |||
223 | /* Code update for BSS size == 0 | ||
224 | * Zero out the bss region. | ||
225 | */ | ||
226 | |||
227 | p1.l = ___bss_start; | ||
228 | p1.h = ___bss_start; | ||
229 | p2.l = ___bss_stop; | ||
230 | p2.h = ___bss_stop; | ||
231 | r0 = 0; | ||
232 | p2 -= p1; | ||
233 | lsetup (.L_clear_bss, .L_clear_bss ) lc0 = p2; | ||
234 | .L_clear_bss: | ||
235 | B[p1++] = r0; | ||
236 | |||
237 | /* In case there is a NULL pointer reference | ||
238 | * Zero out region before stext | ||
239 | */ | ||
240 | |||
241 | p1.l = 0x0; | ||
242 | p1.h = 0x0; | ||
243 | r0.l = __stext; | ||
244 | r0.h = __stext; | ||
245 | r0 = r0 >> 1; | ||
246 | p2 = r0; | ||
247 | r0 = 0; | ||
248 | lsetup (.L_clear_zero, .L_clear_zero ) lc0 = p2; | ||
249 | .L_clear_zero: | ||
250 | W[p1++] = r0; | ||
251 | |||
252 | /* pass the uboot arguments to the global value command line */ | ||
253 | R0 = R7; | ||
254 | call _cmdline_init; | ||
255 | |||
256 | p1.l = __rambase; | ||
257 | p1.h = __rambase; | ||
258 | r0.l = __sdata; | ||
259 | r0.h = __sdata; | ||
260 | [p1] = r0; | ||
261 | |||
262 | p1.l = __ramstart; | ||
263 | p1.h = __ramstart; | ||
264 | p3.l = ___bss_stop; | ||
265 | p3.h = ___bss_stop; | ||
266 | |||
267 | r1 = p3; | ||
268 | [p1] = r1; | ||
269 | |||
270 | |||
271 | /* | ||
272 | * load the current thread pointer and stack | ||
273 | */ | ||
274 | r1.l = _init_thread_union; | ||
275 | r1.h = _init_thread_union; | ||
276 | |||
277 | r2.l = 0x2000; | ||
278 | r2.h = 0x0000; | ||
279 | r1 = r1 + r2; | ||
280 | sp = r1; | ||
281 | usp = sp; | ||
282 | fp = sp; | ||
283 | call _start_kernel; | ||
284 | .L_exit: | ||
285 | jump.s .L_exit; | ||
286 | ENDPROC(_real_start) | ||
287 | |||
288 | __FINIT | 215 | __FINIT |
289 | 216 | ||
290 | .section .l1.text | 217 | .section .l1.text |