GUI: Fix Tomato RAF theme for all builds. Compilation typo.
[tomato.git] / release / src-rt-6.x.4708 / cfe / cfe / dev / dp83815.h
blob1d504229df3ed3a7eb8e8fefd440c0793787000a
1 /*
2 * Register and bit definitions for the National Semiconductor
3 * DP83815 10/100 Integrated Ethernet MAC and PHY.
4 * Reference:
5 * DP83815 10/100 Mb/s Integrated PCI Ethernet Media Access
6 * Controller and Physical Layer (MacPhyter)
7 * Hardware Reference Manual, Revision 1.0.
8 * National Semiconductor Corp., December 2000
9 */
10 #ifndef _DP83815_H_
11 #define _DP83815_H_
13 #define _DD_MAKEMASK1(n) (1 << (n))
14 #define _DD_MAKEMASK(v,n) ((((1)<<(v))-1) << (n))
15 #define _DD_MAKEVALUE(v,n) ((v) << (n))
16 #define _DD_GETVALUE(v,n,m) (((v) & (m)) >> (n))
19 /* PCI Configuration Register offsets (MacPhyter nomenclature) */
21 #define R_CFGID PCI_ID_REG
22 #define K_PCI_VENDOR_NSC 0x100B
23 #define K_PCI_ID_DP83815 0x0020
25 #define R_CFGCS PCI_COMMAND_STATUS_REG
26 #define R_CFGRID PCI_CLASS_REG
27 #define R_CFGLAT PCI_BHLC_REG
29 #define R_CFGIOA PCI_MAPREG(0)
30 #define R_CFGMA PCI_MAPREG(1)
32 #define R_CFGSID PCI_SUBSYS_ID_REG
33 #define R_CFGROM PCI_MAPREG_ROM
34 #define R_CAPPTR PCI_CAPLISTPTR_REG
35 #define R_CFGINT PCI_BPARAM_INTERRUPT_REG
37 /* Power management capability */
38 #define R_PMCAP 0x40
39 #define R_PMCSR 0x44
42 /* MacPhyter Operational Register offsets */
44 #define R_CR 0x00
45 #define R_CFG 0x04
46 #define R_MEAR 0x08
47 #define R_PTSCR 0x0C
48 #define R_ISR 0x10
49 #define R_IMR 0x14
50 #define R_IER 0x18
51 #define R_TXDP 0x20
52 #define R_TXCFG 0x24
53 #define R_RXDP 0x30
54 #define R_RXCFG 0x34
55 #define R_CCSR 0x3C
56 #define R_WCSR 0x40
57 #define R_PCR 0x44
58 #define R_RFCR 0x48
59 #define R_RFDR 0x4C
60 #define R_BRAR 0x50
61 #define R_BRDR 0x54
62 #define R_SRR 0x58
63 #define R_MIBC 0x5C
64 #define R_MIB(n) (0x60+4*(n))
66 /* MacPhyter MIB Registers */
68 #define R_MIB_RXErroredPkts R_MIB(0)
69 #define R_MIB_RXFCSErrors R_MIB(1)
70 #define R_MIB_RXMsdPktErrors R_MIB(2)
71 #define R_MIB_RXFAErrors R_MIB(3)
72 #define R_MIB_RXSymbolErrors R_MIB(4)
73 #define R_MIB_RXFrameTooLong R_MIB(5)
74 #define R_MIB_TXSQEErrors R_MIB(6)
76 #define N_MIB_REGISTERS 7
79 /* MacPhyter Internal PHY Register offsets */
81 #define R_BMCR 0x80
82 #define R_BMSR 0x84
83 #define R_PHYIDR1 0x88
84 #define R_PHYIDR2 0x8C
85 #define R_ANAR 0x90
86 #define R_ANLPAR 0x94
87 #define R_ANER 0x98
88 #define R_ANNPTR 0x9C
89 #define R_PHYSTS 0xC0
90 #define R_MICR 0xC4
91 #define R_MISR 0xC8
92 #define R_FCSCR 0xD0
93 #define R_RECR 0xD4
94 #define R_PHYCR 0xE4
95 #define R_TBTSCR 0xE8
97 /* Undocumented, updated for CVNG (SRR=0x0302) parts */
99 #define R_PGSEL 0xCC
100 #define R_PMDCSR 0xE4 /* R_PHYCR */
101 #define R_DSPCFG 0xF4
102 #define R_SDCFG 0xF8
103 #define R_TSTDAT 0xFC
106 /* 0x00 CR: Command Register */
108 #define M_CR_TXE _DD_MAKEMASK1(0)
109 #define M_CR_TXD _DD_MAKEMASK1(1)
110 #define M_CR_RXE _DD_MAKEMASK1(2)
111 #define M_CR_RXD _DD_MAKEMASK1(3)
112 #define M_CR_TXR _DD_MAKEMASK1(4)
113 #define M_CR_RXR _DD_MAKEMASK1(5)
114 #define M_CR_SWI _DD_MAKEMASK1(7)
115 #define M_CR_RST _DD_MAKEMASK1(8)
118 /* 0x04 CFG: Configuration and Media Status Register */
120 #define M_CFG_BEM _DD_MAKEMASK1(0)
121 #define M_CFG_BROM_DIS _DD_MAKEMASK1(2)
122 #define M_CFG_PESEL _DD_MAKEMASK1(3)
123 #define M_CFG_EXD _DD_MAKEMASK1(4)
124 #define M_CFG_POW _DD_MAKEMASK1(5)
125 #define M_CFG_SB _DD_MAKEMASK1(6)
126 #define M_CFG_REQALG _DD_MAKEMASK1(7)
127 #define M_CFG_EUPHCOMP _DD_MAKEMASK1(8)
128 #define M_CFG_PHY_DIS _DD_MAKEMASK1(9)
129 #define M_CFG_PHY_RST _DD_MAKEMASK1(10)
130 #define M_CFG_EXT_PHY _DD_MAKEMASK1(12)
132 #define S_CFG_ANEG_SEL 13
133 #define M_CFG_ANEG_SEL _DD_MAKEMASK(3,S_CFG_ANEG_SEL)
134 #define V_CFG_ANEG_SEL(x) _DD_MAKEVALUE(x,S_CFG_ANEG_SEL)
135 #define G_CFG_ANEG_SEL(x) _DD_GETVALUE(x,S_CFG_ANEG_SEL,M_CFG_ANEG_SEL)
137 #define K_ANEG_10H 0x0
138 #define K_ANEG_100H 0x2
139 #define K_ANEG_10F 0x4
140 #define K_ANEG_100F 0x6
141 #define K_ANEG_10HF 0x1
142 #define K_ANEG_10H_100H 0x3
143 #define K_ANEG_100HF 0x5
144 #define K_ANEG_10HF_100HF 0x7
145 #define K_ANEG_ALL 0x7
147 #define M_CFG_PAUSE_ADV _DD_MAKEMASK1(16)
148 #define M_CFG_PINT_ACEN _DD_MAKEMASK1(17)
150 #define S_CFG_PHY_CFG 18
151 #define M_CFG_PHY_CFG _DD_MAKEMASK(6,S_CFG_PHY_CFG)
153 #define M_CFG_ANEG_DN _DD_MAKEMASK1(27)
154 #define M_CFG_POL _DD_MAKEMASK1(28)
155 #define M_CFG_FDUP _DD_MAKEMASK1(29)
156 #define M_CFG_SPEED100 _DD_MAKEMASK1(30)
157 #define M_CFG_LNKSTS _DD_MAKEMASK1(31)
158 #define M_CFG_LNKSUMMARY (M_CFG_LNKSTS | M_CFG_SPEED100 | M_CFG_FDUP)
161 /* 0x08 MEAR: EEPROM Access Register (see 4.2.4 for EEPROM Map) */
163 #define M_MEAR_EEDI _DD_MAKEMASK1(0)
164 #define M_MEAR_EEDO _DD_MAKEMASK1(1)
165 #define M_MEAR_EECLK _DD_MAKEMASK1(2)
166 #define M_MEAR_EESEL _DD_MAKEMASK1(3)
167 #define M_MEAR_MDIO _DD_MAKEMASK1(4)
168 #define M_MEAR_MDDIR _DD_MAKEMASK1(5)
169 #define M_MEAR_MDC _DD_MAKEMASK1(6)
172 /* 0x0C PTSCR: PCI Test Control Register */
174 #define M_PTSCR_EEBIST_FAIL _DD_MAKEMASK1(0)
175 #define M_PTSCR_EEBIST_EN _DD_MAKEMASK1(1)
176 #define M_PTSCR_EELOAD_EN _DD_MAKEMASK1(2)
177 #define M_PTSCR_RBIST_RXFFAIL _DD_MAKEMASK1(3)
178 #define M_PTSCR_RBIST_TXFAIL _DD_MAKEMASK1(4)
179 #define M_PTSCR_RBIST_RXFAIL _DD_MAKEMASK1(5)
180 #define M_PTSCR_RBIST_DONE _DD_MAKEMASK1(6)
181 #define M_PTSCR_RBIST_EN _DD_MAKEMASK1(7)
182 #define M_PTSCR_MBZ8 _DD_MAKEMASK1(8)
183 #define M_PTSCR_MBZ9 _DD_MAKEMASK1(9)
184 #define M_PTSCR_RBIST_RST _DD_MAKEMASK1(10)
185 #define M_PTSCR_MBZ12 _DD_MAKEMASK1(12)
188 /* 0x10 ISR: Interrupt Status Register */
189 /* 0x14 IMR: Interrupt Mask Register */
191 #define M_INT_RXOK _DD_MAKEMASK1(0)
192 #define M_INT_RXDESC _DD_MAKEMASK1(1)
193 #define M_INT_RXERR _DD_MAKEMASK1(2)
194 #define M_INT_RXEARLY _DD_MAKEMASK1(3)
195 #define M_INT_RXIDLE _DD_MAKEMASK1(4)
196 #define M_INT_RXORN _DD_MAKEMASK1(5)
197 #define M_INT_TXOK _DD_MAKEMASK1(6)
198 #define M_INT_TXDESC _DD_MAKEMASK1(7)
199 #define M_INT_TXERR _DD_MAKEMASK1(8)
200 #define M_INT_TXIDLE _DD_MAKEMASK1(9)
201 #define M_INT_TXURN _DD_MAKEMASK1(10)
202 #define M_INT_MIB _DD_MAKEMASK1(11)
203 #define M_INT_SWI _DD_MAKEMASK1(12)
204 #define M_INT_PME _DD_MAKEMASK1(13)
205 #define M_INT_PHY _DD_MAKEMASK1(14)
206 #define M_INT_HIBERR _DD_MAKEMASK1(15)
207 #define M_INT_RXSOVR _DD_MAKEMASK1(16)
208 #define M_INT_RTABT _DD_MAKEMASK1(20)
209 #define M_INT_RMABT _DD_MAKEMASK1(21)
210 #define M_INT_SSERR _DD_MAKEMASK1(22)
211 #define M_INT_DPERR _DD_MAKEMASK1(23)
212 #define M_INT_RXRCMP _DD_MAKEMASK1(24)
213 #define M_INT_TXRCMP _DD_MAKEMASK1(25)
216 /* 0x18 IER: Interrupt Enable Register */
218 #define M_IER_IE _DD_MAKEMASK1(0)
221 /* 0x20 TXDP: Transmit Descriptor Pointer Register */
224 /* 0x24 TXCFG: Transmit Configuration Register */
226 #define S_TXCFG_DRTH 0
227 #define M_TXCFG_DRTH _DD_MAKEMASK(6,S_TXCFG_DRTH)
228 #define V_TXCFG_DRTH(x) _DD_MAKEVALUE(x,S_TXCFG_DRTH)
229 #define G_TXCFG_DRTH(x) _DD_GETVALUE(x,S_TXCFG_DRTH,M_TXCFG_DRTH)
231 #define S_TXCFG_FLTH 8
232 #define M_TXCFG_FLTH _DD_MAKEMASK(6,S_TXCFG_FLTH)
233 #define V_TXCFG_FLTH(x) _DD_MAKEVALUE(x,S_TXCFG_FLTH)
234 #define G_TXCFG_FLTH(x) _DD_GETVALUE(x,S_TXCFG_FLTH,M_TXCFG_FLTH)
236 #define S_TXCFG_MXDMA 20
237 #define M_TXCFG_MXDMA _DD_MAKEMASK(3,S_TXCFG_MXDMA)
238 #define V_TXCFG_MXDMA(x) _DD_MAKEVALUE(x,S_TXCFG_MXDMA)
239 #define G_TXCFG_MXDMA(x) _DD_GETVALUE(x,S_TXCFG_MXDMA,M_TXCFG_MXDMA)
241 /* Max DMA burst size (bytes) - RX also */
242 #define K_MXDMA_512 0x0
243 #define K_MXDMA_4 0x1
244 #define K_MXDMA_8 0x2
245 #define K_MXDMA_16 0x3
246 #define K_MXDMA_32 0x4
247 #define K_MXDMA_64 0x5
248 #define K_MXDMA_128 0x6
249 #define K_MXDMA_256 0x7
251 #define M_TXCFG_ECRETRY _DD_MAKEMASK1(23)
253 #define S_TXCFG_IFG 26
254 #define M_TXCFG_IFG _DD_MAKEMASK(2,S_TXCFG_IFG)
255 #define V_TXCFG_IFG(x) _DD_MAKEVALUE(x,S_TXCFG_IFG)
256 #define G_TXCFG_IFG(x) _DD_GETVALUE(x,S_TXCFG_IFG,M_TXCFG_IFG)
258 #define M_TXCFG_ATP _DD_MAKEMASK1(28)
259 #define M_TXCFG_MLB _DD_MAKEMASK1(29)
260 #define M_TXCFG_HBI _DD_MAKEMASK1(30)
261 #define M_TXCFG_CSI _DD_MAKEMASK1(31)
264 /* 0x30 RXDP: Receive Descriptor Pointer Register */
267 /* 0x34 RXCFG: Receive Configuration Register */
269 #define S_RXCFG_DRTH 1
270 #define M_RXCFG_DRTH _DD_MAKEMASK(5,S_RXCFG_DRTH)
271 #define V_RXCFG_DRTH(x) _DD_MAKEVALUE(x,S_RXCFG_DRTH)
272 #define G_RXCFG_DRTH(x) _DD_GETVALUE(x,S_RXCFG_DRTH,M_RXCFG_DRTH)
274 #define S_RXCFG_MXDMA 20
275 #define M_RXCFG_MXDMA _DD_MAKEMASK(3,S_RXCFG_MXDMA)
276 #define V_RXCFG_MXDMA(x) _DD_MAKEVALUE(x,S_RXCFG_MXDMA)
277 #define G_RXCFG_MXDMA(x) _DD_GETVALUE(x,S_RXCFG_MXDMA,M_RXCFG_MXDMA)
279 #define M_RXCFG_ALP _DD_MAKEMASK1(27)
280 #define M_RXCFG_ATX _DD_MAKEMASK1(28)
281 #define M_RXCFG_ARP _DD_MAKEMASK1(30)
282 #define M_RXCFG_AEP _DD_MAKEMASK1(31)
285 /* 0x3C CCSR: CLKRUN Control/Status Register */
287 #define M_CCSR_CLKRUN_EN _DD_MAKEMASK1(0)
288 #define M_CCSR_PMEEN _DD_MAKEMASK1(8)
289 #define M_CCSR_PMESTS _DD_MAKEMASK1(15)
292 /* 0x40 WCSR: Wake Command/Status Register */
294 #define M_WCSR_WKPHY _DD_MAKEMASK1(0)
295 #define M_WCSR_WKUCP _DD_MAKEMASK1(1)
296 #define M_WCSR_WKMCP _DD_MAKEMASK1(2)
297 #define M_WCSR_WKBCP _DD_MAKEMASK1(3)
298 #define M_WCSR_WKARP _DD_MAKEMASK1(4)
299 #define M_WCSR_WKPAT0 _DD_MAKEMASK1(5)
300 #define M_WCSR_WKPAT1 _DD_MAKEMASK1(6)
301 #define M_WCSR_WKPAT2 _DD_MAKEMASK1(7)
302 #define M_WCSR_WKPAT3 _DD_MAKEMASK1(8)
303 #define M_WCSR_WKMAG _DD_MAKEMASK1(9)
304 #define M_WCSR_MPSOE _DD_MAKEMASK1(10)
305 #define M_WCSR_SOHACK _DD_MAKEMASK1(20)
306 #define M_WCSR_PHYINT _DD_MAKEMASK1(22)
307 #define M_WCSR_UCASTR _DD_MAKEMASK1(23)
308 #define M_WCSR_MCASTR _DD_MAKEMASK1(24)
309 #define M_WCSR_BCASTR _DD_MAKEMASK1(25)
310 #define M_WCSR_ARPR _DD_MAKEMASK1(26)
311 #define M_WCSR_PATM0 _DD_MAKEMASK1(27)
312 #define M_WCSR_PATM1 _DD_MAKEMASK1(28)
313 #define M_WCSR_PATM2 _DD_MAKEMASK1(29)
314 #define M_WCSR_PATM3 _DD_MAKEMASK1(30)
315 #define M_WCSR_MPR _DD_MAKEMASK1(31)
318 /* 0x44 PCR: Pause Control/Status Register */
320 #define S_PCR_PAUSE_CNT 0
321 #define M_PCR_PAUSE_CNT _DD_MAKEMASK(16,S_PCR_PAUSE_CNT)
322 #define V_PCR_PAUSE_CNT(x) _DD_MAKEVALUE(x,S_PCR_PAUSE_CNT)
323 #define G_PCR_PAUSE_CNT(x) _DD_GETVALUE(x,S_PCR_PAUSE_CNT,M_PCR_PAUSE_CNT)
325 #define M_PCR_MLD_EN _DD_MAKEMASK1(16)
326 #define M_PCR_PSNEG _DD_MAKEMASK1(21)
327 #define M_PCR_PS_RCVD _DD_MAKEMASK1(22)
328 #define M_PCR_PS_ACT _DD_MAKEMASK1(23)
329 #define M_PCR_PS_DA _DD_MAKEMASK1(29)
330 #define M_PCR_PS_MCAST _DD_MAKEMASK1(30)
331 #define M_PCR_PSEN _DD_MAKEMASK1(31)
334 /* 0x48 RFCR: Receive Filter/Match Control Register */
337 #define S_RFCR_RFADDR 0
338 #define M_RFCR_RFADDR _DD_MAKEMASK(10,S_RFCR_RFADDR)
339 #define V_RFCR_RFADDR(x) _DD_MAKEVALUE(x,S_RFCR_RFADDR)
340 #define G_RFCR_RFADDR(x) _DD_GETVALUE(x,S_RFCR_RFADDR,M_RFCR_RFADDR)
342 #define K_RFCR_PMATCH_ADDR 0x000
343 #define K_RFCR_PCOUNT_ADDR 0x006
344 #define K_RFCR_FILTER_ADDR 0x200
346 #define M_RFCR_ULM _DD_MAKEMASK1(19)
347 #define M_RFCR_UHEN _DD_MAKEMASK1(20)
348 #define M_RFCR_MHEN _DD_MAKEMASK1(21)
349 #define M_RFCR_AARP _DD_MAKEMASK1(22)
350 #define M_RFCR_APAT0 _DD_MAKEMASK1(23)
351 #define M_RFCR_APAT1 _DD_MAKEMASK1(24)
352 #define M_RFCR_APAT2 _DD_MAKEMASK1(25)
353 #define M_RFCR_APAT3 _DD_MAKEMASK1(26)
354 #define M_RFCR_APAT (M_RFCR_APAT0 | M_RFCR_APAT1 | \
355 M_RFCR_APAT2 | M_RFCR_APAT3 )
356 #define M_RFCR_APM _DD_MAKEMASK1(27)
357 #define M_RFCR_AAU _DD_MAKEMASK1(28)
358 #define M_RFCR_AAM _DD_MAKEMASK1(29)
359 #define M_RFCR_AAB _DD_MAKEMASK1(30)
360 #define M_RFCR_RFEN _DD_MAKEMASK1(31)
363 /* 0x4C RFDR: Receive Filter/Match Data Register */
365 #define S_RFDR_RFDATA 0
366 #define M_RFDR_RFDATA _DD_MAKEMASK(16,S_RFDR_RFDATA)
367 #define V_RFDR_RFDATA(x) _DD_MAKEVALUE(x,S_RFDR_RFDATA)
368 #define G_RFDR_RFDATA(x) _DD_GETVALUE(x,S_RFDR_RFDATA,M_RFDR_RFDATA)
370 #define S_RFDR_BMASK 16
371 #define M_RFDR_BMASK _DD_MAKEMASK(2,S_RFDR_BMASK)
372 #define V_RFDR_BMASK(x) _DD_MAKEVALUE(x,S_RFDR_BMASK)
373 #define G_RFDR_BMASK(x) _DD_GETVALUE(x,S_RFDR_BMASK,M_RFDR_BMASK)
376 /* 0x50 BRAR: Boot ROM Address Register */
378 #define S_BRAR_ADDR 0
379 #define M_BRAR_ADDR _DD_MAKEMASK(16,S_BRAR_ADDR)
380 #define V_BRAR_ADDR(x) _DD_MAKEVALUE(x,S_BRAR_ADDR)
381 #define G_BRAR_ADDR(x) _DD_GETVALUE(x,S_BRAR_ADDR,M_BRAR_ADDR)
383 #define M_BRAR_AUTOINC _DD_MAKEMASK1(31)
386 /* 0x54 BRDR: Boot ROM Data Register */
389 /* 0x58 SRR: Silicon Revision Register */
391 #define S_SRR_REV 0
392 #define M_SRR_REV _DD_MAKEMASK(16,S_SRR_REV)
393 #define V_SRR_REV(x) _DD_MAKEVALUE(x,S_SRR_REV)
394 #define G_SRR_REV(x) _DD_GETVALUE(x,S_SRR_REV,M_SRR_REV)
396 #define K_REV_CVNG 0x00000302
397 #define K_REV_DVNG_UJB 0x00000403
400 /* 0x5C MIBC: Management Information Base Control Register */
402 #define M_MIBC_WRN _DD_MAKEMASK1(0)
403 #define M_MIBC_FRZ _DD_MAKEMASK1(1)
404 #define M_MIBC_ACLR _DD_MAKEMASK1(2)
405 #define M_MIBC_MIBS _DD_MAKEMASK1(3)
408 /* MIB Counters */
410 /* 0x60 RXErroredPkts */
411 /* 0x64 RXFCSErrors */
412 /* 0x68 RXMsdPktErrors */
413 /* 0x6C RXFAErrors */
414 /* 0x70 RXSymbolErrors */
415 /* 0x74 RXFrameTooLong */
416 /* 0x78 TXSQEErrors */
419 /* See ../net/mii.h for fields of standard (MII) PHY registers */
421 #define K_83815_PHYID1 0x2000
422 #define K_83815_PHYID2 0x5C21
424 #define K_ANNPTR_NULL 0x0001
427 /* 0xC0 PHYSTS: PHY Status Register */
429 #define PHYSTS_RXERRLATCH 0x2000
430 #define PHYSTS_POLARITYSTAT 0x1000
431 #define PHYSTS_FALSECARRLATCH 0x0800
432 #define PHYSTS_SIGNALDETECT 0x0400
433 #define PHYSTS_DESCRAMBLOCK 0x0200
434 #define PHYSTS_PAGERECVD 0x0100
435 #define PHYSTS_MIIINT 0x0080
436 #define PHYSTS_REMOTEFAULT 0x0040
437 #define PHYSTS_JABBERDET 0x0020
438 #define PHYSTS_ANCOMPLETE 0x0010
439 #define PHYSTS_LOOPBACK 0x0008
440 #define PHYSTS_DUPLEX 0x0004
441 #define PHYSTS_SPEED10 0x0002
442 #define PHYSTS_LINKSTAT 0x0001
445 /* 0xC4 MICR: MII Interrupt Control Register */
447 #define MICR_INTEN 0x0002
448 #define MICR_TINT 0x0001
451 /* 0xC8 MISR: MII Interrupt Status and Misc. Control Register */
453 #define MISR_MINT 0x8000
454 #define MISR_MSKLINK 0x4000
455 #define MISR_MSKJAB 0x2000
456 #define MISR_MSKRF 0x1000
457 #define MISR_MSKANC 0x0800
458 #define MISR_MSKFHF 0x0400
459 #define MISR_MSKRHF 0x0200
462 /* 0xD0 FCSCR: False Carrier Sense Counter Register */
464 #define FCSCR_FCSCNT 0x00FF
467 /* 0xD4 RECR: Receiver Error Counter Register */
469 #define RECR_RXERCNT 0x00FF
472 /* 0xD8 PCSR: 100 Mb/s PCS Configuration and Status Register */
474 #define PCSR_BYP4B5B 0x1000
475 #define PCSR_FREECLK 0x0800
476 #define PCSR_TQEN 0x0400
477 #define PCSR_SDFORCEB 0x0200
478 #define PCSR_SDOPTION 0x0100
479 #define PCSR_FORCE100OK 0x0020
480 #define PCSR_NRZIBYPASS 0x0004
483 /* 0xE4 PHYCR: PHY Control Register */
485 #define PHYCR_PSR15 0x0800
486 #define PHYCR_BISTSTATUS 0x0400
487 #define PHYCR_BISTSTART 0x0200
488 #define PHYCR_BPSTRETCH 0x0100
489 #define PHYCR_PAUSESTS 0x0080
490 #define PHYCR_PHYADDR 0x001F
493 /* 0xE8 TBTSCR: 10Base-T Status/Control Register */
495 #define TBTSCR_LPBK10DIS 0x0100
496 #define TBTSCR_LPDIS 0x0080
497 #define TBTSCR_FORCELINK10 0x0040
498 #define TBTSCR_FORCEPOLCOR 0x0020
499 #define TBTSCR_POLARITY 0x0010
500 #define TBTSCR_AUTOPOLDIS 0x0008
501 #define TBTSCR_HBDIS 0x0002
502 #define TBTSCR_JABBERDIS 0x0001
505 /* MacPhyter Transmit and Receive Descriptors */
507 /* Common Command/Status Fields */
508 #define S_DES1_SIZE 0
509 #define M_DES1_SIZE _DD_MAKEMASK(12,S_DES1_SIZE)
510 #define V_DES1_SIZE(x) _DD_MAKEVALUE(x,S_DES1_SIZE)
511 #define G_DES1_SIZE(x) _DD_GETVALUE(x,S_DES1_SIZE,M_DES1_SIZE)
513 #define M_DES1_OK _DD_MAKEMASK1(27)
514 #define M_DES1_INTR _DD_MAKEMASK1(29)
515 #define M_DES1_MORE _DD_MAKEMASK1(30)
516 #define M_DES1_OWN _DD_MAKEMASK1(31)
518 /* Transmit Command/Status Bits */
519 #define S_DES1_CCNT 16
520 #define M_DES1_CCNT _DD_MAKEMASK(4,S_DES1_CCNT)
521 #define V_DES1_CCNT(x) _DD_MAKEVALUE(x,S_DES1_CCNT)
522 #define G_DES1_CCNT(x) _DD_GETVALUE(x,S_DES1_CCNT,M_DES1_CCNT)
524 #define M_DES1_EC _DD_MAKEMASK1(20)
525 #define M_DES1_OWC _DD_MAKEMASK1(21)
526 #define M_DES1_ED _DD_MAKEMASK1(22)
527 #define M_DES1_TD _DD_MAKEMASK1(23)
528 #define M_DES1_CRS _DD_MAKEMASK1(24)
529 #define M_DES1_TFU _DD_MAKEMASK1(25)
530 #define M_DES1_TXA _DD_MAKEMASK1(26)
531 #define M_DES1_SUPCRC _DD_MAKEMASK1(28)
533 /* Receive Command/Status Bits */
534 #define M_DES1_COL _DD_MAKEMASK1(16)
535 #define M_DES1_LBP _DD_MAKEMASK1(17)
536 #define M_DES1_FAE _DD_MAKEMASK1(18)
537 #define M_DES1_CRCE _DD_MAKEMASK1(19)
538 #define M_DES1_ISE _DD_MAKEMASK1(20)
539 #define M_DES1_RUNT _DD_MAKEMASK1(21)
540 #define M_DES1_LONG _DD_MAKEMASK1(22)
541 #define M_DES1_RX_ERRORS (M_DES1_CRCE | \
542 M_DES1_COL | M_DES1_FAE | M_DES1_ISE | \
543 M_DES1_RUNT | M_DES1_LONG | M_DES1_RXO)
545 #define S_DES1_DEST 23
546 #define M_DES1_DEST _DD_MAKEMASK(2,S_DES1_DEST)
547 #define V_DES1_DEST(x) _DD_MAKEVALUE(x,S_DES1_DEST)
548 #define G_DES1_DEST(x) _DD_GETVALUE(x,S_DES1_DEST,M_DES1_DEST)
550 #define K_DEST_REJECT 0
551 #define K_DEST_UNICAST 1
552 #define K_DEST_MULTICAST 2
553 #define K_DEST_BROADCAST 3
555 #define M_DES1_RXO _DD_MAKEMASK1(25)
556 #define M_DES1_RXA _DD_MAKEMASK1(26)
557 #define M_DES1_INCCRC _DD_MAKEMASK1(28)
559 #endif /* _DP83815_H_ */