Module Name: src
Committed By: tsutsui
Date: Sat Nov 26 14:05:53 UTC 2011
Modified Files:
src/sys/arch/amiga/amiga: locore.s
src/sys/arch/atari/atari: atari_init.c
src/sys/arch/cesfic/cesfic: locore.s
src/sys/arch/hp300/hp300: locore.s
src/sys/arch/luna68k/luna68k: locore.s
src/sys/arch/mac68k/mac68k: locore.s
src/sys/arch/mvme68k/mvme68k: locore.s
src/sys/arch/news68k/news68k: locore.s
src/sys/arch/next68k/next68k: locore.s
src/sys/arch/x68k/x68k: locore.s
Log Message:
Make sure to call pflusha before (not after) enabling MMU on
68030/68851 initialization paths.
Pointed out by isaki@ per observation of ATC status on XM6i emulator.
Tested on TT030, HP362, NWS-1750, and X68030 by me.
XXX: probably we can remove existing pflusha or TBIA calls after MMU turned
XXX: on (and before enabling cache) but I leave them as is for now to avoid
XXX: unexcpected side effects.
To generate a diff of this commit:
cvs rdiff -u -r1.153 -r1.154 src/sys/arch/amiga/amiga/locore.s
cvs rdiff -u -r1.95 -r1.96 src/sys/arch/atari/atari/atari_init.c
cvs rdiff -u -r1.26 -r1.27 src/sys/arch/cesfic/cesfic/locore.s
cvs rdiff -u -r1.163 -r1.164 src/sys/arch/hp300/hp300/locore.s
cvs rdiff -u -r1.45 -r1.46 src/sys/arch/luna68k/luna68k/locore.s
cvs rdiff -u -r1.164 -r1.165 src/sys/arch/mac68k/mac68k/locore.s
cvs rdiff -u -r1.108 -r1.109 src/sys/arch/mvme68k/mvme68k/locore.s
cvs rdiff -u -r1.60 -r1.61 src/sys/arch/news68k/news68k/locore.s
cvs rdiff -u -r1.59 -r1.60 src/sys/arch/next68k/next68k/locore.s
cvs rdiff -u -r1.106 -r1.107 src/sys/arch/x68k/x68k/locore.s
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/amiga/amiga/locore.s
diff -u src/sys/arch/amiga/amiga/locore.s:1.153 src/sys/arch/amiga/amiga/locore.s:1.154
--- src/sys/arch/amiga/amiga/locore.s:1.153 Tue Nov 15 10:57:00 2011
+++ src/sys/arch/amiga/amiga/locore.s Sat Nov 26 14:05:52 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.153 2011/11/15 10:57:00 tsutsui Exp $ */
+/* $NetBSD: locore.s,v 1.154 2011/11/26 14:05:52 tsutsui Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -969,6 +969,7 @@ LMMUenable_start:
jmp LMMUenable_end:l
#endif /* M68040 || M68060 */
Lenable030:
+ pflusha
lea Ltc,%a0
pmove %a0@,%tc
jmp LMMUenable_end:l
Index: src/sys/arch/atari/atari/atari_init.c
diff -u src/sys/arch/atari/atari/atari_init.c:1.95 src/sys/arch/atari/atari/atari_init.c:1.96
--- src/sys/arch/atari/atari/atari_init.c:1.95 Sun Jan 2 18:48:05 2011
+++ src/sys/arch/atari/atari/atari_init.c Sat Nov 26 14:05:52 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: atari_init.c,v 1.95 2011/01/02 18:48:05 tsutsui Exp $ */
+/* $NetBSD: atari_init.c,v 1.96 2011/11/26 14:05:52 tsutsui Exp $ */
/*
* Copyright (c) 1995 Leo Weppelman
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: atari_init.c,v 1.95 2011/01/02 18:48:05 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: atari_init.c,v 1.96 2011/11/26 14:05:52 tsutsui Exp $");
#include "opt_ddb.h"
#include "opt_mbtype.h"
@@ -559,6 +559,7 @@ start_c(int id, u_int ttphystart, u_int
* A = 8 bits, B = 11 bits
*/
tc = 0x82d08b00;
+ __asm volatile ("pflusha" : : );
__asm volatile ("pmove %0@,%%tc" : : "a" (&tc));
}
Index: src/sys/arch/cesfic/cesfic/locore.s
diff -u src/sys/arch/cesfic/cesfic/locore.s:1.26 src/sys/arch/cesfic/cesfic/locore.s:1.27
--- src/sys/arch/cesfic/cesfic/locore.s:1.26 Tue Nov 15 10:57:02 2011
+++ src/sys/arch/cesfic/cesfic/locore.s Sat Nov 26 14:05:52 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.26 2011/11/15 10:57:02 tsutsui Exp $ */
+/* $NetBSD: locore.s,v 1.27 2011/11/26 14:05:52 tsutsui Exp $ */
/*
* Copyright (c) 1980, 1990, 1993
@@ -307,6 +307,7 @@ Lstploaddone:
jmp Lenab1:l | avoid pc-relative
Lmotommu2:
/* XXX do TT here */
+ pflusha
RELOC(prototc, %a2)
movl #0x82c0aa00,%a2@ | value to load TC with
pmove %a2@,%tc | load it
Index: src/sys/arch/hp300/hp300/locore.s
diff -u src/sys/arch/hp300/hp300/locore.s:1.163 src/sys/arch/hp300/hp300/locore.s:1.164
--- src/sys/arch/hp300/hp300/locore.s:1.163 Tue Nov 15 10:57:02 2011
+++ src/sys/arch/hp300/hp300/locore.s Sat Nov 26 14:05:52 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.163 2011/11/15 10:57:02 tsutsui Exp $ */
+/* $NetBSD: locore.s,v 1.164 2011/11/26 14:05:52 tsutsui Exp $ */
/*
* Copyright (c) 1980, 1990, 1993
@@ -544,6 +544,7 @@ Lhighcode:
Lmotommu2:
movl #MMU_IEN+MMU_FPE,INTIOBASE+MMUBASE+MMUCMD
| enable 68881 and i-cache
+ pflusha
RELOC(prototc, %a2)
#if PGSHIFT == 13
movl #0x82d08b00,%a2@ | value to load TC with
Index: src/sys/arch/luna68k/luna68k/locore.s
diff -u src/sys/arch/luna68k/luna68k/locore.s:1.45 src/sys/arch/luna68k/luna68k/locore.s:1.46
--- src/sys/arch/luna68k/luna68k/locore.s:1.45 Tue Nov 15 13:25:44 2011
+++ src/sys/arch/luna68k/luna68k/locore.s Sat Nov 26 14:05:52 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.45 2011/11/15 13:25:44 tsutsui Exp $ */
+/* $NetBSD: locore.s,v 1.46 2011/11/26 14:05:52 tsutsui Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -266,6 +266,7 @@ Lmotommu1:
.long 0xf0100800 | pmove %a0@,mmutt0
RELOC(protott1,%a0) | tt1 range 8000.0000-ffff.ffff
.long 0xf0100c00 | pmove %a0@,mmutt1
+ pflusha
RELOC(prototc,%a0) | %tc: SRP,CRP,4KB page,A=10bit,B=10bit
pmove %a0@,%tc
/*
Index: src/sys/arch/mac68k/mac68k/locore.s
diff -u src/sys/arch/mac68k/mac68k/locore.s:1.164 src/sys/arch/mac68k/mac68k/locore.s:1.165
--- src/sys/arch/mac68k/mac68k/locore.s:1.164 Tue Nov 15 10:57:03 2011
+++ src/sys/arch/mac68k/mac68k/locore.s Sat Nov 26 14:05:53 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.164 2011/11/15 10:57:03 tsutsui Exp $ */
+/* $NetBSD: locore.s,v 1.165 2011/11/26 14:05:53 tsutsui Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -298,6 +298,7 @@ LnokillTT:
movl %a1,%a0@(4) | + segtable address
pmove %a0@,%srp | load the supervisor root pointer
movl #0x80000002,%a0@ | reinit upper half for CRP loads
+ pflusha
lea _ASM_LABEL(longscratch),%a2
#if PGSHIFT == 13
movl #0x82d08b00,%a2@ | value to load %TC with
Index: src/sys/arch/mvme68k/mvme68k/locore.s
diff -u src/sys/arch/mvme68k/mvme68k/locore.s:1.108 src/sys/arch/mvme68k/mvme68k/locore.s:1.109
--- src/sys/arch/mvme68k/mvme68k/locore.s:1.108 Tue Nov 15 10:57:03 2011
+++ src/sys/arch/mvme68k/mvme68k/locore.s Sat Nov 26 14:05:53 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.108 2011/11/15 10:57:03 tsutsui Exp $ */
+/* $NetBSD: locore.s,v 1.109 2011/11/26 14:05:53 tsutsui Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -614,6 +614,7 @@ Lnot060cache:
movc %d0,%cacr | turn on both caches
jmp Lenab1
Lmotommu2:
+ pflusha
movl #0x82c0aa00,%sp@- | value to load TC with
pmove %sp@,%tc | load it
Index: src/sys/arch/news68k/news68k/locore.s
diff -u src/sys/arch/news68k/news68k/locore.s:1.60 src/sys/arch/news68k/news68k/locore.s:1.61
--- src/sys/arch/news68k/news68k/locore.s:1.60 Sun Nov 20 15:38:00 2011
+++ src/sys/arch/news68k/news68k/locore.s Sat Nov 26 14:05:53 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.60 2011/11/20 15:38:00 tsutsui Exp $ */
+/* $NetBSD: locore.s,v 1.61 2011/11/26 14:05:53 tsutsui Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -405,6 +405,7 @@ Lmotommu2:
movl #0xc01f8143,%a0@ | use %tt1 (0xc0000000-0xdfffffff)
.long 0xf0100c00 | pmove %a0@,%tt1
+ pflusha
RELOC(prototc, %a2)
#if PGSHIFT == 13
movl #0x82d08b00,%a2@ | value to load TC with
Index: src/sys/arch/next68k/next68k/locore.s
diff -u src/sys/arch/next68k/next68k/locore.s:1.59 src/sys/arch/next68k/next68k/locore.s:1.60
--- src/sys/arch/next68k/next68k/locore.s:1.59 Tue Nov 15 10:57:03 2011
+++ src/sys/arch/next68k/next68k/locore.s Sat Nov 26 14:05:53 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.59 2011/11/15 10:57:03 tsutsui Exp $ */
+/* $NetBSD: locore.s,v 1.60 2011/11/26 14:05:53 tsutsui Exp $ */
/*
* Copyright (c) 1998 Darrin B. Jewell
@@ -430,6 +430,7 @@ Lmotommu2:
movl #MMU_IEN+MMU_FPE,INTIOBASE+MMUBASE+MMUCMD
| enable 68881 and i-cache
#endif
+ pflusha
RELOC(prototc, %a2)
movl #0x82c0aa00,%a2@ | value to load TC with
pmove %a2@,%tc | load it
Index: src/sys/arch/x68k/x68k/locore.s
diff -u src/sys/arch/x68k/x68k/locore.s:1.106 src/sys/arch/x68k/x68k/locore.s:1.107
--- src/sys/arch/x68k/x68k/locore.s:1.106 Tue Nov 15 10:57:04 2011
+++ src/sys/arch/x68k/x68k/locore.s Sat Nov 26 14:05:53 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.106 2011/11/15 10:57:04 tsutsui Exp $ */
+/* $NetBSD: locore.s,v 1.107 2011/11/26 14:05:53 tsutsui Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -891,6 +891,7 @@ Lnot060cache:
movc %d0,%cacr | turn on both caches
jmp Lenab1
Lmotommu2:
+ pflusha
#if PGSHIFT == 13
movl #0x82d08b00,%sp@- | value to load TC with
#else