1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _IOC3_H
20 #define _IOC3_H
21 #include <linux/types.h>
22 typedef volatile struct ioc3_uartregs {
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24  union {
25  volatile u8 rbr;
26  volatile u8 thr;
27  volatile u8 dll;
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29  } u1;
30  union {
31  volatile u8 ier;
32  volatile u8 dlm;
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34  } u2;
35  union {
36  volatile u8 iir;
37  volatile u8 fcr;
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39  } u3;
40  volatile u8 iu_lcr;
41  volatile u8 iu_mcr;
42  volatile u8 iu_lsr;
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44  volatile u8 iu_msr;
45  volatile u8 iu_scr;
46 } ioc3_uregs_t;
47 #define iu_rbr u1.rbr
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 #define iu_thr u1.thr
50 #define iu_dll u1.dll
51 #define iu_ier u2.ier
52 #define iu_dlm u2.dlm
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54 #define iu_iir u3.iir
55 #define iu_fcr u3.fcr
56 struct ioc3_sioregs {
57  volatile u8 fill[0x141];
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59  volatile u8 uartc;
60  volatile u8 kbdcg;
61  volatile u8 fill0[0x150 - 0x142 - 1];
62  volatile u8 pp_data;
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64  volatile u8 pp_dsr;
65  volatile u8 pp_dcr;
66  volatile u8 fill1[0x158 - 0x152 - 1];
67  volatile u8 pp_fifa;
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69  volatile u8 pp_cfgb;
70  volatile u8 pp_ecr;
71  volatile u8 fill2[0x168 - 0x15a - 1];
72  volatile u8 rtcad;
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74  volatile u8 rtcdat;
75  volatile u8 fill3[0x170 - 0x169 - 1];
76  struct ioc3_uartregs uartb;
77  struct ioc3_uartregs uarta;
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79 };
80 struct ioc3 {
81  volatile u32 pad0[7];
82  volatile u32 sio_ir;
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84  volatile u32 sio_ies;
85  volatile u32 sio_iec;
86  volatile u32 sio_cr;
87  volatile u32 int_out;
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89  volatile u32 mcr;
90  volatile u32 gpcr_s;
91  volatile u32 gpcr_c;
92  volatile u32 gpdr;
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94  volatile u32 gppr_0;
95  volatile u32 gppr_1;
96  volatile u32 gppr_2;
97  volatile u32 gppr_3;
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99  volatile u32 gppr_4;
100  volatile u32 gppr_5;
101  volatile u32 gppr_6;
102  volatile u32 gppr_7;
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104  volatile u32 gppr_8;
105  volatile u32 gppr_9;
106  volatile u32 gppr_10;
107  volatile u32 gppr_11;
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109  volatile u32 gppr_12;
110  volatile u32 gppr_13;
111  volatile u32 gppr_14;
112  volatile u32 gppr_15;
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114  volatile u32 ppbr_h_a;
115  volatile u32 ppbr_l_a;
116  volatile u32 ppcr_a;
117  volatile u32 ppcr;
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119  volatile u32 ppbr_h_b;
120  volatile u32 ppbr_l_b;
121  volatile u32 ppcr_b;
122  volatile u32 km_csr;
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124  volatile u32 k_rd;
125  volatile u32 m_rd;
126  volatile u32 k_wd;
127  volatile u32 m_wd;
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129  volatile u32 sbbr_h;
130  volatile u32 sbbr_l;
131  volatile u32 sscr_a;
132  volatile u32 stpir_a;
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134  volatile u32 stcir_a;
135  volatile u32 srpir_a;
136  volatile u32 srcir_a;
137  volatile u32 srtr_a;
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139  volatile u32 shadow_a;
140  volatile u32 sscr_b;
141  volatile u32 stpir_b;
142  volatile u32 stcir_b;
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144  volatile u32 srpir_b;
145  volatile u32 srcir_b;
146  volatile u32 srtr_b;
147  volatile u32 shadow_b;
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149  volatile u32 emcr;
150  volatile u32 eisr;
151  volatile u32 eier;
152  volatile u32 ercsr;
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154  volatile u32 erbr_h;
155  volatile u32 erbr_l;
156  volatile u32 erbar;
157  volatile u32 ercir;
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159  volatile u32 erpir;
160  volatile u32 ertr;
161  volatile u32 etcsr;
162  volatile u32 ersr;
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164  volatile u32 etcdc;
165  volatile u32 ebir;
166  volatile u32 etbr_h;
167  volatile u32 etbr_l;
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169  volatile u32 etcir;
170  volatile u32 etpir;
171  volatile u32 emar_h;
172  volatile u32 emar_l;
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174  volatile u32 ehar_h;
175  volatile u32 ehar_l;
176  volatile u32 micr;
177  volatile u32 midr_r;
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179  volatile u32 midr_w;
180  volatile u32 pad1[(0x20000 - 0x00154) / 4];
181  struct ioc3_sioregs sregs;
182  volatile u32 pad2[(0x40000 - 0x20180) / 4];
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184  volatile u32 ssram[(0x80000 - 0x40000) / 4];
185 };
186 struct ioc3_erxbuf {
187  u32 w0;
188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189  u32 err;
190 };
191 #define ERXBUF_IPCKSUM_MASK 0x0000ffff
192 #define ERXBUF_BYTECNT_MASK 0x07ff0000
193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194 #define ERXBUF_BYTECNT_SHIFT 16
195 #define ERXBUF_V 0x80000000
196 #define ERXBUF_CRCERR 0x00000001
197 #define ERXBUF_FRAMERR 0x00000002
198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199 #define ERXBUF_CODERR 0x00000004
200 #define ERXBUF_INVPREAMB 0x00000008
201 #define ERXBUF_LOLEN 0x00007000
202 #define ERXBUF_HILEN 0x03ff0000
203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204 #define ERXBUF_MULTICAST 0x04000000
205 #define ERXBUF_BROADCAST 0x08000000
206 #define ERXBUF_LONGEVENT 0x10000000
207 #define ERXBUF_BADPKT 0x20000000
208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209 #define ERXBUF_GOODPKT 0x40000000
210 #define ERXBUF_CARRIER 0x80000000
211 #define ETXD_DATALEN 104
212 struct ioc3_etxd {
213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214  u32 cmd;
215  u32 bufcnt;
216  u64 p1;
217  u64 p2;
218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219  u8 data[ETXD_DATALEN];
220 };
221 #define ETXD_BYTECNT_MASK 0x000007ff
222 #define ETXD_INTWHENDONE 0x00001000
223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224 #define ETXD_D0V 0x00010000
225 #define ETXD_B1V 0x00020000
226 #define ETXD_B2V 0x00040000
227 #define ETXD_DOCHECKSUM 0x00080000
228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229 #define ETXD_CHKOFF_MASK 0x07f00000
230 #define ETXD_CHKOFF_SHIFT 20
231 #define ETXD_D0CNT_MASK 0x0000007f
232 #define ETXD_B1CNT_MASK 0x0007ff00
233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234 #define ETXD_B1CNT_SHIFT 8
235 #define ETXD_B2CNT_MASK 0x7ff00000
236 #define ETXD_B2CNT_SHIFT 20
237 #define IOC3_BYTEBUS_DEV0 0x80000L
238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239 #define IOC3_BYTEBUS_DEV1 0xa0000L
240 #define IOC3_BYTEBUS_DEV2 0xc0000L
241 #define IOC3_BYTEBUS_DEV3 0xe0000L
242 #define IOC3_SIO_BASE 0x20000
243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244 #define IOC3_SIO_UARTC (IOC3_SIO_BASE+0x141)
245 #define IOC3_SIO_KBDCG (IOC3_SIO_BASE+0x142)
246 #define IOC3_SIO_PP_BASE (IOC3_SIO_BASE+PP_BASE)
247 #define IOC3_SIO_RTC_BASE (IOC3_SIO_BASE+0x168)
248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249 #define IOC3_SIO_UB_BASE (IOC3_SIO_BASE+UARTB_BASE)
250 #define IOC3_SIO_UA_BASE (IOC3_SIO_BASE+UARTA_BASE)
251 #define IOC3_SSRAM IOC3_RAM_OFF
252 #define IOC3_SSRAM_LEN 0x40000
253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254 #define IOC3_SSRAM_DM 0x0000ffff
255 #define IOC3_SSRAM_PM 0x00010000
256 #define PCI_SCR_PAR_RESP_EN 0x00000040
257 #define PCI_SCR_SERR_EN 0x00000100
258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259 #define PCI_SCR_DROP_MODE_EN 0x00008000
260 #define PCI_SCR_RX_SERR (0x1 << 16)
261 #define PCI_SCR_DROP_MODE (0x1 << 17)
262 #define PCI_SCR_SIG_PAR_ERR (0x1 << 24)
263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264 #define PCI_SCR_SIG_TAR_ABRT (0x1 << 27)
265 #define PCI_SCR_RX_TAR_ABRT (0x1 << 28)
266 #define PCI_SCR_SIG_MST_ABRT (0x1 << 29)
267 #define PCI_SCR_SIG_SERR (0x1 << 30)
268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269 #define PCI_SCR_PAR_ERR (0x1 << 31)
270 #define KM_CSR_K_WRT_PEND 0x00000001
271 #define KM_CSR_M_WRT_PEND 0x00000002
272 #define KM_CSR_K_LCB 0x00000004
273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274 #define KM_CSR_M_LCB 0x00000008
275 #define KM_CSR_K_DATA 0x00000010
276 #define KM_CSR_K_CLK 0x00000020
277 #define KM_CSR_K_PULL_DATA 0x00000040
278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279 #define KM_CSR_K_PULL_CLK 0x00000080
280 #define KM_CSR_M_DATA 0x00000100
281 #define KM_CSR_M_CLK 0x00000200
282 #define KM_CSR_M_PULL_DATA 0x00000400
283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284 #define KM_CSR_M_PULL_CLK 0x00000800
285 #define KM_CSR_EMM_MODE 0x00001000
286 #define KM_CSR_SIM_MODE 0x00002000
287 #define KM_CSR_K_SM_IDLE 0x00004000
288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289 #define KM_CSR_M_SM_IDLE 0x00008000
290 #define KM_CSR_K_TO 0x00010000
291 #define KM_CSR_M_TO 0x00020000
292 #define KM_CSR_K_TO_EN 0x00040000
293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294 #define KM_CSR_M_TO_EN 0x00080000
295 #define KM_CSR_K_CLAMP_ONE 0x00100000
296 #define KM_CSR_M_CLAMP_ONE 0x00200000
297 #define KM_CSR_K_CLAMP_THREE 0x00400000
298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299 #define KM_CSR_M_CLAMP_THREE 0x00800000
300 #define KM_RD_DATA_2 0x000000ff
301 #define KM_RD_DATA_2_SHIFT 0
302 #define KM_RD_DATA_1 0x0000ff00
303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304 #define KM_RD_DATA_1_SHIFT 8
305 #define KM_RD_DATA_0 0x00ff0000
306 #define KM_RD_DATA_0_SHIFT 16
307 #define KM_RD_FRAME_ERR_2 0x01000000
308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309 #define KM_RD_FRAME_ERR_1 0x02000000
310 #define KM_RD_FRAME_ERR_0 0x04000000
311 #define KM_RD_KBD_MSE 0x08000000
312 #define KM_RD_OFLO 0x10000000
313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314 #define KM_RD_VALID_2 0x20000000
315 #define KM_RD_VALID_1 0x40000000
316 #define KM_RD_VALID_0 0x80000000
317 #define KM_RD_VALID_ALL (KM_RD_VALID_0|KM_RD_VALID_1|KM_RD_VALID_2)
318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319 #define KM_WD_WRT_DATA 0x000000ff
320 #define KM_WD_WRT_DATA_SHIFT 0
321 #define RXSB_OVERRUN 0x01
322 #define RXSB_PAR_ERR 0x02
323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324 #define RXSB_FRAME_ERR 0x04
325 #define RXSB_BREAK 0x08
326 #define RXSB_CTS 0x10
327 #define RXSB_DCD 0x20
328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329 #define RXSB_MODEM_VALID 0x40
330 #define RXSB_DATA_VALID 0x80
331 #define TXCB_INT_WHEN_DONE 0x20
332 #define TXCB_INVALID 0x00
333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334 #define TXCB_VALID 0x40
335 #define TXCB_MCR 0x80
336 #define TXCB_DELAY 0xc0
337 #define SBBR_L_SIZE 0x00000001
338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339 #define SBBR_L_BASE 0xfffff000
340 #define SSCR_RX_THRESHOLD 0x000001ff
341 #define SSCR_TX_TIMER_BUSY 0x00010000
342 #define SSCR_HFC_EN 0x00020000
343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344 #define SSCR_RX_RING_DCD 0x00040000
345 #define SSCR_RX_RING_CTS 0x00080000
346 #define SSCR_HIGH_SPD 0x00100000
347 #define SSCR_DIAG 0x00200000
348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349 #define SSCR_RX_DRAIN 0x08000000
350 #define SSCR_DMA_EN 0x10000000
351 #define SSCR_DMA_PAUSE 0x20000000
352 #define SSCR_PAUSE_STATE 0x40000000
353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354 #define SSCR_RESET 0x80000000
355 #define PROD_CONS_PTR_4K 0x00000ff8
356 #define PROD_CONS_PTR_1K 0x000003f8
357 #define PROD_CONS_PTR_OFF 3
358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359 #define SRCIR_ARM 0x80000000
360 #define SRPIR_BYTE_CNT 0x07000000
361 #define SRPIR_BYTE_CNT_SHIFT 24
362 #define STCIR_BYTE_CNT 0x0f000000
363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364 #define STCIR_BYTE_CNT_SHIFT 24
365 #define SHADOW_DR 0x00000001
366 #define SHADOW_OE 0x00000002
367 #define SHADOW_PE 0x00000004
368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369 #define SHADOW_FE 0x00000008
370 #define SHADOW_BI 0x00000010
371 #define SHADOW_THRE 0x00000020
372 #define SHADOW_TEMT 0x00000040
373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374 #define SHADOW_RFCE 0x00000080
375 #define SHADOW_DCTS 0x00010000
376 #define SHADOW_DDCD 0x00080000
377 #define SHADOW_CTS 0x00100000
378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379 #define SHADOW_DCD 0x00800000
380 #define SHADOW_DTR 0x01000000
381 #define SHADOW_RTS 0x02000000
382 #define SHADOW_OUT1 0x04000000
383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384 #define SHADOW_OUT2 0x08000000
385 #define SHADOW_LOOP 0x10000000
386 #define SRTR_CNT 0x00000fff
387 #define SRTR_CNT_VAL 0x0fff0000
388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389 #define SRTR_CNT_VAL_SHIFT 16
390 #define SRTR_HZ 16000
391 #define SIO_IR_SA_TX_MT 0x00000001
392 #define SIO_IR_SA_RX_FULL 0x00000002
393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394 #define SIO_IR_SA_RX_HIGH 0x00000004
395 #define SIO_IR_SA_RX_TIMER 0x00000008
396 #define SIO_IR_SA_DELTA_DCD 0x00000010
397 #define SIO_IR_SA_DELTA_CTS 0x00000020
398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399 #define SIO_IR_SA_INT 0x00000040
400 #define SIO_IR_SA_TX_EXPLICIT 0x00000080
401 #define SIO_IR_SA_MEMERR 0x00000100
402 #define SIO_IR_SB_TX_MT 0x00000200
403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404 #define SIO_IR_SB_RX_FULL 0x00000400
405 #define SIO_IR_SB_RX_HIGH 0x00000800
406 #define SIO_IR_SB_RX_TIMER 0x00001000
407 #define SIO_IR_SB_DELTA_DCD 0x00002000
408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409 #define SIO_IR_SB_DELTA_CTS 0x00004000
410 #define SIO_IR_SB_INT 0x00008000
411 #define SIO_IR_SB_TX_EXPLICIT 0x00010000
412 #define SIO_IR_SB_MEMERR 0x00020000
413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414 #define SIO_IR_PP_INT 0x00040000
415 #define SIO_IR_PP_INTA 0x00080000
416 #define SIO_IR_PP_INTB 0x00100000
417 #define SIO_IR_PP_MEMERR 0x00200000
418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419 #define SIO_IR_KBD_INT 0x00400000
420 #define SIO_IR_RT_INT 0x08000000
421 #define SIO_IR_GEN_INT1 0x10000000
422 #define SIO_IR_GEN_INT_SHIFT 28
423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424 #define SIO_IR_SA (SIO_IR_SA_TX_MT | SIO_IR_SA_RX_FULL |   SIO_IR_SA_RX_HIGH | SIO_IR_SA_RX_TIMER |   SIO_IR_SA_DELTA_DCD | SIO_IR_SA_DELTA_CTS |   SIO_IR_SA_INT | SIO_IR_SA_TX_EXPLICIT |   SIO_IR_SA_MEMERR)
425 #define SIO_IR_SB (SIO_IR_SB_TX_MT | SIO_IR_SB_RX_FULL |   SIO_IR_SB_RX_HIGH | SIO_IR_SB_RX_TIMER |   SIO_IR_SB_DELTA_DCD | SIO_IR_SB_DELTA_CTS |   SIO_IR_SB_INT | SIO_IR_SB_TX_EXPLICIT |   SIO_IR_SB_MEMERR)
426 #define SIO_IR_PP (SIO_IR_PP_INT | SIO_IR_PP_INTA |   SIO_IR_PP_INTB | SIO_IR_PP_MEMERR)
427 #define SIO_IR_RT (SIO_IR_RT_INT | SIO_IR_GEN_INT1)
428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429 #define IOC3_PENDING_INTRS(mem) (PCI_INW(&((mem)->sio_ir)) &   PCI_INW(&((mem)->sio_ies_ro)))
430 #define SIO_CR_SIO_RESET 0x00000001
431 #define SIO_CR_SER_A_BASE 0x000000fe
432 #define SIO_CR_SER_A_BASE_SHIFT 1
433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434 #define SIO_CR_SER_B_BASE 0x00007f00
435 #define SIO_CR_SER_B_BASE_SHIFT 8
436 #define SIO_SR_CMD_PULSE 0x00078000
437 #define SIO_CR_CMD_PULSE_SHIFT 15
438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439 #define SIO_CR_ARB_DIAG 0x00380000
440 #define SIO_CR_ARB_DIAG_TXA 0x00000000
441 #define SIO_CR_ARB_DIAG_RXA 0x00080000
442 #define SIO_CR_ARB_DIAG_TXB 0x00100000
443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444 #define SIO_CR_ARB_DIAG_RXB 0x00180000
445 #define SIO_CR_ARB_DIAG_PP 0x00200000
446 #define SIO_CR_ARB_DIAG_IDLE 0x00400000
447 #define INT_OUT_COUNT 0x0000ffff
448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449 #define INT_OUT_MODE 0x00070000
450 #define INT_OUT_MODE_0 0x00000000
451 #define INT_OUT_MODE_1 0x00040000
452 #define INT_OUT_MODE_1PULSE 0x00050000
453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454 #define INT_OUT_MODE_PULSES 0x00060000
455 #define INT_OUT_MODE_SQW 0x00070000
456 #define INT_OUT_DIAG 0x40000000
457 #define INT_OUT_INT_OUT 0x80000000
458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459 #define INT_OUT_NS_PER_TICK (30 * 260)
460 #define INT_OUT_TICKS_PER_PULSE 3
461 #define INT_OUT_US_TO_COUNT(x)     (((x) * 10 + INT_OUT_NS_PER_TICK / 200) *   100 / INT_OUT_NS_PER_TICK - 1)
462 #define INT_OUT_COUNT_TO_US(x)     (((x) + 1) * INT_OUT_NS_PER_TICK / 1000)
463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464 #define INT_OUT_MIN_TICKS 3
465 #define INT_OUT_MAX_TICKS INT_OUT_COUNT
466 #define GPCR_DIR 0x000000ff
467 #define GPCR_DIR_PIN(x) (1<<(x))
468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469 #define GPCR_EDGE 0x000f0000
470 #define GPCR_EDGE_PIN(x) (1<<((x)+15))
471 #define GPCR_INT_OUT_EN 0x00100000
472 #define GPCR_MLAN_EN 0x00200000
473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474 #define GPCR_DIR_SERA_XCVR 0x00000080
475 #define GPCR_DIR_SERB_XCVR 0x00000040
476 #define GPCR_DIR_PHY_RST 0x00000020
477 #define GPCR_PHY_RESET 0x20
478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479 #define GPCR_UARTB_MODESEL 0x40
480 #define GPCR_UARTA_MODESEL 0x80
481 #define GPPR_PHY_RESET_PIN 5
482 #define GPPR_UARTB_MODESEL_PIN 6
483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484 #define GPPR_UARTA_MODESEL_PIN 7
485 #define EMCR_DUPLEX 0x00000001
486 #define EMCR_PROMISC 0x00000002
487 #define EMCR_PADEN 0x00000004
488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489 #define EMCR_RXOFF_MASK 0x000001f8
490 #define EMCR_RXOFF_SHIFT 3
491 #define EMCR_RAMPAR 0x00000200
492 #define EMCR_BADPAR 0x00000800
493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494 #define EMCR_BUFSIZ 0x00001000
495 #define EMCR_TXDMAEN 0x00002000
496 #define EMCR_TXEN 0x00004000
497 #define EMCR_RXDMAEN 0x00008000
498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499 #define EMCR_RXEN 0x00010000
500 #define EMCR_LOOPBACK 0x00020000
501 #define EMCR_ARB_DIAG 0x001c0000
502 #define EMCR_ARB_DIAG_IDLE 0x00200000
503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504 #define EMCR_RST 0x80000000
505 #define EISR_RXTIMERINT 0x00000001
506 #define EISR_RXTHRESHINT 0x00000002
507 #define EISR_RXOFLO 0x00000004
508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509 #define EISR_RXBUFOFLO 0x00000008
510 #define EISR_RXMEMERR 0x00000010
511 #define EISR_RXPARERR 0x00000020
512 #define EISR_TXEMPTY 0x00010000
513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514 #define EISR_TXRTRY 0x00020000
515 #define EISR_TXEXDEF 0x00040000
516 #define EISR_TXLCOL 0x00080000
517 #define EISR_TXGIANT 0x00100000
518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519 #define EISR_TXBUFUFLO 0x00200000
520 #define EISR_TXEXPLICIT 0x00400000
521 #define EISR_TXCOLLWRAP 0x00800000
522 #define EISR_TXDEFERWRAP 0x01000000
523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524 #define EISR_TXMEMERR 0x02000000
525 #define EISR_TXPARERR 0x04000000
526 #define ERCSR_THRESH_MASK 0x000001ff
527 #define ERCSR_RX_TMR 0x40000000
528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529 #define ERCSR_DIAG_OFLO 0x80000000
530 #define ERBR_ALIGNMENT 4096
531 #define ERBR_L_RXRINGBASE_MASK 0xfffff000
532 #define ERBAR_BARRIER_BIT 0x0100
533 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534 #define ERBAR_RXBARR_MASK 0xffff0000
535 #define ERBAR_RXBARR_SHIFT 16
536 #define ERCIR_RXCONSUME_MASK 0x00000fff
537 #define ERPIR_RXPRODUCE_MASK 0x00000fff
538 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
539 #define ERPIR_ARM 0x80000000
540 #define ERTR_CNT_MASK 0x000007ff
541 #define ETCSR_IPGT_MASK 0x0000007f
542 #define ETCSR_IPGR1_MASK 0x00007f00
543 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
544 #define ETCSR_IPGR1_SHIFT 8
545 #define ETCSR_IPGR2_MASK 0x007f0000
546 #define ETCSR_IPGR2_SHIFT 16
547 #define ETCSR_NOTXCLK 0x80000000
548 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
549 #define ETCDC_COLLCNT_MASK 0x0000ffff
550 #define ETCDC_DEFERCNT_MASK 0xffff0000
551 #define ETCDC_DEFERCNT_SHIFT 16
552 #define ETBR_ALIGNMENT (64*1024)
553 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
554 #define ETBR_L_RINGSZ_MASK 0x00000001
555 #define ETBR_L_RINGSZ128 0
556 #define ETBR_L_RINGSZ512 1
557 #define ETBR_L_TXRINGBASE_MASK 0xffffc000
558 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
559 #define ETCIR_TXCONSUME_MASK 0x0000ffff
560 #define ETCIR_IDLE 0x80000000
561 #define ETPIR_TXPRODUCE_MASK 0x0000ffff
562 #define EBIR_TXBUFPROD_MASK 0x0000001f
563 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
564 #define EBIR_TXBUFCONS_MASK 0x00001f00
565 #define EBIR_TXBUFCONS_SHIFT 8
566 #define EBIR_RXBUFPROD_MASK 0x007fc000
567 #define EBIR_RXBUFPROD_SHIFT 14
568 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
569 #define EBIR_RXBUFCONS_MASK 0xff800000
570 #define EBIR_RXBUFCONS_SHIFT 23
571 #define MICR_REGADDR_MASK 0x0000001f
572 #define MICR_PHYADDR_MASK 0x000003e0
573 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
574 #define MICR_PHYADDR_SHIFT 5
575 #define MICR_READTRIG 0x00000400
576 #define MICR_BUSY 0x00000800
577 #define MIDR_DATA_MASK 0x0000ffff
578 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
579 #define ERXBUF_IPCKSUM_MASK 0x0000ffff
580 #define ERXBUF_BYTECNT_MASK 0x07ff0000
581 #define ERXBUF_BYTECNT_SHIFT 16
582 #define ERXBUF_V 0x80000000
583 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
584 #define ERXBUF_CRCERR 0x00000001
585 #define ERXBUF_FRAMERR 0x00000002
586 #define ERXBUF_CODERR 0x00000004
587 #define ERXBUF_INVPREAMB 0x00000008
588 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
589 #define ERXBUF_LOLEN 0x00007000
590 #define ERXBUF_HILEN 0x03ff0000
591 #define ERXBUF_MULTICAST 0x04000000
592 #define ERXBUF_BROADCAST 0x08000000
593 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
594 #define ERXBUF_LONGEVENT 0x10000000
595 #define ERXBUF_BADPKT 0x20000000
596 #define ERXBUF_GOODPKT 0x40000000
597 #define ERXBUF_CARRIER 0x80000000
598 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
599 #define ETXD_BYTECNT_MASK 0x000007ff
600 #define ETXD_INTWHENDONE 0x00001000
601 #define ETXD_D0V 0x00010000
602 #define ETXD_B1V 0x00020000
603 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
604 #define ETXD_B2V 0x00040000
605 #define ETXD_DOCHECKSUM 0x00080000
606 #define ETXD_CHKOFF_MASK 0x07f00000
607 #define ETXD_CHKOFF_SHIFT 20
608 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
609 #define ETXD_D0CNT_MASK 0x0000007f
610 #define ETXD_B1CNT_MASK 0x0007ff00
611 #define ETXD_B1CNT_SHIFT 8
612 #define ETXD_B2CNT_MASK 0x7ff00000
613 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
614 #define ETXD_B2CNT_SHIFT 20
615 typedef enum ioc3_subdevs_e {
616  ioc3_subdev_ether,
617  ioc3_subdev_generic,
618 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
619  ioc3_subdev_nic,
620  ioc3_subdev_kbms,
621  ioc3_subdev_ttya,
622  ioc3_subdev_ttyb,
623 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
624  ioc3_subdev_ecpp,
625  ioc3_subdev_rt,
626  ioc3_nsubdevs
627 } ioc3_subdev_t;
628 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
629 #define IOC3_SDB_ETHER (1<<ioc3_subdev_ether)
630 #define IOC3_SDB_GENERIC (1<<ioc3_subdev_generic)
631 #define IOC3_SDB_NIC (1<<ioc3_subdev_nic)
632 #define IOC3_SDB_KBMS (1<<ioc3_subdev_kbms)
633 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
634 #define IOC3_SDB_TTYA (1<<ioc3_subdev_ttya)
635 #define IOC3_SDB_TTYB (1<<ioc3_subdev_ttyb)
636 #define IOC3_SDB_ECPP (1<<ioc3_subdev_ecpp)
637 #define IOC3_SDB_RT (1<<ioc3_subdev_rt)
638 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
639 #define IOC3_ALL_SUBDEVS ((1<<ioc3_nsubdevs)-1)
640 #define IOC3_SDB_SERIAL (IOC3_SDB_TTYA|IOC3_SDB_TTYB)
641 #define IOC3_STD_SUBDEVS IOC3_ALL_SUBDEVS
642 #define IOC3_INTA_SUBDEVS IOC3_SDB_ETHER
643 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
644 #define IOC3_INTB_SUBDEVS (IOC3_SDB_GENERIC|IOC3_SDB_KBMS|IOC3_SDB_SERIAL|IOC3_SDB_ECPP|IOC3_SDB_RT)
645 #endif
646