1*53899Smckusick /*
2*53899Smckusick  * Copyright (c) 1992 Regents of the University of California.
3*53899Smckusick  * All rights reserved.
4*53899Smckusick  *
5*53899Smckusick  * This code is derived from software contributed to Berkeley by
6*53899Smckusick  * Ralph Campbell, and Kazumasa Utashiro of Software Research
7*53899Smckusick  * Associates, Inc.
8*53899Smckusick  *
9*53899Smckusick  * %sccs.include.redist.c%
10*53899Smckusick  *
11*53899Smckusick  *	@(#)machConst.h	7.1 (Berkeley) 06/04/92
12*53899Smckusick  *
13*53899Smckusick  * machConst.h --
14*53899Smckusick  *
15*53899Smckusick  *	Machine dependent constants.
16*53899Smckusick  *
17*53899Smckusick  *	Copyright (C) 1989 Digital Equipment Corporation.
18*53899Smckusick  *	Permission to use, copy, modify, and distribute this software and
19*53899Smckusick  *	its documentation for any purpose and without fee is hereby granted,
20*53899Smckusick  *	provided that the above copyright notice appears in all copies.
21*53899Smckusick  *	Digital Equipment Corporation makes no representations about the
22*53899Smckusick  *	suitability of this software for any purpose.  It is provided "as is"
23*53899Smckusick  *	without express or implied warranty.
24*53899Smckusick  *
25*53899Smckusick  * from: $Header: /sprite/src/kernel/mach/ds3100.md/RCS/machConst.h,
26*53899Smckusick  *	v 9.2 89/10/21 15:55:22 jhh Exp $ SPRITE (DECWRL)
27*53899Smckusick  * from: $Header: /sprite/src/kernel/mach/ds3100.md/RCS/machAddrs.h,
28*53899Smckusick  *	v 1.2 89/08/15 18:28:21 rab Exp $ SPRITE (DECWRL)
29*53899Smckusick  * from: $Header: /sprite/src/kernel/vm/ds3100.md/RCS/vmPmaxConst.h,
30*53899Smckusick  *	v 9.1 89/09/18 17:33:00 shirriff Exp $ SPRITE (DECWRL)
31*53899Smckusick  */
32*53899Smckusick 
33*53899Smckusick #ifndef _MACHCONST
34*53899Smckusick #define _MACHCONST
35*53899Smckusick 
36*53899Smckusick #define MACH_KUSEG_ADDR			0x0
37*53899Smckusick #define MACH_CACHED_MEMORY_ADDR		0x80000000
38*53899Smckusick #define MACH_UNCACHED_MEMORY_ADDR	0xa0000000
39*53899Smckusick #define MACH_KSEG2_ADDR			0xc0000000
40*53899Smckusick 
41*53899Smckusick #define	MACH_CACHED_TO_PHYS(x)		MACH_UNMAPPED_TO_PHYS(x)
42*53899Smckusick #define	MACH_UNCACHED_TO_PHYS(x)	MACH_UNMAPPED_TO_PHYS(x)
43*53899Smckusick #define	MACH_UNMAPPED_TO_PHYS(x)	((unsigned)(x) & 0x1fffffff)
44*53899Smckusick 
45*53899Smckusick #define	MACH_PHYS_TO_CACHED(x)	((unsigned)(x) | MACH_CACHED_MEMORY_ADDR)
46*53899Smckusick #define	MACH_PHYS_TO_UNCACHED(x) ((unsigned)(x) | MACH_UNCACHED_MEMORY_ADDR)
47*53899Smckusick 
48*53899Smckusick #define	MACH_CACHED_TO_UNCACHED(x) ((unsigned)(x) | MACH_UNCACHED_MEMORY_ADDR)
49*53899Smckusick #define	MACH_UNCACHED_TO_CACHED(x) ((unsigned)(x) & 0x9ffffffff)
50*53899Smckusick 
51*53899Smckusick #define BETWEEN(x,a,b)	((unsigned)(x) >= (a) && (unsigned)(x) < (b))
52*53899Smckusick 
53*53899Smckusick #define	MACH_IS_UNMAPPED(x) \
54*53899Smckusick 	BETWEEN(x, MACH_CACHED_MEMORY_ADDR, MACH_KSEG2_ADDR)
55*53899Smckusick #define	MACH_IS_CACHED(x) \
56*53899Smckusick 	BETWEEN(x, MACH_CACHED_MEMORY_ADDR, MACH_UNCACHED_MEMORY_ADDR)
57*53899Smckusick #define	MACH_IS_UNCACHED(x) \
58*53899Smckusick 	BETWEEN(x, MACH_UNCACHED_MEMORY_ADDR, MACH_KSEG2_ADDR)
59*53899Smckusick #define	MACH_IS_MAPPED(x) \
60*53899Smckusick 	BETWEEN(x, MACH_CACHED_MEMORY_ADDR, MACH_KSEG2_ADDR)
61*53899Smckusick #define	MACH_IS_USPACE(x) \
62*53899Smckusick 	((unsigned)(x) < MACH_CACHED_MEMORY_ADDR)
63*53899Smckusick 
64*53899Smckusick #ifdef sony_news
65*53899Smckusick #define MACH_CODE_START			0x80001000
66*53899Smckusick #define MACH_RESERVED_ADDR		0xb3000000	/* KU:XXX need this? */
67*53899Smckusick #define	MACH_KERNWORK_ADDR		0x800001c0
68*53899Smckusick #define	MACH_MAXMEMSIZE_ADDR		MACH_KERNWORK_ADDR + 0 * 4
69*53899Smckusick #define	MACH_BOOTSW_ADDR		MACH_KERNWORK_ADDR + 1 * 4
70*53899Smckusick #define	MACH_BOOTDEV_ADDR		MACH_KERNWORK_ADDR + 2 * 4
71*53899Smckusick #define	MACH_HOWTO_ADDR			MACH_KERNWORK_ADDR + 3 * 4
72*53899Smckusick #endif
73*53899Smckusick 
74*53899Smckusick #ifdef DS3100
75*53899Smckusick #define MACH_CODE_START			0x80030000
76*53899Smckusick #define MACH_MAX_MEM_ADDR		0xa1800000
77*53899Smckusick #define MACH_CACHED_FRAME_BUFFER_ADDR	0x8fc00000
78*53899Smckusick #define MACH_UNCACHED_FRAME_BUFFER_ADDR	0xafc00000
79*53899Smckusick #define MACH_PLANE_MASK_ADDR		0xb0000000
80*53899Smckusick #define MACH_CURSOR_REG_ADDR		0xb1000000
81*53899Smckusick #define MACH_COLOR_MAP_ADDR		0xb2000000
82*53899Smckusick #define MACH_RESERVED_ADDR		0xb3000000
83*53899Smckusick #define MACH_WRITE_ERROR_ADDR		0xb7000000
84*53899Smckusick #define MACH_NETWORK_INTERFACE_ADDR	0xb8000000
85*53899Smckusick #define MACH_NETWORK_BUFFER_ADDR	0xb9000000
86*53899Smckusick #define MACH_SCSI_INTERFACE_ADDR	0xba000000
87*53899Smckusick #define MACH_SCSI_BUFFER_ADDR		0xbb000000
88*53899Smckusick #define MACH_SERIAL_INTERFACE_ADDR	0xbc000000
89*53899Smckusick #define MACH_CLOCK_ADDR			0xbd000000
90*53899Smckusick #define MACH_SYS_CSR_ADDR		0xbe000000
91*53899Smckusick #endif
92*53899Smckusick 
93*53899Smckusick #ifdef DS5000
94*53899Smckusick #define MACH_CODE_START			0x80030000
95*53899Smckusick #define MACH_MAX_MEM_ADDR		0xbe000000
96*53899Smckusick #define MACH_RESERVED_ADDR		0xbfc80000
97*53899Smckusick #define MACH_CHKSYN_ADDR		0xbfd00000
98*53899Smckusick #define MACH_ERROR_ADDR			0xbfd80000
99*53899Smckusick #define MACH_SERIAL_INTERFACE_ADDR	0xbfe00000
100*53899Smckusick #define MACH_CLOCK_ADDR			0xbfe80000
101*53899Smckusick #define MACH_SYS_CSR_ADDR		0xbff00000
102*53899Smckusick #endif
103*53899Smckusick 
104*53899Smckusick /*
105*53899Smckusick  * The bits in the cause register.
106*53899Smckusick  *
107*53899Smckusick  *	MACH_CR_BR_DELAY	Exception happened in branch delay slot.
108*53899Smckusick  *	MACH_CR_COP_ERR		Coprocessor error.
109*53899Smckusick  *				Interrupt pending bits defined below.
110*53899Smckusick  *	MACH_CR_EXC_CODE	The exception type (see exception codes below).
111*53899Smckusick  */
112*53899Smckusick #define MACH_CR_BR_DELAY	0x80000000
113*53899Smckusick #define MACH_CR_COP_ERR		0x30000000
114*53899Smckusick #define MACH_CR_EXC_CODE	0x0000003C
115*53899Smckusick #define MACH_CR_EXC_CODE_SHIFT	2
116*53899Smckusick 
117*53899Smckusick /*
118*53899Smckusick  * The bits in the status register.  All bits are active when set to 1.
119*53899Smckusick  *
120*53899Smckusick  *	MACH_SR_CO_USABILITY	Control the usability of the four coprocessors.
121*53899Smckusick  *	MACH_SR_BOOT_EXC_VEC	Use alternate exception vectors.
122*53899Smckusick  *	MACH_SR_TLB_SHUTDOWN	TLB disabled.
123*53899Smckusick  *	MACH_SR_PARITY_ERR	Parity error.
124*53899Smckusick  *	MACH_SR_CACHE_MISS	Most recent D-cache load resulted in a miss.
125*53899Smckusick  *	MACH_SR_PARITY_ZERO	Zero replaces outgoing parity bits.
126*53899Smckusick  *	MACH_SR_SWAP_CACHES	Swap I-cache and D-cache.
127*53899Smckusick  *	MACH_SR_ISOL_CACHES	Isolate D-cache from main memory.
128*53899Smckusick  *				Interrupt enable bits defined below.
129*53899Smckusick  *	MACH_SR_KU_OLD		Old kernel/user mode bit. 1 => user mode.
130*53899Smckusick  *	MACH_SR_INT_ENA_OLD	Old interrupt enable bit.
131*53899Smckusick  *	MACH_SR_KU_PREV		Previous kernel/user mode bit. 1 => user mode.
132*53899Smckusick  *	MACH_SR_INT_ENA_PREV	Previous interrupt enable bit.
133*53899Smckusick  *	MACH_SR_KU_CUR		Current kernel/user mode bit. 1 => user mode.
134*53899Smckusick  *	MACH_SR_INT_ENA_CUR	Current interrupt enable bit.
135*53899Smckusick  */
136*53899Smckusick #define MACH_SR_COP_USABILITY	0xf0000000
137*53899Smckusick #define MACH_SR_COP_0_BIT	0x10000000
138*53899Smckusick #define MACH_SR_COP_1_BIT	0x20000000
139*53899Smckusick #define MACH_SR_BOOT_EXC_VEC	0x00400000
140*53899Smckusick #define MACH_SR_TLB_SHUTDOWN	0x00200000
141*53899Smckusick #define MACH_SR_PARITY_ERR	0x00100000
142*53899Smckusick #define MACH_SR_CACHE_MISS	0x00080000
143*53899Smckusick #define MACH_SR_PARITY_ZERO	0x00040000
144*53899Smckusick #define MACH_SR_SWAP_CACHES	0x00020000
145*53899Smckusick #define MACH_SR_ISOL_CACHES	0x00010000
146*53899Smckusick #define MACH_SR_KU_OLD		0x00000020
147*53899Smckusick #define MACH_SR_INT_ENA_OLD	0x00000010
148*53899Smckusick #define MACH_SR_KU_PREV		0x00000008
149*53899Smckusick #define MACH_SR_INT_ENA_PREV	0x00000004
150*53899Smckusick #define MACH_SR_KU_CUR		0x00000002
151*53899Smckusick #define MACH_SR_INT_ENA_CUR	0x00000001
152*53899Smckusick #define MACH_SR_MBZ		0x0f8000c0
153*53899Smckusick 
154*53899Smckusick /*
155*53899Smckusick  * The interrupt masks.
156*53899Smckusick  * If a bit in the mask is 1 then the interrupt is enabled (or pending).
157*53899Smckusick  */
158*53899Smckusick #define MACH_INT_MASK		0xff00
159*53899Smckusick #define MACH_INT_MASK_5		0x8000
160*53899Smckusick #define MACH_INT_MASK_4		0x4000
161*53899Smckusick #define MACH_INT_MASK_3		0x2000
162*53899Smckusick #define MACH_INT_MASK_2		0x1000
163*53899Smckusick #define MACH_INT_MASK_1		0x0800
164*53899Smckusick #define MACH_INT_MASK_0		0x0400
165*53899Smckusick #define MACH_HARD_INT_MASK	0xfc00
166*53899Smckusick #define MACH_SOFT_INT_MASK	0x0300
167*53899Smckusick #define MACH_SOFT_INT_MASK_1	0x0200
168*53899Smckusick #define MACH_SOFT_INT_MASK_0	0x0100
169*53899Smckusick 
170*53899Smckusick #if defined(news3400) && !defined(PMAXSPL)
171*53899Smckusick #define	MACH_SPL_MASK_8		0x0000
172*53899Smckusick #define	MACH_SPL_MASK_7		MACH_SPL_MASK_8 | MACH_INT_MASK_5
173*53899Smckusick #define	MACH_SPL_MASK_6		MACH_SPL_MASK_7 | MACH_INT_MASK_4
174*53899Smckusick #define	MACH_SPL_MASK_5		MACH_SPL_MASK_6 | MACH_INT_MASK_3
175*53899Smckusick #define	MACH_SPL_MASK_4		MACH_SPL_MASK_5 | MACH_INT_MASK_2
176*53899Smckusick #define	MACH_SPL_MASK_3		MACH_SPL_MASK_4 | MACH_INT_MASK_1
177*53899Smckusick #define	MACH_SPL_MASK_2		MACH_SPL_MASK_3 | MACH_INT_MASK_0
178*53899Smckusick #define	MACH_SPL_MASK_1		MACH_SPL_MASK_2 | MACH_SOFT_INT_MASK_1
179*53899Smckusick #define	MACH_SPL_MASK_0		MACH_SPL_MASK_1 | MACH_SOFT_INT_MASK_0
180*53899Smckusick #endif
181*53899Smckusick 
182*53899Smckusick /*
183*53899Smckusick  * The system control status register.
184*53899Smckusick  */
185*53899Smckusick #ifdef DS3100
186*53899Smckusick #define MACH_CSR_MONO		0x0800
187*53899Smckusick #define MACH_CSR_MEM_ERR	0x0400
188*53899Smckusick #define	MACH_CSR_VINT		0x0200
189*53899Smckusick #define	MACH_CSR_MBZ		0x9800
190*53899Smckusick #endif
191*53899Smckusick 
192*53899Smckusick #ifdef DS5000
193*53899Smckusick #define	MACH_CSR_IOINT_MASK	0x000000FF
194*53899Smckusick #define MACH_CSR_BAUD38		0x00000100
195*53899Smckusick #define MACH_CSR_DIAGDN		0x00000200
196*53899Smckusick #define MACH_CSR_BNK32M		0x00000400
197*53899Smckusick #define MACH_CSR_TXDIS		0x00000800
198*53899Smckusick #define MACH_CSR_LEDIAG		0x00001000
199*53899Smckusick #define MACH_CSR_CORRECT	0x00002000
200*53899Smckusick #define MACH_CSR_ECCMD		0x0000C000
201*53899Smckusick #define MACH_CSR_IOINTEN_MASK	0x00FF0000
202*53899Smckusick #define	MACH_CSR_IOINTEN_SHIFT	16
203*53899Smckusick #define MACH_CSR_NRMMOD		0x01000000
204*53899Smckusick #define	MACH_CSR_REFEVEN	0x02000000
205*53899Smckusick #define	MACH_CSR_PRSVNVR	0x04000000
206*53899Smckusick #define	MACH_CSR_PSWARN		0x08000000
207*53899Smckusick #define	MACH_CSR_MBZ		0xFF000000
208*53899Smckusick #endif
209*53899Smckusick 
210*53899Smckusick /*
211*53899Smckusick  * The bits in the context register.
212*53899Smckusick  */
213*53899Smckusick #define MACH_CNTXT_PTE_BASE	0xFFE00000
214*53899Smckusick #define MACH_CNTXT_BAD_VPN	0x001FFFFC
215*53899Smckusick 
216*53899Smckusick /*
217*53899Smckusick  * Location of exception vectors.
218*53899Smckusick  */
219*53899Smckusick #define MACH_RESET_EXC_VEC	0xBFC00000
220*53899Smckusick #define MACH_UTLB_MISS_EXC_VEC	0x80000000
221*53899Smckusick #define MACH_GEN_EXC_VEC	0x80000080
222*53899Smckusick 
223*53899Smckusick /*
224*53899Smckusick  * Coprocessor 0 registers:
225*53899Smckusick  *
226*53899Smckusick  *	MACH_COP_0_TLB_INDEX	TLB index.
227*53899Smckusick  *	MACH_COP_0_TLB_RANDOM	TLB random.
228*53899Smckusick  *	MACH_COP_0_TLB_LOW	TLB entry low.
229*53899Smckusick  *	MACH_COP_0_TLB_CONTEXT	TLB context.
230*53899Smckusick  *	MACH_COP_0_BAD_VADDR	Bad virtual address.
231*53899Smckusick  *	MACH_COP_0_TLB_HI	TLB entry high.
232*53899Smckusick  *	MACH_COP_0_STATUS_REG	Status register.
233*53899Smckusick  *	MACH_COP_0_CAUSE_REG	Exception cause register.
234*53899Smckusick  *	MACH_COP_0_EXC_PC	Exception PC.
235*53899Smckusick  *	MACH_COP_0_PRID		Processor revision identifier.
236*53899Smckusick  */
237*53899Smckusick #define MACH_COP_0_TLB_INDEX	$0
238*53899Smckusick #define MACH_COP_0_TLB_RANDOM	$1
239*53899Smckusick #define MACH_COP_0_TLB_LOW	$2
240*53899Smckusick #define MACH_COP_0_TLB_CONTEXT	$4
241*53899Smckusick #define MACH_COP_0_BAD_VADDR	$8
242*53899Smckusick #define MACH_COP_0_TLB_HI	$10
243*53899Smckusick #define MACH_COP_0_STATUS_REG	$12
244*53899Smckusick #define MACH_COP_0_CAUSE_REG	$13
245*53899Smckusick #define MACH_COP_0_EXC_PC	$14
246*53899Smckusick #define MACH_COP_0_PRID		$15
247*53899Smckusick 
248*53899Smckusick /*
249*53899Smckusick  * Values for the code field in a break instruction.
250*53899Smckusick  */
251*53899Smckusick #define MACH_BREAK_INSTR	0x0000000d
252*53899Smckusick #define MACH_BREAK_VAL_MASK	0x03ff0000
253*53899Smckusick #define MACH_BREAK_VAL_SHIFT	16
254*53899Smckusick #define MACH_BREAK_KDB_VAL	512
255*53899Smckusick #define MACH_BREAK_SSTEP_VAL	513
256*53899Smckusick #define MACH_BREAK_BRKPT_VAL	514
257*53899Smckusick #define MACH_BREAK_KDB		(MACH_BREAK_INSTR | \
258*53899Smckusick 				(MACH_BREAK_KDB_VAL << MACH_BREAK_VAL_SHIFT))
259*53899Smckusick #define MACH_BREAK_SSTEP	(MACH_BREAK_INSTR | \
260*53899Smckusick 				(MACH_BREAK_SSTEP_VAL << MACH_BREAK_VAL_SHIFT))
261*53899Smckusick #define MACH_BREAK_BRKPT	(MACH_BREAK_INSTR | \
262*53899Smckusick 				(MACH_BREAK_BRKPT_VAL << MACH_BREAK_VAL_SHIFT))
263*53899Smckusick 
264*53899Smckusick /*
265*53899Smckusick  * Mininum and maximum cache sizes.
266*53899Smckusick  */
267*53899Smckusick #define MACH_MIN_CACHE_SIZE	(16 * 1024)
268*53899Smckusick #define MACH_MAX_CACHE_SIZE	(256 * 1024)
269*53899Smckusick 
270*53899Smckusick /*
271*53899Smckusick  * The floating point version and status registers.
272*53899Smckusick  */
273*53899Smckusick #define	MACH_FPC_ID	$0
274*53899Smckusick #define	MACH_FPC_CSR	$31
275*53899Smckusick 
276*53899Smckusick /*
277*53899Smckusick  * The floating point coprocessor status register bits.
278*53899Smckusick  */
279*53899Smckusick #define MACH_FPC_ROUNDING_BITS		0x00000003
280*53899Smckusick #define MACH_FPC_ROUND_RN		0x00000000
281*53899Smckusick #define MACH_FPC_ROUND_RZ		0x00000001
282*53899Smckusick #define MACH_FPC_ROUND_RP		0x00000002
283*53899Smckusick #define MACH_FPC_ROUND_RM		0x00000003
284*53899Smckusick #define MACH_FPC_STICKY_BITS		0x0000007c
285*53899Smckusick #define MACH_FPC_STICKY_INEXACT		0x00000004
286*53899Smckusick #define MACH_FPC_STICKY_UNDERFLOW	0x00000008
287*53899Smckusick #define MACH_FPC_STICKY_OVERFLOW	0x00000010
288*53899Smckusick #define MACH_FPC_STICKY_DIV0		0x00000020
289*53899Smckusick #define MACH_FPC_STICKY_INVALID		0x00000040
290*53899Smckusick #define MACH_FPC_ENABLE_BITS		0x00000f80
291*53899Smckusick #define MACH_FPC_ENABLE_INEXACT		0x00000080
292*53899Smckusick #define MACH_FPC_ENABLE_UNDERFLOW	0x00000100
293*53899Smckusick #define MACH_FPC_ENABLE_OVERFLOW	0x00000200
294*53899Smckusick #define MACH_FPC_ENABLE_DIV0		0x00000400
295*53899Smckusick #define MACH_FPC_ENABLE_INVALID		0x00000800
296*53899Smckusick #define MACH_FPC_EXCEPTION_BITS		0x0003f000
297*53899Smckusick #define MACH_FPC_EXCEPTION_INEXACT	0x00001000
298*53899Smckusick #define MACH_FPC_EXCEPTION_UNDERFLOW	0x00002000
299*53899Smckusick #define MACH_FPC_EXCEPTION_OVERFLOW	0x00004000
300*53899Smckusick #define MACH_FPC_EXCEPTION_DIV0		0x00008000
301*53899Smckusick #define MACH_FPC_EXCEPTION_INVALID	0x00010000
302*53899Smckusick #define MACH_FPC_EXCEPTION_UNIMPL	0x00020000
303*53899Smckusick #define MACH_FPC_COND_BIT		0x00800000
304*53899Smckusick #define MACH_FPC_MBZ_BITS		0xff7c0000
305*53899Smckusick 
306*53899Smckusick /*
307*53899Smckusick  * Constants to determine if have a floating point instruction.
308*53899Smckusick  */
309*53899Smckusick #define MACH_OPCODE_SHIFT	26
310*53899Smckusick #define MACH_OPCODE_C1		0x11
311*53899Smckusick 
312*53899Smckusick /*
313*53899Smckusick  * The low part of the TLB entry.
314*53899Smckusick  */
315*53899Smckusick #define VMMACH_TLB_PF_NUM		0xfffff000
316*53899Smckusick #define VMMACH_TLB_NON_CACHEABLE_BIT	0x00000800
317*53899Smckusick #define VMMACH_TLB_MOD_BIT		0x00000400
318*53899Smckusick #define VMMACH_TLB_VALID_BIT		0x00000200
319*53899Smckusick #define VMMACH_TLB_GLOBAL_BIT		0x00000100
320*53899Smckusick 
321*53899Smckusick #define VMMACH_TLB_PHYS_PAGE_SHIFT	12
322*53899Smckusick 
323*53899Smckusick /*
324*53899Smckusick  * The high part of the TLB entry.
325*53899Smckusick  */
326*53899Smckusick #define VMMACH_TLB_VIRT_PAGE_NUM	0xfffff000
327*53899Smckusick #define VMMACH_TLB_PID			0x00000fc0
328*53899Smckusick #define VMMACH_TLB_PID_SHIFT		6
329*53899Smckusick #define VMMACH_TLB_VIRT_PAGE_SHIFT	12
330*53899Smckusick 
331*53899Smckusick /*
332*53899Smckusick  * The shift to put the index in the right spot.
333*53899Smckusick  */
334*53899Smckusick #define VMMACH_TLB_INDEX_SHIFT		8
335*53899Smckusick 
336*53899Smckusick /*
337*53899Smckusick  * The number of TLB entries and the first one that write random hits.
338*53899Smckusick  */
339*53899Smckusick #define VMMACH_NUM_TLB_ENTRIES		64
340*53899Smckusick #define VMMACH_FIRST_RAND_ENTRY 	8
341*53899Smckusick 
342*53899Smckusick /*
343*53899Smckusick  * The number of process id entries.
344*53899Smckusick  */
345*53899Smckusick #define	VMMACH_NUM_PIDS			64
346*53899Smckusick 
347*53899Smckusick /*
348*53899Smckusick  * TLB probe return codes.
349*53899Smckusick  */
350*53899Smckusick #define VMMACH_TLB_NOT_FOUND		0
351*53899Smckusick #define VMMACH_TLB_FOUND		1
352*53899Smckusick #define VMMACH_TLB_FOUND_WITH_PATCH	2
353*53899Smckusick #define VMMACH_TLB_PROBE_ERROR		3
354*53899Smckusick 
355*53899Smckusick /*
356*53899Smckusick  * Kernel virtual address for user page table entries
357*53899Smckusick  * (i.e., the address for the context register).
358*53899Smckusick  */
359*53899Smckusick #define VMMACH_PTE_BASE		0xFFC00000
360*53899Smckusick 
361*53899Smckusick #endif /* _MACHCONST */
362