Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:43

0001 /**
0002  * @file
0003  *
0004  * @ingroup RTEMSBSPsI386
0005  *
0006  * @brief DP8390 Ethernet controller definitions.
0007  */
0008 
0009 /*
0010  *  Information about the DP8390 Ethernet controller.
0011  */
0012 
0013 #ifndef __BSP_WD80x3_h
0014 #define __BSP_WD80x3_h
0015 
0016 /* Register descriptions */
0017 /* Controller DP8390.    */
0018 
0019 #define DATAPORT    0x10    /* Port Window. */
0020 #define RESET       0x1f    /* Issue a read for reset */
0021 #define W83CREG     0x00    /* I/O port definition */
0022 #define ADDROM      0x08
0023 
0024 /* page 0 read or read/write registers */
0025 
0026 #define CMDR        0x00+RO
0027 #define CLDA0       0x01+RO /* current local dma addr 0 for read */
0028 #define CLDA1       0x02+RO /* current local dma addr 1 for read */
0029 #define BNRY        0x03+RO /* boundary reg for rd and wr */
0030 #define TSR         0x04+RO /* tx status reg for rd */
0031 #define NCR         0x05+RO /* number of collision reg for rd */
0032 #define FIFO        0x06+RO /* FIFO for rd */
0033 #define ISR         0x07+RO /* interrupt status reg for rd and wr */
0034 #define CRDA0       0x08+RO /* current remote dma address 0 for rd */
0035 #define CRDA1       0x09+RO /* current remote dma address 1 for rd */
0036 #define RSR         0x0C+RO /* rx status reg for rd */
0037 #define CNTR0       0x0D+RO /* tally cnt 0 for frm alg err for rd */
0038 #define CNTR1       RO+0x0E /* tally cnt 1 for crc err for rd */
0039 #define CNTR2       0x0F+RO /* tally cnt 2 for missed pkt for rd */
0040 
0041 /* page 0 write registers */
0042 
0043 #define PSTART      0x01+RO /* page start register */
0044 #define PSTOP       0x02+RO /* page stop register */
0045 #define TPSR        0x04+RO /* tx start page start reg */
0046 #define TBCR0       0x05+RO /* tx byte count 0 reg */
0047 #define TBCR1       0x06+RO /* tx byte count 1 reg */
0048 #define RSAR0       0x08+RO /* remote start address reg 0  */
0049 #define RSAR1       0x09+RO /* remote start address reg 1 */
0050 #define RBCR0       0x0A+RO /* remote byte count reg 0 */
0051 #define RBCR1       0x0B+RO /* remote byte count reg 1 */
0052 #define RCR         0x0C+RO /* rx configuration reg */
0053 #define TCR         0x0D+RO /* tx configuration reg */
0054 #define DCR         RO+0x0E /* data configuration reg */
0055 #define IMR         0x0F+RO /* interrupt mask reg */
0056 
0057 /* page 1 registers */
0058 
0059 #define PAR         0x01+RO /* physical addr reg base for rd and wr */
0060 #define CURR        0x07+RO /* current page reg for rd and wr */
0061 #define MAR         0x08+RO /* multicast addr reg base fro rd and WR */
0062 #define MARsize 8       /* size of multicast addr space */
0063 
0064 /*-----W83CREG command bits-----*/
0065 #define MSK_RESET  0x80     /* W83CREG masks */
0066 #define MSK_ENASH  0x40
0067 #define MSK_DECOD  0x3F     /* memory decode bits, corresponding */
0068                 /* to SA 18-13. SA 19 assumed to be 1 */
0069 
0070 /*-----CMDR command bits-----*/
0071 #define MSK_STP     0x01    /* stop the chip */
0072 #define MSK_STA     0x02    /* start the chip */
0073 #define MSK_TXP         0x04    /* initial txing of a frm */
0074 #define MSK_RRE     0x08    /* remote read */
0075 #define MSK_RWR     0x10    /* remote write */
0076 #define MSK_RD2     0x20    /* no DMA used */
0077 #define MSK_PG0         0x00    /* select register page 0 */
0078 #define MSK_PG1         0x40    /* select register page 1 */
0079 #define MSK_PG2         0x80    /* select register page 2 */
0080 
0081 /*-----ISR and TSR status bits-----*/
0082 #define MSK_PRX     0x01    /* rx with no error */
0083 #define MSK_PTX     0x02    /* tx with no error */
0084 #define MSK_RXE     0x04    /* rx with error */
0085 #define MSK_TXE     0x08    /* tx with error */
0086 #define MSK_OVW     0x10    /* overwrite warning */
0087 #define MSK_CNT     0x20    /* MSB of one of the tally counters is set */
0088 #define MSK_RDC     0x40    /* remote dma completed */
0089 #define MSK_RST     0x80    /* reset state indicator */
0090 
0091 /*-----DCR command bits-----*/
0092 #define MSK_WTS     0x01    /* word transfer mode selection */
0093 #define MSK_BOS     0x02    /* byte order selection */
0094 #define MSK_LAS     0x04    /* long addr selection */
0095 #define MSK_BMS     0x08    /* burst mode selection */
0096 #define MSK_ARM     0x10    /* autoinitialize remote */
0097 #define MSK_FT00    0x00    /* burst lrngth selection */
0098 #define MSK_FT01    0x20    /* burst lrngth selection */
0099 #define MSK_FT10    0x40    /* burst lrngth selection */
0100 #define MSK_FT11    0x60    /* burst lrngth selection */
0101 
0102 /*-----RCR command bits-----*/
0103 #define MSK_SEP     0x01    /* save error pkts */
0104 #define MSK_AR      0x02    /* accept runt pkt */
0105 #define MSK_AB      0x04    /* 8390 RCR */
0106 #define MSK_AM      0x08    /* accept multicast  */
0107 #define MSK_PRO     0x10    /* accept all pkt with physical adr */
0108 #define MSK_MON     0x20    /* monitor mode */
0109 
0110 /*-----TCR command bits-----*/
0111 #define MSK_CRC     0x01    /* inhibit CRC, do not append crc */
0112 #define MSK_LOOP    0x02    /* set loopback mode */
0113 #define MSK_BCST    0x04    /* Accept broadcasts */
0114 #define MSK_LB01    0x06    /* encoded loopback control */
0115 #define MSK_ATD     0x08    /* auto tx disable */
0116 #define MSK_OFST    0x10    /* collision offset enable  */
0117 
0118 /*-----receive status bits-----*/
0119 #define SMK_PRX   0x01      /* rx without error */
0120 #define SMK_CRC   0x02      /* CRC error */
0121 #define SMK_FAE   0x04      /* frame alignment error */
0122 #define SMK_FO    0x08      /* FIFO overrun */
0123 #define SMK_MPA   0x10      /* missed pkt */
0124 #define SMK_PHY   0x20      /* physical/multicase address */
0125 #define SMK_DIS   0x40      /* receiver disable. set in monitor mode */
0126 #define SMK_DEF   0x80      /* deferring */
0127 
0128 /*-----transmit status bits-----*/
0129 #define SMK_PTX   0x01      /* tx without error */
0130 #define SMK_DFR   0x02      /* non deferred tx */
0131 #define SMK_COL   0x04      /* tx collided */
0132 #define SMK_ABT   0x08      /* tx abort because of excessive collisions */
0133 #define SMK_CRS   0x10      /* carrier sense lost */
0134 #define SMK_FU    0x20      /* FIFO underrun */
0135 #define SMK_CDH   0x40      /* collision detect heartbeat */
0136 #define SMK_OWC   0x80      /* out of window collision */
0137 
0138 #endif
0139 /* end of include */