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
7 * Copyright (c) 2001-2004 Silicon Graphics, Inc. All rights reserved.
10 #ifndef _ASM_IA64_SN_SHUB_MMR_H
11 #define _ASM_IA64_SN_SHUB_MMR_H
13 /* ==================================================================== */
14 /* Register "SH_IPI_INT" */
15 /* SHub Inter-Processor Interrupt Registers */
16 /* ==================================================================== */
17 #define SH_IPI_INT 0x0000000110000380UL
18 #define SH_IPI_INT_MASK 0x8ff3ffffffefffffUL
19 #define SH_IPI_INT_INIT 0x0000000000000000UL
22 /* Description: Type of Interrupt: 0=INT, 2=PMI, 4=NMI, 5=INIT */
23 #define SH_IPI_INT_TYPE_SHFT 0
24 #define SH_IPI_INT_TYPE_MASK 0x0000000000000007UL
27 /* Description: Agent, must be 0 for SHub */
28 #define SH_IPI_INT_AGT_SHFT 3
29 #define SH_IPI_INT_AGT_MASK 0x0000000000000008UL
32 /* Description: Processor ID, same setting as on targeted McKinley */
33 #define SH_IPI_INT_PID_SHFT 4
34 #define SH_IPI_INT_PID_MASK 0x00000000000ffff0UL
37 /* Description: Optional interrupt vector area, 2MB aligned */
38 #define SH_IPI_INT_BASE_SHFT 21
39 #define SH_IPI_INT_BASE_MASK 0x0003ffffffe00000UL
42 /* Description: Targeted McKinley interrupt vector */
43 #define SH_IPI_INT_IDX_SHFT 52
44 #define SH_IPI_INT_IDX_MASK 0x0ff0000000000000UL
47 /* Description: Send Interrupt Message to PI, This generates a puls */
48 #define SH_IPI_INT_SEND_SHFT 63
49 #define SH_IPI_INT_SEND_MASK 0x8000000000000000UL
51 /* ==================================================================== */
52 /* Register "SH_EVENT_OCCURRED" */
53 /* SHub Interrupt Event Occurred */
54 /* ==================================================================== */
55 #define SH_EVENT_OCCURRED 0x0000000110010000UL
56 #define SH_EVENT_OCCURRED_ALIAS 0x0000000110010008UL
58 /* ==================================================================== */
59 /* Register "SH_PI_CAM_CONTROL" */
60 /* CRB CAM MMR Access Control */
61 /* ==================================================================== */
63 #define SH_PI_CAM_CONTROL 0x0000000120050300UL
65 #define SH_PI_CAM_CONTROL 0x0000000120050300
68 /* ==================================================================== */
69 /* Register "SH_SHUB_ID" */
71 /* ==================================================================== */
72 #define SH_SHUB_ID 0x0000000110060580UL
73 #define SH_SHUB_ID_REVISION_SHFT 28
74 #define SH_SHUB_ID_REVISION_MASK 0x00000000f0000000
76 /* ==================================================================== */
77 /* Register "SH_PTC_0" */
78 /* Puge Translation Cache Message Configuration Information */
79 /* ==================================================================== */
80 #define SH_PTC_0 0x00000001101a0000UL
81 #define SH_PTC_1 0x00000001101a0080UL
83 /* ==================================================================== */
84 /* Register "SH_RTC" */
86 /* ==================================================================== */
87 #define SH_RTC 0x00000001101c0000UL
88 #define SH_RTC_MASK 0x007fffffffffffffUL
90 /* ==================================================================== */
91 /* Register "SH_MEMORY_WRITE_STATUS_0|1" */
92 /* Memory Write Status for CPU 0 & 1 */
93 /* ==================================================================== */
94 #define SH_MEMORY_WRITE_STATUS_0 0x0000000120070000UL
95 #define SH_MEMORY_WRITE_STATUS_1 0x0000000120070080UL
97 /* ==================================================================== */
98 /* Register "SH_PIO_WRITE_STATUS_0|1" */
99 /* PIO Write Status for CPU 0 & 1 */
100 /* ==================================================================== */
102 #define SH_PIO_WRITE_STATUS_0 0x0000000120070200UL
103 #define SH_PIO_WRITE_STATUS_1 0x0000000120070280UL
105 /* SH_PIO_WRITE_STATUS_0_WRITE_DEADLOCK */
106 /* Description: Deadlock response detected */
107 #define SH_PIO_WRITE_STATUS_0_WRITE_DEADLOCK_SHFT 1
108 #define SH_PIO_WRITE_STATUS_0_WRITE_DEADLOCK_MASK 0x0000000000000002
110 /* SH_PIO_WRITE_STATUS_0_PENDING_WRITE_COUNT */
111 /* Description: Count of currently pending PIO writes */
112 #define SH_PIO_WRITE_STATUS_0_PENDING_WRITE_COUNT_SHFT 56
113 #define SH_PIO_WRITE_STATUS_0_PENDING_WRITE_COUNT_MASK 0x3f00000000000000UL
115 #define SH_PIO_WRITE_STATUS_0 0x0000000120070200
116 #define SH_PIO_WRITE_STATUS_0_PENDING_WRITE_COUNT_SHFT 56
117 #define SH_PIO_WRITE_STATUS_0_WRITE_DEADLOCK_SHFT 1
120 /* ==================================================================== */
121 /* Register "SH_PIO_WRITE_STATUS_0_ALIAS" */
122 /* ==================================================================== */
124 #define SH_PIO_WRITE_STATUS_0_ALIAS 0x0000000120070208UL
126 #define SH_PIO_WRITE_STATUS_0_ALIAS 0x0000000120070208
129 /* ==================================================================== */
130 /* Register "SH_EVENT_OCCURRED" */
131 /* SHub Interrupt Event Occurred */
132 /* ==================================================================== */
133 /* SH_EVENT_OCCURRED_UART_INT */
134 /* Description: Pending Junk Bus UART Interrupt */
135 #define SH_EVENT_OCCURRED_UART_INT_SHFT 20
136 #define SH_EVENT_OCCURRED_UART_INT_MASK 0x0000000000100000
138 /* SH_EVENT_OCCURRED_IPI_INT */
139 /* Description: Pending IPI Interrupt */
140 #define SH_EVENT_OCCURRED_IPI_INT_SHFT 28
141 #define SH_EVENT_OCCURRED_IPI_INT_MASK 0x0000000010000000
143 /* SH_EVENT_OCCURRED_II_INT0 */
144 /* Description: Pending II 0 Interrupt */
145 #define SH_EVENT_OCCURRED_II_INT0_SHFT 29
146 #define SH_EVENT_OCCURRED_II_INT0_MASK 0x0000000020000000
148 /* SH_EVENT_OCCURRED_II_INT1 */
149 /* Description: Pending II 1 Interrupt */
150 #define SH_EVENT_OCCURRED_II_INT1_SHFT 30
151 #define SH_EVENT_OCCURRED_II_INT1_MASK 0x0000000040000000
153 /* ==================================================================== */
154 /* Register "SH_PTC_0" */
155 /* Puge Translation Cache Message Configuration Information */
156 /* ==================================================================== */
157 #define SH_PTC_0 0x00000001101a0000UL
158 #define SH_PTC_0_MASK 0x80000000fffffffd
159 #define SH_PTC_0_INIT 0x0000000000000000
162 /* Description: Type */
163 #define SH_PTC_0_A_SHFT 0
164 #define SH_PTC_0_A_MASK 0x0000000000000001
167 /* Description: Page Size */
168 #define SH_PTC_0_PS_SHFT 2
169 #define SH_PTC_0_PS_MASK 0x00000000000000fc
172 /* Description: Region ID */
173 #define SH_PTC_0_RID_SHFT 8
174 #define SH_PTC_0_RID_MASK 0x00000000ffffff00
177 /* Description: Start */
178 #define SH_PTC_0_START_SHFT 63
179 #define SH_PTC_0_START_MASK 0x8000000000000000
181 /* ==================================================================== */
182 /* Register "SH_PTC_1" */
183 /* Puge Translation Cache Message Configuration Information */
184 /* ==================================================================== */
185 #define SH_PTC_1 0x00000001101a0080UL
186 #define SH_PTC_1_MASK 0x9ffffffffffff000
187 #define SH_PTC_1_INIT 0x0000000000000000
190 /* Description: Virtual page number */
191 #define SH_PTC_1_VPN_SHFT 12
192 #define SH_PTC_1_VPN_MASK 0x1ffffffffffff000
195 /* Description: PTC_1 Start */
196 #define SH_PTC_1_START_SHFT 63
197 #define SH_PTC_1_START_MASK 0x8000000000000000
200 * Register definitions
203 /* ==================================================================== */
204 /* Register "SH_RTC1_INT_CONFIG" */
205 /* SHub RTC 1 Interrupt Config Registers */
206 /* ==================================================================== */
208 #define SH_RTC1_INT_CONFIG 0x0000000110001480
209 #define SH_RTC1_INT_CONFIG_MASK 0x0ff3ffffffefffff
210 #define SH_RTC1_INT_CONFIG_INIT 0x0000000000000000
212 /* SH_RTC1_INT_CONFIG_TYPE */
213 /* Description: Type of Interrupt: 0=INT, 2=PMI, 4=NMI, 5=INIT */
214 #define SH_RTC1_INT_CONFIG_TYPE_SHFT 0
215 #define SH_RTC1_INT_CONFIG_TYPE_MASK 0x0000000000000007
217 /* SH_RTC1_INT_CONFIG_AGT */
218 /* Description: Agent, must be 0 for SHub */
219 #define SH_RTC1_INT_CONFIG_AGT_SHFT 3
220 #define SH_RTC1_INT_CONFIG_AGT_MASK 0x0000000000000008
222 /* SH_RTC1_INT_CONFIG_PID */
223 /* Description: Processor ID, same setting as on targeted McKinley */
224 #define SH_RTC1_INT_CONFIG_PID_SHFT 4
225 #define SH_RTC1_INT_CONFIG_PID_MASK 0x00000000000ffff0
227 /* SH_RTC1_INT_CONFIG_BASE */
228 /* Description: Optional interrupt vector area, 2MB aligned */
229 #define SH_RTC1_INT_CONFIG_BASE_SHFT 21
230 #define SH_RTC1_INT_CONFIG_BASE_MASK 0x0003ffffffe00000
232 /* SH_RTC1_INT_CONFIG_IDX */
233 /* Description: Targeted McKinley interrupt vector */
234 #define SH_RTC1_INT_CONFIG_IDX_SHFT 52
235 #define SH_RTC1_INT_CONFIG_IDX_MASK 0x0ff0000000000000
237 /* ==================================================================== */
238 /* Register "SH_RTC1_INT_ENABLE" */
239 /* SHub RTC 1 Interrupt Enable Registers */
240 /* ==================================================================== */
242 #define SH_RTC1_INT_ENABLE 0x0000000110001500
243 #define SH_RTC1_INT_ENABLE_MASK 0x0000000000000001
244 #define SH_RTC1_INT_ENABLE_INIT 0x0000000000000000
246 /* SH_RTC1_INT_ENABLE_RTC1_ENABLE */
247 /* Description: Enable RTC 1 Interrupt */
248 #define SH_RTC1_INT_ENABLE_RTC1_ENABLE_SHFT 0
249 #define SH_RTC1_INT_ENABLE_RTC1_ENABLE_MASK 0x0000000000000001
251 /* ==================================================================== */
252 /* Register "SH_RTC2_INT_CONFIG" */
253 /* SHub RTC 2 Interrupt Config Registers */
254 /* ==================================================================== */
256 #define SH_RTC2_INT_CONFIG 0x0000000110001580
257 #define SH_RTC2_INT_CONFIG_MASK 0x0ff3ffffffefffff
258 #define SH_RTC2_INT_CONFIG_INIT 0x0000000000000000
260 /* SH_RTC2_INT_CONFIG_TYPE */
261 /* Description: Type of Interrupt: 0=INT, 2=PMI, 4=NMI, 5=INIT */
262 #define SH_RTC2_INT_CONFIG_TYPE_SHFT 0
263 #define SH_RTC2_INT_CONFIG_TYPE_MASK 0x0000000000000007
265 /* SH_RTC2_INT_CONFIG_AGT */
266 /* Description: Agent, must be 0 for SHub */
267 #define SH_RTC2_INT_CONFIG_AGT_SHFT 3
268 #define SH_RTC2_INT_CONFIG_AGT_MASK 0x0000000000000008
270 /* SH_RTC2_INT_CONFIG_PID */
271 /* Description: Processor ID, same setting as on targeted McKinley */
272 #define SH_RTC2_INT_CONFIG_PID_SHFT 4
273 #define SH_RTC2_INT_CONFIG_PID_MASK 0x00000000000ffff0
275 /* SH_RTC2_INT_CONFIG_BASE */
276 /* Description: Optional interrupt vector area, 2MB aligned */
277 #define SH_RTC2_INT_CONFIG_BASE_SHFT 21
278 #define SH_RTC2_INT_CONFIG_BASE_MASK 0x0003ffffffe00000
280 /* SH_RTC2_INT_CONFIG_IDX */
281 /* Description: Targeted McKinley interrupt vector */
282 #define SH_RTC2_INT_CONFIG_IDX_SHFT 52
283 #define SH_RTC2_INT_CONFIG_IDX_MASK 0x0ff0000000000000
285 /* ==================================================================== */
286 /* Register "SH_RTC2_INT_ENABLE" */
287 /* SHub RTC 2 Interrupt Enable Registers */
288 /* ==================================================================== */
290 #define SH_RTC2_INT_ENABLE 0x0000000110001600
291 #define SH_RTC2_INT_ENABLE_MASK 0x0000000000000001
292 #define SH_RTC2_INT_ENABLE_INIT 0x0000000000000000
294 /* SH_RTC2_INT_ENABLE_RTC2_ENABLE */
295 /* Description: Enable RTC 2 Interrupt */
296 #define SH_RTC2_INT_ENABLE_RTC2_ENABLE_SHFT 0
297 #define SH_RTC2_INT_ENABLE_RTC2_ENABLE_MASK 0x0000000000000001
299 /* ==================================================================== */
300 /* Register "SH_RTC3_INT_CONFIG" */
301 /* SHub RTC 3 Interrupt Config Registers */
302 /* ==================================================================== */
304 #define SH_RTC3_INT_CONFIG 0x0000000110001680
305 #define SH_RTC3_INT_CONFIG_MASK 0x0ff3ffffffefffff
306 #define SH_RTC3_INT_CONFIG_INIT 0x0000000000000000
308 /* SH_RTC3_INT_CONFIG_TYPE */
309 /* Description: Type of Interrupt: 0=INT, 2=PMI, 4=NMI, 5=INIT */
310 #define SH_RTC3_INT_CONFIG_TYPE_SHFT 0
311 #define SH_RTC3_INT_CONFIG_TYPE_MASK 0x0000000000000007
313 /* SH_RTC3_INT_CONFIG_AGT */
314 /* Description: Agent, must be 0 for SHub */
315 #define SH_RTC3_INT_CONFIG_AGT_SHFT 3
316 #define SH_RTC3_INT_CONFIG_AGT_MASK 0x0000000000000008
318 /* SH_RTC3_INT_CONFIG_PID */
319 /* Description: Processor ID, same setting as on targeted McKinley */
320 #define SH_RTC3_INT_CONFIG_PID_SHFT 4
321 #define SH_RTC3_INT_CONFIG_PID_MASK 0x00000000000ffff0
323 /* SH_RTC3_INT_CONFIG_BASE */
324 /* Description: Optional interrupt vector area, 2MB aligned */
325 #define SH_RTC3_INT_CONFIG_BASE_SHFT 21
326 #define SH_RTC3_INT_CONFIG_BASE_MASK 0x0003ffffffe00000
328 /* SH_RTC3_INT_CONFIG_IDX */
329 /* Description: Targeted McKinley interrupt vector */
330 #define SH_RTC3_INT_CONFIG_IDX_SHFT 52
331 #define SH_RTC3_INT_CONFIG_IDX_MASK 0x0ff0000000000000
333 /* ==================================================================== */
334 /* Register "SH_RTC3_INT_ENABLE" */
335 /* SHub RTC 3 Interrupt Enable Registers */
336 /* ==================================================================== */
338 #define SH_RTC3_INT_ENABLE 0x0000000110001700
339 #define SH_RTC3_INT_ENABLE_MASK 0x0000000000000001
340 #define SH_RTC3_INT_ENABLE_INIT 0x0000000000000000
342 /* SH_RTC3_INT_ENABLE_RTC3_ENABLE */
343 /* Description: Enable RTC 3 Interrupt */
344 #define SH_RTC3_INT_ENABLE_RTC3_ENABLE_SHFT 0
345 #define SH_RTC3_INT_ENABLE_RTC3_ENABLE_MASK 0x0000000000000001
347 /* SH_EVENT_OCCURRED_RTC1_INT */
348 /* Description: Pending RTC 1 Interrupt */
349 #define SH_EVENT_OCCURRED_RTC1_INT_SHFT 24
350 #define SH_EVENT_OCCURRED_RTC1_INT_MASK 0x0000000001000000
352 /* SH_EVENT_OCCURRED_RTC2_INT */
353 /* Description: Pending RTC 2 Interrupt */
354 #define SH_EVENT_OCCURRED_RTC2_INT_SHFT 25
355 #define SH_EVENT_OCCURRED_RTC2_INT_MASK 0x0000000002000000
357 /* SH_EVENT_OCCURRED_RTC3_INT */
358 /* Description: Pending RTC 3 Interrupt */
359 #define SH_EVENT_OCCURRED_RTC3_INT_SHFT 26
360 #define SH_EVENT_OCCURRED_RTC3_INT_MASK 0x0000000004000000
362 /* ==================================================================== */
363 /* Register "SH_INT_CMPB" */
364 /* RTC Compare Value for Processor B */
365 /* ==================================================================== */
367 #define SH_INT_CMPB 0x00000001101b0080
368 #define SH_INT_CMPB_MASK 0x007fffffffffffff
369 #define SH_INT_CMPB_INIT 0x0000000000000000
371 /* SH_INT_CMPB_REAL_TIME_CMPB */
372 /* Description: Real Time Clock Compare */
373 #define SH_INT_CMPB_REAL_TIME_CMPB_SHFT 0
374 #define SH_INT_CMPB_REAL_TIME_CMPB_MASK 0x007fffffffffffff
376 /* ==================================================================== */
377 /* Register "SH_INT_CMPC" */
378 /* RTC Compare Value for Processor C */
379 /* ==================================================================== */
381 #define SH_INT_CMPC 0x00000001101b0100
382 #define SH_INT_CMPC_MASK 0x007fffffffffffff
383 #define SH_INT_CMPC_INIT 0x0000000000000000
385 /* SH_INT_CMPC_REAL_TIME_CMPC */
386 /* Description: Real Time Clock Compare */
387 #define SH_INT_CMPC_REAL_TIME_CMPC_SHFT 0
388 #define SH_INT_CMPC_REAL_TIME_CMPC_MASK 0x007fffffffffffff
390 /* ==================================================================== */
391 /* Register "SH_INT_CMPD" */
392 /* RTC Compare Value for Processor D */
393 /* ==================================================================== */
395 #define SH_INT_CMPD 0x00000001101b0180
396 #define SH_INT_CMPD_MASK 0x007fffffffffffff
397 #define SH_INT_CMPD_INIT 0x0000000000000000
399 /* SH_INT_CMPD_REAL_TIME_CMPD */
400 /* Description: Real Time Clock Compare */
401 #define SH_INT_CMPD_REAL_TIME_CMPD_SHFT 0
402 #define SH_INT_CMPD_REAL_TIME_CMPD_MASK 0x007fffffffffffff
404 #endif /* _ASM_IA64_SN_SHUB_MMR_H */