Merge branch 'core/locking' into core/urgent
[linux-2.6] / arch / ia64 / include / asm / sn / shub_mmr.h
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 acceptible 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 */