aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/setup_64.c
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2006-06-23 04:20:09 -0400
committerPaul Mackerras <paulus@samba.org>2006-06-27 21:59:47 -0400
commit4ba99b97dadd35b9ce1438b2bc7c992a4a14a8b1 (patch)
tree09065f39b2b22e0d29463cb8cea55ccb4b293549 /arch/powerpc/kernel/setup_64.c
parentaa98c50dcb5d5b85d2a4c26d54fa1e3c31c11e4b (diff)
[POWERPC] Setup the boot cpu's paca pointer in C rather than asm
There's no need to set the boot cpu paca in asm, so do it in C so us mere mortals can understand it. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/kernel/setup_64.c')
-rw-r--r--arch/powerpc/kernel/setup_64.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index cc26530145db..a2fb2e627aad 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -149,6 +149,13 @@ early_param("smt-enabled", early_smt_enabled);
149#define check_smt_enabled() 149#define check_smt_enabled()
150#endif /* CONFIG_SMP */ 150#endif /* CONFIG_SMP */
151 151
152/* Put the paca pointer into r13 and SPRG3 */
153void __init setup_paca(int cpu)
154{
155 local_paca = &paca[cpu];
156 mtspr(SPRN_SPRG3, local_paca);
157}
158
152/* 159/*
153 * Early initialization entry point. This is called by head.S 160 * Early initialization entry point. This is called by head.S
154 * with MMU translation disabled. We rely on the "feature" of 161 * with MMU translation disabled. We rely on the "feature" of
@@ -183,7 +190,7 @@ void __init early_setup(unsigned long dt_ptr)
183 early_init_devtree(__va(dt_ptr)); 190 early_init_devtree(__va(dt_ptr));
184 191
185 /* Now we know the logical id of our boot cpu, setup the paca. */ 192 /* Now we know the logical id of our boot cpu, setup the paca. */
186 setup_boot_paca(); 193 setup_paca(boot_cpuid);
187 194
188 /* Fix up paca fields required for the boot cpu */ 195 /* Fix up paca fields required for the boot cpu */
189 get_paca()->cpu_start = 1; 196 get_paca()->cpu_start = 1;