Hello Ralf, I made a patch for cache workaround of VR4131 for 2.6 too. This patch moves cache workaround to common part from board dependence part. Please apply this patch. Yoichi diff -urN -X dontdiff linux-orig/arch/mips/mm/c-r4k.c linux/arch/mips/mm/c-r4k.c --- linux-orig/arch/mips/mm/c-r4k.c Mon Jan 5 17:27:29 2004 +++ linux/arch/mips/mm/c-r4k.c Fri Jan 9 08:09:17 2004 @@ -707,6 +707,13 @@ case CPU_VR4133: write_c0_config(config & ~CONF_EB); case CPU_VR4131: + /* Workaround for cache instruction bug of VR4131 */ + if (c->processor_id == 0x0c80U || c->processor_id == 0x0c81U || + c->processor_id == 0x0c82U) { + config &= ~0x00000030U; + config |= 0x00410000U; + write_c0_config(config); + } icache_size = 1 << (10 + ((config & CONF_IC) >> 9)); c->icache.linesz = 16 << ((config & CONF_IB) >> 5); c->icache.ways = 2; diff -urN -X dontdiff linux-orig/arch/mips/vr41xx/tanbac-tb0226/init.c linux/arch/mips/vr41xx/tanbac-tb0226/init.c --- linux-orig/arch/mips/vr41xx/tanbac-tb0226/init.c Tue Nov 18 12:34:23 2003 +++ linux/arch/mips/vr41xx/tanbac-tb0226/init.c Fri Jan 9 08:09:18 2004 @@ -33,7 +33,6 @@ { int argc = fw_arg0; char **argv = (char **) fw_arg1; - u32 config; int i; /* @@ -47,17 +46,6 @@ mips_machgroup = MACH_GROUP_NEC_VR41XX; mips_machtype = MACH_TANBAC_TB0226; - - switch (current_cpu_data.processor_id) { - case PRID_VR4131_REV1_2: - config = read_c0_config(); - config &= ~0x00000030UL; - config |= 0x00410000UL; - write_c0_config(config); - break; - default: - break; - } } unsigned long __init prom_free_prom_memory(void) diff -urN -X dontdiff linux-orig/arch/mips/vr41xx/tanbac-tb0229/init.c linux/arch/mips/vr41xx/tanbac-tb0229/init.c --- linux-orig/arch/mips/vr41xx/tanbac-tb0229/init.c Tue Nov 18 12:34:23 2003 +++ linux/arch/mips/vr41xx/tanbac-tb0229/init.c Fri Jan 9 08:09:18 2004 @@ -38,7 +38,6 @@ { int argc = fw_arg0; char **argv = (char **) fw_arg1; - u32 config; int i; /* @@ -52,17 +51,6 @@ mips_machgroup = MACH_GROUP_NEC_VR41XX; mips_machtype = MACH_TANBAC_TB0229; - - switch (current_cpu_data.processor_id) { - case PRID_VR4131_REV1_2: - config = read_c0_config(); - config &= ~0x00000030UL; - config |= 0x00410000UL; - write_c0_config(config); - break; - default: - break; - } } unsigned long __init prom_free_prom_memory(void) diff -urN -X dontdiff linux-orig/arch/mips/vr41xx/zao-capcella/init.c linux/arch/mips/vr41xx/zao-capcella/init.c --- linux-orig/arch/mips/vr41xx/zao-capcella/init.c Tue Nov 18 12:34:23 2003 +++ linux/arch/mips/vr41xx/zao-capcella/init.c Fri Jan 9 08:09:18 2004 @@ -33,7 +33,6 @@ { int argc = fw_arg0; char **argv = (char **) fw_arg1; - u32 config; int i; /* @@ -47,17 +46,6 @@ mips_machgroup = MACH_GROUP_NEC_VR41XX; mips_machtype = MACH_ZAO_CAPCELLA; - - switch (current_cpu_data.processor_id) { - case PRID_VR4131_REV1_2: - config = read_c0_config(); - config &= ~0x00000030UL; - config |= 0x00410000UL; - write_c0_config(config); - break; - default: - break; - } } unsigned long __init prom_free_prom_memory(void)