aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/head.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/kernel/head.S')
-rw-r--r--arch/mips/kernel/head.S43
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
144NESTED(kernel_entry, 16, sp) # kernel entry point 129NESTED(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 */
186NESTED(smp_bootstrap, 16, sp) 168NESTED(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 */