Module Name: src
Committed By: thorpej
Date: Tue Jan 9 07:28:27 UTC 2024
Modified Files:
src/sys/arch/amiga/amiga: amiga_init.c
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/m68k/include: mmu_51.h
src/sys/arch/m68k/m68k: mmu_subr.s pmap_motorola.c
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/virt68k/virt68k: locore.s
src/sys/arch/x68k/x68k: locore.s
Log Message:
Statically-initialize the '851 / '030 protorp with MMU51_SRP_BITS. In
pmap_init(), re-initialize protorp with MMU51_CRP_BITS. Remove the now-
redundant code that does this in each of the m68k platforms.
To generate a diff of this commit:
cvs rdiff -u -r1.132 -r1.133 src/sys/arch/amiga/amiga/amiga_init.c
cvs rdiff -u -r1.109 -r1.110 src/sys/arch/atari/atari/atari_init.c
cvs rdiff -u -r1.38 -r1.39 src/sys/arch/cesfic/cesfic/locore.s
cvs rdiff -u -r1.178 -r1.179 src/sys/arch/hp300/hp300/locore.s
cvs rdiff -u -r1.73 -r1.74 src/sys/arch/luna68k/luna68k/locore.s
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/m68k/include/mmu_51.h
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/m68k/m68k/mmu_subr.s
cvs rdiff -u -r1.86 -r1.87 src/sys/arch/m68k/m68k/pmap_motorola.c
cvs rdiff -u -r1.179 -r1.180 src/sys/arch/mac68k/mac68k/locore.s
cvs rdiff -u -r1.122 -r1.123 src/sys/arch/mvme68k/mvme68k/locore.s
cvs rdiff -u -r1.76 -r1.77 src/sys/arch/news68k/news68k/locore.s
cvs rdiff -u -r1.78 -r1.79 src/sys/arch/next68k/next68k/locore.s
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/virt68k/virt68k/locore.s
cvs rdiff -u -r1.127 -r1.128 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/amiga_init.c
diff -u src/sys/arch/amiga/amiga/amiga_init.c:1.132 src/sys/arch/amiga/amiga/amiga_init.c:1.133
--- src/sys/arch/amiga/amiga/amiga_init.c:1.132 Wed Dec 27 03:03:40 2023
+++ src/sys/arch/amiga/amiga/amiga_init.c Tue Jan 9 07:28:25 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: amiga_init.c,v 1.132 2023/12/27 03:03:40 thorpej Exp $ */
+/* $NetBSD: amiga_init.c,v 1.133 2024/01/09 07:28:25 thorpej Exp $ */
/*
* Copyright (c) 1994 Michael L. Hitch
@@ -39,7 +39,7 @@
#include "ser.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amiga_init.c,v 1.132 2023/12/27 03:03:40 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amiga_init.c,v 1.133 2024/01/09 07:28:25 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -201,7 +201,6 @@ start_c(int id, u_int fphystart, u_int f
u_int loadbase)
{
extern char end[];
- extern u_int protorp[2];
struct cfdev *cd;
paddr_t pstart, pend;
vaddr_t vstart, vend;
@@ -785,7 +784,6 @@ start_c(int id, u_int fphystart, u_int f
/*
* setup and load SRP (see pmap.h)
*/
- (RELOC(protorp[0], u_int)) = MMU51_SRP_BITS;
__asm volatile ("pmove %0@,%%srp":: "a" (&RELOC(protorp, u_int)));
}
}
Index: src/sys/arch/atari/atari/atari_init.c
diff -u src/sys/arch/atari/atari/atari_init.c:1.109 src/sys/arch/atari/atari/atari_init.c:1.110
--- src/sys/arch/atari/atari/atari_init.c:1.109 Wed Dec 27 03:03:40 2023
+++ src/sys/arch/atari/atari/atari_init.c Tue Jan 9 07:28:25 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: atari_init.c,v 1.109 2023/12/27 03:03:40 thorpej Exp $ */
+/* $NetBSD: atari_init.c,v 1.110 2024/01/09 07:28:25 thorpej Exp $ */
/*
* Copyright (c) 1995 Leo Weppelman
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: atari_init.c,v 1.109 2023/12/27 03:03:40 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: atari_init.c,v 1.110 2024/01/09 07:28:25 thorpej Exp $");
#include "opt_ddb.h"
#include "opt_mbtype.h"
@@ -204,7 +204,6 @@ start_c(int id, u_int ttphystart, u_int
{
extern char end[];
extern void etext(void);
- extern u_long protorp[2];
paddr_t pstart; /* Next available physical address */
vaddr_t vstart; /* Next available virtual address */
vsize_t avail;
@@ -602,7 +601,6 @@ start_c(int id, u_int ttphystart, u_int
* Prepare to enable the MMU.
* Setup and load SRP (see pmap.h)
*/
- protorp[0] = MMU51_SRP_BITS;
protorp[1] = Sysseg_pa; /* + segtable address */
cpu_init_kcorehdr(kbase, Sysseg_pa);
Index: src/sys/arch/cesfic/cesfic/locore.s
diff -u src/sys/arch/cesfic/cesfic/locore.s:1.38 src/sys/arch/cesfic/cesfic/locore.s:1.39
--- src/sys/arch/cesfic/cesfic/locore.s:1.38 Tue Jan 9 04:16:24 2024
+++ src/sys/arch/cesfic/cesfic/locore.s Tue Jan 9 07:28:25 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.38 2024/01/09 04:16:24 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.39 2024/01/09 07:28:25 thorpej Exp $ */
/*
* Copyright (c) 1980, 1990, 1993
@@ -279,10 +279,8 @@ Lstart2:
Lmotommu1:
#ifdef M68030
RELOC(protorp, %a0)
- movl #MMU51_SRP_BITS,%a0@ | see pmap.h
- movl %d1,%a0@(4) | + segtable address
+ movl %d1,%a0@(4) | segtable address
pmove %a0@,%srp | load the supervisor root pointer
- movl #MMU51_CRP_BITS,%a0@ | reinit upper half for CRP loads
#endif /* M68030 */
Lstploaddone:
Index: src/sys/arch/hp300/hp300/locore.s
diff -u src/sys/arch/hp300/hp300/locore.s:1.178 src/sys/arch/hp300/hp300/locore.s:1.179
--- src/sys/arch/hp300/hp300/locore.s:1.178 Tue Jan 9 04:16:24 2024
+++ src/sys/arch/hp300/hp300/locore.s Tue Jan 9 07:28:25 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.178 2024/01/09 04:16:24 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.179 2024/01/09 07:28:25 thorpej Exp $ */
/*
* Copyright (c) 1980, 1990, 1993
@@ -459,10 +459,8 @@ Lstart3:
jra Lstploaddone
Lmotommu1:
RELOC(protorp, %a0)
- movl #MMU51_SRP_BITS,%a0@ | see pmap.h
- movl %d1,%a0@(4) | + segtable address
+ movl %d1,%a0@(4) | segtable address
pmove %a0@,%srp | load the supervisor root pointer
- movl #MMU51_CRP_BITS,%a0@ | reinit upper half for CRP loads
jra Lstploaddone | done
Lhpmmu2:
moveq #PGSHIFT,%d2
Index: src/sys/arch/luna68k/luna68k/locore.s
diff -u src/sys/arch/luna68k/luna68k/locore.s:1.73 src/sys/arch/luna68k/luna68k/locore.s:1.74
--- src/sys/arch/luna68k/luna68k/locore.s:1.73 Tue Jan 9 04:16:25 2024
+++ src/sys/arch/luna68k/luna68k/locore.s Tue Jan 9 07:28:25 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.73 2024/01/09 04:16:25 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.74 2024/01/09 07:28:25 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -280,10 +280,8 @@ Lmotommu0:
jmp Lenab1
Lmotommu1:
#endif
- RELOC(protosrp,%a0) | nolimit + share global + 4 byte PTEs
- movl %d1,%a0@(4) | + segtable address
- RELOC(protocrp,%a1)
- movl %d1,%a1@(4) | set lower half of %CRP
+ RELOC(protorp,%a0)
+ movl %d1,%a0@(4) | segtable address
pmove %a0@,%srp | load the supervisor root pointer
RELOC(protott0,%a0) | tt0 range 4000.0000-7fff.ffff
.long 0xf0100800 | pmove %a0@,mmutt0
@@ -870,11 +868,6 @@ GLOBAL(mmutype)
GLOBAL(fputype)
.long FPU_68881 | default to 68881
-GLOBAL(protosrp)
- .long MMU51_SRP_BITS,0 | prototype supervisor root pointer
-GLOBAL(protocrp)
- .long MMU51_CRP_BITS,0 | prototype CPU root pointer
-
GLOBAL(prototc)
.long MMU51_TCR_BITS | %tc -- see pmap.h
GLOBAL(protott0)
Index: src/sys/arch/m68k/include/mmu_51.h
diff -u src/sys/arch/m68k/include/mmu_51.h:1.2 src/sys/arch/m68k/include/mmu_51.h:1.3
--- src/sys/arch/m68k/include/mmu_51.h:1.2 Tue Jan 9 04:16:25 2024
+++ src/sys/arch/m68k/include/mmu_51.h Tue Jan 9 07:28:26 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: mmu_51.h,v 1.2 2024/01/09 04:16:25 thorpej Exp $ */
+/* $NetBSD: mmu_51.h,v 1.3 2024/01/09 07:28:26 thorpej Exp $ */
/*-
* Copyright (c) 1997, 2023 The NetBSD Foundation, Inc.
@@ -264,6 +264,8 @@ struct mmu51_rootptr {
#define PSR51_N __BITS(0,2) /* Number of levels */
#ifdef _KERNEL
+extern unsigned int protorp[2];
+
void mmu_load_urp51(paddr_t);
void mmu_load_urp20hp(paddr_t); /* for convenience */
#endif /* _KERNEL */
Index: src/sys/arch/m68k/m68k/mmu_subr.s
diff -u src/sys/arch/m68k/m68k/mmu_subr.s:1.1 src/sys/arch/m68k/m68k/mmu_subr.s:1.2
--- src/sys/arch/m68k/m68k/mmu_subr.s:1.1 Tue Jan 9 07:21:48 2024
+++ src/sys/arch/m68k/m68k/mmu_subr.s Tue Jan 9 07:28:26 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: mmu_subr.s,v 1.1 2024/01/09 07:21:48 thorpej Exp $ */
+/* $NetBSD: mmu_subr.s,v 1.2 2024/01/09 07:28:26 thorpej Exp $ */
/*-
* Copyright (c) 2023 The NetBSD Foundation, Inc.
@@ -93,7 +93,7 @@
* pmap_init() will re-configure it to load the CPU Root Pointer.
*/
GLOBAL(protorp)
- .long MMU51_CRP_BITS,0 | prototype CPU root pointer
+ .long MMU51_SRP_BITS,0 | prototype CPU root pointer
.text
ENTRY_NOPROFILE(mmu_load_urp51)
Index: src/sys/arch/m68k/m68k/pmap_motorola.c
diff -u src/sys/arch/m68k/m68k/pmap_motorola.c:1.86 src/sys/arch/m68k/m68k/pmap_motorola.c:1.87
--- src/sys/arch/m68k/m68k/pmap_motorola.c:1.86 Tue Jan 9 04:16:25 2024
+++ src/sys/arch/m68k/m68k/pmap_motorola.c Tue Jan 9 07:28:26 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap_motorola.c,v 1.86 2024/01/09 04:16:25 thorpej Exp $ */
+/* $NetBSD: pmap_motorola.c,v 1.87 2024/01/09 07:28:26 thorpej Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -120,7 +120,7 @@
#include "opt_m68k_arch.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap_motorola.c,v 1.86 2024/01/09 04:16:25 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap_motorola.c,v 1.87 2024/01/09 07:28:26 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -618,6 +618,7 @@ pmap_init(void)
case CPU_68020:
#ifdef M68K_MMU_MOTOROLA
if (mmutype == MMU_68851) {
+ protorp[0] = MMU51_CRP_BITS;
pmap_load_urp_func = mmu_load_urp51;
}
#endif
@@ -630,6 +631,7 @@ pmap_init(void)
#endif /* M68020 */
#if defined(M68030)
case CPU_68030:
+ protorp[0] = MMU51_CRP_BITS;
pmap_load_urp_func = mmu_load_urp51;
break;
#endif /* M68030 */
Index: src/sys/arch/mac68k/mac68k/locore.s
diff -u src/sys/arch/mac68k/mac68k/locore.s:1.179 src/sys/arch/mac68k/mac68k/locore.s:1.180
--- src/sys/arch/mac68k/mac68k/locore.s:1.179 Tue Jan 9 04:16:25 2024
+++ src/sys/arch/mac68k/mac68k/locore.s Tue Jan 9 07:28:26 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.179 2024/01/09 04:16:25 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.180 2024/01/09 07:28:26 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -399,15 +399,15 @@ Lenablepre040MMU:
.long 0xf0100c00 | movl %a0@,%tt1
LnokillTT:
+#if defined(M68020) || defined(M68030)
lea _C_LABEL(protorp),%a0
- movl #MMU51_SRP_BITS,%a0@ | see pmap.h
- movl %a1,%a0@(4) | + segtable address
+ movl %a1,%a0@(4) | segtable address
pmove %a0@,%srp | load the supervisor root pointer
- movl #MMU51_CRP_BITS,%a0@ | reinit upper half for CRP loads
pflusha
lea _ASM_LABEL(longscratch),%a2
movl #MMU51_TCR_BITS,%a2@ | value to load %TC with
pmove %a2@,%tc | load it
+#endif /* M68020 || M68030 */
Lloaddone:
Index: src/sys/arch/mvme68k/mvme68k/locore.s
diff -u src/sys/arch/mvme68k/mvme68k/locore.s:1.122 src/sys/arch/mvme68k/mvme68k/locore.s:1.123
--- src/sys/arch/mvme68k/mvme68k/locore.s:1.122 Tue Jan 9 04:16:26 2024
+++ src/sys/arch/mvme68k/mvme68k/locore.s Tue Jan 9 07:28:26 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.122 2024/01/09 04:16:26 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.123 2024/01/09 07:28:26 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -582,10 +582,8 @@ Lstart2:
Lmotommu1:
#ifdef M68030
RELOC(protorp, %a0)
- movl #MMU51_SRP_BITS,%a0@ | see pmap.h
- movl %d1,%a0@(4) | + segtable address
+ movl %d1,%a0@(4) | segtable address
pmove %a0@,%srp | load the supervisor root pointer
- movl #MMU51_CRP_BITS,%a0@ | reinit upper half for CRP loads
#endif /* M68030 */
Lstploaddone:
RELOC(mmutype, %a0)
Index: src/sys/arch/news68k/news68k/locore.s
diff -u src/sys/arch/news68k/news68k/locore.s:1.76 src/sys/arch/news68k/news68k/locore.s:1.77
--- src/sys/arch/news68k/news68k/locore.s:1.76 Tue Jan 9 04:16:26 2024
+++ src/sys/arch/news68k/news68k/locore.s Tue Jan 9 07:28:26 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.76 2024/01/09 04:16:26 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.77 2024/01/09 07:28:26 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -357,10 +357,8 @@ Lstart2:
Lmotommu1:
#ifdef M68030
RELOC(protorp, %a0)
- movl #MMU51_SRP_BITS,%a0@ | see pmap.h
- movl %d1,%a0@(4) | + segtable address
+ movl %d1,%a0@(4) | segtable address
pmove %a0@,%srp | load the supervisor root pointer
- movl #MMU51_CRP_BITS,%a0@ | reinit upper half for CRP loads
#endif /* M68030 */
Lstploaddone:
RELOC(mmutype, %a0)
Index: src/sys/arch/next68k/next68k/locore.s
diff -u src/sys/arch/next68k/next68k/locore.s:1.78 src/sys/arch/next68k/next68k/locore.s:1.79
--- src/sys/arch/next68k/next68k/locore.s:1.78 Tue Jan 9 04:16:26 2024
+++ src/sys/arch/next68k/next68k/locore.s Tue Jan 9 07:28:26 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.78 2024/01/09 04:16:26 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.79 2024/01/09 07:28:26 thorpej Exp $ */
/*
* Copyright (c) 1998 Darrin B. Jewell
@@ -337,10 +337,8 @@ Lstart3:
Lmotommu1:
#ifdef M68030
RELOC(protorp, %a0)
- movl #MMU51_SRP_BITS,%a0@ | see pmap.h
- movl %d1,%a0@(4) | + segtable address
+ movl %d1,%a0@(4) | segtable address
pmove %a0@,%srp | load the supervisor root pointer
- movl #MMU51_CRP_BITS,%a0@ | reinit upper half for CRP loads
#endif /* M68030 */
Lstploaddone:
Index: src/sys/arch/virt68k/virt68k/locore.s
diff -u src/sys/arch/virt68k/virt68k/locore.s:1.4 src/sys/arch/virt68k/virt68k/locore.s:1.5
--- src/sys/arch/virt68k/virt68k/locore.s:1.4 Tue Jan 9 04:16:27 2024
+++ src/sys/arch/virt68k/virt68k/locore.s Tue Jan 9 07:28:26 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.4 2024/01/09 04:16:27 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.5 2024/01/09 07:28:26 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -197,12 +197,11 @@ Lstart1:
.long 0x4e7b1807 | movc d1,srp
jra Lstploaddone
Lmotommu1:
+#ifdef M68030
RELOC(protorp, %a0)
- movl #MMU51_SRP_BITS,%a0@ | see pmap.h
- movl %d1,%a0@(4) | + segtable address
+ movl %d1,%a0@(4) | segtable address
pmove %a0@,%srp | load the supervisor root pointer
- movl #MMU51_CRP_BITS,%a0@ | reinit upper half for CRP loads
-
+#endif /* M68030 */
Lstploaddone:
RELOC(mmutype, %a0)
cmpl #MMU_68040,%a0@ | 68040?
Index: src/sys/arch/x68k/x68k/locore.s
diff -u src/sys/arch/x68k/x68k/locore.s:1.127 src/sys/arch/x68k/x68k/locore.s:1.128
--- src/sys/arch/x68k/x68k/locore.s:1.127 Tue Jan 9 04:16:27 2024
+++ src/sys/arch/x68k/x68k/locore.s Tue Jan 9 07:28:26 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.127 2024/01/09 04:16:27 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.128 2024/01/09 07:28:26 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -264,10 +264,8 @@ Lstart3:
jra Lstploaddone
Lmotommu1:
RELOC(protorp, %a0)
- movl #MMU51_SRP_BITS,%a0@ | nolimit + share global + 4 byte PTEs
- movl %d1,%a0@(4) | + segtable address
+ movl %d1,%a0@(4) | segtable address
pmove %a0@,%srp | load the supervisor root pointer
- movl #MMU51_CRP_BITS,%a0@ | reinit upper half for CRP loads
Lstploaddone:
RELOC(mmutype, %a0)
cmpl #MMU_68040,%a0@ | 68040?