summaryrefslogtreecommitdiffstats
path: root/sys/mips/mips/mpboot.S
diff options
context:
space:
mode:
authorjchandra <jchandra@FreeBSD.org>2010-08-12 11:00:45 +0000
committerjchandra <jchandra@FreeBSD.org>2010-08-12 11:00:45 +0000
commit4478273e0acab3e6b1f729baf7e664f2aaca6500 (patch)
treeabde43336908423167949b84fd27037e673b5b39 /sys/mips/mips/mpboot.S
parentdd04fae40355355f03caa7a83a59a64280929d41 (diff)
downloadFreeBSD-src-4478273e0acab3e6b1f729baf7e664f2aaca6500.zip
FreeBSD-src-4478273e0acab3e6b1f729baf7e664f2aaca6500.tar.gz
SMP support in n64.
- Enable KX and UX bits on CPU startup for non-boot CPUs - Keep the KX bit when in userspace - XTLB handler needs it to access PCPU data - revert r210638 partly - we don't need to enable KX on kernel entry now Reviewed by: jmallett, imp
Diffstat (limited to 'sys/mips/mips/mpboot.S')
-rw-r--r--sys/mips/mips/mpboot.S7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/mips/mips/mpboot.S b/sys/mips/mips/mpboot.S
index 36fb2d3..0c34fe2 100644
--- a/sys/mips/mips/mpboot.S
+++ b/sys/mips/mips/mpboot.S
@@ -36,7 +36,8 @@
.set noat
.set noreorder
-#ifdef CPU_CNMIPS
+/* XXX move this to a header file */
+#if defined(CPU_CNMIPS)
#define CLEAR_STATUS \
mfc0 a0, MIPS_COP_0_STATUS ;\
li a2, (MIPS_SR_KX | MIPS_SR_SX | MIPS_SR_UX) ; \
@@ -44,6 +45,10 @@
li a2, ~(MIPS_SR_INT_IE | MIPS_SR_EXL | SR_KSU_USER | MIPS_SR_BEV) ; \
and a0, a0, a2 ; \
mtc0 a0, MIPS_COP_0_STATUS
+#elif defined(__mips_n64)
+#define CLEAR_STATUS \
+ li a0, (MIPS_SR_KX | MIPS_SR_UX) ; \
+ mtc0 a0, MIPS_COP_0_STATUS
#else
#define CLEAR_STATUS \
mtc0 zero, MIPS_COP_0_STATUS
OpenPOWER on IntegriCloud