1 /*
2  *
3  * This file is subject to the terms and conditions of the GNU General Public
4  * License.  See the file "COPYING" in the main directory of this archive
5  * for more details.
6  *
7  * Copyright (c) 2001-2005 Silicon Graphics, Inc.  All rights reserved.
8  */
9 
10 #ifndef _ASM_IA64_SN_SHUB_MMR_H
11 #define _ASM_IA64_SN_SHUB_MMR_H
12 
13 /* ==================================================================== */
14 /*                        Register "SH_IPI_INT"                         */
15 /*               SHub Inter-Processor Interrupt Registers               */
16 /* ==================================================================== */
17 #define SH1_IPI_INT			__IA64_UL_CONST(0x0000000110000380)
18 #define SH2_IPI_INT			__IA64_UL_CONST(0x0000000010000380)
19 
20 /*   SH_IPI_INT_TYPE                                                    */
21 /*   Description:  Type of Interrupt: 0=INT, 2=PMI, 4=NMI, 5=INIT       */
22 #define SH_IPI_INT_TYPE_SHFT				0
23 #define SH_IPI_INT_TYPE_MASK		__IA64_UL_CONST(0x0000000000000007)
24 
25 /*   SH_IPI_INT_AGT                                                     */
26 /*   Description:  Agent, must be 0 for SHub                            */
27 #define SH_IPI_INT_AGT_SHFT				3
28 #define SH_IPI_INT_AGT_MASK		__IA64_UL_CONST(0x0000000000000008)
29 
30 /*   SH_IPI_INT_PID                                                     */
31 /*   Description:  Processor ID, same setting as on targeted McKinley  */
32 #define SH_IPI_INT_PID_SHFT                      	4
33 #define SH_IPI_INT_PID_MASK		__IA64_UL_CONST(0x00000000000ffff0)
34 
35 /*   SH_IPI_INT_BASE                                                    */
36 /*   Description:  Optional interrupt vector area, 2MB aligned          */
37 #define SH_IPI_INT_BASE_SHFT				21
38 #define SH_IPI_INT_BASE_MASK 		__IA64_UL_CONST(0x0003ffffffe00000)
39 
40 /*   SH_IPI_INT_IDX                                                     */
41 /*   Description:  Targeted McKinley interrupt vector                   */
42 #define SH_IPI_INT_IDX_SHFT				52
43 #define SH_IPI_INT_IDX_MASK		__IA64_UL_CONST(0x0ff0000000000000)
44 
45 /*   SH_IPI_INT_SEND                                                    */
46 /*   Description:  Send Interrupt Message to PI, This generates a puls  */
47 #define SH_IPI_INT_SEND_SHFT				63
48 #define SH_IPI_INT_SEND_MASK		__IA64_UL_CONST(0x8000000000000000)
49 
50 /* ==================================================================== */
51 /*                     Register "SH_EVENT_OCCURRED"                     */
52 /*                    SHub Interrupt Event Occurred                     */
53 /* ==================================================================== */
54 #define SH1_EVENT_OCCURRED		__IA64_UL_CONST(0x0000000110010000)
55 #define SH1_EVENT_OCCURRED_ALIAS	__IA64_UL_CONST(0x0000000110010008)
56 #define SH2_EVENT_OCCURRED		__IA64_UL_CONST(0x0000000010010000)
57 #define SH2_EVENT_OCCURRED_ALIAS 	__IA64_UL_CONST(0x0000000010010008)
58 
59 /* ==================================================================== */
60 /*                     Register "SH_PI_CAM_CONTROL"                     */
61 /*                      CRB CAM MMR Access Control                      */
62 /* ==================================================================== */
63 #define SH1_PI_CAM_CONTROL		__IA64_UL_CONST(0x0000000120050300)
64 
65 /* ==================================================================== */
66 /*                        Register "SH_SHUB_ID"                         */
67 /*                            SHub ID Number                            */
68 /* ==================================================================== */
69 #define SH1_SHUB_ID			__IA64_UL_CONST(0x0000000110060580)
70 #define SH1_SHUB_ID_REVISION_SHFT			28
71 #define SH1_SHUB_ID_REVISION_MASK	__IA64_UL_CONST(0x00000000f0000000)
72 
73 /* ==================================================================== */
74 /*                          Register "SH_RTC"                           */
75 /*                           Real-time Clock                            */
76 /* ==================================================================== */
77 #define SH1_RTC				__IA64_UL_CONST(0x00000001101c0000)
78 #define SH2_RTC				__IA64_UL_CONST(0x00000002101c0000)
79 #define SH_RTC_MASK			__IA64_UL_CONST(0x007fffffffffffff)
80 
81 /* ==================================================================== */
82 /*                   Register "SH_PIO_WRITE_STATUS_0|1"                 */
83 /*                      PIO Write Status for CPU 0 & 1                  */
84 /* ==================================================================== */
85 #define SH1_PIO_WRITE_STATUS_0		__IA64_UL_CONST(0x0000000120070200)
86 #define SH1_PIO_WRITE_STATUS_1		__IA64_UL_CONST(0x0000000120070280)
87 #define SH2_PIO_WRITE_STATUS_0		__IA64_UL_CONST(0x0000000020070200)
88 #define SH2_PIO_WRITE_STATUS_1		__IA64_UL_CONST(0x0000000020070280)
89 #define SH2_PIO_WRITE_STATUS_2		__IA64_UL_CONST(0x0000000020070300)
90 #define SH2_PIO_WRITE_STATUS_3		__IA64_UL_CONST(0x0000000020070380)
91 
92 /*   SH_PIO_WRITE_STATUS_0_WRITE_DEADLOCK                               */
93 /*   Description:  Deadlock response detected                           */
94 #define SH_PIO_WRITE_STATUS_WRITE_DEADLOCK_SHFT		1
95 #define SH_PIO_WRITE_STATUS_WRITE_DEADLOCK_MASK \
96 					__IA64_UL_CONST(0x0000000000000002)
97 
98 /*   SH_PIO_WRITE_STATUS_0_PENDING_WRITE_COUNT                          */
99 /*   Description:  Count of currently pending PIO writes                */
100 #define SH_PIO_WRITE_STATUS_PENDING_WRITE_COUNT_SHFT	56
101 #define SH_PIO_WRITE_STATUS_PENDING_WRITE_COUNT_MASK \
102 					__IA64_UL_CONST(0x3f00000000000000)
103 
104 /* ==================================================================== */
105 /*                Register "SH_PIO_WRITE_STATUS_0_ALIAS"                */
106 /* ==================================================================== */
107 #define SH1_PIO_WRITE_STATUS_0_ALIAS	__IA64_UL_CONST(0x0000000120070208)
108 #define SH2_PIO_WRITE_STATUS_0_ALIAS	__IA64_UL_CONST(0x0000000020070208)
109 
110 /* ==================================================================== */
111 /*                     Register "SH_EVENT_OCCURRED"                     */
112 /*                    SHub Interrupt Event Occurred                     */
113 /* ==================================================================== */
114 /*   SH_EVENT_OCCURRED_UART_INT                                         */
115 /*   Description:  Pending Junk Bus UART Interrupt                      */
116 #define SH_EVENT_OCCURRED_UART_INT_SHFT			20
117 #define SH_EVENT_OCCURRED_UART_INT_MASK	__IA64_UL_CONST(0x0000000000100000)
118 
119 /*   SH_EVENT_OCCURRED_IPI_INT                                          */
120 /*   Description:  Pending IPI Interrupt                                */
121 #define SH_EVENT_OCCURRED_IPI_INT_SHFT			28
122 #define SH_EVENT_OCCURRED_IPI_INT_MASK	__IA64_UL_CONST(0x0000000010000000)
123 
124 /*   SH_EVENT_OCCURRED_II_INT0                                          */
125 /*   Description:  Pending II 0 Interrupt                               */
126 #define SH_EVENT_OCCURRED_II_INT0_SHFT			29
127 #define SH_EVENT_OCCURRED_II_INT0_MASK	__IA64_UL_CONST(0x0000000020000000)
128 
129 /*   SH_EVENT_OCCURRED_II_INT1                                          */
130 /*   Description:  Pending II 1 Interrupt                               */
131 #define SH_EVENT_OCCURRED_II_INT1_SHFT			30
132 #define SH_EVENT_OCCURRED_II_INT1_MASK	__IA64_UL_CONST(0x0000000040000000)
133 
134 /*   SH2_EVENT_OCCURRED_EXTIO_INT2                                      */
135 /*   Description:  Pending SHUB 2 EXT IO INT2                           */
136 #define SH2_EVENT_OCCURRED_EXTIO_INT2_SHFT		33
137 #define SH2_EVENT_OCCURRED_EXTIO_INT2_MASK __IA64_UL_CONST(0x0000000200000000)
138 
139 /*   SH2_EVENT_OCCURRED_EXTIO_INT3                                      */
140 /*   Description:  Pending SHUB 2 EXT IO INT3                           */
141 #define SH2_EVENT_OCCURRED_EXTIO_INT3_SHFT		34
142 #define SH2_EVENT_OCCURRED_EXTIO_INT3_MASK __IA64_UL_CONST(0x0000000400000000)
143 
144 #define SH_ALL_INT_MASK \
145 	(SH_EVENT_OCCURRED_UART_INT_MASK | SH_EVENT_OCCURRED_IPI_INT_MASK | \
146 	 SH_EVENT_OCCURRED_II_INT0_MASK | SH_EVENT_OCCURRED_II_INT1_MASK | \
147 	 SH_EVENT_OCCURRED_II_INT1_MASK | SH2_EVENT_OCCURRED_EXTIO_INT2_MASK | \
148 	 SH2_EVENT_OCCURRED_EXTIO_INT3_MASK)
149 
150 
151 /* ==================================================================== */
152 /*                         LEDS                                         */
153 /* ==================================================================== */
154 #define SH1_REAL_JUNK_BUS_LED0			0x7fed00000UL
155 #define SH1_REAL_JUNK_BUS_LED1			0x7fed10000UL
156 #define SH1_REAL_JUNK_BUS_LED2			0x7fed20000UL
157 #define SH1_REAL_JUNK_BUS_LED3			0x7fed30000UL
158 
159 #define SH2_REAL_JUNK_BUS_LED0			0xf0000000UL
160 #define SH2_REAL_JUNK_BUS_LED1			0xf0010000UL
161 #define SH2_REAL_JUNK_BUS_LED2			0xf0020000UL
162 #define SH2_REAL_JUNK_BUS_LED3			0xf0030000UL
163 
164 /* ==================================================================== */
165 /*                         Register "SH1_PTC_0"                         */
166 /*       Puge Translation Cache Message Configuration Information       */
167 /* ==================================================================== */
168 #define SH1_PTC_0			__IA64_UL_CONST(0x00000001101a0000)
169 
170 /*   SH1_PTC_0_A                                                        */
171 /*   Description:  Type                                                 */
172 #define SH1_PTC_0_A_SHFT				0
173 
174 /*   SH1_PTC_0_PS                                                       */
175 /*   Description:  Page Size                                            */
176 #define SH1_PTC_0_PS_SHFT				2
177 
178 /*   SH1_PTC_0_RID                                                      */
179 /*   Description:  Region ID                                            */
180 #define SH1_PTC_0_RID_SHFT				8
181 
182 /*   SH1_PTC_0_START                                                    */
183 /*   Description:  Start                                                */
184 #define SH1_PTC_0_START_SHFT				63
185 
186 /* ==================================================================== */
187 /*                         Register "SH1_PTC_1"                         */
188 /*       Puge Translation Cache Message Configuration Information       */
189 /* ==================================================================== */
190 #define SH1_PTC_1			__IA64_UL_CONST(0x00000001101a0080)
191 
192 /*   SH1_PTC_1_START                                                    */
193 /*   Description:  PTC_1 Start                                          */
194 #define SH1_PTC_1_START_SHFT				63
195 
196 /* ==================================================================== */
197 /*                         Register "SH2_PTC"                           */
198 /*       Puge Translation Cache Message Configuration Information       */
199 /* ==================================================================== */
200 #define SH2_PTC				__IA64_UL_CONST(0x0000000170000000)
201 
202 /*   SH2_PTC_A                                                          */
203 /*   Description:  Type                                                 */
204 #define SH2_PTC_A_SHFT					0
205 
206 /*   SH2_PTC_PS                                                         */
207 /*   Description:  Page Size                                            */
208 #define SH2_PTC_PS_SHFT					2
209 
210 /*   SH2_PTC_RID                                                      */
211 /*   Description:  Region ID                                            */
212 #define SH2_PTC_RID_SHFT				4
213 
214 /*   SH2_PTC_START                                                      */
215 /*   Description:  Start                                                */
216 #define SH2_PTC_START_SHFT				63
217 
218 /*   SH2_PTC_ADDR_RID                                                   */
219 /*   Description:  Region ID                                            */
220 #define SH2_PTC_ADDR_SHFT				4
221 #define SH2_PTC_ADDR_MASK		__IA64_UL_CONST(0x1ffffffffffff000)
222 
223 /* ==================================================================== */
224 /*                    Register "SH_RTC1_INT_CONFIG"                     */
225 /*                SHub RTC 1 Interrupt Config Registers                 */
226 /* ==================================================================== */
227 
228 #define SH1_RTC1_INT_CONFIG		__IA64_UL_CONST(0x0000000110001480)
229 #define SH2_RTC1_INT_CONFIG		__IA64_UL_CONST(0x0000000010001480)
230 #define SH_RTC1_INT_CONFIG_MASK		__IA64_UL_CONST(0x0ff3ffffffefffff)
231 #define SH_RTC1_INT_CONFIG_INIT		__IA64_UL_CONST(0x0000000000000000)
232 
233 /*   SH_RTC1_INT_CONFIG_TYPE                                            */
234 /*   Description:  Type of Interrupt: 0=INT, 2=PMI, 4=NMI, 5=INIT       */
235 #define SH_RTC1_INT_CONFIG_TYPE_SHFT			0
236 #define SH_RTC1_INT_CONFIG_TYPE_MASK	__IA64_UL_CONST(0x0000000000000007)
237 
238 /*   SH_RTC1_INT_CONFIG_AGT                                             */
239 /*   Description:  Agent, must be 0 for SHub                            */
240 #define SH_RTC1_INT_CONFIG_AGT_SHFT			3
241 #define SH_RTC1_INT_CONFIG_AGT_MASK	__IA64_UL_CONST(0x0000000000000008)
242 
243 /*   SH_RTC1_INT_CONFIG_PID                                             */
244 /*   Description:  Processor ID, same setting as on targeted McKinley  */
245 #define SH_RTC1_INT_CONFIG_PID_SHFT			4
246 #define SH_RTC1_INT_CONFIG_PID_MASK	__IA64_UL_CONST(0x00000000000ffff0)
247 
248 /*   SH_RTC1_INT_CONFIG_BASE                                            */
249 /*   Description:  Optional interrupt vector area, 2MB aligned          */
250 #define SH_RTC1_INT_CONFIG_BASE_SHFT			21
251 #define SH_RTC1_INT_CONFIG_BASE_MASK	__IA64_UL_CONST(0x0003ffffffe00000)
252 
253 /*   SH_RTC1_INT_CONFIG_IDX                                             */
254 /*   Description:  Targeted McKinley interrupt vector                   */
255 #define SH_RTC1_INT_CONFIG_IDX_SHFT			52
256 #define SH_RTC1_INT_CONFIG_IDX_MASK	__IA64_UL_CONST(0x0ff0000000000000)
257 
258 /* ==================================================================== */
259 /*                    Register "SH_RTC1_INT_ENABLE"                     */
260 /*                SHub RTC 1 Interrupt Enable Registers                 */
261 /* ==================================================================== */
262 
263 #define SH1_RTC1_INT_ENABLE		__IA64_UL_CONST(0x0000000110001500)
264 #define SH2_RTC1_INT_ENABLE		__IA64_UL_CONST(0x0000000010001500)
265 #define SH_RTC1_INT_ENABLE_MASK		__IA64_UL_CONST(0x0000000000000001)
266 #define SH_RTC1_INT_ENABLE_INIT		__IA64_UL_CONST(0x0000000000000000)
267 
268 /*   SH_RTC1_INT_ENABLE_RTC1_ENABLE                                     */
269 /*   Description:  Enable RTC 1 Interrupt                               */
270 #define SH_RTC1_INT_ENABLE_RTC1_ENABLE_SHFT		0
271 #define SH_RTC1_INT_ENABLE_RTC1_ENABLE_MASK \
272 					__IA64_UL_CONST(0x0000000000000001)
273 
274 /* ==================================================================== */
275 /*                    Register "SH_RTC2_INT_CONFIG"                     */
276 /*                SHub RTC 2 Interrupt Config Registers                 */
277 /* ==================================================================== */
278 
279 #define SH1_RTC2_INT_CONFIG		__IA64_UL_CONST(0x0000000110001580)
280 #define SH2_RTC2_INT_CONFIG		__IA64_UL_CONST(0x0000000010001580)
281 #define SH_RTC2_INT_CONFIG_MASK		__IA64_UL_CONST(0x0ff3ffffffefffff)
282 #define SH_RTC2_INT_CONFIG_INIT		__IA64_UL_CONST(0x0000000000000000)
283 
284 /*   SH_RTC2_INT_CONFIG_TYPE                                            */
285 /*   Description:  Type of Interrupt: 0=INT, 2=PMI, 4=NMI, 5=INIT       */
286 #define SH_RTC2_INT_CONFIG_TYPE_SHFT			0
287 #define SH_RTC2_INT_CONFIG_TYPE_MASK	__IA64_UL_CONST(0x0000000000000007)
288 
289 /*   SH_RTC2_INT_CONFIG_AGT                                             */
290 /*   Description:  Agent, must be 0 for SHub                            */
291 #define SH_RTC2_INT_CONFIG_AGT_SHFT			3
292 #define SH_RTC2_INT_CONFIG_AGT_MASK	__IA64_UL_CONST(0x0000000000000008)
293 
294 /*   SH_RTC2_INT_CONFIG_PID                                             */
295 /*   Description:  Processor ID, same setting as on targeted McKinley  */
296 #define SH_RTC2_INT_CONFIG_PID_SHFT			4
297 #define SH_RTC2_INT_CONFIG_PID_MASK	__IA64_UL_CONST(0x00000000000ffff0)
298 
299 /*   SH_RTC2_INT_CONFIG_BASE                                            */
300 /*   Description:  Optional interrupt vector area, 2MB aligned          */
301 #define SH_RTC2_INT_CONFIG_BASE_SHFT			21
302 #define SH_RTC2_INT_CONFIG_BASE_MASK	__IA64_UL_CONST(0x0003ffffffe00000)
303 
304 /*   SH_RTC2_INT_CONFIG_IDX                                             */
305 /*   Description:  Targeted McKinley interrupt vector                   */
306 #define SH_RTC2_INT_CONFIG_IDX_SHFT			52
307 #define SH_RTC2_INT_CONFIG_IDX_MASK	__IA64_UL_CONST(0x0ff0000000000000)
308 
309 /* ==================================================================== */
310 /*                    Register "SH_RTC2_INT_ENABLE"                     */
311 /*                SHub RTC 2 Interrupt Enable Registers                 */
312 /* ==================================================================== */
313 
314 #define SH1_RTC2_INT_ENABLE		__IA64_UL_CONST(0x0000000110001600)
315 #define SH2_RTC2_INT_ENABLE		__IA64_UL_CONST(0x0000000010001600)
316 #define SH_RTC2_INT_ENABLE_MASK		__IA64_UL_CONST(0x0000000000000001)
317 #define SH_RTC2_INT_ENABLE_INIT		__IA64_UL_CONST(0x0000000000000000)
318 
319 /*   SH_RTC2_INT_ENABLE_RTC2_ENABLE                                     */
320 /*   Description:  Enable RTC 2 Interrupt                               */
321 #define SH_RTC2_INT_ENABLE_RTC2_ENABLE_SHFT		0
322 #define SH_RTC2_INT_ENABLE_RTC2_ENABLE_MASK \
323 					__IA64_UL_CONST(0x0000000000000001)
324 
325 /* ==================================================================== */
326 /*                    Register "SH_RTC3_INT_CONFIG"                     */
327 /*                SHub RTC 3 Interrupt Config Registers                 */
328 /* ==================================================================== */
329 
330 #define SH1_RTC3_INT_CONFIG		__IA64_UL_CONST(0x0000000110001680)
331 #define SH2_RTC3_INT_CONFIG		__IA64_UL_CONST(0x0000000010001680)
332 #define SH_RTC3_INT_CONFIG_MASK		__IA64_UL_CONST(0x0ff3ffffffefffff)
333 #define SH_RTC3_INT_CONFIG_INIT		__IA64_UL_CONST(0x0000000000000000)
334 
335 /*   SH_RTC3_INT_CONFIG_TYPE                                            */
336 /*   Description:  Type of Interrupt: 0=INT, 2=PMI, 4=NMI, 5=INIT       */
337 #define SH_RTC3_INT_CONFIG_TYPE_SHFT			0
338 #define SH_RTC3_INT_CONFIG_TYPE_MASK	__IA64_UL_CONST(0x0000000000000007)
339 
340 /*   SH_RTC3_INT_CONFIG_AGT                                             */
341 /*   Description:  Agent, must be 0 for SHub                            */
342 #define SH_RTC3_INT_CONFIG_AGT_SHFT			3
343 #define SH_RTC3_INT_CONFIG_AGT_MASK	__IA64_UL_CONST(0x0000000000000008)
344 
345 /*   SH_RTC3_INT_CONFIG_PID                                             */
346 /*   Description:  Processor ID, same setting as on targeted McKinley  */
347 #define SH_RTC3_INT_CONFIG_PID_SHFT			4
348 #define SH_RTC3_INT_CONFIG_PID_MASK	__IA64_UL_CONST(0x00000000000ffff0)
349 
350 /*   SH_RTC3_INT_CONFIG_BASE                                            */
351 /*   Description:  Optional interrupt vector area, 2MB aligned          */
352 #define SH_RTC3_INT_CONFIG_BASE_SHFT			21
353 #define SH_RTC3_INT_CONFIG_BASE_MASK	__IA64_UL_CONST(0x0003ffffffe00000)
354 
355 /*   SH_RTC3_INT_CONFIG_IDX                                             */
356 /*   Description:  Targeted McKinley interrupt vector                   */
357 #define SH_RTC3_INT_CONFIG_IDX_SHFT			52
358 #define SH_RTC3_INT_CONFIG_IDX_MASK	__IA64_UL_CONST(0x0ff0000000000000)
359 
360 /* ==================================================================== */
361 /*                    Register "SH_RTC3_INT_ENABLE"                     */
362 /*                SHub RTC 3 Interrupt Enable Registers                 */
363 /* ==================================================================== */
364 
365 #define SH1_RTC3_INT_ENABLE		__IA64_UL_CONST(0x0000000110001700)
366 #define SH2_RTC3_INT_ENABLE		__IA64_UL_CONST(0x0000000010001700)
367 #define SH_RTC3_INT_ENABLE_MASK		__IA64_UL_CONST(0x0000000000000001)
368 #define SH_RTC3_INT_ENABLE_INIT		__IA64_UL_CONST(0x0000000000000000)
369 
370 /*   SH_RTC3_INT_ENABLE_RTC3_ENABLE                                     */
371 /*   Description:  Enable RTC 3 Interrupt                               */
372 #define SH_RTC3_INT_ENABLE_RTC3_ENABLE_SHFT		0
373 #define SH_RTC3_INT_ENABLE_RTC3_ENABLE_MASK \
374 					__IA64_UL_CONST(0x0000000000000001)
375 
376 /*   SH_EVENT_OCCURRED_RTC1_INT                                         */
377 /*   Description:  Pending RTC 1 Interrupt                              */
378 #define SH_EVENT_OCCURRED_RTC1_INT_SHFT			24
379 #define SH_EVENT_OCCURRED_RTC1_INT_MASK	__IA64_UL_CONST(0x0000000001000000)
380 
381 /*   SH_EVENT_OCCURRED_RTC2_INT                                         */
382 /*   Description:  Pending RTC 2 Interrupt                              */
383 #define SH_EVENT_OCCURRED_RTC2_INT_SHFT			25
384 #define SH_EVENT_OCCURRED_RTC2_INT_MASK	__IA64_UL_CONST(0x0000000002000000)
385 
386 /*   SH_EVENT_OCCURRED_RTC3_INT                                         */
387 /*   Description:  Pending RTC 3 Interrupt                              */
388 #define SH_EVENT_OCCURRED_RTC3_INT_SHFT			26
389 #define SH_EVENT_OCCURRED_RTC3_INT_MASK	__IA64_UL_CONST(0x0000000004000000)
390 
391 /* ==================================================================== */
392 /*                       Register "SH_IPI_ACCESS"                       */
393 /*                 CPU interrupt Access Permission Bits                 */
394 /* ==================================================================== */
395 
396 #define SH1_IPI_ACCESS			__IA64_UL_CONST(0x0000000110060480)
397 #define SH2_IPI_ACCESS0			__IA64_UL_CONST(0x0000000010060c00)
398 #define SH2_IPI_ACCESS1			__IA64_UL_CONST(0x0000000010060c80)
399 #define SH2_IPI_ACCESS2			__IA64_UL_CONST(0x0000000010060d00)
400 #define SH2_IPI_ACCESS3			__IA64_UL_CONST(0x0000000010060d80)
401 
402 /* ==================================================================== */
403 /*                        Register "SH_INT_CMPB"                        */
404 /*                  RTC Compare Value for Processor B                   */
405 /* ==================================================================== */
406 
407 #define SH1_INT_CMPB			__IA64_UL_CONST(0x00000001101b0080)
408 #define SH2_INT_CMPB			__IA64_UL_CONST(0x00000000101b0080)
409 #define SH_INT_CMPB_MASK		__IA64_UL_CONST(0x007fffffffffffff)
410 #define SH_INT_CMPB_INIT		__IA64_UL_CONST(0x0000000000000000)
411 
412 /*   SH_INT_CMPB_REAL_TIME_CMPB                                         */
413 /*   Description:  Real Time Clock Compare                              */
414 #define SH_INT_CMPB_REAL_TIME_CMPB_SHFT			0
415 #define SH_INT_CMPB_REAL_TIME_CMPB_MASK	__IA64_UL_CONST(0x007fffffffffffff)
416 
417 /* ==================================================================== */
418 /*                        Register "SH_INT_CMPC"                        */
419 /*                  RTC Compare Value for Processor C                   */
420 /* ==================================================================== */
421 
422 #define SH1_INT_CMPC			__IA64_UL_CONST(0x00000001101b0100)
423 #define SH2_INT_CMPC			__IA64_UL_CONST(0x00000000101b0100)
424 #define SH_INT_CMPC_MASK		__IA64_UL_CONST(0x007fffffffffffff)
425 #define SH_INT_CMPC_INIT		__IA64_UL_CONST(0x0000000000000000)
426 
427 /*   SH_INT_CMPC_REAL_TIME_CMPC                                         */
428 /*   Description:  Real Time Clock Compare                              */
429 #define SH_INT_CMPC_REAL_TIME_CMPC_SHFT			0
430 #define SH_INT_CMPC_REAL_TIME_CMPC_MASK	__IA64_UL_CONST(0x007fffffffffffff)
431 
432 /* ==================================================================== */
433 /*                        Register "SH_INT_CMPD"                        */
434 /*                  RTC Compare Value for Processor D                   */
435 /* ==================================================================== */
436 
437 #define SH1_INT_CMPD			__IA64_UL_CONST(0x00000001101b0180)
438 #define SH2_INT_CMPD			__IA64_UL_CONST(0x00000000101b0180)
439 #define SH_INT_CMPD_MASK		__IA64_UL_CONST(0x007fffffffffffff)
440 #define SH_INT_CMPD_INIT		__IA64_UL_CONST(0x0000000000000000)
441 
442 /*   SH_INT_CMPD_REAL_TIME_CMPD                                         */
443 /*   Description:  Real Time Clock Compare                              */
444 #define SH_INT_CMPD_REAL_TIME_CMPD_SHFT			0
445 #define SH_INT_CMPD_REAL_TIME_CMPD_MASK	__IA64_UL_CONST(0x007fffffffffffff)
446 
447 /* ==================================================================== */
448 /*                Register "SH_MD_DQLP_MMR_DIR_PRIVEC0"                 */
449 /*                      privilege vector for acc=0                      */
450 /* ==================================================================== */
451 #define SH1_MD_DQLP_MMR_DIR_PRIVEC0	__IA64_UL_CONST(0x0000000100030300)
452 
453 /* ==================================================================== */
454 /*                Register "SH_MD_DQRP_MMR_DIR_PRIVEC0"                 */
455 /*                      privilege vector for acc=0                      */
456 /* ==================================================================== */
457 #define SH1_MD_DQRP_MMR_DIR_PRIVEC0	__IA64_UL_CONST(0x0000000100050300)
458 
459 /* ==================================================================== */
460 /* Some MMRs are functionally identical (or close enough) on both SHUB1 */
461 /* and SHUB2 that it makes sense to define a geberic name for the MMR.  */
462 /* It is acceptable to use (for example) SH_IPI_INT to reference the    */
463 /* the IPI MMR. The value of SH_IPI_INT is determined at runtime based  */
464 /* on the type of the SHUB. Do not use these #defines in performance    */
465 /* critical code  or loops - there is a small performance penalty.      */
466 /* ==================================================================== */
467 #define shubmmr(a,b) 		(is_shub2() ? a##2_##b : a##1_##b)
468 
469 #define SH_REAL_JUNK_BUS_LED0	shubmmr(SH, REAL_JUNK_BUS_LED0)
470 #define SH_IPI_INT		shubmmr(SH, IPI_INT)
471 #define SH_EVENT_OCCURRED	shubmmr(SH, EVENT_OCCURRED)
472 #define SH_EVENT_OCCURRED_ALIAS	shubmmr(SH, EVENT_OCCURRED_ALIAS)
473 #define SH_RTC			shubmmr(SH, RTC)
474 #define SH_RTC1_INT_CONFIG	shubmmr(SH, RTC1_INT_CONFIG)
475 #define SH_RTC1_INT_ENABLE	shubmmr(SH, RTC1_INT_ENABLE)
476 #define SH_RTC2_INT_CONFIG	shubmmr(SH, RTC2_INT_CONFIG)
477 #define SH_RTC2_INT_ENABLE	shubmmr(SH, RTC2_INT_ENABLE)
478 #define SH_RTC3_INT_CONFIG	shubmmr(SH, RTC3_INT_CONFIG)
479 #define SH_RTC3_INT_ENABLE	shubmmr(SH, RTC3_INT_ENABLE)
480 #define SH_INT_CMPB		shubmmr(SH, INT_CMPB)
481 #define SH_INT_CMPC		shubmmr(SH, INT_CMPC)
482 #define SH_INT_CMPD		shubmmr(SH, INT_CMPD)
483 
484 /* ========================================================================== */
485 /*                        Register "SH2_BT_ENG_CSR_0"                         */
486 /*                    Engine 0 Control and Status Register                    */
487 /* ========================================================================== */
488 
489 #define SH2_BT_ENG_CSR_0		__IA64_UL_CONST(0x0000000030040000)
490 #define SH2_BT_ENG_SRC_ADDR_0		__IA64_UL_CONST(0x0000000030040080)
491 #define SH2_BT_ENG_DEST_ADDR_0		__IA64_UL_CONST(0x0000000030040100)
492 #define SH2_BT_ENG_NOTIF_ADDR_0		__IA64_UL_CONST(0x0000000030040180)
493 
494 /* ========================================================================== */
495 /*                       BTE interfaces 1-3                                   */
496 /* ========================================================================== */
497 
498 #define SH2_BT_ENG_CSR_1		__IA64_UL_CONST(0x0000000030050000)
499 #define SH2_BT_ENG_CSR_2		__IA64_UL_CONST(0x0000000030060000)
500 #define SH2_BT_ENG_CSR_3		__IA64_UL_CONST(0x0000000030070000)
501 
502 #endif /* _ASM_IA64_SN_SHUB_MMR_H */
503