diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips/kernel/head.S | 43 |
1 files changed, 6 insertions, 37 deletions
diff --git a/arch/mips/kernel/head.S b/arch/mips/kernel/head.S index d7d7de7cdb40..d2de5d025dbf 100644 --- a/arch/mips/kernel/head.S +++ b/arch/mips/kernel/head.S | |||
@@ -22,11 +22,8 @@ | |||
22 | #include <asm/page.h> | 22 | #include <asm/page.h> |
23 | #include <asm/mipsregs.h> | 23 | #include <asm/mipsregs.h> |
24 | #include <asm/stackframe.h> | 24 | #include <asm/stackframe.h> |
25 | #ifdef CONFIG_SGI_IP27 | 25 | |
26 | #include <asm/sn/addrs.h> | 26 | #include <kernel-entry-init.h> |
27 | #include <asm/sn/sn0/hubni.h> | ||
28 | #include <asm/sn/klkernvars.h> | ||
29 | #endif | ||
30 | 27 | ||
31 | .macro ARC64_TWIDDLE_PC | 28 | .macro ARC64_TWIDDLE_PC |
32 | #if defined(CONFIG_ARC64) || defined(CONFIG_MAPPED_KERNEL) | 29 | #if defined(CONFIG_ARC64) || defined(CONFIG_MAPPED_KERNEL) |
@@ -38,18 +35,6 @@ | |||
38 | #endif | 35 | #endif |
39 | .endm | 36 | .endm |
40 | 37 | ||
41 | #ifdef CONFIG_SGI_IP27 | ||
42 | /* | ||
43 | * outputs the local nasid into res. IP27 stuff. | ||
44 | */ | ||
45 | .macro GET_NASID_ASM res | ||
46 | dli \res, LOCAL_HUB_ADDR(NI_STATUS_REV_ID) | ||
47 | ld \res, (\res) | ||
48 | and \res, NSRI_NODEID_MASK | ||
49 | dsrl \res, NSRI_NODEID_SHFT | ||
50 | .endm | ||
51 | #endif /* CONFIG_SGI_IP27 */ | ||
52 | |||
53 | /* | 38 | /* |
54 | * inputs are the text nasid in t1, data nasid in t2. | 39 | * inputs are the text nasid in t1, data nasid in t2. |
55 | */ | 40 | */ |
@@ -142,13 +127,10 @@ EXPORT(_stext) | |||
142 | __INIT | 127 | __INIT |
143 | 128 | ||
144 | NESTED(kernel_entry, 16, sp) # kernel entry point | 129 | NESTED(kernel_entry, 16, sp) # kernel entry point |
145 | setup_c0_status_pri | ||
146 | 130 | ||
147 | #ifdef CONFIG_SGI_IP27 | 131 | kernel_entry_setup # cpu specific setup |
148 | GET_NASID_ASM t1 | 132 | |
149 | move t2, t1 # text and data are here | 133 | setup_c0_status_pri |
150 | MAPPED_KERNEL_SETUP_TLB | ||
151 | #endif /* IP27 */ | ||
152 | 134 | ||
153 | ARC64_TWIDDLE_PC | 135 | ARC64_TWIDDLE_PC |
154 | 136 | ||
@@ -185,20 +167,7 @@ NESTED(kernel_entry, 16, sp) # kernel entry point | |||
185 | */ | 167 | */ |
186 | NESTED(smp_bootstrap, 16, sp) | 168 | NESTED(smp_bootstrap, 16, sp) |
187 | setup_c0_status_sec | 169 | setup_c0_status_sec |
188 | 170 | smp_slave_setup | |
189 | #ifdef CONFIG_SGI_IP27 | ||
190 | GET_NASID_ASM t1 | ||
191 | dli t0, KLDIR_OFFSET + (KLI_KERN_VARS * KLDIR_ENT_SIZE) + \ | ||
192 | KLDIR_OFF_POINTER + CAC_BASE | ||
193 | dsll t1, NASID_SHFT | ||
194 | or t0, t0, t1 | ||
195 | ld t0, 0(t0) # t0 points to kern_vars struct | ||
196 | lh t1, KV_RO_NASID_OFFSET(t0) | ||
197 | lh t2, KV_RW_NASID_OFFSET(t0) | ||
198 | MAPPED_KERNEL_SETUP_TLB | ||
199 | ARC64_TWIDDLE_PC | ||
200 | #endif /* CONFIG_SGI_IP27 */ | ||
201 | |||
202 | j start_secondary | 171 | j start_secondary |
203 | END(smp_bootstrap) | 172 | END(smp_bootstrap) |
204 | #endif /* CONFIG_SMP */ | 173 | #endif /* CONFIG_SMP */ |