The newest Sheevaplugs that we have received are using a different CPU revision (A1) to the previous Sheevaplugs (A0).
As far as I understand it, the A1 versions can be identified by "0301B" on the informational panel on the underside of the Sheevaplug:

At this stage, I believe that we have only non-eSATA Sheevaplugs with this processor, and that the issue only applies to Sheevaplugs despatched in the last couple of days.
This CPU can cause problems for the unwary, see for instance:
http://plugcomputer.org/plugforum/index.php?topic=2002.0Note that /proc/cpuinfo doesn't seem to be telling us everything we'd probably like to know; I don't have an original ex-factory plug to examine right now, but one of our multi-boots gives this:
# cat /proc/cpuinfo
Processor : Feroceon 88FR131 rev 1 (v5l)
BogoMIPS : 1192.75
Features : swp half thumb fastmult edsp
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant : 0x2
CPU part : 0x131
CPU revision : 1
Hardware : Marvell SheevaPlug Reference Board
Revision : 0000
Serial : 0000000000000000
And the newer plug, ex-factory, gives this:
# cat /proc/cpuinfo
Processor : ARM926EJ-S rev 1 (v5l)
BogoMIPS : 1192.75
Features : swp half thumb fastmult edsp
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant : 0x2
CPU part : 0x131
CPU revision : 1
Cache type : write-back
Cache clean : cp15 c7 ops
Cache lockdown : format C
Cache format : Harvard
I size : 16384
I assoc : 4
I line length : 32
I sets : 128
D size : 16384
D assoc : 4
D line length : 32
D sets : 128
Hardware : Feroceon-KW
Revision : 0000
Serial : 0000000000000000
Likewise, dmesg gives us some info on our multiboot plugs, but not on the ex-factory version. On a multiboot system, use dmesg | grep Kirkwood to discover, if you can:
Original Sheevaplug (LEDs are green and blue/yellow):
# dmesg | grep Kirkwood
Kirkwood: MV88F6281-A0, TCLK=200000000.
0301B Sheevaplug (LEDs are orange/green and blue/yellow):
# dmesg | grep Kirkwood
Kirkwood: MV88F6281-A1, TCLK=200000000
To summarise the problem; an incompatible kernel is likely to cause
severe problems on the newer Sheevaplugs. For example, the plug will not boot if flashed with the kernel provided with the original version of the
"installer". The solution proved at the plugcomputer forum states that kernel versions 2.6.32 and above are fine (it doesn't state exactly at what version the necessary code changes were introduced). We also received these patches from Globalscale, if anyone wishes to apply it against an earlier kernel version:
commit aec1bad326a99a8b0860fa9d518985ee388c9391
Author: Siddarth Gore <[email protected]>
Date: Tue Jun 9 14:41:02 2009 +0530
[ARM] Kirkwood: Add support for 6281-A1
Signed-off-by: Siddarth Gore <[email protected]>
Signed-off-by: Nicolas Pitre <[email protected]>
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
index 0f69198..0acb61f 100644
--- a/arch/arm/mach-kirkwood/common.c
+++ b/arch/arm/mach-kirkwood/common.c
@@ -838,7 +838,8 @@ int __init kirkwood_find_tclk(void)
u32 dev, rev;
kirkwood_pcie_id(&dev, &rev);
- if (dev == MV88F6281_DEV_ID && rev == MV88F6281_REV_A0)
+ if (dev == MV88F6281_DEV_ID && (rev == MV88F6281_REV_A0 ||
+ rev == MV88F6281_REV_A1))
return 200000000;
return 166666667;
@@ -872,6 +873,8 @@ static char * __init kirkwood_id(void)
return "MV88F6281-Z0";
else if (rev == MV88F6281_REV_A0)
return "MV88F6281-A0";
+ else if (rev == MV88F6281_REV_A1)
+ return "MV88F6281-A1";
else
return "MV88F6281-Rev-Unsupported";
} else if (dev == MV88F6192_DEV_ID) {
diff --git a/arch/arm/mach-kirkwood/include/mach/kirkwood.h b/arch/arm/mach-kirk
index 07af858..54c1327 100644
--- a/arch/arm/mach-kirkwood/include/mach/kirkwood.h
+++ b/arch/arm/mach-kirkwood/include/mach/kirkwood.h
@@ -101,6 +101,7 @@
#define MV88F6281_DEV_ID 0x6281
#define MV88F6281_REV_Z0 0
#define MV88F6281_REV_A0 2
+#define MV88F6281_REV_A1 3
#define MV88F6192_DEV_ID 0x6192
#define MV88F6192_REV_Z0 0