Module Name:    src
Committed By:   thorpej
Date:           Wed Dec 27 19:26:30 UTC 2023

Modified Files:
        src/sys/arch/mac68k/include: pmap.h
        src/sys/arch/mac68k/mac68k: genassym.cf locore.s
        src/sys/arch/news68k/include: pmap.h
        src/sys/arch/news68k/news68k: genassym.cf locore.s

Log Message:
Define values for the 68030 TT registers in terms of the definitions
in <m68k/mmu_30.h> rather than using magic numbers.


To generate a diff of this commit:
cvs rdiff -u -r1.37 -r1.38 src/sys/arch/mac68k/include/pmap.h
cvs rdiff -u -r1.43 -r1.44 src/sys/arch/mac68k/mac68k/genassym.cf
cvs rdiff -u -r1.177 -r1.178 src/sys/arch/mac68k/mac68k/locore.s
cvs rdiff -u -r1.14 -r1.15 src/sys/arch/news68k/include/pmap.h
cvs rdiff -u -r1.32 -r1.33 src/sys/arch/news68k/news68k/genassym.cf
cvs rdiff -u -r1.74 -r1.75 src/sys/arch/news68k/news68k/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/mac68k/include/pmap.h
diff -u src/sys/arch/mac68k/include/pmap.h:1.37 src/sys/arch/mac68k/include/pmap.h:1.38
--- src/sys/arch/mac68k/include/pmap.h:1.37	Sun Nov  3 19:56:30 2002
+++ src/sys/arch/mac68k/include/pmap.h	Wed Dec 27 19:26:29 2023
@@ -1,3 +1,21 @@
-/*	$NetBSD: pmap.h,v 1.37 2002/11/03 19:56:30 chs Exp $	*/
+/*	$NetBSD: pmap.h,v 1.38 2023/12/27 19:26:29 thorpej Exp $	*/
+
+#ifndef _MAC68K_PMAP_H_
+#define	_MAC68K_PMAP_H_
 
 #include <m68k/pmap_motorola.h>
+#include <m68k/mmu_30.h>
+
+/*
+ * Tranparent translation register used in locore.s:get_pte().
+ * User Data set up for R/W access of the entire address space.
+ *
+ * (XXX TT30_RW isn't actually needed because of TT30_RWM, but
+ * this the value historically used.)
+ */
+#define	MAC68K_TT_GET_PTE	(0x00000000 |				\
+				 __SHIFTIN(0xff,TT30_LAM) |		\
+				 TT30_E | TT30_CI | TT30_RW | TT30_RWM |\
+				 TT30_USERD)
+
+#endif /* _MAC68K_PMAP_H_ */

Index: src/sys/arch/mac68k/mac68k/genassym.cf
diff -u src/sys/arch/mac68k/mac68k/genassym.cf:1.43 src/sys/arch/mac68k/mac68k/genassym.cf:1.44
--- src/sys/arch/mac68k/mac68k/genassym.cf:1.43	Wed Dec 27 17:35:35 2023
+++ src/sys/arch/mac68k/mac68k/genassym.cf	Wed Dec 27 19:26:29 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: genassym.cf,v 1.43 2023/12/27 17:35:35 thorpej Exp $
+#	$NetBSD: genassym.cf,v 1.44 2023/12/27 19:26:29 thorpej Exp $
 
 #
 # Copyright (c) 1990 The Regents of the University of California.
@@ -81,6 +81,9 @@ export	MMU51_CRP_BITS
 export	MMU51_TCR_BITS
 export	MMU40_TCR_BITS
 
+# Transparent translation register values (from pmap.h)
+export	MAC68K_TT_GET_PTE
+
 # 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/mac68k/mac68k/locore.s
diff -u src/sys/arch/mac68k/mac68k/locore.s:1.177 src/sys/arch/mac68k/mac68k/locore.s:1.178
--- src/sys/arch/mac68k/mac68k/locore.s:1.177	Wed Dec 27 03:03:41 2023
+++ src/sys/arch/mac68k/mac68k/locore.s	Wed Dec 27 19:26:30 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: locore.s,v 1.177 2023/12/27 03:03:41 thorpej Exp $	*/
+/*	$NetBSD: locore.s,v 1.178 2023/12/27 19:26:30 thorpej Exp $	*/
 
 /*
  * Copyright (c) 1988 University of Utah.
@@ -1143,7 +1143,7 @@ ENTRY_NOPROFILE(get_pte)
 	subql	#4,%sp		| make temporary space
 
 	lea	_ASM_LABEL(longscratch),%a0
-	movl	#0x00ff8710,%a0@ | Set up FC 1 r/w access
+	movl	#MAC68K_TT_GET_PTE,%a0@ | See pmap.h
 	.long	0xf0100800	| pmove %a0@,%tt0
 
 	movl	%sp@(8),%a0	| logical address to look up

Index: src/sys/arch/news68k/include/pmap.h
diff -u src/sys/arch/news68k/include/pmap.h:1.14 src/sys/arch/news68k/include/pmap.h:1.15
--- src/sys/arch/news68k/include/pmap.h:1.14	Sun Nov  3 19:56:32 2002
+++ src/sys/arch/news68k/include/pmap.h	Wed Dec 27 19:26:29 2023
@@ -1,3 +1,30 @@
-/*	$NetBSD: pmap.h,v 1.14 2002/11/03 19:56:32 chs Exp $	*/
+/*	$NetBSD: pmap.h,v 1.15 2023/12/27 19:26:29 thorpej Exp $	*/
+
+#ifndef _NEWS68K_PMAP_H_
+#define	_NEWS68K_PMAP_H_
 
 #include <m68k/pmap_motorola.h>
