Hello Ralf, I made a patch for cache workaround of VR4131. 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:22:07 2004 +++ linux/arch/mips/mm/c-r4k.c Fri Jan 9 01:52:45 2004 @@ -701,6 +701,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 Apr 15 01:31:39 2003 +++ linux/arch/mips/vr41xx/tanbac-tb0226/init.c Fri Jan 9 01:52:45 2004 @@ -32,7 +32,6 @@ void __init prom_init(int argc, char **argv, unsigned long magic, int *prom_vec) { - u32 config; int i; /* @@ -46,17 +45,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; - } } void __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 Thu May 22 06:36:53 2003 +++ linux/arch/mips/vr41xx/tanbac-tb0229/init.c Fri Jan 9 01:52:45 2004 @@ -37,7 +37,6 @@ void __init prom_init(int argc, char **argv, unsigned long magic, int *prom_vec) { - u32 config; int i; /* @@ -51,17 +50,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; - } } void __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 Apr 15 01:31:39 2003 +++ linux/arch/mips/vr41xx/zao-capcella/init.c Fri Jan 9 01:52:45 2004 @@ -32,7 +32,6 @@ void __init prom_init(int argc, char **argv, unsigned long magic, int *prom_vec) { - u32 config; int i; /* @@ -46,17 +45,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; - } } void __init prom_free_prom_memory (void)