diff options
author | Michael Ellerman <michael@ellerman.id.au> | 2006-06-23 04:20:09 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-06-27 21:59:47 -0400 |
commit | 4ba99b97dadd35b9ce1438b2bc7c992a4a14a8b1 (patch) | |
tree | 09065f39b2b22e0d29463cb8cea55ccb4b293549 /arch/powerpc/kernel/setup_64.c | |
parent | aa98c50dcb5d5b85d2a4c26d54fa1e3c31c11e4b (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.c | 9 |
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 */ | ||
153 | void __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; |