SGI O2 systems can use the rare RM5200 CPU board (Nevada). Building the kernel
with RM52xx selected, will however, cause an ARCS Exception at bootup because
the kernel was built with cpu_has_llsc defined.
Changing the macro check in asm-mips/mach-ip32/cpu-feature-overrides.h to check
for both CPU_R5000 or CPU_NEVADA and CPU_64BIT will fix the issue by defining
cpu_has_llsc to 0. The patch below does this, allowing an RM52xx kernel to be
booted on SGI O2 systems. It also allows such a CPU to be selected in
menuconfig on O2 as well.
--Kumba
--
Gentoo/MIPS Team Lead
Gentoo Foundation Board of Trustees
"Such is oft the course of deeds that move the wheels of the world: small hands
do them because they must, while the eyes of the great are elsewhere." --Elrond
diff -Naurp linux-2.6.14.6.orig/arch/mips/Kconfig linux-2.6.14.6/arch/mips/Kconfig
--- linux-2.6.14.6.orig/arch/mips/Kconfig 2006-01-19 01:36:52.000000000 -0500
+++ linux-2.6.14.6/arch/mips/Kconfig 2006-01-19 01:44:23.000000000 -0500
@@ -594,6 +594,7 @@ config SGI_IP32
select SYS_HAS_CPU_R5000
select SYS_HAS_CPU_R10000 if BROKEN
select SYS_HAS_CPU_RM7000
+ select SYS_HAS_CPU_NEVADA
select SYS_SUPPORTS_64BIT_KERNEL
select SYS_SUPPORTS_BIG_ENDIAN
help
diff -Naurp linux-2.6.14.6.orig/include/asm-mips/mach-ip32/cpu-feature-overrides.h linux-2.6.14.6/include/asm-mips/mach-ip32/cpu-feature-overrides.h
--- linux-2.6.14.6.orig/include/asm-mips/mach-ip32/cpu-feature-overrides.h 2006-01-19 01:36:52.000000000 -0500
+++ linux-2.6.14.6/include/asm-mips/mach-ip32/cpu-feature-overrides.h 2006-01-19 01:44:52.000000000 -0500
@@ -18,7 +18,7 @@
* so, for 64bit IP32 kernel we just don't use ll/sc.
* This does not affect luserland.
*/
-#if defined(CONFIG_CPU_R5000) && defined(CONFIG_64BIT)
+#if (defined(CONFIG_CPU_R5000) || defined(CONFIG_CPU_NEVADA)) && defined(CONFIG_64BIT)
#define cpu_has_llsc 0
#else
#define cpu_has_llsc 1