aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/traps.c
diff options
context:
space:
mode:
authorLeonid Yegoshin <Leonid.Yegoshin@imgtec.com>2013-10-10 04:58:59 -0400
committerRalf Baechle <ralf@linux-mips.org>2014-01-22 14:18:57 -0500
commit6de20451857ed14a4eecc28d08f6de5925d1cf96 (patch)
treeddde7c8179c1e272bcf3a4aa6a80c99ed8b44972 /arch/mips/kernel/traps.c
parent5cf8b2409c8c08f7505925d2ba78f71b362d902e (diff)
MIPS: Add printing of ES bit for Imgtec cores when cache error occurs.
The cacheer register is always implemented in the same way in the MIPS32r2 Imgtec cores so print the ES bit when an cache error occurs. Signed-off-by: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com> Signed-off-by: Markos Chandras <markos.chandras@imgtec.com> Signed-off-by: John Crispin <blogic@openwrt.org> Patchwork: http://patchwork.linux-mips.org/patch/6041/
Diffstat (limited to 'arch/mips/kernel/traps.c')
-rw-r--r--arch/mips/kernel/traps.c29
1 files changed, 21 insertions, 8 deletions
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index f40f688276c2..eef3001b6890 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -1425,14 +1425,27 @@ asmlinkage void cache_parity_error(void)
1425 printk("Decoded c0_cacheerr: %s cache fault in %s reference.\n", 1425 printk("Decoded c0_cacheerr: %s cache fault in %s reference.\n",
1426 reg_val & (1<<30) ? "secondary" : "primary", 1426 reg_val & (1<<30) ? "secondary" : "primary",
1427 reg_val & (1<<31) ? "data" : "insn"); 1427 reg_val & (1<<31) ? "data" : "insn");
1428 printk("Error bits: %s%s%s%s%s%s%s\n", 1428 if (cpu_has_mips_r2 &&
1429 reg_val & (1<<29) ? "ED " : "", 1429 ((current_cpu_data.processor_id && 0xff0000) == PRID_COMP_MIPS)) {
1430 reg_val & (1<<28) ? "ET " : "", 1430 pr_err("Error bits: %s%s%s%s%s%s%s%s\n",
1431 reg_val & (1<<26) ? "EE " : "", 1431 reg_val & (1<<29) ? "ED " : "",
1432 reg_val & (1<<25) ? "EB " : "", 1432 reg_val & (1<<28) ? "ET " : "",
1433 reg_val & (1<<24) ? "EI " : "", 1433 reg_val & (1<<27) ? "ES " : "",
1434 reg_val & (1<<23) ? "E1 " : "", 1434 reg_val & (1<<26) ? "EE " : "",
1435 reg_val & (1<<22) ? "E0 " : ""); 1435 reg_val & (1<<25) ? "EB " : "",
1436 reg_val & (1<<24) ? "EI " : "",
1437 reg_val & (1<<23) ? "E1 " : "",
1438 reg_val & (1<<22) ? "E0 " : "");
1439 } else {
1440 pr_err("Error bits: %s%s%s%s%s%s%s\n",
1441 reg_val & (1<<29) ? "ED " : "",
1442 reg_val & (1<<28) ? "ET " : "",
1443 reg_val & (1<<26) ? "EE " : "",
1444 reg_val & (1<<25) ? "EB " : "",
1445 reg_val & (1<<24) ? "EI " : "",
1446 reg_val & (1<<23) ? "E1 " : "",
1447 reg_val & (1<<22) ? "E0 " : "");
1448 }
1436 printk("IDX: 0x%08x\n", reg_val & ((1<<22)-1)); 1449 printk("IDX: 0x%08x\n", reg_val & ((1<<22)-1));
1437 1450
1438#if defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64) 1451#if defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64)