Module Name: src
Committed By: thorpej
Date: Tue Jan 9 04:16:27 UTC 2024
Modified Files:
src/sys/arch/amiga/amiga: genassym.cf locore.s
src/sys/arch/amiga/conf: files.amiga
src/sys/arch/amiga/include: cpu.h
src/sys/arch/atari/atari: genassym.cf locore.s
src/sys/arch/atari/conf: files.atari
src/sys/arch/atari/include: cpu.h
src/sys/arch/cesfic/cesfic: genassym.cf locore.s
src/sys/arch/cesfic/conf: files.cesfic std.cesfic
src/sys/arch/cesfic/include: cpu.h
src/sys/arch/hp300/conf: files.hp300
src/sys/arch/hp300/hp300: locore.s
src/sys/arch/hp300/include: cpu.h
src/sys/arch/luna68k/conf: files.luna68k
src/sys/arch/luna68k/include: cpu.h
src/sys/arch/luna68k/luna68k: genassym.cf locore.s
src/sys/arch/m68k/include: mmu_40.h mmu_51.h
src/sys/arch/m68k/m68k: pmap_motorola.c
src/sys/arch/mac68k/conf: files.mac68k
src/sys/arch/mac68k/include: cpu.h
src/sys/arch/mac68k/mac68k: genassym.cf locore.s
src/sys/arch/mvme68k/conf: files.mvme68k
src/sys/arch/mvme68k/include: cpu.h
src/sys/arch/mvme68k/mvme68k: locore.s
src/sys/arch/news68k/conf: files.news68k
src/sys/arch/news68k/include: cpu.h
src/sys/arch/news68k/news68k: genassym.cf locore.s
src/sys/arch/next68k/conf: files.next68k
src/sys/arch/next68k/include: cpu.h
src/sys/arch/next68k/next68k: genassym.cf locore.s
src/sys/arch/virt68k/conf: files.virt68k
src/sys/arch/virt68k/include: cpu.h
src/sys/arch/virt68k/virt68k: locore.s
src/sys/arch/x68k/conf: files.x68k
src/sys/arch/x68k/include: cpu.h
src/sys/arch/x68k/x68k: genassym.cf locore.s
Log Message:
Remove duplicated / slightly-tweaked loadustp() (load user segment table)
routines from all of the m68k ports using the shared pmap. Instead, in
pmap_init(), set up a function pointer to the appropriate mmu_load_urp*()
function in mmu_subr.s.
To generate a diff of this commit:
cvs rdiff -u -r1.35 -r1.36 src/sys/arch/amiga/amiga/genassym.cf
cvs rdiff -u -r1.165 -r1.166 src/sys/arch/amiga/amiga/locore.s
cvs rdiff -u -r1.185 -r1.186 src/sys/arch/amiga/conf/files.amiga
cvs rdiff -u -r1.83 -r1.84 src/sys/arch/amiga/include/cpu.h
cvs rdiff -u -r1.38 -r1.39 src/sys/arch/atari/atari/genassym.cf
cvs rdiff -u -r1.121 -r1.122 src/sys/arch/atari/atari/locore.s
cvs rdiff -u -r1.124 -r1.125 src/sys/arch/atari/conf/files.atari
cvs rdiff -u -r1.74 -r1.75 src/sys/arch/atari/include/cpu.h
cvs rdiff -u -r1.20 -r1.21 src/sys/arch/cesfic/cesfic/genassym.cf
cvs rdiff -u -r1.37 -r1.38 src/sys/arch/cesfic/cesfic/locore.s
cvs rdiff -u -r1.18 -r1.19 src/sys/arch/cesfic/conf/files.cesfic
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/cesfic/conf/std.cesfic
cvs rdiff -u -r1.33 -r1.34 src/sys/arch/cesfic/include/cpu.h
cvs rdiff -u -r1.92 -r1.93 src/sys/arch/hp300/conf/files.hp300
cvs rdiff -u -r1.177 -r1.178 src/sys/arch/hp300/hp300/locore.s
cvs rdiff -u -r1.73 -r1.74 src/sys/arch/hp300/include/cpu.h
cvs rdiff -u -r1.31 -r1.32 src/sys/arch/luna68k/conf/files.luna68k
cvs rdiff -u -r1.38 -r1.39 src/sys/arch/luna68k/include/cpu.h
cvs rdiff -u -r1.26 -r1.27 src/sys/arch/luna68k/luna68k/genassym.cf
cvs rdiff -u -r1.72 -r1.73 src/sys/arch/luna68k/luna68k/locore.s
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/m68k/include/mmu_40.h \
src/sys/arch/m68k/include/mmu_51.h
cvs rdiff -u -r1.85 -r1.86 src/sys/arch/m68k/m68k/pmap_motorola.c
cvs rdiff -u -r1.131 -r1.132 src/sys/arch/mac68k/conf/files.mac68k
cvs rdiff -u -r1.102 -r1.103 src/sys/arch/mac68k/include/cpu.h
cvs rdiff -u -r1.44 -r1.45 src/sys/arch/mac68k/mac68k/genassym.cf
cvs rdiff -u -r1.178 -r1.179 src/sys/arch/mac68k/mac68k/locore.s
cvs rdiff -u -r1.65 -r1.66 src/sys/arch/mvme68k/conf/files.mvme68k
cvs rdiff -u -r1.51 -r1.52 src/sys/arch/mvme68k/include/cpu.h
cvs rdiff -u -r1.121 -r1.122 src/sys/arch/mvme68k/mvme68k/locore.s
cvs rdiff -u -r1.36 -r1.37 src/sys/arch/news68k/conf/files.news68k
cvs rdiff -u -r1.46 -r1.47 src/sys/arch/news68k/include/cpu.h
cvs rdiff -u -r1.33 -r1.34 src/sys/arch/news68k/news68k/genassym.cf
cvs rdiff -u -r1.75 -r1.76 src/sys/arch/news68k/news68k/locore.s
cvs rdiff -u -r1.42 -r1.43 src/sys/arch/next68k/conf/files.next68k
cvs rdiff -u -r1.52 -r1.53 src/sys/arch/next68k/include/cpu.h
cvs rdiff -u -r1.32 -r1.33 src/sys/arch/next68k/next68k/genassym.cf
cvs rdiff -u -r1.77 -r1.78 src/sys/arch/next68k/next68k/locore.s
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/virt68k/conf/files.virt68k
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/virt68k/include/cpu.h
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/virt68k/virt68k/locore.s
cvs rdiff -u -r1.83 -r1.84 src/sys/arch/x68k/conf/files.x68k
cvs rdiff -u -r1.63 -r1.64 src/sys/arch/x68k/include/cpu.h
cvs rdiff -u -r1.39 -r1.40 src/sys/arch/x68k/x68k/genassym.cf
cvs rdiff -u -r1.126 -r1.127 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/genassym.cf
diff -u src/sys/arch/amiga/amiga/genassym.cf:1.35 src/sys/arch/amiga/amiga/genassym.cf:1.36
--- src/sys/arch/amiga/amiga/genassym.cf:1.35 Wed Dec 27 17:35:34 2023
+++ src/sys/arch/amiga/amiga/genassym.cf Tue Jan 9 04:16:23 2024
@@ -1,4 +1,4 @@
-# $NetBSD: genassym.cf,v 1.35 2023/12/27 17:35:34 thorpej Exp $
+# $NetBSD: genassym.cf,v 1.36 2024/01/09 04:16:23 thorpej Exp $
#
# Copyright (c) 1982, 1990, 1993
@@ -91,6 +91,8 @@ export MMU51_CRP_BITS
export MMU51_TCR_BITS
export MMU40_TCR_BITS
+define M68K_MMU_MOTOROLA 1
+
# lwp & proc fields and values
define L_PCB offsetof(struct lwp, l_addr)
define L_PROC offsetof(struct lwp, l_proc)
Index: src/sys/arch/amiga/amiga/locore.s
diff -u src/sys/arch/amiga/amiga/locore.s:1.165 src/sys/arch/amiga/amiga/locore.s:1.166
--- src/sys/arch/amiga/amiga/locore.s:1.165 Wed Dec 27 03:03:40 2023
+++ src/sys/arch/amiga/amiga/locore.s Tue Jan 9 04:16:23 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.165 2023/12/27 03:03:40 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.166 2024/01/09 04:16:23 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -1119,35 +1119,6 @@ ENTRY(probeva)
rts
/*
- * Load a new user segment table pointer.
- */
-ENTRY(loadustp)
- movl %sp@(4),%d0 | new USTP
-#ifdef M68060
- cmpl #CPU_68060,_C_LABEL(cputype) | 68060?
- jeq Lldustp060 | yes, skip
-#endif
- cmpl #MMU_68040,_C_LABEL(mmutype) | 68040?
- jeq Lldustp040 | yes, skip
- pflusha | flush entire TLB
- lea _C_LABEL(protorp),%a0 | CRP prototype
- movl %d0,%a0@(4) | stash USTP
- pmove %a0@,%crp | load root pointer
- movl #CACHE_CLR,%d0
- movc %d0,%cacr | invalidate cache(s)
- rts
-#ifdef M68060
-Lldustp060:
- movc %cacr,%d1
- orl #IC60_CUBC,%d1 | clear user btc entries
- movc %d1,%cacr
-#endif
-Lldustp040:
- .word 0xf518 | pflusha
- .word 0x4e7b,0x0806 | movec d0,URP
- rts
-
-/*
* Handle the nitty-gritty of rebooting the machine.
*
*/
@@ -1417,8 +1388,6 @@ GLOBAL(ectype)
.long EC_NONE
GLOBAL(fputype)
.long FPU_NONE
-GLOBAL(protorp)
- .long MMU51_CRP_BITS,0 | prototype root pointer
GLOBAL(delaydivisor)
.long 12 | should be enough for 80 MHz 68060
| will be adapted to other CPUs in
Index: src/sys/arch/amiga/conf/files.amiga
diff -u src/sys/arch/amiga/conf/files.amiga:1.185 src/sys/arch/amiga/conf/files.amiga:1.186
--- src/sys/arch/amiga/conf/files.amiga:1.185 Wed May 3 13:49:30 2023
+++ src/sys/arch/amiga/conf/files.amiga Tue Jan 9 04:16:23 2024
@@ -1,4 +1,4 @@
-# $NetBSD: files.amiga,v 1.185 2023/05/03 13:49:30 phx Exp $
+# $NetBSD: files.amiga,v 1.186 2024/01/09 04:16:23 thorpej Exp $
# maxpartitions must be first item in files.${ARCH}.newconf
maxpartitions 16 # NOTE THAT AMIGA IS SPECIAL!
@@ -491,6 +491,7 @@ file arch/amiga/amiga/cc.c
file dev/md_root.c memory_disk_hooks
file arch/m68k/m68k/cacheops.c
file arch/m68k/m68k/db_memrw.c ddb
+file arch/m68k/m68k/mmu_subr.s
file arch/m68k/m68k/pmap_motorola.c
file arch/m68k/m68k/procfs_machdep.c procfs
file arch/m68k/m68k/sys_machdep.c
Index: src/sys/arch/amiga/include/cpu.h
diff -u src/sys/arch/amiga/include/cpu.h:1.83 src/sys/arch/amiga/include/cpu.h:1.84
--- src/sys/arch/amiga/include/cpu.h:1.83 Sat Nov 23 19:40:34 2019
+++ src/sys/arch/amiga/include/cpu.h Tue Jan 9 04:16:23 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.83 2019/11/23 19:40:34 ad Exp $ */
+/* $NetBSD: cpu.h,v 1.84 2024/01/09 04:16:23 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -148,7 +148,6 @@ void drsc_handler(void);
*/
void clearseg(vm_offset_t);
void doboot(void) __attribute__((__noreturn__));
-void loadustp(int);
void physcopyseg(vm_offset_t, vm_offset_t);
u_int probeva(u_int, u_int);
Index: src/sys/arch/atari/atari/genassym.cf
diff -u src/sys/arch/atari/atari/genassym.cf:1.38 src/sys/arch/atari/atari/genassym.cf:1.39
--- src/sys/arch/atari/atari/genassym.cf:1.38 Wed Dec 27 17:35:34 2023
+++ src/sys/arch/atari/atari/genassym.cf Tue Jan 9 04:16:23 2024
@@ -1,4 +1,4 @@
-# $NetBSD: genassym.cf,v 1.38 2023/12/27 17:35:34 thorpej Exp $
+# $NetBSD: genassym.cf,v 1.39 2024/01/09 04:16:23 thorpej Exp $
#-
# Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -74,6 +74,8 @@ export MMU51_CRP_BITS
export MMU51_TCR_BITS
export MMU40_TCR_BITS
+define M68K_MMU_MOTOROLA 1
+
# lwp & proc fields and values
define L_PCB offsetof(struct lwp, l_addr)
define L_PROC offsetof(struct lwp, l_proc)
Index: src/sys/arch/atari/atari/locore.s
diff -u src/sys/arch/atari/atari/locore.s:1.121 src/sys/arch/atari/atari/locore.s:1.122
--- src/sys/arch/atari/atari/locore.s:1.121 Wed Dec 27 03:03:41 2023
+++ src/sys/arch/atari/atari/locore.s Tue Jan 9 04:16:23 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.121 2023/12/27 03:03:41 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.122 2024/01/09 04:16:23 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -1137,35 +1137,6 @@ ENTRY(probeva)
rts
/*
- * Load a new user segment table pointer.
- */
-ENTRY(loadustp)
- movl %sp@(4),%d0 | new USTP
-#if defined(M68060)
- cmpl #CPU_68060,_C_LABEL(cputype) | 68060?
- jeq Lldustp060 | yes, skip
-#endif
- cmpl #MMU_68040,_C_LABEL(mmutype) | 68040?
- jeq Lldustp040 | yes, skip
- pflusha | flush entire TLB
- lea _C_LABEL(protorp),%a0 | CRP prototype
- movl %d0,%a0@(4) | stash USTP
- pmove %a0@,%crp | load root pointer
- movl #CACHE_CLR,%d0
- movc %d0,%cacr | invalidate on-chip d-cache
- rts
-#if defined(M68060)
-Lldustp060:
- movc %cacr,%d1
- orl #IC60_CUBC,%d1 | clear user branch cache entries
- movc %d1,%cacr
-#endif
-Lldustp040:
- .word 0xf518 | pflusha
- .word 0x4e7b,0x0806 | movec d0,URP
- rts
-
-/*
* Set processor priority level calls. Most are implemented with
* inline asm expansions. However, spl0 requires special handling
* as we need to check for our emulated software interrupts.
@@ -1259,8 +1230,6 @@ Ldorebootend:
.p2align 2
.space PAGE_SIZE
ASLOCAL(tmpstk)
-GLOBAL(protorp)
- .long MMU51_CRP_BITS,0 | prototype root pointer
#ifdef M68060 /* XXX */
L60iem: .long 0
Index: src/sys/arch/atari/conf/files.atari
diff -u src/sys/arch/atari/conf/files.atari:1.124 src/sys/arch/atari/conf/files.atari:1.125
--- src/sys/arch/atari/conf/files.atari:1.124 Sat Jun 25 13:17:04 2022
+++ src/sys/arch/atari/conf/files.atari Tue Jan 9 04:16:23 2024
@@ -1,5 +1,5 @@
#
-# $NetBSD: files.atari,v 1.124 2022/06/25 13:17:04 tsutsui Exp $
+# $NetBSD: files.atari,v 1.125 2024/01/09 04:16:23 thorpej Exp $
maxpartitions 16
@@ -220,6 +220,7 @@ file arch/m68k/m68k/cacheops.c
file arch/m68k/m68k/db_memrw.c ddb
file arch/m68k/m68k/fpu.c compile-with "${M68K_KERN_FPU}"
file arch/m68k/m68k/m68k_trap.c
+file arch/m68k/m68k/mmu_subr.s
file arch/m68k/m68k/pmap_motorola.c
file arch/m68k/m68k/procfs_machdep.c procfs
file arch/m68k/m68k/sys_machdep.c
Index: src/sys/arch/atari/include/cpu.h
diff -u src/sys/arch/atari/include/cpu.h:1.74 src/sys/arch/atari/include/cpu.h:1.75
--- src/sys/arch/atari/include/cpu.h:1.74 Fri Jan 6 10:28:28 2023
+++ src/sys/arch/atari/include/cpu.h Tue Jan 9 04:16:23 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.74 2023/01/06 10:28:28 tsutsui Exp $ */
+/* $NetBSD: cpu.h,v 1.75 2024/01/09 04:16:23 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -160,7 +160,6 @@ const char *fpu_describe(int);
*/
void clearseg(paddr_t);
void doboot(void);
-void loadustp(int);
void physcopyseg(paddr_t, paddr_t);
u_int probeva(u_int, u_int);
Index: src/sys/arch/cesfic/cesfic/genassym.cf
diff -u src/sys/arch/cesfic/cesfic/genassym.cf:1.20 src/sys/arch/cesfic/cesfic/genassym.cf:1.21
--- src/sys/arch/cesfic/cesfic/genassym.cf:1.20 Wed Dec 27 17:35:34 2023
+++ src/sys/arch/cesfic/cesfic/genassym.cf Tue Jan 9 04:16:24 2024
@@ -1,4 +1,4 @@
-# $NetBSD: genassym.cf,v 1.20 2023/12/27 17:35:34 thorpej Exp $
+# $NetBSD: genassym.cf,v 1.21 2024/01/09 04:16:24 thorpej Exp $
#
# Copyright (c) 1982, 1990, 1993
@@ -54,12 +54,7 @@ define MMU_HP MMU_HP
define MMU_68851 MMU_68851
# MMU configuration options
-ifdef M68K_MMU_HP
-define M68K_MMU_HP 1
-endif
-ifdef M68K_MMU_MOTOROLA
define M68K_MMU_MOTOROLA 1
-endif
# values for cputype
define CPU_68020 CPU_68020
Index: src/sys/arch/cesfic/cesfic/locore.s
diff -u src/sys/arch/cesfic/cesfic/locore.s:1.37 src/sys/arch/cesfic/cesfic/locore.s:1.38
--- src/sys/arch/cesfic/cesfic/locore.s:1.37 Wed Dec 27 03:03:41 2023
+++ src/sys/arch/cesfic/cesfic/locore.s Tue Jan 9 04:16:24 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.37 2023/12/27 03:03:41 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.38 2024/01/09 04:16:24 thorpej Exp $ */
/*
* Copyright (c) 1980, 1990, 1993
@@ -277,11 +277,13 @@ Lstart2:
.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
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)
@@ -798,48 +800,6 @@ Lsldone:
#endif
/*
- * Load a new user segment table pointer.
- */
-ENTRY(loadustp)
-#if defined(M68K_MMU_MOTOROLA)
- tstl _C_LABEL(mmutype) | HP MMU?
- jeq Lhpmmu9 | yes, skip
- movl %sp@(4),%d0 | new USTP
-#if defined(M68040)
- cmpl #MMU_68040,_C_LABEL(mmutype) | 68040?
- jne LmotommuC | no, skip
- .word 0xf518 | yes, pflusha
- .long 0x4e7b0806 | movc %d0,%urp
- rts
-LmotommuC:
-#endif
- pflusha | flush entire TLB
- lea _C_LABEL(protorp),%a0 | CRP prototype
- movl %d0,%a0@(4) | stash USTP
- pmove %a0@,%crp | load root pointer
- movl #CACHE_CLR,%d0
- movc %d0,%cacr | invalidate cache(s)
- rts
-Lhpmmu9:
-#endif
-#if defined(M68K_MMU_HP)
- movl #CACHE_CLR,%d0
- movc %d0,%cacr | invalidate cache(s)
- MMUADDR(%a0)
- movl %a0@(MMUTBINVAL),%d1 | invalidate TLB
- tstl _C_LABEL(ectype) | have external VAC?
- jle 1f | no, skip
- andl #~MMU_CEN,%a0@(MMUCMD) | toggle cache enable
- orl #MMU_CEN,%a0@(MMUCMD) | to clear data cache
-1:
- movl %sp@(4),%d0
- moveq #PGSHIFT,%d1
- lsrl %d1,%d0 | convert to page frame
- movl %d0,%a0@(MMUUSTP) | load a new USTP
-#endif
- rts
-
-/*
* Set processor priority level calls. Most are implemented with
* inline asm expansions. However, spl0 requires special handling
* as we need to check for our emulated software interrupts.
@@ -889,8 +849,6 @@ GLOBAL(cputype)
.long CPU_68020 | default to 68020 CPU
GLOBAL(fputype)
.long FPU_68881 | default to 68881 FPU
-GLOBAL(protorp)
- .long 0,0 | prototype root pointer
GLOBAL(prototc)
.long 0 | prototype translation control
Index: src/sys/arch/cesfic/conf/files.cesfic
diff -u src/sys/arch/cesfic/conf/files.cesfic:1.18 src/sys/arch/cesfic/conf/files.cesfic:1.19
--- src/sys/arch/cesfic/conf/files.cesfic:1.18 Mon Feb 18 01:12:22 2019
+++ src/sys/arch/cesfic/conf/files.cesfic Tue Jan 9 04:16:24 2024
@@ -1,4 +1,4 @@
-# $NetBSD: files.cesfic,v 1.18 2019/02/18 01:12:22 thorpej Exp $
+# $NetBSD: files.cesfic,v 1.19 2024/01/09 04:16:24 thorpej Exp $
#
# cesfic-specific configuration info
@@ -59,6 +59,7 @@ file arch/m68k/m68k/cacheops.c
file arch/m68k/m68k/db_memrw.c ddb | kgdb
file arch/m68k/m68k/kgdb_machdep.c kgdb
file arch/m68k/m68k/m68k_trap.c
+file arch/m68k/m68k/mmu_subr.s
file arch/m68k/m68k/pmap_motorola.c
file arch/m68k/m68k/procfs_machdep.c procfs
file arch/m68k/m68k/sys_machdep.c
Index: src/sys/arch/cesfic/conf/std.cesfic
diff -u src/sys/arch/cesfic/conf/std.cesfic:1.5 src/sys/arch/cesfic/conf/std.cesfic:1.6
--- src/sys/arch/cesfic/conf/std.cesfic:1.5 Sun Sep 19 02:09:27 2010
+++ src/sys/arch/cesfic/conf/std.cesfic Tue Jan 9 04:16:24 2024
@@ -1,4 +1,4 @@
-# $NetBSD: std.cesfic,v 1.5 2010/09/19 02:09:27 tsutsui Exp $
+# $NetBSD: std.cesfic,v 1.6 2024/01/09 04:16:24 thorpej Exp $
#
# Options/devices that all cesfics should have
#
@@ -7,4 +7,6 @@ machine cesfic m68k
include "conf/std" # MI standard options
include "arch/m68k/conf/std.m68k" # m68k standard options
+options M68040 # All FIC8234 have a 68040
+
options EXEC_AOUT # support for exec'ing a.out
Index: src/sys/arch/cesfic/include/cpu.h
diff -u src/sys/arch/cesfic/include/cpu.h:1.33 src/sys/arch/cesfic/include/cpu.h:1.34
--- src/sys/arch/cesfic/include/cpu.h:1.33 Sat Nov 23 19:40:34 2019
+++ src/sys/arch/cesfic/include/cpu.h Tue Jan 9 04:16:24 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.33 2019/11/23 19:40:34 ad Exp $ */
+/* $NetBSD: cpu.h,v 1.34 2024/01/09 04:16:24 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -110,8 +110,6 @@ extern int astpending; /* need to trap
#endif /* ! M68K_MMU_MOTOROLA */
/* locore.s functions */
-void loadustp(int);
-
void doboot(void)
__attribute__((__noreturn__));
Index: src/sys/arch/hp300/conf/files.hp300
diff -u src/sys/arch/hp300/conf/files.hp300:1.92 src/sys/arch/hp300/conf/files.hp300:1.93
--- src/sys/arch/hp300/conf/files.hp300:1.92 Mon Feb 18 01:12:22 2019
+++ src/sys/arch/hp300/conf/files.hp300 Tue Jan 9 04:16:24 2024
@@ -1,4 +1,4 @@
-# $NetBSD: files.hp300,v 1.92 2019/02/18 01:12:22 thorpej Exp $
+# $NetBSD: files.hp300,v 1.93 2024/01/09 04:16:24 thorpej Exp $
#
# hp300-specific configuration info
@@ -220,6 +220,7 @@ file arch/m68k/m68k/db_memrw.c ddb | kg
file arch/m68k/m68k/fpu.c compile-with "${M68K_KERN_FPU}"
file arch/m68k/m68k/kgdb_machdep.c kgdb
file arch/m68k/m68k/m68k_trap.c
+file arch/m68k/m68k/mmu_subr.s
file arch/m68k/m68k/pmap_motorola.c
file arch/m68k/m68k/procfs_machdep.c procfs
file arch/m68k/m68k/sys_machdep.c
Index: src/sys/arch/hp300/hp300/locore.s
diff -u src/sys/arch/hp300/hp300/locore.s:1.177 src/sys/arch/hp300/hp300/locore.s:1.178
--- src/sys/arch/hp300/hp300/locore.s:1.177 Wed Dec 27 03:03:41 2023
+++ src/sys/arch/hp300/hp300/locore.s Tue Jan 9 04:16:24 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.177 2023/12/27 03:03:41 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.178 2024/01/09 04:16:24 thorpej Exp $ */
/*
* Copyright (c) 1980, 1990, 1993
@@ -1072,48 +1072,6 @@ Lnocache8:
rts
/*
- * Load a new user segment table pointer.
- */
-ENTRY(loadustp)
-#if defined(M68K_MMU_MOTOROLA)
- tstl _C_LABEL(mmutype) | HP MMU?
- jeq Lhpmmu9 | yes, skip
- movl %sp@(4),%d0 | new USTP
-#if defined(M68040)
- cmpl #MMU_68040,_C_LABEL(mmutype) | 68040?
- jne LmotommuC | no, skip
- .word 0xf518 | yes, pflusha
- .long 0x4e7b0806 | movc %d0,%urp
- rts
-LmotommuC:
-#endif
- pflusha | flush entire TLB
- lea _C_LABEL(protorp),%a0 | CRP prototype
- movl %d0,%a0@(4) | stash USTP
- pmove %a0@,%crp | load root pointer
- movl #CACHE_CLR,%d0
- movc %d0,%cacr | invalidate cache(s)
- rts
-Lhpmmu9:
-#endif
-#if defined(M68K_MMU_HP)
- movl #CACHE_CLR,%d0
- movc %d0,%cacr | invalidate cache(s)
- MMUADDR(%a0)
- movl %a0@(MMUTBINVAL),%d1 | invalidate TLB
- tstl _C_LABEL(ectype) | have external VAC?
- jle 1f | no, skip
- andl #~MMU_CEN,%a0@(MMUCMD) | toggle cache enable
- orl #MMU_CEN,%a0@(MMUCMD) | to clear data cache
-1:
- movl %sp@(4),%d0
- moveq #PGSHIFT,%d1
- lsrl %d1,%d0 | convert to page frame
- movl %d0,%a0@(MMUUSTP) | load a new USTP
-#endif
- rts
-
-/*
* _delay(u_int N)
*
* Delay for at least (N/256) microseconds.
@@ -1263,9 +1221,6 @@ GLOBAL(ectype)
GLOBAL(fputype)
.long FPU_68882 | default to 68882 FPU
-GLOBAL(protorp)
- .long 0,0 | prototype root pointer
-
GLOBAL(prototc)
.long 0 | prototype translation control
Index: src/sys/arch/hp300/include/cpu.h
diff -u src/sys/arch/hp300/include/cpu.h:1.73 src/sys/arch/hp300/include/cpu.h:1.74
--- src/sys/arch/hp300/include/cpu.h:1.73 Sun Jan 15 06:19:46 2023
+++ src/sys/arch/hp300/include/cpu.h Tue Jan 9 04:16:24 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.73 2023/01/15 06:19:46 tsutsui Exp $ */
+/* $NetBSD: cpu.h,v 1.74 2024/01/09 04:16:24 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -119,8 +119,6 @@ extern uint8_t *intiobase, *intiolimit,
extern void (*vectab[])(void);
/* locore.s functions */
-void loadustp(int);
-
void doboot(void) __attribute__((__noreturn__));
void ecacheon(void);
void ecacheoff(void);
Index: src/sys/arch/luna68k/conf/files.luna68k
diff -u src/sys/arch/luna68k/conf/files.luna68k:1.31 src/sys/arch/luna68k/conf/files.luna68k:1.32
--- src/sys/arch/luna68k/conf/files.luna68k:1.31 Sun Sep 17 12:30:00 2023
+++ src/sys/arch/luna68k/conf/files.luna68k Tue Jan 9 04:16:24 2024
@@ -1,5 +1,5 @@
#
-# $NetBSD: files.luna68k,v 1.31 2023/09/17 12:30:00 andvar Exp $
+# $NetBSD: files.luna68k,v 1.32 2024/01/09 04:16:24 thorpej Exp $
#
maxpartitions 8
maxusers 2 8 64
@@ -19,6 +19,7 @@ file arch/m68k/m68k/db_memrw.c ddb | kg
file arch/m68k/m68k/kgdb_machdep.c kgdb
file arch/m68k/m68k/fpu.c compile-with "${M68K_KERN_FPU}"
file arch/m68k/m68k/m68k_trap.c
+file arch/m68k/m68k/mmu_subr.s
file arch/m68k/m68k/pmap_motorola.c
file arch/m68k/m68k/procfs_machdep.c procfs
file arch/m68k/m68k/sys_machdep.c
Index: src/sys/arch/luna68k/include/cpu.h
diff -u src/sys/arch/luna68k/include/cpu.h:1.38 src/sys/arch/luna68k/include/cpu.h:1.39
--- src/sys/arch/luna68k/include/cpu.h:1.38 Sun Jan 15 05:08:33 2023
+++ src/sys/arch/luna68k/include/cpu.h Tue Jan 9 04:16:25 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.38 2023/01/15 05:08:33 tsutsui Exp $ */
+/* $NetBSD: cpu.h,v 1.39 2024/01/09 04:16:25 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -118,9 +118,6 @@ extern u_int intiobase_phys, intiotop_ph
/* machdep.c functions */
void dumpsys(void);
-/* locore.s functions */
-void loadustp(int);
-
/* machdep.c functions */
int badaddr(void *, int);
Index: src/sys/arch/luna68k/luna68k/genassym.cf
diff -u src/sys/arch/luna68k/luna68k/genassym.cf:1.26 src/sys/arch/luna68k/luna68k/genassym.cf:1.27
--- src/sys/arch/luna68k/luna68k/genassym.cf:1.26 Fri Dec 29 02:30:36 2023
+++ src/sys/arch/luna68k/luna68k/genassym.cf Tue Jan 9 04:16:25 2024
@@ -1,4 +1,4 @@
-# $NetBSD: genassym.cf,v 1.26 2023/12/29 02:30:36 tsutsui Exp $
+# $NetBSD: genassym.cf,v 1.27 2024/01/09 04:16:25 thorpej Exp $
#
# Copyright (c) 1982, 1990, 1993
@@ -67,6 +67,8 @@ ifdef M68040
define M68040 1
endif
+define M68K_MMU_MOTOROLA 1
+
# values for fputype
define FPU_NONE FPU_NONE
define FPU_68881 FPU_68881
Index: src/sys/arch/luna68k/luna68k/locore.s
diff -u src/sys/arch/luna68k/luna68k/locore.s:1.72 src/sys/arch/luna68k/luna68k/locore.s:1.73
--- src/sys/arch/luna68k/luna68k/locore.s:1.72 Fri Dec 29 02:30:36 2023
+++ src/sys/arch/luna68k/luna68k/locore.s Tue Jan 9 04:16:25 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.72 2023/12/29 02:30:36 tsutsui Exp $ */
+/* $NetBSD: locore.s,v 1.73 2024/01/09 04:16:25 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -779,27 +779,6 @@ ENTRY(ecacheon)
ENTRY(ecacheoff)
rts
-/*
- * Load a new user segment table pointer.
- */
-ENTRY(loadustp)
- movl %sp@(4),%d0 | new USTP
-#if defined(M68040)
- cmpl #MMU_68040,_C_LABEL(mmutype) | 68040?
- jne LmotommuC | no, skip
- .word 0xf518 | yes, pflusha
- .long 0x4e7b0806 | movc %d0,%urp
- rts
-LmotommuC:
-#endif
- pflusha | flush entire TLB
- lea _C_LABEL(protocrp),%a0 | %crp prototype
- movl %d0,%a0@(4) | stash USTP
- pmove %a0@,%crp | load root pointer
- movl #CACHE_CLR,%d0
- movc %d0,%cacr | invalidate cache(s)
- rts
-
ENTRY(getsr)
moveq #0,%d0
movw %sr,%d0
Index: src/sys/arch/m68k/include/mmu_40.h
diff -u src/sys/arch/m68k/include/mmu_40.h:1.1 src/sys/arch/m68k/include/mmu_40.h:1.2
--- src/sys/arch/m68k/include/mmu_40.h:1.1 Wed Dec 27 02:40:31 2023
+++ src/sys/arch/m68k/include/mmu_40.h Tue Jan 9 04:16:25 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: mmu_40.h,v 1.1 2023/12/27 02:40:31 thorpej Exp $ */
+/* $NetBSD: mmu_40.h,v 1.2 2024/01/09 04:16:25 thorpej Exp $ */
/*-
* Copyright (c) 2023 The NetBSD Foundation, Inc.
@@ -211,4 +211,9 @@
#define MMUSR40_T __BIT(1) /* Transparent Translation hit */
#define MMUSR40_R PTE40_RESIDENT
+#ifdef _KERNEL
+void mmu_load_urp40(paddr_t);
+void mmu_load_urp60(paddr_t);
+#endif /* _KERNEL */
+
#endif /* _M68K_MMU_40_H_ */
Index: src/sys/arch/m68k/include/mmu_51.h
diff -u src/sys/arch/m68k/include/mmu_51.h:1.1 src/sys/arch/m68k/include/mmu_51.h:1.2
--- src/sys/arch/m68k/include/mmu_51.h:1.1 Wed Dec 27 02:40:32 2023
+++ src/sys/arch/m68k/include/mmu_51.h Tue Jan 9 04:16:25 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: mmu_51.h,v 1.1 2023/12/27 02:40:32 thorpej Exp $ */
+/* $NetBSD: mmu_51.h,v 1.2 2024/01/09 04:16:25 thorpej Exp $ */
/*-
* Copyright (c) 1997, 2023 The NetBSD Foundation, Inc.
@@ -263,4 +263,9 @@ struct mmu51_rootptr {
#define PSR51_C __BIT(7) /* Globally Sharable */
#define PSR51_N __BITS(0,2) /* Number of levels */
+#ifdef _KERNEL
+void mmu_load_urp51(paddr_t);
+void mmu_load_urp20hp(paddr_t); /* for convenience */
+#endif /* _KERNEL */
+
#endif /* _M68K_MMU_51_H_ */
Index: src/sys/arch/m68k/m68k/pmap_motorola.c
diff -u src/sys/arch/m68k/m68k/pmap_motorola.c:1.85 src/sys/arch/m68k/m68k/pmap_motorola.c:1.86
--- src/sys/arch/m68k/m68k/pmap_motorola.c:1.85 Sun Dec 31 21:59:24 2023
+++ src/sys/arch/m68k/m68k/pmap_motorola.c Tue Jan 9 04:16:25 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap_motorola.c,v 1.85 2023/12/31 21:59:24 thorpej Exp $ */
+/* $NetBSD: pmap_motorola.c,v 1.86 2024/01/09 04:16:25 thorpej Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -69,6 +69,7 @@
*
* Supports:
* 68020 with 68851 MMU
+ * 68020 with HP MMU
* 68030 with on-chip MMU
* 68040 with on-chip MMU
* 68060 with on-chip MMU
@@ -119,7 +120,7 @@
#include "opt_m68k_arch.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap_motorola.c,v 1.85 2023/12/31 21:59:24 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap_motorola.c,v 1.86 2024/01/09 04:16:25 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -332,6 +333,19 @@ void pmap_check_wiring(const char *, vad
(curproc && \
(pm) != pmap_kernel() && (pm) == curproc->p_vmspace->vm_map.pmap)
+static void (*pmap_load_urp_func)(paddr_t);
+
+/*
+ * pmap_load_urp:
+ *
+ * Load the user root table into the MMU.
+ */
+static inline void
+pmap_load_urp(paddr_t urp)
+{
+ (*pmap_load_urp_func)(urp);
+}
+
/*
* pmap_bootstrap_finalize: [ INTERFACE ]
*
@@ -597,6 +611,47 @@ pmap_init(void)
#endif
/*
+ * Set up the routine that loads the MMU root table pointer.
+ */
+ switch (cputype) {
+#if defined(M68020)
+ case CPU_68020:
+#ifdef M68K_MMU_MOTOROLA
+ if (mmutype == MMU_68851) {
+ pmap_load_urp_func = mmu_load_urp51;
+ }
+#endif
+#ifdef M68K_MMU_HP
+ if (mmutype == MMU_HP) {
+ pmap_load_urp_func = mmu_load_urp20hp;
+ }
+#endif
+ break;
+#endif /* M68020 */
+#if defined(M68030)
+ case CPU_68030:
+ pmap_load_urp_func = mmu_load_urp51;
+ break;
+#endif /* M68030 */
+#if defined(M68040)
+ case CPU_68040:
+ pmap_load_urp_func = mmu_load_urp40;
+ break;
+#endif /* M68040 */
+#if defined(M68060)
+ case CPU_68060:
+ pmap_load_urp_func = mmu_load_urp60;
+ break;
+#endif /* M68060 */
+ default:
+ break;
+ }
+ if (pmap_load_urp_func == NULL) {
+ panic("pmap_init: No mmu_load_*() for cpu=%d mmu=%d",
+ cputype, mmutype);
+ }
+
+ /*
* Now it is safe to enable pv_table recording.
*/
pmap_initialized = true;
@@ -769,7 +824,7 @@ pmap_activate(struct lwp *l)
* need to activate the kernel pmap.
*/
if (pmap != pmap_kernel()) {
- loadustp((paddr_t)pmap->pm_stpa);
+ pmap_load_urp((paddr_t)pmap->pm_stpa);
}
}
@@ -2285,7 +2340,7 @@ pmap_remove_mapping(pmap_t pmap, vaddr_t
* MMU if it's the active user pmap.
*/
if (active_user_pmap(ptpmap)) {
- loadustp((paddr_t)ptpmap->pm_stpa);
+ pmap_load_urp((paddr_t)ptpmap->pm_stpa);
}
}
}
@@ -2508,7 +2563,7 @@ pmap_enter_ptpage(pmap_t pmap, vaddr_t v
* MMU if it's the active user pmap.
*/
if (active_user_pmap(pmap)) {
- loadustp((paddr_t)pmap->pm_stpa);
+ pmap_load_urp((paddr_t)pmap->pm_stpa);
}
PMAP_DPRINTF(PDB_ENTER|PDB_PTPAGE|PDB_SEGTAB,
Index: src/sys/arch/mac68k/conf/files.mac68k
diff -u src/sys/arch/mac68k/conf/files.mac68k:1.131 src/sys/arch/mac68k/conf/files.mac68k:1.132
--- src/sys/arch/mac68k/conf/files.mac68k:1.131 Fri Feb 26 10:54:12 2021
+++ src/sys/arch/mac68k/conf/files.mac68k Tue Jan 9 04:16:25 2024
@@ -1,4 +1,4 @@
-# $NetBSD: files.mac68k,v 1.131 2021/02/26 10:54:12 rin Exp $
+# $NetBSD: files.mac68k,v 1.132 2024/01/09 04:16:25 thorpej Exp $
# mac68k-specific configuration info
@@ -173,6 +173,7 @@ file arch/m68k/m68k/db_memrw.c ddb | kg
file arch/m68k/m68k/fpu.c compile-with "${M68K_KERN_FPU}"
file arch/m68k/m68k/kgdb_machdep.c kgdb
file arch/m68k/m68k/m68k_trap.c
+file arch/m68k/m68k/mmu_subr.s
file arch/m68k/m68k/pmap_motorola.c
file arch/m68k/m68k/procfs_machdep.c procfs
file arch/m68k/m68k/sys_machdep.c
Index: src/sys/arch/mac68k/include/cpu.h
diff -u src/sys/arch/mac68k/include/cpu.h:1.102 src/sys/arch/mac68k/include/cpu.h:1.103
--- src/sys/arch/mac68k/include/cpu.h:1.102 Sat Nov 23 19:40:35 2019
+++ src/sys/arch/mac68k/include/cpu.h Tue Jan 9 04:16:25 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.102 2019/11/23 19:40:35 ad Exp $ */
+/* $NetBSD: cpu.h,v 1.103 2024/01/09 04:16:25 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -287,9 +287,6 @@ void mac68k_set_bell_callback(int (*)(vo
int mac68k_ring_bell(int, int, int);
u_int get_mapping(void);
-/* locore.s functions */
-void loadustp(int);
-
/* fpu.c */
void initfpu(void);
Index: src/sys/arch/mac68k/mac68k/genassym.cf
diff -u src/sys/arch/mac68k/mac68k/genassym.cf:1.44 src/sys/arch/mac68k/mac68k/genassym.cf:1.45
--- src/sys/arch/mac68k/mac68k/genassym.cf:1.44 Wed Dec 27 19:26:29 2023
+++ src/sys/arch/mac68k/mac68k/genassym.cf Tue Jan 9 04:16:25 2024
@@ -1,4 +1,4 @@
-# $NetBSD: genassym.cf,v 1.44 2023/12/27 19:26:29 thorpej Exp $
+# $NetBSD: genassym.cf,v 1.45 2024/01/09 04:16:25 thorpej Exp $
#
# Copyright (c) 1990 The Regents of the University of California.
@@ -81,6 +81,8 @@ export MMU51_CRP_BITS
export MMU51_TCR_BITS
export MMU40_TCR_BITS
+define M68K_MMU_MOTOROLA 1
+
# Transparent translation register values (from pmap.h)
export MAC68K_TT_GET_PTE
Index: src/sys/arch/mac68k/mac68k/locore.s
diff -u src/sys/arch/mac68k/mac68k/locore.s:1.178 src/sys/arch/mac68k/mac68k/locore.s:1.179
--- src/sys/arch/mac68k/mac68k/locore.s:1.178 Wed Dec 27 19:26:30 2023
+++ src/sys/arch/mac68k/mac68k/locore.s Tue Jan 9 04:16:25 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.178 2023/12/27 19:26:30 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.179 2024/01/09 04:16:25 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -944,27 +944,6 @@ ENTRY(ecacheoff)
rts
/*
- * Load a new user segment table pointer.
- */
-ENTRY(loadustp)
- movl %sp@(4),%d0 | new USTP
-#if defined(M68040)
- cmpl #MMU_68040,_C_LABEL(mmutype) | 68040?
- jne LmotommuC | no, skip
- .word 0xf518 | pflusha
- .long 0x4e7b0806 | movec %d0, URP
- rts
-LmotommuC:
-#endif
- pflusha | flush entire TLB
- lea _C_LABEL(protorp),%a0 | CRP prototype
- movl %d0,%a0@(4) | stash USTP
- pmove %a0@,%crp | load root pointer
- movl #CACHE_CLR,%d0
- movc %d0,%cacr | invalidate cache(s)
- rts
-
-/*
* Set processor priority level calls. Most are implemented with
* inline asm expansions. However, spl0 requires special handling
* as we need to check for our emulated software interrupts.
@@ -1378,9 +1357,6 @@ GLOBAL(ectype)
GLOBAL(fputype)
.long FPU_68882 | default to 68882 FPU
-GLOBAL(protorp)
- .long 0,0 | prototype root pointer
-
GLOBAL(intiolimit)
.long 0 | KVA of end of internal IO space
Index: src/sys/arch/mvme68k/conf/files.mvme68k
diff -u src/sys/arch/mvme68k/conf/files.mvme68k:1.65 src/sys/arch/mvme68k/conf/files.mvme68k:1.66
--- src/sys/arch/mvme68k/conf/files.mvme68k:1.65 Sat Sep 30 21:00:43 2023
+++ src/sys/arch/mvme68k/conf/files.mvme68k Tue Jan 9 04:16:25 2024
@@ -1,4 +1,4 @@
-# $NetBSD: files.mvme68k,v 1.65 2023/09/30 21:00:43 andvar Exp $
+# $NetBSD: files.mvme68k,v 1.66 2024/01/09 04:16:25 thorpej Exp $
# config file for mvme68k
@@ -99,6 +99,7 @@ file arch/m68k/m68k/cacheops.c
file arch/m68k/m68k/db_memrw.c ddb | kgdb
file arch/m68k/m68k/kgdb_machdep.c kgdb
file arch/m68k/m68k/m68k_trap.c
+file arch/m68k/m68k/mmu_subr.s
file arch/m68k/m68k/pmap_motorola.c
file arch/m68k/m68k/procfs_machdep.c procfs
file arch/m68k/m68k/sys_machdep.c
Index: src/sys/arch/mvme68k/include/cpu.h
diff -u src/sys/arch/mvme68k/include/cpu.h:1.51 src/sys/arch/mvme68k/include/cpu.h:1.52
--- src/sys/arch/mvme68k/include/cpu.h:1.51 Sat Nov 23 19:40:35 2019
+++ src/sys/arch/mvme68k/include/cpu.h Tue Jan 9 04:16:26 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.51 2019/11/23 19:40:35 ad Exp $ */
+/* $NetBSD: cpu.h,v 1.52 2024/01/09 04:16:26 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -159,7 +159,6 @@ int nmihand(void *);
void mvme68k_abort(const char *);
void *iomap(u_long, size_t);
void iounmap(void *, size_t);
-void loadustp(paddr_t);
/* physical memory addresses where mvme147's onboard devices live */
#define INTIOBASE147 (0xfffe0000u)
Index: src/sys/arch/mvme68k/mvme68k/locore.s
diff -u src/sys/arch/mvme68k/mvme68k/locore.s:1.121 src/sys/arch/mvme68k/mvme68k/locore.s:1.122
--- src/sys/arch/mvme68k/mvme68k/locore.s:1.121 Wed Dec 27 03:03:41 2023
+++ src/sys/arch/mvme68k/mvme68k/locore.s Tue Jan 9 04:16:26 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.121 2023/12/27 03:03:41 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.122 2024/01/09 04:16:26 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -580,11 +580,13 @@ Lstart2:
.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
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?
@@ -1092,35 +1094,6 @@ ENTRY_NOPROFILE(getsp)
movl %d0,%a0
rts
-/*
- * Load a new user segment table pointer.
- */
-ENTRY(loadustp)
- movl %sp@(4),%d0 | new USTP
-#if defined(M68040) || defined(M68060)
- cmpl #MMU_68040,_C_LABEL(mmutype) | 68040?
- jne LmotommuC | no, skip
- .word 0xf518 | pflusha
- .long 0x4e7b0806 | movc d0,urp
-#ifdef M68060
- cmpl #CPU_68060,_C_LABEL(cputype)
- jne Lldno60
- movc %cacr,%d0
- orl #IC60_CUBC,%d0 | clear user branch cache entries
- movc %d0,%cacr
-Lldno60:
-#endif
- rts
-LmotommuC:
-#endif
- pflusha | flush entire TLB
- lea _C_LABEL(protorp),%a0 | CRP prototype
- movl %d0,%a0@(4) | stash USTP
- pmove %a0@,%crp | load root pointer
- movl #CACHE_CLR,%d0
- movc %d0,%cacr | invalidate cache(s)
- rts
-
ENTRY(getsr)
moveq #0,%d0
movw %sr,%d0
@@ -1237,9 +1210,6 @@ GLOBAL(cputype)
GLOBAL(fputype)
.long FPU_68882 | default to FPU_68882
-GLOBAL(protorp)
- .long 0,0 | prototype root pointer
-
/*
* Information from first stage boot program
*/
Index: src/sys/arch/news68k/conf/files.news68k
diff -u src/sys/arch/news68k/conf/files.news68k:1.36 src/sys/arch/news68k/conf/files.news68k:1.37
--- src/sys/arch/news68k/conf/files.news68k:1.36 Sun Oct 1 19:28:36 2023
+++ src/sys/arch/news68k/conf/files.news68k Tue Jan 9 04:16:26 2024
@@ -1,4 +1,4 @@
-# $NetBSD: files.news68k,v 1.36 2023/10/01 19:28:36 andvar Exp $
+# $NetBSD: files.news68k,v 1.37 2024/01/09 04:16:26 thorpej Exp $
# NEWS68K-specific configuration info
@@ -25,6 +25,7 @@ file arch/m68k/m68k/cacheops.c
file arch/m68k/m68k/db_memrw.c ddb | kgdb
file arch/m68k/m68k/kgdb_machdep.c kgdb
file arch/m68k/m68k/m68k_trap.c
+file arch/m68k/m68k/mmu_subr.s
file arch/m68k/m68k/pmap_motorola.c
file arch/m68k/m68k/procfs_machdep.c procfs
file arch/m68k/m68k/sys_machdep.c
Index: src/sys/arch/news68k/include/cpu.h
diff -u src/sys/arch/news68k/include/cpu.h:1.46 src/sys/arch/news68k/include/cpu.h:1.47
--- src/sys/arch/news68k/include/cpu.h:1.46 Sat Nov 23 19:40:35 2019
+++ src/sys/arch/news68k/include/cpu.h Tue Jan 9 04:16:26 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.46 2019/11/23 19:40:35 ad Exp $ */
+/* $NetBSD: cpu.h,v 1.47 2024/01/09 04:16:26 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -155,7 +155,6 @@ extern void *romcallvec;
struct frame;
/* locore.s functions */
-void loadustp(int);
void badtrap(void);
void intrhand_vectored(void);
int getsr(void);
Index: src/sys/arch/news68k/news68k/genassym.cf
diff -u src/sys/arch/news68k/news68k/genassym.cf:1.33 src/sys/arch/news68k/news68k/genassym.cf:1.34
--- src/sys/arch/news68k/news68k/genassym.cf:1.33 Wed Dec 27 19:26:29 2023
+++ src/sys/arch/news68k/news68k/genassym.cf Tue Jan 9 04:16:26 2024
@@ -1,4 +1,4 @@
-# $NetBSD: genassym.cf,v 1.33 2023/12/27 19:26:29 thorpej Exp $
+# $NetBSD: genassym.cf,v 1.34 2024/01/09 04:16:26 thorpej Exp $
#
# Copyright (c) 1982, 1990, 1993
@@ -72,6 +72,8 @@ ifdef M68040
define M68040 1
endif
+define M68K_MMU_MOTOROLA 1
+
# values for fputype
define FPU_NONE FPU_NONE
define FPU_68881 FPU_68881
@@ -153,6 +155,7 @@ define CACHE40_ON CACHE40_ON
define CACHE_ON CACHE_ON
define CACHE_OFF CACHE_OFF
define DCIC_CLR DCIC_CLR
+define CACHE_CLR CACHE_CLR
define CACHE_BE CACHE_BE
# pte/ste bits
Index: src/sys/arch/news68k/news68k/locore.s
diff -u src/sys/arch/news68k/news68k/locore.s:1.75 src/sys/arch/news68k/news68k/locore.s:1.76
--- src/sys/arch/news68k/news68k/locore.s:1.75 Wed Dec 27 19:26:29 2023
+++ src/sys/arch/news68k/news68k/locore.s Tue Jan 9 04:16:26 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.75 2023/12/27 19:26:29 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.76 2024/01/09 04:16:26 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -355,11 +355,13 @@ Lstart2:
.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
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?
@@ -880,20 +882,6 @@ ENTRY(ecacheoff)
Lnocache8:
rts
-/*
- * Load a new user segment table pointer.
- */
-ENTRY(loadustp)
- movl %sp@(4),%d0 | new USTP
- pflusha | flush entire TLB
- lea _C_LABEL(protorp),%a0 | CRP prototype
- movl %d0,%a0@(4) | stash USTP
- pmove %a0@,%crp | load root pointer
- movc %cacr,%d0
- orl #DCIC_CLR,%d0
- movc %d0,%cacr | invalidate cache(s)
- rts
-
ENTRY(getsr)
moveq #0,%d0
movw %sr,%d0
@@ -1011,9 +999,6 @@ GLOBAL(fputype)
GLOBAL(ectype)
.long EC_NONE | external cache type, default to none
-GLOBAL(protorp)
- .long 0,0 | prototype root pointer
-
GLOBAL(prototc)
.long MMU51_TCR_BITS | prototype translation control
Index: src/sys/arch/next68k/conf/files.next68k
diff -u src/sys/arch/next68k/conf/files.next68k:1.42 src/sys/arch/next68k/conf/files.next68k:1.43
--- src/sys/arch/next68k/conf/files.next68k:1.42 Mon Feb 18 01:12:24 2019
+++ src/sys/arch/next68k/conf/files.next68k Tue Jan 9 04:16:26 2024
@@ -1,4 +1,4 @@
-# $NetBSD: files.next68k,v 1.42 2019/02/18 01:12:24 thorpej Exp $
+# $NetBSD: files.next68k,v 1.43 2024/01/09 04:16:26 thorpej Exp $
# next68k-specific configuration info
@@ -36,6 +36,7 @@ file arch/m68k/m68k/cacheops.c
file arch/m68k/m68k/db_memrw.c ddb | kgdb
file arch/m68k/m68k/kgdb_machdep.c kgdb
file arch/m68k/m68k/m68k_trap.c
+file arch/m68k/m68k/mmu_subr.s
file arch/m68k/m68k/pmap_motorola.c
file arch/m68k/m68k/procfs_machdep.c procfs
file arch/m68k/m68k/sys_machdep.c
Index: src/sys/arch/next68k/include/cpu.h
diff -u src/sys/arch/next68k/include/cpu.h:1.52 src/sys/arch/next68k/include/cpu.h:1.53
--- src/sys/arch/next68k/include/cpu.h:1.52 Sat Feb 11 02:31:34 2023
+++ src/sys/arch/next68k/include/cpu.h Tue Jan 9 04:16:26 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.52 2023/02/11 02:31:34 tsutsui Exp $ */
+/* $NetBSD: cpu.h,v 1.53 2024/01/09 04:16:26 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -115,8 +115,6 @@ extern int astpending; /* need to trap b
extern void (*vectab[])(void);
/* locore.s functions */
-void loadustp(int);
-
void doboot(void) __attribute__((__noreturn__));
int nmihand(void *);
Index: src/sys/arch/next68k/next68k/genassym.cf
diff -u src/sys/arch/next68k/next68k/genassym.cf:1.32 src/sys/arch/next68k/next68k/genassym.cf:1.33
--- src/sys/arch/next68k/next68k/genassym.cf:1.32 Wed Dec 27 19:47:00 2023
+++ src/sys/arch/next68k/next68k/genassym.cf Tue Jan 9 04:16:26 2024
@@ -1,4 +1,4 @@
-# $NetBSD: genassym.cf,v 1.32 2023/12/27 19:47:00 thorpej Exp $
+# $NetBSD: genassym.cf,v 1.33 2024/01/09 04:16:26 thorpej Exp $
#
# Copyright (c) 1982, 1990, 1993
@@ -53,12 +53,7 @@ define MMU_68030 MMU_68030
define MMU_68851 MMU_68851
# MMU configuration options
-ifdef M68K_MMU_HP
-define M68K_MMU_HP 1
-endif
-ifdef M68K_MMU_MOTOROLA
define M68K_MMU_MOTOROLA 1
-endif
# values for cputype
define CPU_68020 CPU_68020
Index: src/sys/arch/next68k/next68k/locore.s
diff -u src/sys/arch/next68k/next68k/locore.s:1.77 src/sys/arch/next68k/next68k/locore.s:1.78
--- src/sys/arch/next68k/next68k/locore.s:1.77 Wed Dec 27 19:47:00 2023
+++ src/sys/arch/next68k/next68k/locore.s Tue Jan 9 04:16:26 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.77 2023/12/27 19:47:00 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.78 2024/01/09 04:16:26 thorpej Exp $ */
/*
* Copyright (c) 1998 Darrin B. Jewell
@@ -335,12 +335,13 @@ Lstart3:
.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
pmove %a0@,%srp | load the supervisor root pointer
movl #MMU51_CRP_BITS,%a0@ | reinit upper half for CRP loads
-
+#endif /* M68030 */
Lstploaddone:
/*
@@ -884,45 +885,6 @@ Lsldone:
#endif
/*
- * Load a new user segment table pointer.
- */
-ENTRY(loadustp)
-#if defined(M68K_MMU_MOTOROLA)
- tstl _C_LABEL(mmutype) | HP MMU?
- jeq Lhpmmu9 | yes, skip
- movl %sp@(4),%d0 | new USTP
-#if defined(M68040)
- cmpl #MMU_68040,_C_LABEL(mmutype) | 68040?
- jne LmotommuC | no, skip
- .word 0xf518 | yes, pflusha
- .long 0x4e7b0806 | movc %d0,urp
- rts
-LmotommuC:
-#endif
- pflusha | flush entire TLB
- lea _C_LABEL(protorp),%a0 | CRP prototype
- movl %d0,%a0@(4) | stash USTP
- pmove %a0@,%crp | load root pointer
- movl #CACHE_CLR,%d0
- movc %d0,%cacr | invalidate cache(s)
- rts
-Lhpmmu9:
-#endif
-#if defined(M68K_MMU_HP)
- movl #CACHE_CLR,%d0
- movc %d0,%cacr | invalidate cache(s)
- MMUADDR(%a0)
- movl %a0@(MMUTBINVAL),%d1 | invalidate TLB
- tstl _C_LABEL(ectype) | have external VAC?
- jle 1f | no, skip
- andl #~MMU_CEN,%a0@(MMUCMD) | toggle cache enable
- orl #MMU_CEN,%a0@(MMUCMD) | to clear data cache
-1:
- movl %sp@(4),%a0@(MMUUSTP) | load a new USTP
-#endif
- rts
-
-/*
* Set processor priority level calls. Most are implemented with
* inline asm expansions. However, spl0 requires special handling
* as we need to check for our emulated software interrupts.
@@ -1046,9 +1008,6 @@ GLOBAL(cputype)
GLOBAL(fputype)
.long 0xdeadbeef | default to 68882 FPU
-GLOBAL(protorp)
- .long 0,0 | prototype root pointer
-
GLOBAL(prototc)
.long 0 | prototype translation control
Index: src/sys/arch/virt68k/conf/files.virt68k
diff -u src/sys/arch/virt68k/conf/files.virt68k:1.2 src/sys/arch/virt68k/conf/files.virt68k:1.3
--- src/sys/arch/virt68k/conf/files.virt68k:1.2 Tue Jan 2 18:11:44 2024
+++ src/sys/arch/virt68k/conf/files.virt68k Tue Jan 9 04:16:27 2024
@@ -1,4 +1,4 @@
-# $NetBSD: files.virt68k,v 1.2 2024/01/02 18:11:44 thorpej Exp $
+# $NetBSD: files.virt68k,v 1.3 2024/01/09 04:16:27 thorpej Exp $
# config file for virt68k
@@ -47,6 +47,7 @@ file arch/m68k/m68k/cacheops.c
file arch/m68k/m68k/db_memrw.c ddb | kgdb
file arch/m68k/m68k/kgdb_machdep.c kgdb
file arch/m68k/m68k/m68k_trap.c
+file arch/m68k/m68k/mmu_subr.s
file arch/m68k/m68k/pmap_motorola.c
file arch/m68k/m68k/procfs_machdep.c procfs
file arch/m68k/m68k/sys_machdep.c
Index: src/sys/arch/virt68k/include/cpu.h
diff -u src/sys/arch/virt68k/include/cpu.h:1.3 src/sys/arch/virt68k/include/cpu.h:1.4
--- src/sys/arch/virt68k/include/cpu.h:1.3 Tue Jan 2 18:10:36 2024
+++ src/sys/arch/virt68k/include/cpu.h Tue Jan 9 04:16:27 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.3 2024/01/02 18:10:36 thorpej Exp $ */
+/* $NetBSD: cpu.h,v 1.4 2024/01/09 04:16:27 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -112,7 +112,6 @@ extern int astpending; /* need to trap
#ifdef _KERNEL
void cpu_set_reset_func(void (*)(void *, int), void *);
int nmihand(void *);
-void loadustp(paddr_t);
#endif /* _KERNEL */
Index: src/sys/arch/virt68k/virt68k/locore.s
diff -u src/sys/arch/virt68k/virt68k/locore.s:1.3 src/sys/arch/virt68k/virt68k/locore.s:1.4
--- src/sys/arch/virt68k/virt68k/locore.s:1.3 Sun Jan 7 16:41:24 2024
+++ src/sys/arch/virt68k/virt68k/locore.s Tue Jan 9 04:16:27 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.3 2024/01/07 16:41:24 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.4 2024/01/09 04:16:27 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -618,7 +618,6 @@ Laststkadj:
#define FPCOPROC /* XXX: Temp. Reqd. */
#include <m68k/m68k/switch_subr.s>
-
#if defined(M68040) || defined(M68060)
ENTRY(suline)
movl %sp@(4),%a0 | address to write
@@ -666,35 +665,6 @@ ENTRY_NOPROFILE(getsp)
movl %d0,%a0
rts
-/*
- * Load a new user segment table pointer.
- */
-ENTRY(loadustp)
- movl %sp@(4),%d0 | new USTP
-#if defined(M68040) || defined(M68060)
- cmpl #MMU_68040,_C_LABEL(mmutype) | 68040?
- jne LmotommuC | no, skip
- .word 0xf518 | pflusha
- .long 0x4e7b0806 | movc d0,urp
-#ifdef M68060
- cmpl #CPU_68060,_C_LABEL(cputype)
- jne Lldno60
- movc %cacr,%d0
- orl #IC60_CUBC,%d0 | clear user branch cache entries
- movc %d0,%cacr
-Lldno60:
-#endif
- rts
-LmotommuC:
-#endif
- pflusha | flush entire TLB
- lea _C_LABEL(protorp),%a0 | CRP prototype
- movl %d0,%a0@(4) | stash USTP
- pmove %a0@,%crp | load root pointer
- movl #CACHE_CLR,%d0
- movc %d0,%cacr | invalidate cache(s)
- rts
-
ENTRY(getsr)
moveq #0,%d0
movw %sr,%d0
@@ -714,9 +684,6 @@ GLOBAL(cputype)
GLOBAL(fputype)
.long FPU_68040 | default to FPU_68040
-GLOBAL(protorp)
- .long 0,0 | prototype root pointer
-
/*
* interrupt counters.
* XXXSCW: Will go away soon; kept here to keep vmstat happy
Index: src/sys/arch/x68k/conf/files.x68k
diff -u src/sys/arch/x68k/conf/files.x68k:1.83 src/sys/arch/x68k/conf/files.x68k:1.84
--- src/sys/arch/x68k/conf/files.x68k:1.83 Wed May 8 13:40:17 2019
+++ src/sys/arch/x68k/conf/files.x68k Tue Jan 9 04:16:27 2024
@@ -1,4 +1,4 @@
-# $NetBSD: files.x68k,v 1.83 2019/05/08 13:40:17 isaki Exp $
+# $NetBSD: files.x68k,v 1.84 2024/01/09 04:16:27 thorpej Exp $
#
# new style config file for x68k architecture
#
@@ -35,6 +35,7 @@ file arch/m68k/m68k/cacheops.c
file arch/m68k/m68k/db_memrw.c ddb
file arch/m68k/m68k/fpu.c compile-with "${M68K_KERN_FPU}"
file arch/m68k/m68k/m68k_trap.c
+file arch/m68k/m68k/mmu_subr.s
file arch/m68k/m68k/pmap_motorola.c
file arch/m68k/m68k/procfs_machdep.c procfs
file arch/m68k/m68k/sys_machdep.c
Index: src/sys/arch/x68k/include/cpu.h
diff -u src/sys/arch/x68k/include/cpu.h:1.63 src/sys/arch/x68k/include/cpu.h:1.64
--- src/sys/arch/x68k/include/cpu.h:1.63 Sun Jan 7 07:58:33 2024
+++ src/sys/arch/x68k/include/cpu.h Tue Jan 9 04:16:27 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.63 2024/01/07 07:58:33 isaki Exp $ */
+/* $NetBSD: cpu.h,v 1.64 2024/01/09 04:16:27 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -121,9 +121,6 @@ extern uint8_t *intiolimit;
/* machdep.c functions */
void dumpsys(void);
-/* locore.s functions */
-void loadustp(int);
-
/* machdep.c functions */
int badaddr(volatile void*);
int badbaddr(volatile void*);
Index: src/sys/arch/x68k/x68k/genassym.cf
diff -u src/sys/arch/x68k/x68k/genassym.cf:1.39 src/sys/arch/x68k/x68k/genassym.cf:1.40
--- src/sys/arch/x68k/x68k/genassym.cf:1.39 Wed Dec 27 17:35:37 2023
+++ src/sys/arch/x68k/x68k/genassym.cf Tue Jan 9 04:16:27 2024
@@ -1,4 +1,4 @@
-# $NetBSD: genassym.cf,v 1.39 2023/12/27 17:35:37 thorpej Exp $
+# $NetBSD: genassym.cf,v 1.40 2024/01/09 04:16:27 thorpej Exp $
#
# Copyright (c) 1982, 1990, 1993
@@ -73,6 +73,8 @@ ifdef M68060
define M68060 1
endif
+define M68K_MMU_MOTOROLA 1
+
# values for fputype
define FPU_NONE FPU_NONE
define FPU_68881 FPU_68881
Index: src/sys/arch/x68k/x68k/locore.s
diff -u src/sys/arch/x68k/x68k/locore.s:1.126 src/sys/arch/x68k/x68k/locore.s:1.127
--- src/sys/arch/x68k/x68k/locore.s:1.126 Sat Jan 6 05:31:19 2024
+++ src/sys/arch/x68k/x68k/locore.s Tue Jan 9 04:16:27 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.126 2024/01/06 05:31:19 isaki Exp $ */
+/* $NetBSD: locore.s,v 1.127 2024/01/09 04:16:27 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -821,35 +821,6 @@ ENTRY(ecacheoff)
rts
/*
- * Load a new user segment table pointer.
- */
-ENTRY(loadustp)
- movl %sp@(4),%d0 | new USTP
-#if defined(M68040) || defined(M68060)
- cmpl #MMU_68040,_C_LABEL(mmutype) | 68040?
- jne LmotommuC | no, skip
- .word 0xf518 | yes, pflusha
- .long 0x4e7b0806 | movc %d0,%urp
-#ifdef M68060
- cmpl #CPU_68060,_C_LABEL(cputype)
- jne Lldno60
- movc %cacr,%d0
- orl #IC60_CUBC,%d0 | clear user branch cache entries
- movc %d0,%cacr
-Lldno60:
-#endif
- rts
-LmotommuC:
-#endif
- pflusha | flush entire TLB
- lea _C_LABEL(protorp),%a0 | CRP prototype
- movl %d0,%a0@(4) | stash USTP
- pmove %a0@,%crp | load root pointer
- movl #CACHE_CLR,%d0
- movc %d0,%cacr | invalidate cache(s)
- rts
-
-/*
* _delay(u_int N)
*
* Delay for at least N microseconds.
@@ -929,9 +900,6 @@ GLOBAL(ectype)
GLOBAL(fputype)
.long FPU_NONE
-GLOBAL(protorp)
- .long 0,0 | prototype root pointer
-
GLOBAL(intiobase)
.long 0 | KVA of base of internal IO space