allow coexistance of N build and AC build.
[tomato.git] / release / src-rt-6.x / cfe / cfe / dev / dc21143.h
bloba881da240686744481c304fec6e769dac989dfce
1 /*
2 * Register and bit definitions for the DEC/Intel 21143 Ethernet controller,
3 * part of the Tulip family of 10 and 10/100 controllers.
4 * Reference:
5 * 21143 PCI/CardBus 10/100 Mb/s Ethernet LAN Controller,
6 * Hardware Reference Manual, Revision 1.0.
7 * Document No. 278074-001
8 * Intel Corp., October 1998
9 * Includes extensions/alternatives for the DEC 21040, 21041 and 21140(A)
10 * Ethernet controllers.
12 #ifndef _DC21143_H_
13 #define _DC21143_H_
15 #define _DD_MAKEMASK1(n) (1 << (n))
16 #define _DD_MAKEMASK(v,n) ((((1)<<(v))-1) << (n))
17 #define _DD_MAKEVALUE(v,n) ((v) << (n))
18 #define _DD_GETVALUE(v,n,m) (((v) & (m)) >> (n))
21 /* *********************************************************************
22 * PCI Configuration Register offsets (Tulip nomenclature)
23 ********************************************************************* */
25 #define R_CFG_CFID PCI_ID_REG
26 #define K_PCI_VENDOR_DEC 0x1011
27 #define K_PCI_ID_DC21040 0x0002
28 #define K_PCI_ID_DC21041 0x0014
29 #define K_PCI_ID_DC21140 0x0009
30 #define K_PCI_ID_DC21143 0x0019
32 #define R_CFG_CFRV PCI_CLASS_REG
34 #define R_CFG_CBIO PCI_MAPREG(0)
35 #define R_CFG_CBMA PCI_MAPREG(1)
37 #define R_CFG_CFIT PCI_BPARAM_INTERRUPT_REG
39 /* Tulip extensions */
40 #define R_CFG_CFDD 0x40
42 #define M_CFDD_SLEEP __DD_MAKEMASK1(31)
43 #define M_CFDD_SNOOZE __DD_MAKEMASK1(30)
45 #define R_CFG_CPMS 0xE0
48 /* *********************************************************************
49 * CSRs: offsets
50 ********************************************************************* */
52 #define R_CSR_BUSMODE 0x00
53 #define R_CSR_TXPOLL 0x08
54 #define R_CSR_RXPOLL 0x10
55 #define R_CSR_RXRING 0x18
56 #define R_CSR_TXRING 0x20
57 #define R_CSR_STATUS 0x28
58 #define R_CSR_OPMODE 0x30
59 #define R_CSR_INTMASK 0x38
60 #define R_CSR_MISSEDFRAME 0x40
61 #define R_CSR_ROM_MII 0x48
62 #define R_CSR_BOOTROM_ADDR 0x50
63 #define R_CSR_GENTIMER 0x58
65 /* The following registers are specific to the 21040 */
67 #define R_CSR_FDUPLEX 0x58
69 /* The following registers are specific to the 21040/21041 and 21142/21143 */
71 #define R_CSR_SIASTATUS 0x60
72 #define R_CSR_SIAMODE0 0x68
73 #define R_CSR_SIAMODE1 0x70
74 #define R_CSR_SIAMODE2 0x78
76 /* The following registers are specific to the 21140/21140A */
78 #define R_CSR_GENPORT 0x60
79 #define R_CSR_WATCHDOG_TIMER 0x78
82 /* CSR0: Bus Mode register */
84 #define M_CSR0_SWRESET _DD_MAKEMASK1(0)
85 #define M_CSR0_BUSARB _DD_MAKEMASK1(1)
87 #define S_CSR0_SKIPLEN 2
88 #define M_CSR0_SKIPLEN _DD_MAKEMASK(5,S_CSR0_SKIPLEN)
89 #define V_CSR0_SKIPLEN(x) _DD_MAKEVALUE(x,S_CSR0_SKIPLEN)
90 #define G_CSR0_SKIPLEN(x) _DD_GETVALUE(x,S_CSR0_SKIPLEN,M_CSR0_SKIPLEN)
92 #define M_CSR0_BIGENDIAN _DD_MAKEMASK1(7)
94 #define S_CSR0_BURSTLEN 8
95 #define M_CSR0_BURSTLEN _DD_MAKEMASK(6,S_CSR0_BURSTLEN)
96 #define V_CSR0_BURSTLEN(x) _DD_MAKEVALUE(x,S_CSR0_BURSTLEN)
97 #define G_CSR0_BURSTLEN(x) _DD_GETVALUE(x,S_CSR0_BURSTLEN,M_CSR0_BURSTLEN)
99 #define S_CSR0_CACHEALIGN 14
100 #define M_CSR0_CACHEALIGN _DD_MAKEMASK(2,S_CSR0_CACHEALIGN)
101 #define V_CSR0_CACHEALIGN(x) _DD_MAKEVALUE(x,S_CSR0_CACHEALIGN)
102 #define G_CSR0_CACHEALIGN(x) _DD_GETVALUE(x,S_CSR0_CACHEALIGN,M_CSR0_CACHEALIGN)
104 #define S_CSR0_TXAUTOPOLL 17
105 #define M_CSR0_TXAUTOPOLL _DD_MAKEMASK(3,S_CSR0_AUTOPOLL)
106 #define V_CSR0_TXAUTOPOLL(x) _DD_MAKEVALUE(x,S_CSR0_TXAUTOPOLL)
107 #define G_CSR0_TXAUTOPOLL(x) _DD_GETVALUE(x,S_CSR0_TXAUTOPOLL,M_CSR0_TXAUTOPOLL)
109 #define M_CSR0_DESCBYTEORDER _DD_MAKEMASK1(20) /* not 21040 */
110 #define M_CSR0_READMULTENAB _DD_MAKEMASK1(21) /* not 2104{0,1} */
111 #define M_CSR0_READLINEENAB _DD_MAKEMASK1(23) /* not 2104{0,1} */
112 #define M_CSR0_WRITEINVALENAB _DD_MAKEMASK1(24) /* not 2104{0,1} */
114 #define K_CSR0_TAPDISABLED 0x00
115 #define K_CSR0_TAP200US 0x01
116 #define K_CSR0_TAP800US 0x02
117 #define K_CSR0_TAP1600US 0x03
119 #define K_CSR0_ALIGNNONE 0
120 #define K_CSR0_ALIGN32 1
121 #define K_CSR0_ALIGN64 2
122 #define K_CSR0_ALIGN128 3
124 #define K_CSR0_BURST32 32
125 #define K_CSR0_BURST16 16
126 #define K_CSR0_BURST8 8
127 #define K_CSR0_BURST4 4
128 #define K_CSR0_BURST2 2
129 #define K_CSR0_BURST1 1
130 #define K_CSR0_BURSTANY 0
133 #define M_CSR3_RXDSCRADDR 0xFFFFFFFC
134 #define M_CSR4_TXDSCRADDR 0xFFFFFFFC
137 /* CSR5: Status register */
139 #define M_CSR5_TXINT _DD_MAKEMASK1(0)
140 #define M_CSR5_TXSTOP _DD_MAKEMASK1(1)
141 #define M_CSR5_TXBUFUNAVAIL _DD_MAKEMASK1(2)
142 #define M_CSR5_TXJABTIMEOUT _DD_MAKEMASK1(3)
143 #define M_CSR5_LINKPASS _DD_MAKEMASK1(4) /* not 21040 */
144 #define M_CSR5_TXUNDERFLOW _DD_MAKEMASK1(5)
145 #define M_CSR5_RXINT _DD_MAKEMASK1(6)
146 #define M_CSR5_RXBUFUNAVAIL _DD_MAKEMASK1(7)
147 #define M_CSR5_RXSTOPPED _DD_MAKEMASK1(8)
148 #define M_CSR5_RXWDOGTIMEOUT _DD_MAKEMASK1(9)
149 #define M_CSR5_AUITPPIN _DD_MAKEMASK1(10) /* 21040 only */
150 #define M_CSR5_TXEARLYINT _DD_MAKEMASK1(10) /* not 2104{0,1} */
151 #define M_CSR5_FDSHORTFRAME _DD_MAKEMASK1(11) /* 21040 only */
152 #define M_CSR5_GPTIMEREXPIRE _DD_MAKEMASK1(11) /* not 21040 */
153 #define M_CSR5_LINKFAIL _DD_MAKEMASK1(12)
154 #define M_CSR5_FATALBUSERROR _DD_MAKEMASK1(13)
155 #define M_CSR5_RXEARLYINT _DD_MAKEMASK1(14) /* not 21040 */
156 #define M_CSR5_ABNORMALINT _DD_MAKEMASK1(15)
157 #define M_CSR5_NORMALINT _DD_MAKEMASK1(16)
159 #define S_CSR5_RXPROCSTATE 17
160 #define M_CSR5_RXPROCSTATE _DD_MAKEMASK(3,S_CSR5_RXPROCSTATE)
161 #define V_CSR5_RXPROCSTATE(x) _DD_MAKEVALUE(x,S_CSR5_RXPROCSTATE)
162 #define G_CSR5_RXPROCSTATE(x) _DD_GETVALUE(x,S_CSR5_RXPROCSTATE,M_CSR5_RXPROCSTATE)
164 #define K_CSR5_RXSTOPPED 0x00 /* RESET or STOP command */
165 #define K_CSR5_RXFETCH 0x01 /* fetching rx desc */
166 #define K_CSR5_RXCHECK 0x02 /* checking end of rx pkt */
167 #define K_CSR5_RXWAIT 0x03 /* waiting for rx pkt */
168 #define K_CSR5_RXSUSPEND 0x04 /* unavailable rx buffer */
169 #define K_CSR5_RXCLOSE 0x05 /* closing rx desc */
170 #define K_CSR5_RXFLUSH 0x06 /* flushing rx frame */
171 #define K_CSR5_RXQUEUE 0x07 /* reading rx frame from FIFO */
173 #define S_CSR5_TXPROCSTATE 20
174 #define M_CSR5_TXPROCSTATE _DD_MAKEMASK(3,S_CSR5_TXPROCSTATE)
175 #define V_CSR5_TXPROCSTATE(x) _DD_MAKEVALUE(x,S_CSR5_TXPROCSTATE)
176 #define G_CSR5_TXPROCSTATE(x) _DD_GETVALUE(x,S_CSR5_TXPROCSTATE,M_CSR5_TXPROCSTATE)
178 #define K_CSR5_TXSTOPPED 0x00 /* RESET or STOP command */
179 #define K_CSR5_TXFETCH 0x01 /* fetching tx desc */
180 #define K_CSR5_TXWAIT 0x02 /* waiting for end of tx */
181 #define K_CSR5_TXREAD 0x03 /* reading buffer into FIFO */
182 #define K_CSR5_TXSETUP 0x05 /* setup packet */
183 #define K_CSR5_TXSUSPEND 0x06 /* tx underflow or no tx desc */
184 #define K_CSR5_TXCLOSE 0x07 /* closing tx desc */
186 #define S_CSR5_ERRORBITS 23
187 #define M_CSR5_ERRORBITS _DD_MAKEMASK(3,S_CSR5_ERRORBITS)
188 #define V_CSR5_ERRORBITS(x) _DD_MAKEVALUE(x,S_CSR5_ERRORBITS)
189 #define G_CSR5_ERRORBITS(x) _DD_GETVALUE(x,S_CSR5_ERRORBITS,M_CSR5_ERRORBITS)
191 #define K_CSR5_FBE_PARITY 0x00
192 #define K_CSR5_FBE_MABORT 0x01
193 #define K_CSR5_FBE_TABORT 0x02
195 #define M_CSR5_GPPORTINT _DD_MAKEMASK1(26) /* not 2104{0,1} */
196 #define M_CSR5_LINKCHANGED _DD_MAKEMASK1(27) /* not 2104{0,1} */
199 /* CSR6: Operating Mode register */
201 #define M_CSR6_RXHASHFILT _DD_MAKEMASK1(0)
202 #define M_CSR6_RXSTART _DD_MAKEMASK1(1)
203 #define M_CSR6_HASHONLY _DD_MAKEMASK1(2)
204 #define M_CSR6_PASSBADFRAMES _DD_MAKEMASK1(3)
205 #define M_CSR6_INVERSEFILT _DD_MAKEMASK1(4)
206 #define M_CSR6_STOPBACKOFF _DD_MAKEMASK1(5)
207 #define M_CSR6_PROMISCUOUS _DD_MAKEMASK1(6)
208 #define M_CSR6_PASSALLMULTI _DD_MAKEMASK1(7)
209 #define M_CSR6_FULLDUPLEX _DD_MAKEMASK1(9)
211 #define M_CSR6_INTLOOPBACK _DD_MAKEMASK1(10)
212 #define M_CSR6_EXTLOOPBACK _DD_MAKEMASK1(11)
214 #define S_CSR6_OPMODE 10
215 #define M_CSR6_OPMODE _DD_MAKEMASK(2,S_CSR6_OPMODE)
216 #define V_CSR6_OPMODE(x) _DD_MAKEVALUE(x,S_CSR6_OPMODE)
217 #define G_CSR6_OPMODE(x) _DD_GETVALUE(x,S_CSR6_OPMODE,M_CSR6_OPMODE)
219 #define M_CSR6_FORCECOLL _DD_MAKEMASK1(12)
220 #define M_CSR6_TXSTART _DD_MAKEMASK1(13)
222 #define S_CSR6_THRESHCONTROL 14
223 #define M_CSR6_THRESHCONTROL _DD_MAKEMASK(2,S_CSR6_THRESHCONTROL)
224 #define V_CSR6_THRESHCONTROL(x) _DD_MAKEVALUE(x,S_CSR6_THRESHCONTROL)
225 #define G_CSR6_THRESHCONTROL(x) _DD_GETVALUE(x,S_CSR6_THRESHCONTROL,M_CSR6_THRESHCONTROL)
227 #define M_CSR6_BACKPRESSURE _DD_MAKEMASK1(16) /* 21040 only */
228 #define M_CSR6_CAPTUREEFFECT _DD_MAKEMASK1(17)
230 #define M_CSR6_PORTSEL _DD_MAKEMASK1(18) /* not 2104{0,1} */
231 #define M_CSR6_HBDISABLE _DD_MAKEMASK1(19) /* not 2104{0,1} */
232 #define M_CSR6_STOREFWD _DD_MAKEMASK1(21) /* not 2104{0,1} */
233 #define M_CSR6_TXTHRESH _DD_MAKEMASK1(22) /* not 2104{0,1} */
234 #define M_CSR6_PCSFUNC _DD_MAKEMASK1(23) /* not 2104{0,1} */
235 #define M_CSR6_SCRAMMODE _DD_MAKEMASK1(24) /* not 2104{0,1} */
236 #define M_CSR6_MBO _DD_MAKEMASK1(25) /* not 2104{0,1} */
237 #define M_CSR6_RXALL _DD_MAKEMASK1(30) /* not 2104{0,1} */
239 #define M_CSR6_SPECCAP _DD_MAKEMASK1(31) /* not 21040 */
241 #define K_CSR6_TXTHRES_128_72 0x00
242 #define K_CSR6_TXTHRES_256_96 0x01
243 #define K_CSR6_TXTHRES_512_128 0x02
244 #define K_CSR6_TXTHRES_1024_160 0x03
247 #ifndef EB332
248 #define M_CSR6_SPEED_10 (M_CSR6_TXTHRESH)
250 #define M_CSR6_SPEED_100 (M_CSR6_HBDISABLE | \
251 M_CSR6_SCRAMMODE | \
252 M_CSR6_PCSFUNC | \
253 M_CSR6_PORTSEL)
255 #define M_CSR6_SPEED_10_MII (M_CSR6_TXTHRESH | \
256 M_CSR6_PORTSEL)
258 #define M_CSR6_SPEED_100_MII (M_CSR6_HBDISABLE | \
259 M_CSR6_PORTSEL)
261 #else
262 #define M_CSR6_SPEED_10 (0)
264 #define M_CSR6_SPEED_100 (M_CSR6_SCRAMMODE | \
265 M_CSR6_PORTSEL)
267 #define M_CSR6_SPEED_10_MII (M_CSR6_PORTSEL)
269 #define M_CSR6_SPEED_100_MII (M_CSR6_PORTSEL)
270 #endif
272 /* CSR7: Interrupt mask register */
274 #define M_CSR7_TXINT _DD_MAKEMASK1(0)
275 #define M_CSR7_TXSTOP _DD_MAKEMASK1(1)
276 #define M_CSR7_TXBUFUNAVAIL _DD_MAKEMASK1(2)
277 #define M_CSR7_TXJABTIMEOUT _DD_MAKEMASK1(3)
278 #define M_CSR7_LINKPASS _DD_MAKEMASK1(4) /* not 21040 */
279 #define M_CSR7_TXUNDERFLOW _DD_MAKEMASK1(5)
280 #define M_CSR7_RXINT _DD_MAKEMASK1(6)
281 #define M_CSR7_RXBUFUNAVAIL _DD_MAKEMASK1(7)
282 #define M_CSR7_RXSTOPPED _DD_MAKEMASK1(8)
283 #define M_CSR7_RXWDOGTIMEOUT _DD_MAKEMASK1(9)
284 #define M_CSR7_AUITPSW _DD_MAKEMASK1(10) /* 21040 only */
285 #define M_CSR7_TXEARLY _DD_MAKEMASK1(10) /* not 2104{0,1} */
286 #define M_CSR7_FD _DD_MAKEMASK1(11) /* 21040 only */
287 #define M_CSR7_GPTIMER _DD_MAKEMASK1(11) /* not 21040 */
288 #define M_CSR7_LINKFAIL _DD_MAKEMASK1(12)
289 #define M_CSR7_FATALBUSERROR _DD_MAKEMASK1(13)
290 #define M_CSR7_RXEARLY _DD_MAKEMASK1(14) /* not 21040 */
291 #define M_CSR7_ABNORMALINT _DD_MAKEMASK1(15)
292 #define M_CSR7_NORMALINT _DD_MAKEMASK1(16)
293 #define M_CSR7_GPPORT _DD_MAKEMASK1(26) /* not 2104{0,1} */
294 #define M_CSR7_LINKCHANGED _DD_MAKEMASK1(27) /* not 2104{0,1} */
297 /* CSR8: Missed Frame register */
299 #define M_CSR8_RXOVER_WRAP _DD_MAKEMASK1(28) /* not 2104{0,1} */
300 #define S_CSR8_RXOVER 17
301 #define M_CSR8_RXOVER _DD_MAKEMASK(11,S_CSR8_RXOVER) /* not 2104{0,1} */
302 #define V_CSR8_RXOVER(x) _DD_MAKEVALUE(x,S_CSR8_RXOVER)
303 #define G_CSR8_RXOVER(x) _DD_GETVALUE(x,S_CSR8_RXOVER,M_CSR8_RXOVER)
305 #define M_CSR8_MISSEDWRAP _DD_MAKEMASK1(16)
306 #define S_CSR8_MISSED 0
307 #define M_CSR8_MISSED _DD_MAKEMASK(16,S_CSR8_MISSED)
308 #define V_CSR8_MISSED(x) _DD_MAKEVALUE(x,S_CSR8_MISSED)
309 #define G_CSR8_MISSED(x) _DD_GETVALUE(x,S_CSR8_MISSED,M_CSR8_MISSED)
312 /* CSR9: ROM and MII register */
314 #define S_CSR9_ROMDATA 0
315 #define M_CSR9_ROMDATA _DD_MAKEMASK(8,S_CSR9_ROMDATA)
316 #define V_CSR9_ROMDATA(x) _DD_MAKEVALUE(x,S_CSR9_ROMDATA)
317 #define G_CSR9_ROMDATA(x) _DD_GETVALUE(x,S_CSR9_ROMDATA,M_CSR9_ROMDATA)
319 #define M_CSR9_SROMCHIPSEL _DD_MAKEMASK1(0) /* not 21040 */
320 #define M_CSR9_SROMCLOCK _DD_MAKEMASK1(1) /* not 21040 */
321 #define M_CSR9_SROMDATAIN _DD_MAKEMASK1(2) /* not 21040 */
322 #define M_CSR9_SROMDATAOUT _DD_MAKEMASK1(3) /* not 21040 */
324 #define M_CSR9_REGSELECT _DD_MAKEMASK1(10) /* not 21040 */
325 #define M_CSR9_SERROMSEL _DD_MAKEMASK1(11) /* not 21040 */
326 #define M_CSR9_ROMSEL _DD_MAKEMASK1(12) /* not 21040 */
327 #define M_CSR9_ROMWRITE _DD_MAKEMASK1(13) /* not 21040 */
328 #define M_CSR9_ROMREAD _DD_MAKEMASK1(14) /* not 21040 */
329 #define M_CSR9_MODESEL _DD_MAKEMASK1(15) /* 21041 only */
330 #define M_CSR9_MDC _DD_MAKEMASK1(16) /* not 2104{0,1} */
331 #define M_CSR9_MDO _DD_MAKEMASK1(17) /* not 2104{0,1} */
332 #define M_CSR9_MIIMODE _DD_MAKEMASK1(18) /* not 2104{0,1} */
333 #define M_CSR9_MDI _DD_MAKEMASK1(19) /* not 2104{0,1} */
335 #define M_CSR9_DATANOTVALID _DD_MAKEMASK1(31) /* 21040 only */
337 #define M_CSR10_BOOTROMADDR _DD_MAKEMASK(18,0) /* not 21040 */
340 /* CSR11 General Purpose Timer register */
342 #define S_CSR11_GPTIMER 0 /* not 21040 */
343 #define M_CSR11_GPTIMER _DD_MAKEMASK(16,S_CSR11_GPTIMER)
344 #define V_CSR11_GPTIMER(x) _DD_MAKEVALUE(x,S_CSR11_GPTIMER)
345 #define G_CSR11_GPTIMER(x) _DD_GETVALUE(x,S_CSR11_GPTIMER,M_CSR11_GPTIMER)
348 #define M_CSR11_GPTIMERCONT _DD_MAKEMASK1(16) /* not 21040 */
350 #define S_CSR11_FDAUTOCONF 0 /* 21040 only */
351 #define M_CSR11_FDAUTOCONF _DD_MAKEMASK(16,S_CSR11_FDAUTOCONF)
352 #define V_CSR11_FDAUTOCONF(x) _DD_MAKEVALUE(x,S_CSR11_FDAUTOCONF)
353 #define G_CSR11_FRAUTOCONF(x) _DD_GETVALUE(x,S_CSR11_FDAUTOCONF,M_CSR11_AUTOCONF)
356 /* CSR12: SIA Status register (21143) */
358 #define M_CSR12_MIIRPA _DD_MAKEMASK1(0)
359 #define M_CSR12_100MBLINK _DD_MAKEMASK1(1)
360 #define M_CSR12_10MBLINK _DD_MAKEMASK1(2)
361 #define M_CSR12_AUTOPOLSTATE _DD_MAKEMASK1(3)
363 #define M_CSR12_RXAUIACT _DD_MAKEMASK1(8)
364 #define M_CSR12_RX10BASETACT _DD_MAKEMASK1(9)
365 #define M_CSR12_NLPDETECT _DD_MAKEMASK1(10)
366 #define M_CSR12_TXREMFAULT _DD_MAKEMASK1(11)
368 #define S_CSR12_AUTONEGARBIT 12
369 #define M_CSR12_AUTONEGARBIT _DD_MAKEMASK(3,S_CSR12_AUTONEGARBIT)
370 #define V_CSR12_AUTONEGARBIT(x) _DD_MAKEVALUE(x,S_CSR12_AUTONEGARBIT)
371 #define G_CSR12_AUTONEGARBIT(x) _DD_GETVALUE(x,S_CSR12_AUTONEGARBIT,M_CSR12_AUTONEGARBIT)
373 #define M_CSR12_LINKPARTNEG _DD_MAKEMASK1(15)
375 #define S_CSR12_LINKPARTCODE 16
376 #define M_CSR12_LINKPARTCODE _DD_MAKEMASK(16,S_CSR12_LINKPARTCODE)
377 #define V_CSR12_LINKPARTCODE(x) _DD_MAKEVALUE(x,S_CSR12_LINKPARTCODE)
378 #define G_CSR12_LINKPARTCODE(x) _DD_GETVALUE(x,S_CSR12_LINKPARTCODE,M_CSR12_LINKPARTCODE)
381 /* CSR12: SIA Status register (21041, also 31:12, 3:3 as for 21143) */
383 #define M_CSR12_NETCONNERR _DD_MAKEMASK1(1)
384 #define M_CSR12_LINKFAIL _DD_MAKEMASK1(2)
385 #define M_CSR12_SELPORTACT _DD_MAKEMASK1(8)
386 #define M_CSR12_NONSELPORTACT _DD_MAKEMASK1(9)
387 #define M_CSR12_AUTONEGRESTART _DD_MAKEMASK1(10)
388 #define M_CSR12_UNSTABLENLP _DD_MAKEMASK1(11)
391 /* CSR12: General Purpose Port register (21140) */
393 #define S_CSR12_DATA 0
394 #define M_CSR12_DATA _DD_MAKEMASK(8,S_CSR12_DATA)
395 #define V_CSR12_DATA _DD_MAKEVALUE(x,S_CSR12_DATA,M_CSR12_DATA)
396 #define G_CSR12_DATA(x) _DD_GETVALUE(x,S_CSR12_DATA,M_CSR12_DATA)
398 #define M_CSR12_CONTROL _DD_MAKEMASK1(8)
401 /* CSR13: SIA Mode 0 register (21143 and 21041) */
403 #define M_CSR13_CONN_NOT_RESET _DD_MAKEMASK1(0)
404 #define M_CSR13_CONN_CSR_AUTO _DD_MAKEMAKS1(2) /* 21041 only */
405 #define M_CSR13_CONN_AUI_10BT _DD_MAKEMASK1(3)
408 /* CSR14: SIA Mode 1 register (21143 and 21041) */
410 #define M_CSR14_ENCODER _DD_MAKEMASK1(0)
411 #define M_CSR14_LOOPBACK _DD_MAKEMASK1(1)
412 #define M_CSR14_DRIVER _DD_MAKEMASK1(2)
413 #define M_CSR14_LINKPULSE _DD_MAKEMASK1(3)
415 #define S_CSR14_COMPENSATE 4
416 #define M_CSR14_COMPENSATE _DD_MAKEMASK(2,S_CSR14_COMPENSATE)
417 #define V_CSR15_COMPENSATE(x) _DD_MAKEVALUE(x,S_CSR15_COMPENSATE)
418 #define G_CSR15_COMPENSATE(x) _DD_GETVALUE(x,S_CSR15_COMPENSATE,M_CSR15_COMPENSATE)
420 #define M_CSR14_HALFDUPLEX10BASET _DD_MAKEMASK1(6)
421 #define M_CSR14_AUTONEGOTIATE _DD_MAKEMASK1(7)
422 #define M_CSR14_RXSQUELCH _DD_MAKEMASK1(8)
423 #define M_CSR14_COLLSQUELCH _DD_MAKEMASK1(9)
424 #define M_CSR14_COLLDETECT _DD_MAKEMASK1(10)
425 #define M_CSR14_SIGQUALGEN _DD_MAKEMASK1(11)
426 #define M_CSR14_LINKTEST _DD_MAKEMASK1(12)
427 #define M_CSR14_AUTOPOLARITY _DD_MAKEMASK1(13)
428 #define M_CSR14_SETPOLARITY _DD_MAKEMASK1(14)
429 #define M_CSR14_10BASETAUIAUTO _DD_MAKEMASK1(15)
430 #define M_CSR14_100BASETHALFDUP _DD_MAKEMASK1(16) /* not 21041 */
431 #define M_CSR14_100BASETFULLDUP _DD_MAKEMASK1(17) /* not 21041 */
432 #define M_CSR14_100BASET4 _DD_MAKEMASK1(18) /* not 21041 */
434 #define M_CSR14_10BT_HD 0x7F3F
435 #define M_CSR14_10BT_FD 0x7F3D
438 /* CSR15: SIA Mode 2 register (21143 and 21041) */
440 #define M_CSR15_GP_JABBERDIS _DD_MAKEMASK1(0) /* 21041 only */
441 #define M_CSR15_GP_HOSTUNJAB _DD_MAKEMASK1(1)
442 #define M_CSR15_GP_JABBERCLK _DD_MAKEMASK1(2)
443 #define M_CSR15_GP_AUIBNC _DD_MAKEMASK1(3)
444 #define M_CSR15_GP_RXWATCHDIS _DD_MAKEMASK1(4)
445 #define M_CSR15_GP_RXWATCHREL _DD_MAKEMASK1(5)
447 /* (CSR15: 21143 only) */
449 #define S_CSR15_GP_GPDATA 16
450 #define M_CSR15_GP_GPDATA _DD_MAKEMASK(4,S_CSR15_GP_GPDATA)
451 #define V_CSR15_GP_GPDATA(x) _DD_MAKEVALUE(x,S_CSR15_GP_GPDATA)
452 #define G_CSR15_GP_GPDATA(x) _DD_GETVALUE(x,S_CSR15_GP_GPDATA,M_CSR15_GP_GPDATA)
454 #define M_CSR15_GP_LED0 _DD_MAKEMASK1(20)
455 #define M_CSR15_GP_LED1 _DD_MAKEMASK1(21)
456 #define M_CSR15_GP_LED2 _DD_MAKEMASK1(22)
457 #define M_CSR15_GP_LED3 _DD_MAKEMASK1(23)
458 #define M_CSR15_GP_INTPORT0 _DD_MAKEMASK1(24)
459 #define M_CSR15_GP_INTPORT1 _DD_MAKEMASK1(25)
460 #define M_CSR15_GP_RXMATCH _DD_MAKEMASK1(26)
461 #define M_CSR15_GP_CONTROLWRITE _DD_MAKEMASK1(27)
462 #define M_CSR15_GP_GPINT0 _DD_MAKEMASK1(28)
463 #define M_CSR15_GP_GPINT1 _DD_MAKEMASK1(29)
464 #define M_CSR15_GP_RXMATCHINT _DD_MAKEMASK1(30)
466 #define M_CSR15_DEFAULT_VALUE 0x00050008
467 #define M_CSR15_CONFIG_GEPS_LEDS 0x08af0000
469 /* (CSR15: 21041 only) */
471 #define M_CSR15_GP_LED1ENB _DD_MAKEMASK1(6)
472 #define M_CSR15_GP_LED1VALUE _DD_MAKEMASK1(7)
473 #define M_CSR15_GP_TSTCLK _DD_MAKEMASK1(8)
474 #define M_CSR15_GP_FORCEUNSQ _DD_MAKEMASK1(9)
475 #define M_CSR15_GP_FORCEFAIL _DD_MAKEMASK1(10)
476 #define M_CSR15_GP_LEDSTRDIS _DD_MAKEMASK1(11)
477 #define M_CSR15_GP_PLLTEST _DD_MAKEMASK1(12)
478 #define M_CSR15_GP_FORCERXLOW _DD_MAKEMASK1(13)
479 #define M_CSR15_GP_LED2ENB _DD_MAKEMASK1(14)
480 #define M_CSR15_GP_LED2VALUE _DD_MAKEMASK1(15)
483 /* CSR15: Watchdog Timer register (21140) */
485 #define M_CSR15_WT_JABBER _DD_MAKEMASK1(0)
486 #define M_CSR15_WT_HOSTUNJAB _DD_MAKEMASK1(1)
487 #define M_CSR15_WT_JABBERCLK _DD_MAKEMASK1(2)
488 #define M_CSR15_WT_RXWATCHDIS _DD_MAKEMASK1(4)
489 #define M_CSR15_WT_RXWATCHREL _DD_MAKEMASK1(5)
492 /* *********************************************************************
493 * Receive Descriptors
494 ********************************************************************* */
496 #define M_RDES0_OWNSYS 0
497 #define M_RDES0_OWNADAP _DD_MAKEMASK1(31)
499 #define S_RDES0_FRAMELEN 16
500 #define M_RDES0_FRAMELEN _DD_MAKEMASK(14,S_RDES0_FRAMELEN)
501 #define V_RDES0_FRAMELEN(x) _DD_MAKEVALUE(x,S_RDES0_FRAMELEN)
502 #define G_RDES0_FRAMELEN(x) _DD_GETVALUE(x,S_RDES0_FRAMELEN,M_RDES0_FRAMELEN)
504 #define M_RDES0_ZERO _DD_MAKEMASK1(0)
505 #define M_RDES0_OVFL _DD_MAKEMAKS1(0) /* 21041 only */
506 #define M_RDES0_CRCERR _DD_MAKEMASK1(1)
507 #define M_RDES0_DRIBBLE _DD_MAKEMASK1(2)
508 #define M_RDES0_MIIERROR _DD_MAKEMASK1(3) /* not 21041 */
509 #define M_RDES0_WDOGTIMER _DD_MAKEMASK1(4)
510 #define M_RDES0_FRAMETYPE _DD_MAKEMASK1(5)
511 #define M_RDES0_COLLSEEN _DD_MAKEMASK1(6)
512 #define M_RDES0_FRAMETOOLONG _DD_MAKEMASK1(7)
513 #define M_RDES0_LASTDES _DD_MAKEMASK1(8)
514 #define M_RDES0_FIRSTDES _DD_MAKEMASK1(9)
515 #define M_RDES0_MCASTFRAME _DD_MAKEMASK1(10)
516 #define M_RDES0_RUNTFRAME _DD_MAKEMASK1(11)
518 #define S_RDES0_DATATYPE 12
519 #define M_RDES0_DATATYPE _DD_MAKEMASK(2,S_RDES0_DATATYPE)
520 #define V_RDES0_DATATYPE(x) _DD_MAKEVALUE(x,S_RDES0_DATATYPE)
521 #define G_RDES0_DATATYPE(x) _DD_GETVALUE(x,S_RDES0_DATATYPE,M_RDES0_DATATYPE)
523 #define M_RDES0_ERROR _DD_MAKEMASK1(14)
524 #define M_RDES0_ERRORSUM _DD_MAKEMASK1(15)
525 #define M_RDES0_FILTFAIL _DD_MAKEMASK1(30) /* not 21041 */
527 #define S_RDES1_BUF1SIZE 0
528 #define M_RDES1_BUF1SIZE _DD_MAKEMASK(11,S_TDES1_BUF1SIZE)
529 #define V_RDES1_BUF1SIZE(x) _DD_MAKEVALUE(x,S_RDES1_BUF1SIZE)
530 #define G_RDES1_BUF1SIZE(x) _DD_GETVALUE(x,S_RDES1_BUF1SIZE,M_RDES1_BUF1SIZE)
532 #define S_RDES1_BUF2SIZE 11
533 #define M_RDES1_BUF2SIZE _DD_MAKEMASK(11,S_TDES2_BUF2SIZE)
534 #define V_RDES1_BUF2SIZE(x) _DD_MAKEVALUE(x,S_RDES1_BUF2SIZE)
535 #define G_RDES1_BUF2SIZE(x) _DD_GETVALUE(x,S_RDES1_BUF2SIZE,M_RDES1_BUF2SIZE)
537 #define M_RDES1_CHAINED _DD_MAKEMASK1(24)
538 #define M_RDES1_ENDOFRING _DD_MAKEMASK1(25)
540 #define M_RDES2_BUFADDR 0xFFFFFFFF
541 #define M_RDES3_BUFADDR 0xFFFFFFFF
543 /* *********************************************************************
544 * Transmit Descriptors
545 ********************************************************************* */
547 #define M_TDES0_OWNSYS 0
548 #define M_TDES0_OWNADAP _DD_MAKEMASK1(31)
550 #define M_TDES0_DEFERRED _DD_MAKEMASK1(0)
551 #define M_TDES0_UNDERFLOW _DD_MAKEMASK1(1)
552 #define M_TDES0_LINK_FAIL _DD_MAKEMASK1(2)
554 #define S_TDES0_COLLCOUNT 3
555 #define M_TDES0_COLLCOUNT _DD_MAKEMASK(4,S_TDES0_COLLCOUNT)
556 #define V_TDES0_COLLCOUNT(x) _DD_MAKEVALUE(x,S_TDES0_COLLCOUNT)
557 #define G_TDES0_COLLCOUNT(x) _DD_GETVALUE(x,S_TDES0_COLLCOUNT,M_TDES0_COLLCOUNT)
559 #define M_TDES0_HEARTBEAT_FAIL _DD_MAKEMASK1(7)
560 #define M_TDES0_EXCESSIVE_COLLISIONS _DD_MAKEMASK1(8)
561 #define M_TDES0_LATE_COLLISION _DD_MAKEMASK1(9)
562 #define M_TDES0_NO_CARRIER _DD_MAKEMASK1(10)
563 #define M_TDES0_LOSS_OF_CARRIER _DD_MAKEMASK1(11)
564 #define M_TDES0_TX_JABBER_TIMEOUT _DD_MAKEMASK1(14)
565 #define M_TDES0_ERROR_SUMMARY _DD_MAKEMASK1(15)
566 #define M_TDES0_OWN_BIT _DD_MAKEMASK1(31)
568 #define S_TDES1_BUF1SIZE 0
569 #define M_TDES1_BUF1SIZE _DD_MAKEMASK(11,S_TDES1_BUF1SIZE)
570 #define V_TDES1_BUF1SIZE(x) _DD_MAKEVALUE(x,S_TDES1_BUF1SIZE)
571 #define G_TDES1_BUF1SIZE(x) _DD_GETVALUE(x,S_TDES1_BUF1SIZE,M_TDES1_BUF1SIZE)
573 #define S_TDES1_BUF2SIZE 11
574 #define M_TDES1_BUF2SIZE _DD_MAKEMASK(11,S_TDES2_BUF2SIZE)
575 #define V_TDES1_BUF2SIZE(x) _DD_MAKEVALUE(x,S_TDES1_BUF2SIZE)
576 #define G_TDES1_BUF2SIZE(x) _DD_GETVALUE(x,S_TDES1_BUF2SIZE,M_TDES1_BUF2SIZE)
578 #define M_TDES1_FT0 _DD_MAKEMASK1(22)
579 #define M_TDES1_NOPADDING _DD_MAKEMASK1(23)
580 #define M_TDES1_CHAINED _DD_MAKEMASK1(24)
581 #define M_TDES1_ENDOFRING _DD_MAKEMASK1(25)
582 #define M_TDES1_NOADDCRC _DD_MAKEMASK1(26)
583 #define M_TDES1_SETUP _DD_MAKEMASK1(27)
584 #define M_TDES1_FT1 _DD_MAKEMASK1(28)
585 #define M_TDES1_FIRSTSEG _DD_MAKEMASK1(29)
586 #define M_TDES1_LASTSEG _DD_MAKEMASK1(30)
587 #define M_TDES1_INTERRUPT _DD_MAKEMASK1(31)
589 #define M_TDES2_BUFADDR 0xFFFFFFFF
590 #define M_TDES3_BUFADDR 0xFFFFFFFF
593 /* CAM */
595 #define CAM_HASH_THRESHOLD 14
596 #define CAM_PERFECT_ENTRIES 16
598 #define CAM_SETUP_BUFFER_SIZE 192
600 #endif /* _DC21143_H_ */