xref: /netbsd-src/sys/arch/mips/cavium/dev/octeon_ciureg.h (revision bdc22b2e01993381dcefeff2bc9b56ca75a4235c)
1 /*	$NetBSD: octeon_ciureg.h,v 1.5 2016/08/20 06:34:22 skrll Exp $	*/
2 
3 /*
4  * Copyright (c) 2007 Internet Initiative Japan, Inc.
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26  * SUCH DAMAGE.
27  */
28 
29 /*
30  * CIU Registers
31  */
32 
33 #ifndef _OCTEON_CIUREG_H_
34 #define _OCTEON_CIUREG_H_
35 
36 /* ---- register addresses */
37 
38 #define	CIU_INT0_SUM0				UINT64_C(0x0001070000000000)
39 #define	CIU_INT1_SUM0				UINT64_C(0x0001070000000008)
40 #define	CIU_INT2_SUM0				UINT64_C(0x0001070000000010)
41 #define	CIU_INT3_SUM0				UINT64_C(0x0001070000000018)
42 #define	CIU_INT32_SUM0				UINT64_C(0x0001070000000100)
43 #define	CIU_INT_SUM1				UINT64_C(0x0001070000000108)
44 #define	CIU_INT0_EN0				UINT64_C(0x0001070000000200)
45 #define	CIU_INT1_EN0				UINT64_C(0x0001070000000210)
46 #define	CIU_INT2_EN0				UINT64_C(0x0001070000000220)
47 #define	CIU_INT3_EN0				UINT64_C(0x0001070000000230)
48 #define	CIU_INT32_EN0				UINT64_C(0x0001070000000400)
49 #define	CIU_INT0_EN1				UINT64_C(0x0001070000000208)
50 #define	CIU_INT1_EN1				UINT64_C(0x0001070000000218)
51 #define	CIU_INT2_EN1				UINT64_C(0x0001070000000228)
52 #define	CIU_INT3_EN1				UINT64_C(0x0001070000000238)
53 #define	CIU_INT32_EN1				UINT64_C(0x0001070000000408)
54 #define	CIU_TIM0				UINT64_C(0x0001070000000480)
55 #define	CIU_TIM1				UINT64_C(0x0001070000000488)
56 #define	CIU_TIM2				UINT64_C(0x0001070000000490)
57 #define	CIU_TIM3				UINT64_C(0x0001070000000498)
58 #define	CIU_WDOG0				UINT64_C(0x0001070000000500)
59 #define	CIU_WDOG1				UINT64_C(0x0001070000000508)
60 #define	CIU_PP_POKE0				UINT64_C(0x0001070000000580)
61 #define	CIU_PP_POKE1				UINT64_C(0x0001070000000588)
62 #define	CIU_MBOX_SET0				UINT64_C(0x0001070000000600)
63 #define	CIU_MBOX_SET1				UINT64_C(0x0001070000000608)
64 #define	CIU_MBOX_CLR0				UINT64_C(0x0001070000000680)
65 #define	CIU_MBOX_CLR1				UINT64_C(0x0001070000000688)
66 #define	CIU_PP_RST				UINT64_C(0x0001070000000700)
67 #define	CIU_PP_DBG				UINT64_C(0x0001070000000708)
68 #define	CIU_GSTOP				UINT64_C(0x0001070000000710)
69 #define	CIU_NMI					UINT64_C(0x0001070000000718)
70 #define	CIU_DINT				UINT64_C(0x0001070000000720)
71 #define	CIU_FUSE				UINT64_C(0x0001070000000728)
72 #define	CIU_BIST				UINT64_C(0x0001070000000730)
73 #define	CIU_SOFT_BIST				UINT64_C(0x0001070000000738)
74 #define	CIU_SOFT_RST				UINT64_C(0x0001070000000740)
75 #define	CIU_SOFT_PRST				UINT64_C(0x0001070000000748)
76 #define	CIU_PCI_INTA				UINT64_C(0x0001070000000750)
77 #define	CIU_INT4_SUM0				UINT64_C(0x0001070000000c00)
78 #define	CIU_INT4_SUM1				UINT64_C(0x0001070000000c08)
79 #define	CIU_INT4_EN00				UINT64_C(0x0001070000000c80)
80 #define	CIU_INT4_EN01				UINT64_C(0x0001070000000c88)
81 #define	CIU_INT4_EN10				UINT64_C(0x0001070000000c90)
82 #define	CIU_INT4_EN11				UINT64_C(0x0001070000000c98)
83 
84 #define	CIU_BASE				UINT64_C(0x0001070000000000)
85 
86 #define	CIU_INT0_SUM0_OFFSET			0x0000
87 #define	CIU_INT1_SUM0_OFFSET			0x0008
88 #define	CIU_INT2_SUM0_OFFSET			0x0010
89 #define	CIU_INT3_SUM0_OFFSET			0x0018
90 #define	CIU_INT32_SUM0_OFFSET			0x0100
91 #define	CIU_INT_SUM1_OFFSET			0x0108
92 #define	CIU_INT0_EN0_OFFSET			0x0200
93 #define	CIU_INT1_EN0_OFFSET			0x0210
94 #define	CIU_INT2_EN0_OFFSET			0x0220
95 #define	CIU_INT3_EN0_OFFSET			0x0230
96 #define	CIU_INT32_EN0_OFFSET			0x0400
97 #define	CIU_INT0_EN1_OFFSET			0x0208
98 #define	CIU_INT1_EN1_OFFSET			0x0218
99 #define	CIU_INT2_EN1_OFFSET			0x0228
100 #define	CIU_INT3_EN1_OFFSET			0x0238
101 #define	CIU_INT32_EN1_OFFSET			0x0408
102 #define	CIU_TIM0_OFFSET				0x0480
103 #define	CIU_TIM1_OFFSET				0x0488
104 #define	CIU_TIM2_OFFSET				0x0490
105 #define	CIU_TIM3_OFFSET				0x0498
106 #define	CIU_WDOG0_OFFSET			0x0500
107 #define	CIU_WDOG1_OFFSET			0x0508
108 #define	CIU_PP_POKE0_OFFSET			0x0580
109 #define	CIU_PP_POKE1_OFFSET			0x0588
110 #define	CIU_MBOX_SET0_OFFSET			0x0600
111 #define	CIU_MBOX_SET1_OFFSET			0x0608
112 #define	CIU_MBOX_CLR0_OFFSET			0x0680
113 #define	CIU_MBOX_CLR1_OFFSET			0x0688
114 #define	CIU_PP_RST_OFFSET			0x0700
115 #define	CIU_PP_DBG_OFFSET			0x0708
116 #define	CIU_GSTOP_OFFSET			0x0710
117 #define	CIU_NMI_OFFSET				0x0718
118 #define	CIU_DINT_OFFSET				0x0720
119 #define	CIU_FUSE_OFFSET				0x0728
120 #define	CIU_BIST_OFFSET				0x0730
121 #define	CIU_SOFT_BIST_OFFSET			0x0738
122 #define	CIU_SOFT_RST_OFFSET			0x0740
123 #define	CIU_SOFT_PRST_OFFSET			0x0748
124 #define	CIU_PCI_INTA_OFFSET			0x0750
125 
126 /* ---- register bits */
127 
128 /* ``interrupt bits'' shift values */
129 
130 #define	_CIU_INT_XXX_63_SHIFT			0x3f
131 #define	_CIU_INT_XXX_62_SHIFT			0x3e
132 #define	_CIU_INT_XXX_61_SHIFT			0x3d
133 #define	_CIU_INT_XXX_60_SHIFT			0x3c
134 #define	_CIU_INT_XXX_59_SHIFT			0x3b
135 #define	_CIU_INT_MPI_SHIFT			0x3a
136 #define	_CIU_INT_PCM_SHIFT			0x39
137 #define	_CIU_INT_USB_SHIFT			0x38
138 #define	_CIU_INT_TIMER_3_SHIFT			0x37
139 #define	_CIU_INT_TIMER_2_SHIFT			0x36
140 #define	_CIU_INT_TIMER_1_SHIFT			0x35
141 #define	_CIU_INT_TIMER_0_SHIFT			0x34
142 #define	_CIU_INT_XXX_51_SHIFT			0x33
143 #define	_CIU_INT_IPD_DRP_SHIFT			0x32
144 #define	_CIU_INT_GMX_DRP_SHIFT			0x30
145 #define	_CIU_INT_TRACE_SHIFT			0x2f
146 #define	_CIU_INT_RML_SHIFT			0x2e
147 #define	_CIU_INT_TWSI_SHIFT			0x2d
148 #define	_CIU_INT_WDOG_SUM_SHIFT			0x2c
149 #define	_CIU_INT_PCI_MSI_63_48_SHIFT		0x2b
150 #define	_CIU_INT_PCI_MSI_47_32_SHIFT		0x2a
151 #define	_CIU_INT_PCI_MSI_31_16_SHIFT		0x29
152 #define	_CIU_INT_PCI_MSI_15_0_SHIFT		0x28
153 #define	_CIU_INT_PCI_INT_D_SHIFT		0x27
154 #define	_CIU_INT_PCI_INT_C_SHIFT		0x26
155 #define	_CIU_INT_PCI_INT_B_SHIFT		0x25
156 #define	_CIU_INT_PCI_INT_A_SHIFT		0x24
157 #define	_CIU_INT_UART_1_SHIFT			0x23
158 #define	_CIU_INT_UART_0_SHIFT			0x22
159 #define	_CIU_INT_MBOX_31_16_SHIFT		0x21
160 #define	_CIU_INT_MBOX_15_0_SHIFT		0x20
161 #define	_CIU_INT_GPIO_15_SHIFT			0x1f
162 #define	_CIU_INT_GPIO_14_SHIFT			0x1e
163 #define	_CIU_INT_GPIO_13_SHIFT			0x1d
164 #define	_CIU_INT_GPIO_12_SHIFT			0x1c
165 #define	_CIU_INT_GPIO_11_SHIFT			0x1b
166 #define	_CIU_INT_GPIO_10_SHIFT			0x1a
167 #define	_CIU_INT_GPIO_9_SHIFT			0x19
168 #define	_CIU_INT_GPIO_8_SHIFT			0x18
169 #define	_CIU_INT_GPIO_7_SHIFT			0x17
170 #define	_CIU_INT_GPIO_6_SHIFT			0x16
171 #define	_CIU_INT_GPIO_5_SHIFT			0x15
172 #define	_CIU_INT_GPIO_4_SHIFT			0x14
173 #define	_CIU_INT_GPIO_3_SHIFT			0x13
174 #define	_CIU_INT_GPIO_2_SHIFT			0x12
175 #define	_CIU_INT_GPIO_1_SHIFT			0x11
176 #define	_CIU_INT_GPIO_0_SHIFT			0x10
177 #define	_CIU_INT_WORKQ_15_SHIFT			0x0f
178 #define	_CIU_INT_WORKQ_14_SHIFT			0x0e
179 #define	_CIU_INT_WORKQ_13_SHIFT			0x0d
180 #define	_CIU_INT_WORKQ_12_SHIFT			0x0c
181 #define	_CIU_INT_WORKQ_11_SHIFT			0x0b
182 #define	_CIU_INT_WORKQ_10_SHIFT			0x0a
183 #define	_CIU_INT_WORKQ_9_SHIFT			0x09
184 #define	_CIU_INT_WORKQ_8_SHIFT			0x08
185 #define	_CIU_INT_WORKQ_7_SHIFT			0x07
186 #define	_CIU_INT_WORKQ_6_SHIFT			0x06
187 #define	_CIU_INT_WORKQ_5_SHIFT			0x05
188 #define	_CIU_INT_WORKQ_4_SHIFT			0x04
189 #define	_CIU_INT_WORKQ_3_SHIFT			0x03
190 #define	_CIU_INT_WORKQ_2_SHIFT			0x02
191 #define	_CIU_INT_WORKQ_1_SHIFT			0x01
192 
193 #define	CIU_INTX_SUM0_XXX_63_59			UINT64_C(0xf800000000000000)
194 #define	CIU_INTX_SUM0_MPI			UINT64_C(0x0400000000000000)
195 #define	CIU_INTX_SUM0_PCM			UINT64_C(0x0200000000000000)
196 #define	CIU_INTX_SUM0_USB			UINT64_C(0x0100000000000000)
197 #define	CIU_INTX_SUM0_TIMER			UINT64_C(0x00f0000000000000)
198 #define	 CIU_INTX_SUM0_TIMER_3			UINT64_C(0x0080000000000000)
199 #define	 CIU_INTX_SUM0_TIMER_2			UINT64_C(0x0040000000000000)
200 #define	 CIU_INTX_SUM0_TIMER_1			UINT64_C(0x0020000000000000)
201 #define	 CIU_INTX_SUM0_TIMER_0			UINT64_C(0x0010000000000000)
202 #define	CIU_INTX_SUM0_XXX_51			UINT64_C(0x0008000000000000)
203 #define	CIU_INTX_SUM0_IPD_DRP			UINT64_C(0x0004000000000000)
204 #define	CIU_INTX_SUM0_XXX_49			UINT64_C(0x0002000000000000)
205 #define	CIU_INTX_SUM0_GMX_DRP			UINT64_C(0x0001000000000000)
206 #define	CIU_INTX_SUM0_TRACE			UINT64_C(0x0000800000000000)
207 #define	CIU_INTX_SUM0_RML			UINT64_C(0x0000400000000000)
208 #define	CIU_INTX_SUM0_TWSI			UINT64_C(0x0000200000000000)
209 #define	CIU_INTX_SUM0_WDOG_SUM			UINT64_C(0x0000100000000000)
210 #define	CIU_INTX_SUM0_PCI_MSI			UINT64_C(0x00000f0000000000)
211 #define	 CIU_INTX_SUM0_PCI_MSI_63_48		UINT64_C(0x0000080000000000)
212 #define	 CIU_INTX_SUM0_PCI_MSI_47_32		UINT64_C(0x0000040000000000)
213 #define	 CIU_INTX_SUM0_PCI_MSI_31_16		UINT64_C(0x0000020000000000)
214 #define	 CIU_INTX_SUM0_PCI_MSI_15_0		UINT64_C(0x0000010000000000)
215 #define	CIU_INTX_SUM0_PCI_INT			UINT64_C(0x000000f000000000)
216 #define	 CIU_INTX_SUM0_PCI_INT_D		UINT64_C(0x0000008000000000)
217 #define	 CIU_INTX_SUM0_PCI_INT_C		UINT64_C(0x0000004000000000)
218 #define	 CIU_INTX_SUM0_PCI_INT_B		UINT64_C(0x0000002000000000)
219 #define	 CIU_INTX_SUM0_PCI_INT_A		UINT64_C(0x0000001000000000)
220 #define	CIU_INTX_SUM0_UART			UINT64_C(0x0000000c00000000)
221 #define	 CIU_INTX_SUM0_UART_1			UINT64_C(0x0000000800000000)
222 #define	 CIU_INTX_SUM0_UART_0			UINT64_C(0x0000000400000000)
223 #define	CIU_INTX_SUM0_MBOX			UINT64_C(0x0000000300000000)
224 #define	 CIU_INTX_SUM0_MBOX_31_16		UINT64_C(0x0000000200000000)
225 #define	 CIU_INTX_SUM0_MBOX_15_0		UINT64_C(0x0000000100000000)
226 #define	CIU_INTX_SUM0_GPIO			UINT64_C(0x00000000ffff0000)
227 #define	 CIU_INTX_SUM0_GPIO_15			UINT64_C(0x0000000080000000)
228 #define	 CIU_INTX_SUM0_GPIO_14			UINT64_C(0x0000000040000000)
229 #define	 CIU_INTX_SUM0_GPIO_13			UINT64_C(0x0000000020000000)
230 #define	 CIU_INTX_SUM0_GPIO_12			UINT64_C(0x0000000010000000)
231 #define	 CIU_INTX_SUM0_GPIO_11			UINT64_C(0x0000000008000000)
232 #define	 CIU_INTX_SUM0_GPIO_10			UINT64_C(0x0000000004000000)
233 #define	 CIU_INTX_SUM0_GPIO_9			UINT64_C(0x0000000002000000)
234 #define	 CIU_INTX_SUM0_GPIO_8			UINT64_C(0x0000000001000000)
235 #define	 CIU_INTX_SUM0_GPIO_7			UINT64_C(0x0000000000800000)
236 #define	 CIU_INTX_SUM0_GPIO_6			UINT64_C(0x0000000000400000)
237 #define	 CIU_INTX_SUM0_GPIO_5			UINT64_C(0x0000000000200000)
238 #define	 CIU_INTX_SUM0_GPIO_4			UINT64_C(0x0000000000100000)
239 #define	 CIU_INTX_SUM0_GPIO_3			UINT64_C(0x0000000000080000)
240 #define	 CIU_INTX_SUM0_GPIO_2			UINT64_C(0x0000000000040000)
241 #define	 CIU_INTX_SUM0_GPIO_1			UINT64_C(0x0000000000020000)
242 #define	 CIU_INTX_SUM0_GPIO_0			UINT64_C(0x0000000000010000)
243 #define	CIU_INTX_SUM0_WORKQ			UINT64_C(0x000000000000ffff)
244 #define	 CIU_INTX_SUM0_WORKQ_15			UINT64_C(0x0000000000008000)
245 #define	 CIU_INTX_SUM0_WORKQ_14			UINT64_C(0x0000000000004000)
246 #define	 CIU_INTX_SUM0_WORKQ_13			UINT64_C(0x0000000000002000)
247 #define	 CIU_INTX_SUM0_WORKQ_12			UINT64_C(0x0000000000001000)
248 #define	 CIU_INTX_SUM0_WORKQ_11			UINT64_C(0x0000000000000800)
249 #define	 CIU_INTX_SUM0_WORKQ_10			UINT64_C(0x0000000000000400)
250 #define	 CIU_INTX_SUM0_WORKQ_9			UINT64_C(0x0000000000000200)
251 #define	 CIU_INTX_SUM0_WORKQ_8			UINT64_C(0x0000000000000100)
252 #define	 CIU_INTX_SUM0_WORKQ_7			UINT64_C(0x0000000000000080)
253 #define	 CIU_INTX_SUM0_WORKQ_6			UINT64_C(0x0000000000000040)
254 #define	 CIU_INTX_SUM0_WORKQ_5			UINT64_C(0x0000000000000020)
255 #define	 CIU_INTX_SUM0_WORKQ_4			UINT64_C(0x0000000000000010)
256 #define	 CIU_INTX_SUM0_WORKQ_3			UINT64_C(0x0000000000000008)
257 #define	 CIU_INTX_SUM0_WORKQ_2			UINT64_C(0x0000000000000004)
258 #define	 CIU_INTX_SUM0_WORKQ_1			UINT64_C(0x0000000000000002)
259 #define	 CIU_INTX_SUM0_WORKQ_0			UINT64_C(0x0000000000000001)
260 
261 #define	CIU_INT_SUM1_XXX_63_1			UINT64_C(0xfffffffffffffffe)
262 #define	CIU_INT_SUM1_WDOG			UINT64_C(0x0000000000000001)
263 
264 #define	CIU_INTX_EN0_XXX_63_59			UINT64_C(0xf800000000000000)
265 #define	CIU_INTX_EN0_MPI			UINT64_C(0x0400000000000000)
266 #define	CIU_INTX_EN0_PCM			UINT64_C(0x0200000000000000)
267 #define	CIU_INTX_EN0_USB			UINT64_C(0x0100000000000000)
268 #define	CIU_INTX_EN0_TIMER			UINT64_C(0x00f0000000000000)
269 #define	 CIU_INTX_EN0_TIMER_3			UINT64_C(0x0080000000000000)
270 #define	 CIU_INTX_EN0_TIMER_2			UINT64_C(0x0040000000000000)
271 #define	 CIU_INTX_EN0_TIMER_1			UINT64_C(0x0020000000000000)
272 #define	 CIU_INTX_EN0_TIMER_0			UINT64_C(0x0010000000000000)
273 #define	CIU_INTX_EN0_XXX_51			UINT64_C(0x0008000000000000)
274 #define	CIU_INTX_EN0_IPD_DRP			UINT64_C(0x0004000000000000)
275 #define	CIU_INTX_EN0_XXX_49			UINT64_C(0x0002000000000000)
276 #define	CIU_INTX_EN0_GMX_DRP			UINT64_C(0x0001000000000000)
277 #define	CIU_INTX_EN0_TRACE			UINT64_C(0x0000800000000000)
278 #define	CIU_INTX_EN0_RML			UINT64_C(0x0000400000000000)
279 #define	CIU_INTX_EN0_TWSI			UINT64_C(0x0000200000000000)
280 #define	CIU_INTX_EN0_WDOG_SUM			UINT64_C(0x0000100000000000)
281 #define	CIU_INTX_EN0_PCI_MSI			UINT64_C(0x00000f0000000000)
282 #define	 CIU_INTX_EN0_PCI_MSI_63_48		UINT64_C(0x0000080000000000)
283 #define	 CIU_INTX_EN0_PCI_MSI_47_32		UINT64_C(0x0000040000000000)
284 #define	 CIU_INTX_EN0_PCI_MSI_31_16		UINT64_C(0x0000020000000000)
285 #define	 CIU_INTX_EN0_PCI_MSI_15_0		UINT64_C(0x0000010000000000)
286 #define	CIU_INTX_EN0_PCI_INT			UINT64_C(0x000000f000000000)
287 #define	 CIU_INTX_EN0_PCI_INT_D			UINT64_C(0x0000008000000000)
288 #define	 CIU_INTX_EN0_PCI_INT_C			UINT64_C(0x0000004000000000)
289 #define	 CIU_INTX_EN0_PCI_INT_B			UINT64_C(0x0000002000000000)
290 #define	 CIU_INTX_EN0_PCI_INT_A			UINT64_C(0x0000001000000000)
291 #define	CIU_INTX_EN0_UART			UINT64_C(0x0000000c00000000)
292 #define	 CIU_INTX_EN0_UART_1			UINT64_C(0x0000000800000000)
293 #define	 CIU_INTX_EN0_UART_0			UINT64_C(0x0000000400000000)
294 #define	CIU_INTX_EN0_MBOX			UINT64_C(0x0000000300000000)
295 #define	 CIU_INTX_EN0_MBOX_31_16		UINT64_C(0x0000000200000000)
296 #define	 CIU_INTX_EN0_MBOX_15_0			UINT64_C(0x0000000100000000)
297 #define	CIU_INTX_EN0_GPIO			UINT64_C(0x00000000ffff0000)
298 #define	 CIU_INTX_EN0_GPIO_15			UINT64_C(0x0000000080000000)
299 #define	 CIU_INTX_EN0_GPIO_14			UINT64_C(0x0000000040000000)
300 #define	 CIU_INTX_EN0_GPIO_13			UINT64_C(0x0000000020000000)
301 #define	 CIU_INTX_EN0_GPIO_12			UINT64_C(0x0000000010000000)
302 #define	 CIU_INTX_EN0_GPIO_11			UINT64_C(0x0000000008000000)
303 #define	 CIU_INTX_EN0_GPIO_10			UINT64_C(0x0000000004000000)
304 #define	 CIU_INTX_EN0_GPIO_9			UINT64_C(0x0000000002000000)
305 #define	 CIU_INTX_EN0_GPIO_8			UINT64_C(0x0000000001000000)
306 #define	 CIU_INTX_EN0_GPIO_7			UINT64_C(0x0000000000800000)
307 #define	 CIU_INTX_EN0_GPIO_6			UINT64_C(0x0000000000400000)
308 #define	 CIU_INTX_EN0_GPIO_5			UINT64_C(0x0000000000200000)
309 #define	 CIU_INTX_EN0_GPIO_4			UINT64_C(0x0000000000100000)
310 #define	 CIU_INTX_EN0_GPIO_3			UINT64_C(0x0000000000080000)
311 #define	 CIU_INTX_EN0_GPIO_2			UINT64_C(0x0000000000040000)
312 #define	 CIU_INTX_EN0_GPIO_1			UINT64_C(0x0000000000020000)
313 #define	 CIU_INTX_EN0_GPIO_0			UINT64_C(0x0000000000010000)
314 #define	CIU_INTX_EN0_WORKQ			UINT64_C(0x000000000000ffff)
315 #define	 CIU_INTX_EN0_WORKQ_15			UINT64_C(0x0000000000008000)
316 #define	 CIU_INTX_EN0_WORKQ_14			UINT64_C(0x0000000000004000)
317 #define	 CIU_INTX_EN0_WORKQ_13			UINT64_C(0x0000000000002000)
318 #define	 CIU_INTX_EN0_WORKQ_12			UINT64_C(0x0000000000001000)
319 #define	 CIU_INTX_EN0_WORKQ_11			UINT64_C(0x0000000000000800)
320 #define	 CIU_INTX_EN0_WORKQ_10			UINT64_C(0x0000000000000400)
321 #define	 CIU_INTX_EN0_WORKQ_9			UINT64_C(0x0000000000000200)
322 #define	 CIU_INTX_EN0_WORKQ_8			UINT64_C(0x0000000000000100)
323 #define	 CIU_INTX_EN0_WORKQ_7			UINT64_C(0x0000000000000080)
324 #define	 CIU_INTX_EN0_WORKQ_6			UINT64_C(0x0000000000000040)
325 #define	 CIU_INTX_EN0_WORKQ_5			UINT64_C(0x0000000000000020)
326 #define	 CIU_INTX_EN0_WORKQ_4			UINT64_C(0x0000000000000010)
327 #define	 CIU_INTX_EN0_WORKQ_3			UINT64_C(0x0000000000000008)
328 #define	 CIU_INTX_EN0_WORKQ_2			UINT64_C(0x0000000000000004)
329 #define	 CIU_INTX_EN0_WORKQ_1			UINT64_C(0x0000000000000002)
330 #define	 CIU_INTX_EN0_WORKQ_0			UINT64_C(0x0000000000000001)
331 
332 #define	CIU_INTX_EN1_XXX_63_1			UINT64_C(0xfffffffffffffffe)
333 #define	CIU_INTX_EN1_WDOG			UINT64_C(0x0000000000000001)
334 
335 #define	CIU_TIMX_XXX_63_37			UINT64_C(0xffffffe000000000)
336 #define	CIU_TIMX_ONE_SHOT			UINT64_C(0x0000001000000000)
337 #define	CIU_TIMX_LEN				UINT64_C(0x0000000fffffffff)
338 
339 #define	CIU_WDOGX_XXX_63_46			UINT64_C(0xffffc00000000000)
340 #define	CIU_WDOGX_GSTOPEN			UINT64_C(0x0000200000000000)
341 #define	CIU_WDOGX_DSTOP				UINT64_C(0x0000100000000000)
342 #define	CIU_WDOGX_CNT				UINT64_C(0x00000ffffff00000)
343 #define	CIU_WDOGX_LEN				UINT64_C(0x00000000000ffff0)
344 #define	CIU_WDOGX_STATE				UINT64_C(0x000000000000000c)
345 #define	CIU_WDOGX_MODE				UINT64_C(0x0000000000000003)
346 
347 #define	CIU_PP_POKEX_XXX_63_0			UINT64_C(0xffffffffffffffff)
348 
349 #define	CIU_MBOX_SETX_XXX_63_32			UINT64_C(0xffffffff00000000)
350 #define	CIU_MBOX_SETX_SET			UINT64_C(0x00000000ffffffff)
351 
352 #define	CIU_MBOX_CLRX_XXX_63_32			UINT64_C(0xffffffff00000000)
353 #define	CIU_MBOX_CLRX_CLR			UINT64_C(0x00000000ffffffff)
354 
355 #define	CIU_PP_RST_XXX_63_1			UINT64_C(0xfffffffffffffffe)
356 #define	CIU_PP_RST_RST0				UINT64_C(0x0000000000000001)
357 
358 #define	CIU_PP_DBG_XXX_63_1			UINT64_C(0xfffffffffffffffe)
359 #define	CIU_PP_DBG_PPDBG			UINT64_C(0x0000000000000001)
360 
361 #define	CIU_GSTOP_XXX_63_1			UINT64_C(0xfffffffffffffffe)
362 #define	CIU_GSTOP_GSTOP				UINT64_C(0x0000000000000001)
363 
364 #define	CIU_NMI_XXX_63_1			UINT64_C(0xfffffffffffffffe)
365 #define	CIU_NMI_NMI				UINT64_C(0x0000000000000001)
366 
367 #define	CIU_DINT_XXX_63_1			UINT64_C(0xfffffffffffffffe)
368 #define	CIU_DINT_DINT				UINT64_C(0x0000000000000001)
369 
370 #define	CIU_FUSE_XXX_63_1			UINT64_C(0xfffffffffffffffe)
371 #define	CIU_FUSE_FUSE				UINT64_C(0x0000000000000001)
372 
373 #define	CIU_BIST_XXX_63_4			UINT64_C(0xfffffffffffffff0)
374 #define	CIU_BIST_BIST				UINT64_C(0x000000000000000f)
375 
376 #define	CIU_SOFT_BIST_XXX_63_1			UINT64_C(0xfffffffffffffffe)
377 #define	CIU_SOFT_BIST_SOFT_BIST			UINT64_C(0x0000000000000001)
378 
379 #define	CIU_SOFT_RST_XXX_63_1			UINT64_C(0xfffffffffffffffe)
380 #define	CIU_SOFT_RST_SOFT_RST			UINT64_C(0x0000000000000001)
381 
382 #define	CIU_SOFT_PRST_XXX_63_1			UINT64_C(0xfffffffffffffff8)
383 #define	CIU_SOFT_PRST_HOST64			UINT64_C(0x0000000000000004)
384 #define	CIU_SOFT_PRST_NPI			UINT64_C(0x0000000000000002)
385 #define	CIU_SOFT_PRST_SOFT_PRST			UINT64_C(0x0000000000000001)
386 
387 #define	CIU_PCI_INTA_XXX_63_2			UINT64_C(0xfffffffffffffffc)
388 #define	CIU_PCI_INTA_INT			UINT64_C(0x0000000000000003)
389 
390 /* -- snprintb(9) */
391 
392 #define	CIU_INTX_SUM0_BITS \
393 	"\177"		/* new format */ \
394 	"\020"		/* hex display */ \
395 	"\020"		/* %016x format */ \
396 	"b\x3a"		"MPI\0" \
397 	"b\x39"		"PCM\0" \
398 	"b\x38"		"USB\0" \
399 	"b\x37"		"TIMER_3\0" \
400 	"b\x36"		"TIMER_2\0" \
401 	"b\x35"		"TIMER_1\0" \
402 	"b\x34"		"TIMER_0\0" \
403 	"f\x34\x04"	"TIMER\0" \
404 	"b\x32"		"IPD_DRP\0" \
405 	"b\x30"		"GMX_DRP\0" \
406 	"b\x2f"		"TRACE\0" \
407 	"b\x2e"		"RML\0" \
408 	"b\x2d"		"TWSI\0" \
409 	"b\x2c"		"WDOG_SUM\0" \
410 	"b\x2b"		"PCI_MSI_63_48\0" \
411 	"b\x2a"		"PCI_MSI_47_32\0" \
412 	"b\x29"		"PCI_MSI_31_16\0" \
413 	"b\x28"		"PCI_MSI_15_0\0" \
414 	"f\x28\x04"	"PCI_MSI\0" \
415 	"b\x27"		"PCI_INT_D\0" \
416 	"b\x26"		"PCI_INT_C\0" \
417 	"b\x25"		"PCI_INT_B\0" \
418 	"f\x24\x04"	"PCI_INT\0" \
419 	"b\x24"		"PCI_INT_A\0" \
420 	"b\x23"		"UART_1\0" \
421 	"b\x22"		"UART_0\0" \
422 	"f\x22\x02"	"UART\0" \
423 	"b\x21"		"MBOX_31_16\0" \
424 	"f\x20\x02"	"MBOX\0" \
425 	"b\x20"		"MBOX_15_0\0" \
426 	"b\x1f"		"GPIO_15\0" \
427 	"b\x1e"		"GPIO_14\0" \
428 	"b\x1d"		"GPIO_13\0" \
429 	"b\x1c"		"GPIO_12\0" \
430 	"b\x1b"		"GPIO_11\0" \
431 	"b\x1a"		"GPIO_10\0" \
432 	"b\x19"		"GPIO_9\0" \
433 	"b\x18"		"GPIO_8\0" \
434 	"b\x17"		"GPIO_7\0" \
435 	"b\x16"		"GPIO_6\0" \
436 	"b\x15"		"GPIO_5\0" \
437 	"b\x14"		"GPIO_4\0" \
438 	"b\x13"		"GPIO_3\0" \
439 	"b\x12"		"GPIO_2\0" \
440 	"b\x11"		"GPIO_1\0" \
441 	"b\x10"		"GPIO_0\0" \
442 	"f\x10\x10"	"GPIO\0" \
443 	"b\x0f"		"WORKQ_15\0" \
444 	"b\x0e"		"WORKQ_14\0" \
445 	"b\x0d"		"WORKQ_13\0" \
446 	"b\x0c"		"WORKQ_12\0" \
447 	"b\x0b"		"WORKQ_11\0" \
448 	"b\x0a"		"WORKQ_10\0" \
449 	"b\x09"		"WORKQ_9\0" \
450 	"b\x08"		"WORKQ_8\0" \
451 	"b\x07"		"WORKQ_7\0" \
452 	"b\x06"		"WORKQ_6\0" \
453 	"b\x05"		"WORKQ_5\0" \
454 	"b\x04"		"WORKQ_4\0" \
455 	"b\x03"		"WORKQ_3\0" \
456 	"b\x02"		"WORKQ_2\0" \
457 	"b\x01"		"WORKQ_1\0" \
458 	"b\x00"		"WORKQ_0\0" \
459 	"f\x00\x10"	"WORKQ\0"
460 #define	CIU_INT0_SUM0_BITS			CIU_INTX_SUM0_BITS
461 #define	CIU_INT1_SUM0_BITS			CIU_INTX_SUM0_BITS
462 #define	CIU_INT2_SUM0_BITS			CIU_INTX_SUM0_BITS
463 #define	CIU_INT3_SUM0_BITS			CIU_INTX_SUM0_BITS
464 #define	CIU_INT32_SUM0_BITS			CIU_INTX_SUM0_BITS
465 
466 #define	CIU_INT_SUM1_BITS \
467 	"\177"		/* new format */ \
468 	"\020"		/* hex display */ \
469 	"\020"		/* %016x format */ \
470 	"b\x00"		"WDOG\0"
471 
472 #define	CIU_INTX_EN0_BITS \
473 	"\177"		/* new format */ \
474 	"\020"		/* hex display */ \
475 	"\020"		/* %016x format */ \
476 	"b\x3a"		"MPI\0" \
477 	"b\x39"		"PCM\0" \
478 	"b\x38"		"USB\0" \
479 	"b\x37"		"TIMER_3\0" \
480 	"b\x36"		"TIMER_2\0" \
481 	"b\x35"		"TIMER_1\0" \
482 	"b\x34"		"TIMER_0\0" \
483 	"f\x34\x04"	"TIMER\0" \
484 	"b\x32"		"IPD_DRP\0" \
485 	"b\x30"		"GMX_DRP\0" \
486 	"b\x2f"		"TRACE\0" \
487 	"b\x2e"		"RML\0" \
488 	"b\x2d"		"TWSI\0" \
489 	"b\x2c"		"WDOG_SUM\0" \
490 	"b\x2b"		"PCI_MSI_63_48\0" \
491 	"b\x2a"		"PCI_MSI_47_32\0" \
492 	"b\x29"		"PCI_MSI_31_16\0" \
493 	"b\x28"		"PCI_MSI_15_0\0" \
494 	"f\x28\x04"	"PCI_MSI\0" \
495 	"b\x27"		"PCI_INT_D\0" \
496 	"b\x26"		"PCI_INT_C\0" \
497 	"b\x25"		"PCI_INT_B\0" \
498 	"f\x24\x04"	"PCI_INT\0" \
499 	"b\x24"		"PCI_INT_A\0" \
500 	"b\x23"		"UART_1\0" \
501 	"b\x22"		"UART_0\0" \
502 	"f\x22\x02"	"UART\0" \
503 	"b\x21"		"MBOX_31_16\0" \
504 	"f\x20\x02"	"MBOX\0" \
505 	"b\x20"		"MBOX_15_0\0" \
506 	"b\x1f"		"GPIO_15\0" \
507 	"b\x1e"		"GPIO_14\0" \
508 	"b\x1d"		"GPIO_13\0" \
509 	"b\x1c"		"GPIO_12\0" \
510 	"b\x1b"		"GPIO_11\0" \
511 	"b\x1a"		"GPIO_10\0" \
512 	"b\x19"		"GPIO_9\0" \
513 	"b\x18"		"GPIO_8\0" \
514 	"b\x17"		"GPIO_7\0" \
515 	"b\x16"		"GPIO_6\0" \
516 	"b\x15"		"GPIO_5\0" \
517 	"b\x14"		"GPIO_4\0" \
518 	"b\x13"		"GPIO_3\0" \
519 	"b\x12"		"GPIO_2\0" \
520 	"b\x11"		"GPIO_1\0" \
521 	"b\x10"		"GPIO_0\0" \
522 	"f\x10\x10"	"GPIO\0" \
523 	"b\x0f"		"WORKQ_15\0" \
524 	"b\x0e"		"WORKQ_14\0" \
525 	"b\x0d"		"WORKQ_13\0" \
526 	"b\x0c"		"WORKQ_12\0" \
527 	"b\x0b"		"WORKQ_11\0" \
528 	"b\x0a"		"WORKQ_10\0" \
529 	"b\x09"		"WORKQ_9\0" \
530 	"b\x08"		"WORKQ_8\0" \
531 	"b\x07"		"WORKQ_7\0" \
532 	"b\x06"		"WORKQ_6\0" \
533 	"b\x05"		"WORKQ_5\0" \
534 	"b\x04"		"WORKQ_4\0" \
535 	"b\x03"		"WORKQ_3\0" \
536 	"b\x02"		"WORKQ_2\0" \
537 	"b\x01"		"WORKQ_1\0" \
538 	"b\x00"		"WORKQ_0\0" \
539 	"f\x00\x10"	"WORKQ\0"
540 #define	CIU_INT0_EN0_BITS			CIU_INTX_EN0_BITS
541 #define	CIU_INT1_EN0_BITS			CIU_INTX_EN0_BITS
542 #define	CIU_INT2_EN0_BITS			CIU_INTX_EN0_BITS
543 #define	CIU_INT3_EN0_BITS			CIU_INTX_EN0_BITS
544 #define	CIU_INT32_EN0_BITS			CIU_INTX_EN0_BITS
545 
546 #define	CIU_INTX_EN1_BITS \
547 	"\177"		/* new format */ \
548 	"\020"		/* hex display */ \
549 	"\020"		/* %016x format */ \
550 	"b\x00"		"WDOG\0"
551 #define	CIU_INT0_EN1_BITS			CIU_INTX_EN1_BITS
552 #define	CIU_INT1_EN1_BITS			CIU_INTX_EN1_BITS
553 #define	CIU_INT2_EN1_BITS			CIU_INTX_EN1_BITS
554 #define	CIU_INT3_EN1_BITS			CIU_INTX_EN1_BITS
555 #define	CIU_INT32_EN1_BITS			CIU_INTX_EN1_BITS
556 
557 #define	CIU_TIMX_BITS \
558 	"\177"		/* new format */ \
559 	"\020"		/* hex display */ \
560 	"\020"		/* %016x format */ \
561 	"b\x24"		"ONE_SHOT\0" \
562 	"f\x00\x24"	"LEN\0"
563 #define	CIU_TIM0_BITS				CIU_TIMX_BITS
564 #define	CIU_TIM1_BITS				CIU_TIMX_BITS
565 #define	CIU_TIM2_BITS				CIU_TIMX_BITS
566 #define	CIU_TIM3_BITS				CIU_TIMX_BITS
567 #define	CIU_TIM32_BITS				CIU_TIMX_BITS
568 
569 #define	CIU_WDOGX_BITS \
570 	"\177"		/* new format */ \
571 	"\020"		/* hex display */ \
572 	"\020"		/* %016x format */ \
573 	"b\x2d"		"GSTOPEN\0" \
574 	"b\x2c"		"DSTOP\0" \
575 	"f\x14\x18"	"CNT\0" \
576 	"f\x04\x10"	"LEN\0" \
577 	"f\x02\x02"	"STATE\0" \
578 	"f\x00\x02"	"MODE\0"
579 #define	CIU_WDOG0_BITS				CIU_WDOGX_BITS
580 #define	CIU_WDOG1_BITS				CIU_WDOGX_BITS
581 
582 #if 0
583 #define	CIU_PP_POKEX_BITS \
584 	"\177"		/* new format */ \
585 	"\020"		/* hex display */ \
586 	"\020"		/* %016x format */ \
587 
588 #define	CIU_PP_POKE0_BITS			CIU_PP_POKEX_BITS
589 #define	CIU_PP_POKE1_BITS			CIU_PP_POKEX_BITS
590 #endif
591 
592 #define	CIU_MBOX_SETX_BITS \
593 	"\177"		/* new format */ \
594 	"\020"		/* hex display */ \
595 	"\020"		/* %016x format */ \
596 	"f\x00\x20"	"SET\0"
597 #define	CIU_MBOX_SET0_BITS			CIU_MBOX_SETX_BITS
598 #define	CIU_MBOX_SET1_BITS			CIU_MBOX_SETX_BITS
599 
600 #define	CIU_MBOX_CLRX_BITS \
601 	"\177"		/* new format */ \
602 	"\020"		/* hex display */ \
603 	"\020"		/* %016x format */ \
604 	"f\x00\x20"	"CLR\0"
605 #define	CIU_MBOX_CLR0_BITS			CIU_MBOX_CLRX_BITS
606 #define	CIU_MBOX_CLR1_BITS			CIU_MBOX_CLRX_BITS
607 
608 #define	CIU_PP_RST_BITS \
609 	"\177"		/* new format */ \
610 	"\020"		/* hex display */ \
611 	"\020"		/* %016x format */ \
612 	"b\x00"		"RST0\0"
613 
614 #define	CIU_PP_DBG_BITS \
615 	"\177"		/* new format */ \
616 	"\020"		/* hex display */ \
617 	"\020"		/* %016x format */ \
618 	"b\x00"		"PPDBG\0"
619 
620 #define	CIU_GSTOP_BITS \
621 	"\177"		/* new format */ \
622 	"\020"		/* hex display */ \
623 	"\020"		/* %016x format */ \
624 	"b\x00"		"GSTOP\0"
625 
626 #define	CIU_NMI_BITS \
627 	"\177"		/* new format */ \
628 	"\020"		/* hex display */ \
629 	"\020"		/* %016x format */ \
630 	"b\x00"		"NMI\0"
631 
632 #define	CIU_DINT_BITS \
633 	"\177"		/* new format */ \
634 	"\020"		/* hex display */ \
635 	"\020"		/* %016x format */ \
636 	"b\x00"		"DINT\0"
637 
638 #define	CIU_FUSE_BITS \
639 	"\177"		/* new format */ \
640 	"\020"		/* hex display */ \
641 	"\020"		/* %016x format */ \
642 	"b\x00"		"FUSE\0"
643 
644 #define	CIU_BIST_BITS \
645 	"\177"		/* new format */ \
646 	"\020"		/* hex display */ \
647 	"\020"		/* %016x format */ \
648 	"f\x00\x04"	"BIST\0"
649 
650 #define	CIU_SOFT_BIST_BITS \
651 	"\177"		/* new format */ \
652 	"\020"		/* hex display */ \
653 	"\020"		/* %016x format */ \
654 	"b\x00"		"SOFT_BIST\0"
655 
656 #define	CIU_SOFT_RST_BITS \
657 	"\177"		/* new format */ \
658 	"\020"		/* hex display */ \
659 	"\020"		/* %016x format */ \
660 	"b\x00"		"SOFT_RST\0"
661 
662 #define	CIU_SOFT_PRST_BITS \
663 	"\177"		/* new format */ \
664 	"\020"		/* hex display */ \
665 	"\020"		/* %016x format */ \
666 	"b\x02"		"HOST64\0" \
667 	"b\x01"		"NPI\0" \
668 	"b\x00"		"SOFT_PRST\0"
669 
670 #define	CIU_PCI_INTA_BITS \
671 	"\177"		/* new format */ \
672 	"\020"		/* hex display */ \
673 	"\020"		/* %016x format */ \
674 	"f\x00\x02"	"INT\0"
675 
676 #endif /* _OCTEON_CIUREG_H_ */
677