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 */
503