diff options
author | jchandra <jchandra@FreeBSD.org> | 2010-08-12 11:00:45 +0000 |
---|---|---|
committer | jchandra <jchandra@FreeBSD.org> | 2010-08-12 11:00:45 +0000 |
commit | 4478273e0acab3e6b1f729baf7e664f2aaca6500 (patch) | |
tree | abde43336908423167949b84fd27037e673b5b39 /sys/mips/mips/mpboot.S | |
parent | dd04fae40355355f03caa7a83a59a64280929d41 (diff) | |
download | FreeBSD-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.S | 7 |
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 |