[linux-yocto] [PATCH 08/13] MIPS/OCTEON: TLB parity error handling
Chandrakala Chavva
cchavva.cavm at gmail.com
Mon Jan 26 22:04:14 PST 2015
From: Abhishek Paliwal <abhishek.paliwal at aricent.com>
From: David Daney <david.daney at cavium.com>
We need to temporarily disable TLB Parity checks early in the handler
so we don't get into an endless loop.
The meaning of cvmmemctl[44] changed, 0 means enabled.
Bug #8300
Signed-off-by: David Daney <david.daney at cavium.com>
Signed-off-by: Leonid Rosenboim <lrosenboim at caviumnetworks.com>
Signed-off-by: Chandrakala Chavva <cchavva at caviumnetworks.com>
Signed-off-by: Abhishek Paliwal <abhishek.paliwal at aricent.com>
---
arch/mips/kernel/genex.S | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/arch/mips/kernel/genex.S b/arch/mips/kernel/genex.S
index d84f6a5..03a878c 100644
--- a/arch/mips/kernel/genex.S
+++ b/arch/mips/kernel/genex.S
@@ -404,6 +404,26 @@ NESTED(nmi_handler, PT_SIZE, sp)
TRACE_IRQS_OFF
.endm
+ .macro __build_clear_mce
+#ifdef CONFIG_CPU_CAVIUM_OCTEON
+ /* Disable TLB Parity checks. */
+ mfc0 t2, $15,0
+ and t2, 0xff00
+ dli t0, 0x9500
+ /* In Octeon3 setting bit 44 disables TLB parity */
+ slt t2, t2, t0
+ dmfc0 t0, $11, 7
+ dli t1, (1 << 44)
+ or t0, t0, t1
+ beqz t2, 11f
+ nop
+ xor t0, t0, t1
+11 :
+ dmtc0 t0, $11, 7
+#endif
+ __build_clear_cli
+ .endm
+
.macro __build_clear_fpe
.set push
/* gas fails to assemble cfc1 for some archs (octeon).*/ \
--
1.8.1.4
More information about the linux-yocto
mailing list