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_ 12 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)) 17 18 19/* PCI Configuration Register offsets (MacPhyter nomenclature) */ 20 21#define R_CFGID PCI_ID_REG 22#define K_PCI_VENDOR_NSC 0x100B 23#define K_PCI_ID_DP83815 0x0020 24 25#define R_CFGCS PCI_COMMAND_STATUS_REG 26#define R_CFGRID PCI_CLASS_REG 27#define R_CFGLAT PCI_BHLC_REG 28 29#define R_CFGIOA PCI_MAPREG(0) 30#define R_CFGMA PCI_MAPREG(1) 31 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 36 37/* Power management capability */ 38#define R_PMCAP 0x40 39#define R_PMCSR 0x44 40 41 42/* MacPhyter Operational Register offsets */ 43 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)) 65 66/* MacPhyter MIB Registers */ 67 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) 75 76#define N_MIB_REGISTERS 7 77 78 79/* MacPhyter Internal PHY Register offsets */ 80 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 96 97/* Undocumented, updated for CVNG (SRR=0x0302) parts */ 98 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 104 105 106/* 0x00 CR: Command Register */ 107 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) 116 117 118/* 0x04 CFG: Configuration and Media Status Register */ 119 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) 131 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) 136 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 146 147#define M_CFG_PAUSE_ADV _DD_MAKEMASK1(16) 148#define M_CFG_PINT_ACEN _DD_MAKEMASK1(17) 149 150#define S_CFG_PHY_CFG 18 151#define M_CFG_PHY_CFG _DD_MAKEMASK(6,S_CFG_PHY_CFG) 152 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) 159 160 161/* 0x08 MEAR: EEPROM Access Register (see 4.2.4 for EEPROM Map) */ 162 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) 170 171 172/* 0x0C PTSCR: PCI Test Control Register */ 173 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) 186 187 188/* 0x10 ISR: Interrupt Status Register */ 189/* 0x14 IMR: Interrupt Mask Register */ 190 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) 214 215 216/* 0x18 IER: Interrupt Enable Register */ 217 218#define M_IER_IE _DD_MAKEMASK1(0) 219 220 221/* 0x20 TXDP: Transmit Descriptor Pointer Register */ 222 223 224/* 0x24 TXCFG: Transmit Configuration Register */ 225 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) 230 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) 235 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) 240 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 250 251#define M_TXCFG_ECRETRY _DD_MAKEMASK1(23) 252 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) 257 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) 262 263 264/* 0x30 RXDP: Receive Descriptor Pointer Register */ 265 266 267/* 0x34 RXCFG: Receive Configuration Register */ 268 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) 273 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) 278 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) 283 284 285/* 0x3C CCSR: CLKRUN Control/Status Register */ 286 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) 290 291 292/* 0x40 WCSR: Wake Command/Status Register */ 293 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) 316 317 318/* 0x44 PCR: Pause Control/Status Register */ 319 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) 324 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) 332 333 334/* 0x48 RFCR: Receive Filter/Match Control Register */ 335 336 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) 341 342#define K_RFCR_PMATCH_ADDR 0x000 343#define K_RFCR_PCOUNT_ADDR 0x006 344#define K_RFCR_FILTER_ADDR 0x200 345 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) 361 362 363/* 0x4C RFDR: Receive Filter/Match Data Register */ 364 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) 369 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) 374 375 376/* 0x50 BRAR: Boot ROM Address Register */ 377 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) 382 383#define M_BRAR_AUTOINC _DD_MAKEMASK1(31) 384 385 386/* 0x54 BRDR: Boot ROM Data Register */ 387 388 389/* 0x58 SRR: Silicon Revision Register */ 390 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) 395 396#define K_REV_CVNG 0x00000302 397#define K_REV_DVNG_UJB 0x00000403 398 399 400/* 0x5C MIBC: Management Information Base Control Register */ 401 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) 406 407 408/* MIB Counters */ 409 410/* 0x60 RXErroredPkts */ 411/* 0x64 RXFCSErrors */ 412/* 0x68 RXMsdPktErrors */ 413/* 0x6C RXFAErrors */ 414/* 0x70 RXSymbolErrors */ 415/* 0x74 RXFrameTooLong */ 416/* 0x78 TXSQEErrors */ 417 418 419/* See ../net/mii.h for fields of standard (MII) PHY registers */ 420 421#define K_83815_PHYID1 0x2000 422#define K_83815_PHYID2 0x5C21 423 424#define K_ANNPTR_NULL 0x0001 425 426 427/* 0xC0 PHYSTS: PHY Status Register */ 428 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 443 444 445/* 0xC4 MICR: MII Interrupt Control Register */ 446 447#define MICR_INTEN 0x0002 448#define MICR_TINT 0x0001 449 450 451/* 0xC8 MISR: MII Interrupt Status and Misc. Control Register */ 452 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 460 461 462/* 0xD0 FCSCR: False Carrier Sense Counter Register */ 463 464#define FCSCR_FCSCNT 0x00FF 465 466 467/* 0xD4 RECR: Receiver Error Counter Register */ 468 469#define RECR_RXERCNT 0x00FF 470 471 472/* 0xD8 PCSR: 100 Mb/s PCS Configuration and Status Register */ 473 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 481 482 483/* 0xE4 PHYCR: PHY Control Register */ 484 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 491 492 493/* 0xE8 TBTSCR: 10Base-T Status/Control Register */ 494 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 503 504 505/* MacPhyter Transmit and Receive Descriptors */ 506 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) 512 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) 517 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) 523 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) 532 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) 544 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) 549 550#define K_DEST_REJECT 0 551#define K_DEST_UNICAST 1 552#define K_DEST_MULTICAST 2 553#define K_DEST_BROADCAST 3 554 555#define M_DES1_RXO _DD_MAKEMASK1(25) 556#define M_DES1_RXA _DD_MAKEMASK1(26) 557#define M_DES1_INCCRC _DD_MAKEMASK1(28) 558 559#endif /* _DP83815_H_ */ 560