diff options
author | Robert Watson <rwatson@FreeBSD.org> | 2012-02-14 20:34:25 +0000 |
---|---|---|
committer | Robert Watson <rwatson@FreeBSD.org> | 2012-02-14 20:34:25 +0000 |
commit | 79f981140923ac00c5b6402743f19902cf87bab4 (patch) | |
tree | f34ed4b6e65f26fd720fc68ab41cc9fd8643fa6c /sys/mips | |
parent | 3c7c29913361fe0e826e1ea0699a826b5be7f205 (diff) | |
download | src-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.S | 2 |
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 /* |