linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] [POWERPC] 4xx: Use virtual PVR value to init FPU on arch/ppc 440EP
@ 2007-11-16 17:29 Josh Boyer
  2007-11-16 19:20 ` Kumar Gala
  0 siblings, 1 reply; 3+ messages in thread
From: Josh Boyer @ 2007-11-16 17:29 UTC (permalink / raw)
  To: linuxppc-dev

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>
Index: linux-2.6/arch/ppc/kernel/setup.c
===================================================================
--- linux-2.6.orig/arch/ppc/kernel/setup.c
+++ linux-2.6/arch/ppc/kernel/setup.c
@@ -312,7 +312,14 @@ early_init(int r3, int r4, int r5)
 	 * Identify the CPU type and fix up code sections
 	 * that depend on which cpu we have.
 	 */
+#if defined(CONFIG_440EP) && defined(CONFIG_PPC_FPU)
+	/* We pass the virtual PVR here for 440EP as 440EP and 440GR have
+	 * identical PVRs and there is no reliable way to check for the FPU
+	 */
+	spec = identify_cpu(offset, (mfspr(SPRN_PVR) | 0x8));
+#else
 	spec = identify_cpu(offset, mfspr(SPRN_PVR));
+#endif
 	do_feature_fixups(spec->cpu_features,
 			  PTRRELOC(&__start___ftr_fixup),
 			  PTRRELOC(&__stop___ftr_fixup));

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] [POWERPC] 4xx: Use virtual PVR value to init FPU on arch/ppc 440EP
  2007-11-16 17:29 [PATCH] [POWERPC] 4xx: Use virtual PVR value to init FPU on arch/ppc 440EP Josh Boyer
@ 2007-11-16 19:20 ` Kumar Gala
  2007-11-16 19:23   ` Josh Boyer
  0 siblings, 1 reply; 3+ messages in thread
From: Kumar Gala @ 2007-11-16 19:20 UTC (permalink / raw)
  To: Josh Boyer; +Cc: linuxppc-dev


On Nov 16, 2007, at 11:29 AM, Josh Boyer wrote:

> 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>
> Index: linux-2.6/arch/ppc/kernel/setup.c
> ===================================================================
> --- linux-2.6.orig/arch/ppc/kernel/setup.c
> +++ linux-2.6/arch/ppc/kernel/setup.c
> @@ -312,7 +312,14 @@ early_init(int r3, int r4, int r5)
> 	 * Identify the CPU type and fix up code sections
> 	 * that depend on which cpu we have.
> 	 */
> +#if defined(CONFIG_440EP) && defined(CONFIG_PPC_FPU)
> +	/* We pass the virtual PVR here for 440EP as 440EP and 440GR have
> +	 * identical PVRs and there is no reliable way to check for the FPU
> +	 */
> +	spec = identify_cpu(offset, (mfspr(SPRN_PVR) | 0x8));
> +#else
> 	spec = identify_cpu(offset, mfspr(SPRN_PVR));
> +#endif
> 	do_feature_fixups(spec->cpu_features,
> 			  PTRRELOC(&__start___ftr_fixup),
> 			  PTRRELOC(&__stop___ftr_fixup));

Are we really adding support for new processors to arch/ppc?

- k

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] [POWERPC] 4xx: Use virtual PVR value to init FPU on arch/ppc 440EP
  2007-11-16 19:20 ` Kumar Gala
@ 2007-11-16 19:23   ` Josh Boyer
  0 siblings, 0 replies; 3+ messages in thread
From: Josh Boyer @ 2007-11-16 19:23 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev

On Fri, 16 Nov 2007 13:20:09 -0600
Kumar Gala <galak@kernel.crashing.org> wrote:

> 
> On Nov 16, 2007, at 11:29 AM, Josh Boyer wrote:
> 
> > 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>
> > Index: linux-2.6/arch/ppc/kernel/setup.c
> > ===================================================================
> > --- linux-2.6.orig/arch/ppc/kernel/setup.c
> > +++ linux-2.6/arch/ppc/kernel/setup.c
> > @@ -312,7 +312,14 @@ early_init(int r3, int r4, int r5)
> > 	 * Identify the CPU type and fix up code sections
> > 	 * that depend on which cpu we have.
> > 	 */
> > +#if defined(CONFIG_440EP) && defined(CONFIG_PPC_FPU)
> > +	/* We pass the virtual PVR here for 440EP as 440EP and 440GR have
> > +	 * identical PVRs and there is no reliable way to check for the FPU
> > +	 */
> > +	spec = identify_cpu(offset, (mfspr(SPRN_PVR) | 0x8));
> > +#else
> > 	spec = identify_cpu(offset, mfspr(SPRN_PVR));
> > +#endif
> > 	do_feature_fixups(spec->cpu_features,
> > 			  PTRRELOC(&__start___ftr_fixup),
> > 			  PTRRELOC(&__stop___ftr_fixup));
> 
> Are we really adding support for new processors to arch/ppc?

No.  This is to continue to support 440EP FPU in arch/ppc.  Commit
d1dfc35d3a62 switched the cputable around for EP(x)/GR(x) and arch/ppc wasn't fixed up.  So without the above patch, 440EP gets detected as 440GR and the FPU isn't initialized properly.

josh

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-11-16 19:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-16 17:29 [PATCH] [POWERPC] 4xx: Use virtual PVR value to init FPU on arch/ppc 440EP Josh Boyer
2007-11-16 19:20 ` Kumar Gala
2007-11-16 19:23   ` Josh Boyer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).