diff options
Diffstat (limited to 'arch/sh/kernel/head.S')
-rw-r--r-- | arch/sh/kernel/head.S | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/sh/kernel/head.S b/arch/sh/kernel/head.S index f5f53d14f245..b5ff23264617 100644 --- a/arch/sh/kernel/head.S +++ b/arch/sh/kernel/head.S | |||
@@ -53,8 +53,10 @@ ENTRY(_stext) | |||
53 | ldc r0, sr | 53 | ldc r0, sr |
54 | ! Initialize global interrupt mask | 54 | ! Initialize global interrupt mask |
55 | mov #0, r0 | 55 | mov #0, r0 |
56 | #ifdef CONFIG_CPU_HAS_SR_RB | ||
56 | ldc r0, r6_bank | 57 | ldc r0, r6_bank |
57 | 58 | #endif | |
59 | |||
58 | /* | 60 | /* |
59 | * Prefetch if possible to reduce cache miss penalty. | 61 | * Prefetch if possible to reduce cache miss penalty. |
60 | * | 62 | * |
@@ -71,8 +73,10 @@ ENTRY(_stext) | |||
71 | mov #(THREAD_SIZE >> 8), r1 | 73 | mov #(THREAD_SIZE >> 8), r1 |
72 | shll8 r1 ! r1 = THREAD_SIZE | 74 | shll8 r1 ! r1 = THREAD_SIZE |
73 | sub r1, r0 ! | 75 | sub r1, r0 ! |
76 | #ifdef CONFIG_CPU_HAS_SR_RB | ||
74 | ldc r0, r7_bank ! ... and initial thread_info | 77 | ldc r0, r7_bank ! ... and initial thread_info |
75 | 78 | #endif | |
79 | |||
76 | ! Clear BSS area | 80 | ! Clear BSS area |
77 | mov.l 3f, r1 | 81 | mov.l 3f, r1 |
78 | add #4, r1 | 82 | add #4, r1 |
@@ -95,7 +99,11 @@ ENTRY(_stext) | |||
95 | nop | 99 | nop |
96 | 100 | ||
97 | .balign 4 | 101 | .balign 4 |
102 | #if defined(CONFIG_CPU_SH2) | ||
103 | 1: .long 0x000000F0 ! IMASK=0xF | ||
104 | #else | ||
98 | 1: .long 0x400080F0 ! MD=1, RB=0, BL=0, FD=1, IMASK=0xF | 105 | 1: .long 0x400080F0 ! MD=1, RB=0, BL=0, FD=1, IMASK=0xF |
106 | #endif | ||
99 | 2: .long init_thread_union+THREAD_SIZE | 107 | 2: .long init_thread_union+THREAD_SIZE |
100 | 3: .long __bss_start | 108 | 3: .long __bss_start |
101 | 4: .long _end | 109 | 4: .long _end |