sb1250_int.h revision 1.1 1 1.1 simonb /* *********************************************************************
2 1.1 simonb * SB1250 Board Support Package
3 1.1 simonb *
4 1.1 simonb * Interrupt Mapper definitions File: sb1250_int.h
5 1.1 simonb *
6 1.1 simonb * This module contains constants for manipulating the SB1250's
7 1.1 simonb * interrupt mapper and definitions for the interrupt sources.
8 1.1 simonb *
9 1.1 simonb * SB1250 specification level: 0.2
10 1.1 simonb *
11 1.1 simonb * Author: Mitch Lichtenberg (mitch (at) sibyte.com)
12 1.1 simonb *
13 1.1 simonb *********************************************************************
14 1.1 simonb *
15 1.1 simonb * Copyright 2000,2001
16 1.1 simonb * Broadcom Corporation. All rights reserved.
17 1.1 simonb *
18 1.1 simonb * This software is furnished under license and may be used and
19 1.1 simonb * copied only in accordance with the following terms and
20 1.1 simonb * conditions. Subject to these conditions, you may download,
21 1.1 simonb * copy, install, use, modify and distribute modified or unmodified
22 1.1 simonb * copies of this software in source and/or binary form. No title
23 1.1 simonb * or ownership is transferred hereby.
24 1.1 simonb *
25 1.1 simonb * 1) Any source code used, modified or distributed must reproduce
26 1.1 simonb * and retain this copyright notice and list of conditions as
27 1.1 simonb * they appear in the source file.
28 1.1 simonb *
29 1.1 simonb * 2) No right is granted to use any trade name, trademark, or
30 1.1 simonb * logo of Broadcom Corporation. Neither the "Broadcom
31 1.1 simonb * Corporation" name nor any trademark or logo of Broadcom
32 1.1 simonb * Corporation may be used to endorse or promote products
33 1.1 simonb * derived from this software without the prior written
34 1.1 simonb * permission of Broadcom Corporation.
35 1.1 simonb *
36 1.1 simonb * 3) THIS SOFTWARE IS PROVIDED "AS-IS" AND ANY EXPRESS OR
37 1.1 simonb * IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED
38 1.1 simonb * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
39 1.1 simonb * PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT
40 1.1 simonb * SHALL BROADCOM BE LIABLE FOR ANY DAMAGES WHATSOEVER, AND IN
41 1.1 simonb * PARTICULAR, BROADCOM SHALL NOT BE LIABLE FOR DIRECT, INDIRECT,
42 1.1 simonb * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
43 1.1 simonb * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
44 1.1 simonb * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
45 1.1 simonb * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
46 1.1 simonb * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
47 1.1 simonb * TORT (INCLUDING NEGLIGENCE OR OTHERWISE), EVEN IF ADVISED OF
48 1.1 simonb * THE POSSIBILITY OF SUCH DAMAGE.
49 1.1 simonb ********************************************************************* */
50 1.1 simonb
51 1.1 simonb
52 1.1 simonb #ifndef _SB1250_INT_H
53 1.1 simonb #define _SB1250_INT_H
54 1.1 simonb
55 1.1 simonb #include "sb1250_defs.h"
56 1.1 simonb
57 1.1 simonb /* *********************************************************************
58 1.1 simonb * Interrupt Mapper Constants
59 1.1 simonb ********************************************************************* */
60 1.1 simonb
61 1.1 simonb /*
62 1.1 simonb * Interrupt sources (Table 4-8, UM 0.2)
63 1.1 simonb *
64 1.1 simonb * First, the interrupt numbers.
65 1.1 simonb */
66 1.1 simonb
67 1.1 simonb #define K_INT_WATCHDOG_TIMER_0 0
68 1.1 simonb #define K_INT_WATCHDOG_TIMER_1 1
69 1.1 simonb #define K_INT_TIMER_0 2
70 1.1 simonb #define K_INT_TIMER_1 3
71 1.1 simonb #define K_INT_TIMER_2 4
72 1.1 simonb #define K_INT_TIMER_3 5
73 1.1 simonb #define K_INT_SMB_0 6
74 1.1 simonb #define K_INT_SMB_1 7
75 1.1 simonb #define K_INT_UART_0 8
76 1.1 simonb #define K_INT_UART_1 9
77 1.1 simonb #define K_INT_SER_0 10
78 1.1 simonb #define K_INT_SER_1 11
79 1.1 simonb #define K_INT_PCMCIA 12
80 1.1 simonb #define K_INT_ADDR_TRAP 13
81 1.1 simonb #define K_INT_PERF_CNT 14
82 1.1 simonb #define K_INT_TRACE_FREEZE 15
83 1.1 simonb #define K_INT_BAD_ECC 16
84 1.1 simonb #define K_INT_COR_ECC 17
85 1.1 simonb #define K_INT_IO_BUS 18
86 1.1 simonb #define K_INT_MAC_0 19
87 1.1 simonb #define K_INT_MAC_1 20
88 1.1 simonb #define K_INT_MAC_2 21
89 1.1 simonb #define K_INT_DM_CH_0 22
90 1.1 simonb #define K_INT_DM_CH_1 23
91 1.1 simonb #define K_INT_DM_CH_2 24
92 1.1 simonb #define K_INT_DM_CH_3 25
93 1.1 simonb #define K_INT_MBOX_0 26
94 1.1 simonb #define K_INT_MBOX_1 27
95 1.1 simonb #define K_INT_MBOX_2 28
96 1.1 simonb #define K_INT_MBOX_3 29
97 1.1 simonb #define K_INT_SPARE_0 30
98 1.1 simonb #define K_INT_SPARE_1 31
99 1.1 simonb #define K_INT_GPIO_0 32
100 1.1 simonb #define K_INT_GPIO_1 33
101 1.1 simonb #define K_INT_GPIO_2 34
102 1.1 simonb #define K_INT_GPIO_3 35
103 1.1 simonb #define K_INT_GPIO_4 36
104 1.1 simonb #define K_INT_GPIO_5 37
105 1.1 simonb #define K_INT_GPIO_6 38
106 1.1 simonb #define K_INT_GPIO_7 39
107 1.1 simonb #define K_INT_GPIO_8 40
108 1.1 simonb #define K_INT_GPIO_9 41
109 1.1 simonb #define K_INT_GPIO_10 42
110 1.1 simonb #define K_INT_GPIO_11 43
111 1.1 simonb #define K_INT_GPIO_12 44
112 1.1 simonb #define K_INT_GPIO_13 45
113 1.1 simonb #define K_INT_GPIO_14 46
114 1.1 simonb #define K_INT_GPIO_15 47
115 1.1 simonb #define K_INT_LDT_FATAL 48
116 1.1 simonb #define K_INT_LDT_NONFATAL 49
117 1.1 simonb #define K_INT_LDT_SMI 50
118 1.1 simonb #define K_INT_LDT_NMI 51
119 1.1 simonb #define K_INT_LDT_INIT 52
120 1.1 simonb #define K_INT_LDT_STARTUP 53
121 1.1 simonb #define K_INT_LDT_EXT 54
122 1.1 simonb #define K_INT_PCI_ERROR 55
123 1.1 simonb #define K_INT_PCI_INTA 56
124 1.1 simonb #define K_INT_PCI_INTB 57
125 1.1 simonb #define K_INT_PCI_INTC 58
126 1.1 simonb #define K_INT_PCI_INTD 59
127 1.1 simonb #define K_INT_SPARE_2 60
128 1.1 simonb #define K_INT_SPARE_3 61
129 1.1 simonb #define K_INT_SPARE_4 62
130 1.1 simonb #define K_INT_SPARE_5 63
131 1.1 simonb
132 1.1 simonb /*
133 1.1 simonb * Mask values for each interrupt
134 1.1 simonb */
135 1.1 simonb
136 1.1 simonb #define M_INT_WATCHDOG_TIMER_0 _SB_MAKEMASK1(K_INT_WATCHDOG_TIMER_0)
137 1.1 simonb #define M_INT_WATCHDOG_TIMER_1 _SB_MAKEMASK1(K_INT_WATCHDOG_TIMER_1)
138 1.1 simonb #define M_INT_TIMER_0 _SB_MAKEMASK1(K_INT_TIMER_0)
139 1.1 simonb #define M_INT_TIMER_1 _SB_MAKEMASK1(K_INT_TIMER_1)
140 1.1 simonb #define M_INT_TIMER_2 _SB_MAKEMASK1(K_INT_TIMER_2)
141 1.1 simonb #define M_INT_TIMER_3 _SB_MAKEMASK1(K_INT_TIMER_3)
142 1.1 simonb #define M_INT_SMB_0 _SB_MAKEMASK1(K_INT_SMB_0)
143 1.1 simonb #define M_INT_SMB_1 _SB_MAKEMASK1(K_INT_SMB_1)
144 1.1 simonb #define M_INT_UART_0 _SB_MAKEMASK1(K_INT_UART_0)
145 1.1 simonb #define M_INT_UART_1 _SB_MAKEMASK1(K_INT_UART_1)
146 1.1 simonb #define M_INT_SER_0 _SB_MAKEMASK1(K_INT_SER_0)
147 1.1 simonb #define M_INT_SER_1 _SB_MAKEMASK1(K_INT_SER_1)
148 1.1 simonb #define M_INT_PCMCIA _SB_MAKEMASK1(K_INT_PCMCIA)
149 1.1 simonb #define M_INT_ADDR_TRAP _SB_MAKEMASK1(K_INT_ADDR_TRAP)
150 1.1 simonb #define M_INT_PERF_CNT _SB_MAKEMASK1(K_INT_PERF_CNT)
151 1.1 simonb #define M_INT_TRACE_FREEZE _SB_MAKEMASK1(K_INT_TRACE_FREEZE)
152 1.1 simonb #define M_INT_BAD_ECC _SB_MAKEMASK1(K_INT_BAD_ECC)
153 1.1 simonb #define M_INT_COR_ECC _SB_MAKEMASK1(K_INT_COR_ECC)
154 1.1 simonb #define M_INT_IO_BUS _SB_MAKEMASK1(K_INT_IO_BUS)
155 1.1 simonb #define M_INT_MAC_0 _SB_MAKEMASK1(K_INT_MAC_0)
156 1.1 simonb #define M_INT_MAC_1 _SB_MAKEMASK1(K_INT_MAC_1)
157 1.1 simonb #define M_INT_MAC_2 _SB_MAKEMASK1(K_INT_MAC_2)
158 1.1 simonb #define M_INT_DM_CH_0 _SB_MAKEMASK1(K_INT_DM_CH_0)
159 1.1 simonb #define M_INT_DM_CH_1 _SB_MAKEMASK1(K_INT_DM_CH_1)
160 1.1 simonb #define M_INT_DM_CH_2 _SB_MAKEMASK1(K_INT_DM_CH_2)
161 1.1 simonb #define M_INT_DM_CH_3 _SB_MAKEMASK1(K_INT_DM_CH_3)
162 1.1 simonb #define M_INT_MBOX_0 _SB_MAKEMASK1(K_INT_MBOX_0)
163 1.1 simonb #define M_INT_MBOX_1 _SB_MAKEMASK1(K_INT_MBOX_1)
164 1.1 simonb #define M_INT_MBOX_2 _SB_MAKEMASK1(K_INT_MBOX_2)
165 1.1 simonb #define M_INT_MBOX_3 _SB_MAKEMASK1(K_INT_MBOX_3)
166 1.1 simonb #define M_INT_SPARE_0 _SB_MAKEMASK1(K_INT_SPARE_0)
167 1.1 simonb #define M_INT_SPARE_1 _SB_MAKEMASK1(K_INT_SPARE_1)
168 1.1 simonb #define M_INT_GPIO_0 _SB_MAKEMASK1(K_INT_GPIO_0)
169 1.1 simonb #define M_INT_GPIO_1 _SB_MAKEMASK1(K_INT_GPIO_1)
170 1.1 simonb #define M_INT_GPIO_2 _SB_MAKEMASK1(K_INT_GPIO_2)
171 1.1 simonb #define M_INT_GPIO_3 _SB_MAKEMASK1(K_INT_GPIO_3)
172 1.1 simonb #define M_INT_GPIO_4 _SB_MAKEMASK1(K_INT_GPIO_4)
173 1.1 simonb #define M_INT_GPIO_5 _SB_MAKEMASK1(K_INT_GPIO_5)
174 1.1 simonb #define M_INT_GPIO_6 _SB_MAKEMASK1(K_INT_GPIO_6)
175 1.1 simonb #define M_INT_GPIO_7 _SB_MAKEMASK1(K_INT_GPIO_7)
176 1.1 simonb #define M_INT_GPIO_8 _SB_MAKEMASK1(K_INT_GPIO_8)
177 1.1 simonb #define M_INT_GPIO_9 _SB_MAKEMASK1(K_INT_GPIO_9)
178 1.1 simonb #define M_INT_GPIO_10 _SB_MAKEMASK1(K_INT_GPIO_10)
179 1.1 simonb #define M_INT_GPIO_11 _SB_MAKEMASK1(K_INT_GPIO_11)
180 1.1 simonb #define M_INT_GPIO_12 _SB_MAKEMASK1(K_INT_GPIO_12)
181 1.1 simonb #define M_INT_GPIO_13 _SB_MAKEMASK1(K_INT_GPIO_13)
182 1.1 simonb #define M_INT_GPIO_14 _SB_MAKEMASK1(K_INT_GPIO_14)
183 1.1 simonb #define M_INT_GPIO_15 _SB_MAKEMASK1(K_INT_GPIO_15)
184 1.1 simonb #define M_INT_LDT_FATAL _SB_MAKEMASK1(K_INT_LDT_FATAL)
185 1.1 simonb #define M_INT_LDT_NONFATAL _SB_MAKEMASK1(K_INT_LDT_NONFATAL)
186 1.1 simonb #define M_INT_LDT_SMI _SB_MAKEMASK1(K_INT_LDT_SMI)
187 1.1 simonb #define M_INT_LDT_NMI _SB_MAKEMASK1(K_INT_LDT_NMI)
188 1.1 simonb #define M_INT_LDT_INIT _SB_MAKEMASK1(K_INT_LDT_INIT)
189 1.1 simonb #define M_INT_LDT_STARTUP _SB_MAKEMASK1(K_INT_LDT_STARTUP)
190 1.1 simonb #define M_INT_LDT_EXT _SB_MAKEMASK1(K_INT_LDT_EXT)
191 1.1 simonb #define M_INT_PCI_ERROR _SB_MAKEMASK1(K_INT_PCI_ERROR)
192 1.1 simonb #define M_INT_PCI_INTA _SB_MAKEMASK1(K_INT_PCI_INTA)
193 1.1 simonb #define M_INT_PCI_INTB _SB_MAKEMASK1(K_INT_PCI_INTB)
194 1.1 simonb #define M_INT_PCI_INTC _SB_MAKEMASK1(K_INT_PCI_INTC)
195 1.1 simonb #define M_INT_PCI_INTD _SB_MAKEMASK1(K_INT_PCI_INTD)
196 1.1 simonb #define M_INT_SPARE_2 _SB_MAKEMASK1(K_INT_SPARE_2)
197 1.1 simonb #define M_INT_SPARE_3 _SB_MAKEMASK1(K_INT_SPARE_3)
198 1.1 simonb #define M_INT_SPARE_4 _SB_MAKEMASK1(K_INT_SPARE_4)
199 1.1 simonb #define M_INT_SPARE_5 _SB_MAKEMASK1(K_INT_SPARE_5)
200 1.1 simonb
201 1.1 simonb /*
202 1.1 simonb * Interrupt mappings
203 1.1 simonb */
204 1.1 simonb
205 1.1 simonb #define K_INT_MAP_I0 0 /* interrupt pins on processor */
206 1.1 simonb #define K_INT_MAP_I1 1
207 1.1 simonb #define K_INT_MAP_I2 2
208 1.1 simonb #define K_INT_MAP_I3 3
209 1.1 simonb #define K_INT_MAP_I4 4
210 1.1 simonb #define K_INT_MAP_I5 5
211 1.1 simonb #define K_INT_MAP_NMI 6 /* nonmaskable */
212 1.1 simonb #define K_INT_MAP_DINT 7 /* debug interrupt */
213 1.1 simonb
214 1.1 simonb /*
215 1.1 simonb * LDT Interrupt Set Register (table 4-5)
216 1.1 simonb */
217 1.1 simonb
218 1.1 simonb #define S_INT_LDT_INTMSG 0
219 1.1 simonb #define M_INT_LDT_INTMSG _SB_MAKEMASK(3,S_INT_LDT_INTMSG)
220 1.1 simonb #define V_INT_LDT_INTMSG(x) _SB_MAKEVALUE(x,S_INT_LDT_INTMSG)
221 1.1 simonb #define G_INT_LDT_INTMSG(x) _SB_GETVALUE(x,S_INT_LDT_INTMSG,M_INT_LDT_INTMSG)
222 1.1 simonb
223 1.1 simonb #define K_INT_LDT_INTMSG_FIXED 0
224 1.1 simonb #define K_INT_LDT_INTMSG_ARBITRATED 1
225 1.1 simonb #define K_INT_LDT_INTMSG_SMI 2
226 1.1 simonb #define K_INT_LDT_INTMSG_NMI 3
227 1.1 simonb #define K_INT_LDT_INTMSG_INIT 4
228 1.1 simonb #define K_INT_LDT_INTMSG_STARTUP 5
229 1.1 simonb #define K_INT_LDT_INTMSG_EXTINT 6
230 1.1 simonb #define K_INT_LDT_INTMSG_RESERVED 7
231 1.1 simonb
232 1.1 simonb #define M_INT_LDT_EDGETRIGGER 0
233 1.1 simonb #define M_INT_LDT_LEVELTRIGGER _SB_MAKEMASK1(3)
234 1.1 simonb
235 1.1 simonb #define M_INT_LDT_PHYSICALDEST 0
236 1.1 simonb #define M_INT_LDT_LOGICALDEST _SB_MAKEMASK1(4)
237 1.1 simonb
238 1.1 simonb #define S_INT_LDT_INTDEST 5
239 1.1 simonb #define M_INT_LDT_INTDEST _SB_MAKEMASK(10,S_INT_LDT_INTDEST)
240 1.1 simonb #define V_INT_LDT_INTDEST(x) _SB_MAKEVALUE(x,S_INT_LDT_INTDEST)
241 1.1 simonb #define G_INT_LDT_INTDEST(x) _SB_GETVALUE(x,S_INT_LDT_INTDEST,M_INT_LDT_INTDEST)
242 1.1 simonb
243 1.1 simonb #define S_INT_LDT_VECTOR 13
244 1.1 simonb #define M_INT_LDT_VECTOR _SB_MAKEMASK(8,S_INT_LDT_VECTOR)
245 1.1 simonb #define V_INT_LDT_VECTOR(x) _SB_MAKEVALUE(x,S_INT_LDT_VECTOR)
246 1.1 simonb #define G_INT_LDT_VECTOR(x) _SB_GETVALUE(x,S_INT_LDT_VECTOR,M_INT_LDT_VECTOR)
247 1.1 simonb
248 1.1 simonb /*
249 1.1 simonb * Vector format (Table 4-6)
250 1.1 simonb */
251 1.1 simonb
252 1.1 simonb #define M_LDTVECT_RAISEINT 0x00
253 1.1 simonb #define M_LDTVECT_RAISEMBOX 0x40
254 1.1 simonb
255 1.1 simonb
256 1.1 simonb #endif
257