FreeBSD/Linux Kernel Cross Reference
sys/sqt/SGSproc.h
1 /*
2 * Mach Operating System
3 * Copyright (c) 1991 Carnegie Mellon University
4 * Copyright (c) 1991 Sequent Computer Systems
5 * All Rights Reserved.
6 *
7 * Permission to use, copy, modify and distribute this software and its
8 * documentation is hereby granted, provided that both the copyright
9 * notice and this permission notice appear in all copies of the
10 * software, derivative works or modified versions, and any portions
11 * thereof, and that both notices appear in supporting documentation.
12 *
13 * CARNEGIE MELLON AND SEQUENT COMPUTER SYSTEMS ALLOW FREE USE OF
14 * THIS SOFTWARE IN ITS "AS IS" CONDITION. CARNEGIE MELLON AND
15 * SEQUENT COMPUTER SYSTEMS DISCLAIM ANY LIABILITY OF ANY KIND FOR
16 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
17 *
18 * Carnegie Mellon requests users of this software to return to
19 *
20 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
21 * School of Computer Science
22 * Carnegie Mellon University
23 * Pittsburgh PA 15213-3890
24 *
25 * any improvements or extensions that they make and grant Carnegie Mellon
26 * the rights to redistribute these changes.
27 */
28
29 /*
30 * HISTORY
31 * $Log: SGSproc.h,v $
32 * Revision 2.3 91/07/31 17:58:45 dbg
33 * Changed copyright.
34 * [91/07/31 dbg]
35 *
36 * Revision 2.2 91/05/08 12:50:27 dbg
37 * Added, from Sequent SYMMETRY sources.
38 * [91/04/26 14:45:57 dbg]
39 *
40 */
41
42 /*
43 * $Header: SGSproc.h,v 2.3 91/07/31 17:58:45 dbg Exp $
44 *
45 * SGSproc.h
46 * Second-Generation System processor board definitions.
47 */
48
49 /*
50 * Revision 1.1 89/07/19 14:48:50 kak
51 * Initial revision
52 *
53 * Revision 2.9 88/10/26 07:54:46 corene
54 * added conditional define for PROC_STAT_MASK and new FATALERR bit for
55 * ModelC
56 *
57 * Revision 2.8 88/10/21 14:06:21 corene
58 * added new ModelC bit FATAL_ERR to PROC_STAT register
59 *
60 * Revision 2.7 88/10/10 15:05:02 rto
61 * Added 532-specific definitions in support of a common inter-project
62 * build environment.
63 *
64 * Revision 2.10 88/10/05 11:38:33 rto
65 * 532port: Changed value for PHYS_CACHE_TAGS.
66 *
67 * Revision 2.9 88/09/21 14:02:26 rto
68 * 532port: Added PHYS_CACHE_TAGS definition for access to the chip cache
69 * tag rams.
70 *
71 * Revision 2.8 88/08/12 18:54:50 petebob
72 * 532 change made for johnc
73 *
74 * Revision 2.7 88/07/25 16:42:46 rto
75 * 532port: Added definitions for the additional SLIC control register.
76 *
77 */
78
79 #ifndef _SQT_SGSPROC_H_
80 #define _SQT_SGSPROC_H_
81
82 /*
83 * Physical addresses in processor board address space.
84 */
85
86 #define PHYS_CACHE_OPT 0x40000000 /* 1Gig-2Gig cacheing is optional */
87 #define PHYS_IO_SPACE 0x80000000 /* IO space starts at 2Gig */
88
89 #define PHYS_WEITEK_FPA 0xC0000000 /* Weitek FPA starts here... */
90 #define WEITEK_SPACE (64*1024) /* ... for 64k */
91 #define PHYS_SLIC 0xC8000000 /* processor-SLIC interface */
92 #define PHYS_LED 0xCC000000 /* per-processor activity light */
93 #define PHYS_ETC 0xCC002000 /* per-processor elapsed time counter */
94 #define PHYS_SYNC_POINT 0xD0000000 /* synchronization points */
95 #define PHYS_CACHE_RAM 0xF0000000 /* cache as local RAM */
96 #define PHYS_CACHE_TAGS 0xC8002000 /* on-chip cache tag ram access */
97
98 /*
99 * MBAd's start at 28Meg into IO space.
100 */
101
102 #define PHYS_MBAD (PHYS_IO_SPACE+28*1024*1024)
103
104 /*
105 * Processor "control" functions SLIC slave register. Write Only.
106 * All bits are activel LOW.
107 */
108
109 #define PROC_CTL 0x22 /* control of processor (WO) */
110 #define PROC_CTL_MASK 0x67 /* useful bits */
111 #define PROC_CTL_LED_OFF 0x40 /* 1 == Turn LED off, 0 == turn it ON */
112 #define PROC_CTL_NO_NMI 0x20 /* 1 == Disable NMI's */
113 #define PROC_CTL_NO_SSTEP 0x04 /* 1 == Disable single-step option */
114 #define PROC_CTL_NO_HOLD 0x02 /* 1 == Don't assert HOLD */
115 #define PROC_CTL_NO_RESET 0x01 /* 1 == Don't reset processor */
116
117 /*
118 * Processor status SLIC slave register. Read Only.
119 * All bits are activel LOW.
120 *
121 * NOTE: same SLIC address as PROC_CTL. Defined seperately for ease of
122 * understanding.
123 */
124
125 #define PROC_STAT 0x22 /* processor status (RO) */
126 #ifdef SYM_C
127 #define PROC_STAT_MASK 0xFF /* useful bits */
128 #define PROC_STAT_FATALERR 0x80 /* 1 == Proc generated FATAL RESPONSE code */
129 #else
130 #define PROC_STAT_MASK 0x7F /* useful bits */
131 #endif SYM_C
132 #define PROC_STAT_LED_OFF 0x40 /* 1 == LED is off */
133 #define PROC_STAT_NO_NMI 0x20 /* 1 == NMI's are disabled */
134 #define PROC_STAT_RUNNING 0x10 /* 1 == Processor not in SHUTDOWN mode*/
135 #define PROC_STAT_NO_HALT 0x08 /* 1 == Processor not in HALT mode*/
136 #define PROC_STAT_NO_SSTEP 0x04 /* 1 == Single-step option disabled */
137 #define PROC_STAT_NO_HOLDA 0x02 /* 1 == Processor not in HOLDA */
138 #define PROC_STAT_NO_RESET 0x01 /* 1 == Processor not reset */
139
140 /*
141 * There are two differences between the 532 board and the SGS (i386)
142 * board. First, the 532 board does not support a floating point
143 * accellerator (we will just not use the definition of the weitek
144 * chip in SGSproc.h). Second, there is an additional control register
145 * on the SLIC. The field definitions for this additional register
146 * follow:
147 */
148
149 #define PROC_CTL1 0x21 /* SLIC Control Register 1 */
150 #define PROC_CTL1_MASK 0x7f /* useful bits */
151 #define PROC_CTL1_NO_BURST 0x01 /* 1 == disable burst mode */
152 #define PROC_CTL1_NO_CACHE_2G 0x02 /* 1 == disable 2nd Gig caching */
153 #define PROC_CTL1_NO_DINVAL 0x04 /* 1 == disable double invalidate */
154 #define PROC_CTL1_NO_FRESET 0x08 /* 0 == flush counter is reset */
155 #define PROC_CTL1_NO_HIT_I 0x10 /* extended tag hit, instr. cache */
156 #define PROC_CTL1_NO_HIT_D1 0x20 /* extended tag hit, data set 0 */
157 #define PROC_CTL1_NO_HIT_D0 0x40 /* extended tag hit, data set 1 */
158
159
160 /*
161 * Procesor local-device faults SLIC slave register.
162 *
163 * Any write clears all bits (if processor not reset), except BDP parity
164 * errors (PROC_FLT_BDP_{HI,LO}_PE must be cleared at the BDP).
165 *
166 * PROC_FLT_ACC_ERR results from access to processor local reserved space.
167 * Other access errors are sensed via the BIC.
168 *
169 * PROC_FLT_SLIC_NMI and PROC_FLT_ACC_ERR cause NMI. All other cause the
170 * processor to be automatically placed in HOLD mode.
171 *
172 * All bits are active LOW (0 ==> error).
173 */
174
175 #define PROC_FLT 0x23 /* local device faults */
176 #define PROC_FLT_MASK 0xFF /* useful bits */
177 #define PROC_FLT_SLIC_NMI 0x80 /* SLIC NMI */
178 #define PROC_FLT_ACC_ERR 0x40 /* Processor Access Error (local) */
179 #define PROC_FLT_BDP_HI_PE 0x10 /* BDP (high 4-bytes) parity error */
180 #define PROC_FLT_BDP_LO_PE 0x20 /* BDP (low 4-bytes) parity error */
181 #define PROC_FLT_CACHE_B3PE 0x08 /* Cache parity error byte 3 */
182 #define PROC_FLT_CACHE_B2PE 0x04 /* Cache parity error byte 2 */
183 #define PROC_FLT_CACHE_B1PE 0x02 /* Cache parity error byte 1 */
184 #define PROC_FLT_CACHE_B0PE 0x01 /* Cache parity error byte 0 */
185
186 /*
187 * Processor board VLSI chip SLIC slave registers.
188 * These addresses select the particular chip; use "sub-register address" to
189 * access chip registers (see machine/{bic,bdp,cmc}.h).
190 */
191
192 #define PROC_CMC_0 0x81 /* Cache Memory Controller, Set 0 */
193 #define PROC_CMC_1 0x91 /* Cache Memory Controller, Set 1 */
194 #define PROC_BDP_LO 0x80 /* Buffered Data Path (low 4-bytes) */
195 #define PROC_BDP_HI 0x90 /* Buffered Data Path (high 4-bytes) */
196 #define PROC_BIC 0xA0 /* Bus-Interface Controller */
197
198 /*
199 * Important versions of the processor board.
200 * These are read from SL_SGENERATION register of
201 * the processor board's config prom.
202 */
203 #define PROC_SREV_B1 0 /* 80386 B1 stepping */
204 #define PROC_SREV_C0 1 /* 80386 C0 stepping */
205
206 #endif /* _SQT_SGSPROC_H_ */
Cache object: a428b88989647adedc07c9ec05a73c88
|