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

Reply via email to