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-bf537 | |
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-bf537')
-rw-r--r-- | arch/blackfin/mach-bf537/head.S | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/arch/blackfin/mach-bf537/head.S b/arch/blackfin/mach-bf537/head.S index 5bc89bbb89d0..c11f0fd82255 100644 --- a/arch/blackfin/mach-bf537/head.S +++ b/arch/blackfin/mach-bf537/head.S | |||
@@ -240,76 +240,6 @@ ENTRY(__start) | |||
240 | jump .LWAIT_HERE; | 240 | jump .LWAIT_HERE; |
241 | ENDPROC(__start) | 241 | ENDPROC(__start) |
242 | 242 | ||
243 | ENTRY(_real_start) | ||
244 | [ -- sp ] = reti; | ||
245 | p0.l = lo(WDOG_CTL); | ||
246 | p0.h = hi(WDOG_CTL); | ||
247 | r0 = 0xAD6(z); | ||
248 | w[p0] = r0; /* watchdog off for now */ | ||
249 | ssync; | ||
250 | |||
251 | /* Code update for BSS size == 0 | ||
252 | * Zero out the bss region. | ||
253 | */ | ||
254 | |||
255 | p1.l = ___bss_start; | ||
256 | p1.h = ___bss_start; | ||
257 | p2.l = ___bss_stop; | ||
258 | p2.h = ___bss_stop; | ||
259 | r0 = 0; | ||
260 | p2 -= p1; | ||
261 | lsetup (.L_clear_bss, .L_clear_bss) lc0 = p2; | ||
262 | .L_clear_bss: | ||
263 | B[p1++] = r0; | ||
264 | |||
265 | /* In case there is a NULL pointer reference | ||
266 | * Zero out region before stext | ||
267 | */ | ||
268 | |||
269 | p1.l = 0x0; | ||
270 | p1.h = 0x0; | ||
271 | r0.l = __stext; | ||
272 | r0.h = __stext; | ||
273 | r0 = r0 >> 1; | ||
274 | p2 = r0; | ||
275 | r0 = 0; | ||
276 | lsetup (.L_clear_zero, .L_clear_zero) lc0 = p2; | ||
277 | .L_clear_zero: | ||
278 | W[p1++] = r0; | ||
279 | |||
280 | /* pass the uboot arguments to the global value command line */ | ||
281 | R0 = R7; | ||
282 | call _cmdline_init; | ||
283 | |||
284 | p1.l = __rambase; | ||
285 | p1.h = __rambase; | ||
286 | r0.l = __sdata; | ||
287 | r0.h = __sdata; | ||
288 | [p1] = r0; | ||
289 | |||
290 | p1.l = __ramstart; | ||
291 | p1.h = __ramstart; | ||
292 | p3.l = ___bss_stop; | ||
293 | p3.h = ___bss_stop; | ||
294 | |||
295 | r1 = p3; | ||
296 | [p1] = r1; | ||
297 | |||
298 | /* | ||
299 | * load the current thread pointer and stack | ||
300 | */ | ||
301 | r1.l = _init_thread_union; | ||
302 | r1.h = _init_thread_union; | ||
303 | |||
304 | r2.l = 0x2000; | ||
305 | r2.h = 0x0000; | ||
306 | r1 = r1 + r2; | ||
307 | sp = r1; | ||
308 | usp = sp; | ||
309 | fp = sp; | ||
310 | jump.l _start_kernel; | ||
311 | ENDPROC(_real_start) | ||
312 | |||
313 | __FINIT | 243 | __FINIT |
314 | 244 | ||
315 | .section .l1.text | 245 | .section .l1.text |