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?