summaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel/head.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sh/kernel/head.S')
-rw-r--r--arch/sh/kernel/head.S16
1 files changed, 14 insertions, 2 deletions
diff --git a/arch/sh/kernel/head.S b/arch/sh/kernel/head.S
index ae406d22d..db3e8b0a3 100644
--- a/arch/sh/kernel/head.S
+++ b/arch/sh/kernel/head.S
@@ -41,12 +41,21 @@ ENTRY(_stext)
ldc $r0, $sr
! Initialize global interrupt mask
mov #0, $r0
- ldc $r0, $r5_bank
+ ldc $r0, $r6_bank
!
mov.l 2f, $r0
mov $r0, $r15 ! Set initial r15 (stack pointer)
- ldc $r0, $r4_bank ! and stack base
+ mov #0x20, $r1 !
+ shll8 $r1 ! $r1 = 8192
+ sub $r1, $r0 !
+ ldc $r0, $r7_bank ! ... and init_task
!
+#if defined(__SH4__)
+ ! Initialize fpu
+ mov.l 7f, $r0
+ jsr @$r0
+ nop
+#endif
! Enable cache
mov.l 6f, $r0
jsr @$r0
@@ -71,3 +80,6 @@ ENTRY(_stext)
4: .long SYMBOL_NAME(_end)
5: .long SYMBOL_NAME(start_kernel)
6: .long SYMBOL_NAME(cache_init)
+#if defined(__SH4__)
+7: .long SYMBOL_NAME(fpu_init)
+#endif