Patchwork Unknown CPU in 2.6.29-rc1

login
register
mail settings
Submitter Sam Ravnborg
Date Jan. 16, 2009, 6:08 p.m.
Message ID <20090116180831.GA25995@uranus.ravnborg.org>
Download mbox | patch
Permalink /patch/19015/
State Superseded
Delegated to: David Miller
Headers show

Comments

Sam Ravnborg - Jan. 16, 2009, 6:08 p.m.
On Fri, Jan 16, 2009 at 12:58:32PM +0200, Meelis Roos wrote:
> After Sam's insw/... fix, todays 2.6.29-rc1+git boots up and seems fo 
> work on E3500 with 2 USII-400's. However, the CPU has suddenly became 
> unknown (it was known in 2.6.27):
> 
> [  136.434591] CPU: Unknown chip, impl[0x17] vers[0x11]
> [  136.434649] FPU: Unknown chip, impl[0x17] vers[0x11]
> [  136.436067] fhc: Board #1, Version[1] PartID[fa0] Manuf[3e] (Central)
> [  136.436823] fhc: Board #3, Version[1] PartID[fa0] Manuf[3e] (JTAG Master)
> 
> Btw, these fhc messages appear later in boot process than before. 
> Before the boards were detected just after 'Booting Linux':
> Booting Linux...
> CENTRAL: Detected 5 slot Enterprise system. cfreg[68] cver[78]
> FHC(board 1): Version[1] PartID[fa0] Manuf[3e] (CENTRAL)
> FHC(board 3): Version[1] PartID[fa0] Manuf[3e] (JTAG Master)
> FHC(board 1): Version[1] PartID[fa0] Manuf[3e]
> FHC(board 7): Version[1] PartID[fa0] Manuf[3e]
> 
> Now they are after 'Brought up 2 CPUs' together with unknown CPU 
> messages.

Can you thr if the following fix the cpu problem.

	Sam

--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Meelis Roos - Jan. 16, 2009, 8:09 p.m.
> > Now they are after 'Brought up 2 CPUs' together with unknown CPU 
> > messages.
> 
> Can you thr if the following fix the cpu problem.

It works, thanks! It's now the following as it should be:

cpu             : TI UltraSparc II  (BlackBird)
fpu             : UltraSparc II integrated FPU
Sam Ravnborg - Jan. 16, 2009, 8:36 p.m.
On Fri, Jan 16, 2009 at 10:09:19PM +0200, Meelis Roos wrote:
> > > Now they are after 'Brought up 2 CPUs' together with unknown CPU 
> > > messages.
> > 
> > Can you thr if the following fix the cpu problem.
> 
> It works, thanks! It's now the following as it should be:
> 
> cpu             : TI UltraSparc II  (BlackBird)
> fpu             : UltraSparc II integrated FPU

Thanks for testing.

I would be very suprised if this has any influence on the
other issue you reported.

	Sam
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/arch/sparc/kernel/cpu.c b/arch/sparc/kernel/cpu.c
index f0b8255..32d32b4 100644
--- a/arch/sparc/kernel/cpu.c
+++ b/arch/sparc/kernel/cpu.c
@@ -239,14 +239,26 @@  unsigned int fsr_storage;
 
 static void set_cpu_and_fpu(int psr_impl, int psr_vers, int fpu_vers)
 {
+	const struct manufacturer_info *manuf;
+	int i;
+
 	sparc_cpu_type = NULL;
 	sparc_fpu_type = NULL;
-	if (psr_impl < ARRAY_SIZE(manufacturer_info))
+	manuf = NULL;
+
+	for (i = 0; i < ARRAY_SIZE(manufacturer_info); i++)
+	{
+		if (psr_impl == manufacturer_info[i].psr_impl) {
+			manuf = &manufacturer_info[i];
+			break;
+		}
+	}
+	if (manuf != NULL)
 	{
 		const struct cpu_info *cpu;
 		const struct fpu_info *fpu;
 
-		cpu = &manufacturer_info[psr_impl].cpu_info[0];
+		cpu = &manuf->cpu_info[0];
 		while (cpu->psr_vers != -1)
 		{
 			if (cpu->psr_vers == psr_vers) {
@@ -256,7 +268,7 @@  static void set_cpu_and_fpu(int psr_impl, int psr_vers, int fpu_vers)
 			}
 			cpu++;
 		}
-		fpu =  &manufacturer_info[psr_impl].fpu_info[0];
+		fpu =  &manuf->fpu_info[0];
 		while (fpu->fp_vers != -1)
 		{
 			if (fpu->fp_vers == fpu_vers) {