aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ppc
diff options
context:
space:
mode:
authorJosh Boyer <jwboyer@linux.vnet.ibm.com>2007-11-16 12:29:56 -0500
committerJosh Boyer <jwboyer@linux.vnet.ibm.com>2007-11-19 09:22:20 -0500
commit3d1d662ef423adf6947a37e230f4d7e8ed7c9544 (patch)
treea94fc24a021377e4b654101caa6104470405966d /arch/ppc
parentb8b799a497e4a4bfd5fca8abc526e908b26c71e8 (diff)
[POWERPC] 4xx: Use virtual PVR value to init FPU on arch/ppc 440EP
This fixes arch/ppc 440EP platforms to setup the FPU correctly. A virtual PVR is used, as 440GR platforms share an identical hardware PVR value and do not have an FPU. Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Diffstat (limited to 'arch/ppc')
-rw-r--r--arch/ppc/kernel/setup.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/ppc/kernel/setup.c b/arch/ppc/kernel/setup.c
index aac88c2f3db9..5255bd80aa6b 100644
--- a/arch/ppc/kernel/setup.c
+++ b/arch/ppc/kernel/setup.c
@@ -312,7 +312,14 @@ early_init(int r3, int r4, int r5)
312 * Identify the CPU type and fix up code sections 312 * Identify the CPU type and fix up code sections
313 * that depend on which cpu we have. 313 * that depend on which cpu we have.
314 */ 314 */
315#if defined(CONFIG_440EP) && defined(CONFIG_PPC_FPU)
316 /* We pass the virtual PVR here for 440EP as 440EP and 440GR have
317 * identical PVRs and there is no reliable way to check for the FPU
318 */
319 spec = identify_cpu(offset, (mfspr(SPRN_PVR) | 0x8));
320#else
315 spec = identify_cpu(offset, mfspr(SPRN_PVR)); 321 spec = identify_cpu(offset, mfspr(SPRN_PVR));
322#endif
316 do_feature_fixups(spec->cpu_features, 323 do_feature_fixups(spec->cpu_features,
317 PTRRELOC(&__start___ftr_fixup), 324 PTRRELOC(&__start___ftr_fixup),
318 PTRRELOC(&__stop___ftr_fixup)); 325 PTRRELOC(&__stop___ftr_fixup));