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)
|