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