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