summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2009-08-18 20:35:42 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2009-08-18 20:35:42 +0000
commit4c5c12cd38e87e3941abda444628b1ff8324599e (patch)
treed546b5b0f2da1a9542daa73cc6ef0e874e0cf688 /sys/arch
parent8d9efa277f37586408a8a26446fd3ee56eb1a705 (diff)
Disable address translation. Necessary on the RB600 where the firmware starts
running us with address translation enabled. Lifted from a diff from dms@, tested on the Thecus N1200 by me.
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/socppc/socppc/locore.S10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/arch/socppc/socppc/locore.S b/sys/arch/socppc/socppc/locore.S
index 3c0fc0af64d..a61132bdb77 100644
--- a/sys/arch/socppc/socppc/locore.S
+++ b/sys/arch/socppc/socppc/locore.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.S,v 1.6 2008/07/28 19:08:46 miod Exp $ */
+/* $OpenBSD: locore.S,v 1.7 2009/08/18 20:35:41 kettenis Exp $ */
/* $NetBSD: locore.S,v 1.2 1996/10/16 19:33:09 ws Exp $ */
/*
@@ -81,6 +81,14 @@ _ENTRY(_ASM_LABEL(start))
.globl start
.type start,@function
start:
+ /* make sure address translation is disabled */
+ mfmsr %r3
+ li %r8,PSL_DR|PSL_IR
+ andc %r3,%r3,%r8
+ sync
+ mtmsr %r3
+ isync
+
lis %r3, fwargsave@ha
stw %r29, fwargsave@l(%r3)