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