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?

Reply via email to