summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJayachandran C. <jchandra@FreeBSD.org>2011-11-18 09:30:24 +0000
committerJayachandran C. <jchandra@FreeBSD.org>2011-11-18 09:30:24 +0000
commiteeb41c230dc9c1aa98b6000e4beca8e7caed814e (patch)
treeefe76a499807f19ba7e7ce24b05ec445a3763639
parent7b5190779b459031cc46fe9850c5cfb196c55ebe (diff)
Notes
-rw-r--r--sys/mips/include/asm.h9
-rw-r--r--sys/mips/include/cpufunc.h2
-rw-r--r--sys/mips/include/cpuregs.h2
3 files changed, 12 insertions, 1 deletions
diff --git a/sys/mips/include/asm.h b/sys/mips/include/asm.h
index 82d883708fe7..12149c71dc88 100644
--- a/sys/mips/include/asm.h
+++ b/sys/mips/include/asm.h
@@ -855,6 +855,15 @@ _C_LABEL(x):
* For more info on CP0 hazards see Chapter 7 (p.99) of "MIPS32 Architecture
* For Programmers Volume III: The MIPS32 Privileged Resource Architecture"
*/
+#if defined(CPU_NLM)
+#define HAZARD_DELAY sll $0,3
+#define ITLBNOPFIX sll $0,3
+#elif defined(CPU_RMI)
+#define HAZARD_DELAY
+#define ITLBNOPFIX
+#else
#define ITLBNOPFIX nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;
#define HAZARD_DELAY nop;nop;nop;nop;nop;
+#endif
+
#endif /* !_MACHINE_ASM_H_ */
diff --git a/sys/mips/include/cpufunc.h b/sys/mips/include/cpufunc.h
index f5c24b41f80a..02311cbf66df 100644
--- a/sys/mips/include/cpufunc.h
+++ b/sys/mips/include/cpufunc.h
@@ -69,7 +69,7 @@
static __inline void
mips_barrier(void)
{
-#ifdef CPU_CNMIPS
+#if defined(CPU_CNMIPS) || defined(CPU_RMI) || defined(CPU_NLM)
__asm __volatile("" : : : "memory");
#else
__asm __volatile (".set noreorder\n\t"
diff --git a/sys/mips/include/cpuregs.h b/sys/mips/include/cpuregs.h
index 01d710d2b7b0..b47b26433cc9 100644
--- a/sys/mips/include/cpuregs.h
+++ b/sys/mips/include/cpuregs.h
@@ -200,6 +200,8 @@
/* CPU dependent mtc0 hazard hook */
#if defined(CPU_CNMIPS) || defined(CPU_RMI)
#define COP0_SYNC
+#elif defined(CPU_NLM)
+#define COP0_SYNC .word 0xc0 /* ehb */
#elif defined(CPU_SB1)
#define COP0_SYNC ssnop; ssnop; ssnop; ssnop; ssnop; ssnop; ssnop; ssnop; ssnop
#else