aboutsummaryrefslogtreecommitdiff
path: root/sys/mips
diff options
context:
space:
mode:
authorRobert Watson <rwatson@FreeBSD.org>2012-02-14 20:34:25 +0000
committerRobert Watson <rwatson@FreeBSD.org>2012-02-14 20:34:25 +0000
commit79f981140923ac00c5b6402743f19902cf87bab4 (patch)
treef34ed4b6e65f26fd720fc68ab41cc9fd8643fa6c /sys/mips
parent3c7c29913361fe0e826e1ea0699a826b5be7f205 (diff)
downloadsrc-79f981140923ac00c5b6402743f19902cf87bab4.tar.gz
src-79f981140923ac00c5b6402743f19902cf87bab4.zip
When initialising the CP0 status register during boot on 64-bit MIPS,
set all three of the kernel, supervisor, and user-mode 64-bit mode flags. While FreeBSD does not currently use the supervisor ring (and hence this is effectively a NOP on most systems), doing this avoids triggering an exception on 64-bit MIPS CPUs that don't support 32-bit compatibility mode, and therefore don't allow clearing the SX bit. Reviewed by: gonzo MFC after: 3 days Sponsored by: DARPA, SRI International
Notes
Notes: svn path=/head/; revision=231712
Diffstat (limited to 'sys/mips')
-rw-r--r--sys/mips/mips/locore.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/mips/mips/locore.S b/sys/mips/mips/locore.S
index c6e78a26c5d0..3b967a2da166 100644
--- a/sys/mips/mips/locore.S
+++ b/sys/mips/mips/locore.S
@@ -118,7 +118,7 @@ VECTOR(_locore, unknown)
*/
li t1, MIPS_SR_COP_1_BIT
#ifdef __mips_n64
- or t1, MIPS_SR_KX | MIPS_SR_UX
+ or t1, MIPS_SR_KX | MIPS_SR_SX | MIPS_SR_UX
#endif
#endif
/*