+#include <m68k/mmu_30.h>
+
+/*
+ * Transparent translation register values for:
+ *
+ * I/O space: 0xe0000000-0xffffffff
+ * RAM to use PROM calls: 0xc0000000-0xdfffffff
+ *
+ * Both use Function Codes 4-7 (to get SUPERD and SUPERP).
+ * XXX I/O space can probably just use SUPERD.
+ */
+#define	NEWS68K_TT_IO		(0xe0000000 |				\
+				 __SHIFTIN(0x1f,TT30_LAM) |		\
+				 TT30_E | TT30_CI | TT30_RWM |		\
+				 __SHIFTIN(4,TT30_FCBASE) |		\
+				 __SHIFTIN(3,TT30_FCMASK))
+
+#define	NEWS68K_TT_PROM		(0xc0000000 |				\
+				 __SHIFTIN(0x1f,TT30_LAM) |		\
+				 TT30_E | TT30_RWM |			\
+				 __SHIFTIN(4,TT30_FCBASE) |		\
+				 __SHIFTIN(3,TT30_FCMASK))
+
+#endif /* _NEWS68K_PMAP_H_ */

Index: src/sys/arch/news68k/news68k/genassym.cf
diff -u src/sys/arch/news68k/news68k/genassym.cf:1.32 src/sys/arch/news68k/news68k/genassym.cf:1.33
--- src/sys/arch/news68k/news68k/genassym.cf:1.32	Wed Dec 27 17:35:36 2023
+++ src/sys/arch/news68k/news68k/genassym.cf	Wed Dec 27 19:26:29 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: genassym.cf,v 1.32 2023/12/27 17:35:36 thorpej Exp $
+#	$NetBSD: genassym.cf,v 1.33 2023/12/27 19:26:29 thorpej Exp $
 
 #
 # Copyright (c) 1982, 1990, 1993
@@ -96,6 +96,10 @@ export	MMU51_CRP_BITS
 export	MMU51_TCR_BITS
 export	MMU40_TCR_BITS
 
+# Transparent translation register values (from pmap.h)
+export	NEWS68K_TT_IO
+export	NEWS68K_TT_PROM
+
 # 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/news68k/news68k/locore.s
diff -u src/sys/arch/news68k/news68k/locore.s:1.74 src/sys/arch/news68k/news68k/locore.s:1.75
--- src/sys/arch/news68k/news68k/locore.s:1.74	Wed Dec 27 03:03:42 2023
+++ src/sys/arch/news68k/news68k/locore.s	Wed Dec 27 19:26:29 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: locore.s,v 1.74 2023/12/27 03:03:42 thorpej Exp $	*/
+/*	$NetBSD: locore.s,v 1.75 2023/12/27 19:26:29 thorpej Exp $	*/
 
 /*
  * Copyright (c) 1988 University of Utah.
@@ -379,16 +379,13 @@ Lstploaddone:
 Lmotommu2:
 	/* Use %tt0 register to map I/O space */
 	RELOC(protott0, %a0)
-	movl	#0xe01f8543,%a0@	| use %tt0 (0xe0000000-0xffffffff)
 	.long	0xf0100800		| pmove %a0@,%tt0
-	/* Use %tt1 register to map RAM  to use PROM calls */
+	/* Use %tt1 register to map RAM to use PROM calls */
 	RELOC(protott1, %a0)
-	movl	#0xc01f8143,%a0@	| use %tt1 (0xc0000000-0xdfffffff)
 	.long	0xf0100c00		| pmove %a0@,%tt1
 
 	pflusha
 	RELOC(prototc, %a2)
-	movl	#MMU51_TCR_BITS,%a2@	| value to load TC with
 	pmove	%a2@,%tc		| load it
 
 /*
@@ -1018,13 +1015,13 @@ GLOBAL(protorp)
 	.long	0,0		| prototype root pointer
 
 GLOBAL(prototc)
-	.long	0		| prototype translation control
+	.long	MMU51_TCR_BITS	| prototype translation control
 
 GLOBAL(protott0)
-	.long	0		| prototype transparent translation register 0
+	.long	NEWS68K_TT_IO	| prototype transparent translation register 0
 
 GLOBAL(protott1)
-	.long	0		| prototype transparent translation register 1
+	.long	NEWS68K_TT_PROM	| prototype transparent translation register 1
 
 /*
  * Information from first stage boot program

Reply via email to