home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / SOURCE / KERNEL-S / V1.2 / LINUX-1.2 / LINUX-1 / linux / drivers / net / sk_g16.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-10  |  4.7 KB  |  166 lines

  1. /*-
  2.  *
  3.  * This software may be used and distributed according to the terms
  4.  * of the GNU Public License, incorporated herein by reference.
  5.  *
  6.  * Module         : sk_g16.h
  7.  * Version        : $Revision$  
  8.  *
  9.  * Author         : M.Hipp (mhipp@student.uni-tuebingen.de)
  10.  * changes by     : Patrick J.D. Weichmann
  11.  *
  12.  * Date Created   : 94/05/25
  13.  *
  14.  * Description    : In here are all necessary definitions of  
  15.  *                  the am7990 (LANCE) chip used for writing a
  16.  *                  network device driver which uses this chip 
  17.  *
  18.  * $Log$
  19. -*/
  20.  
  21. #ifndef SK_G16_H
  22.  
  23. #define SK_G16_H
  24.  
  25.  
  26. /*
  27.  *     Control and Status Register 0 (CSR0) bit definitions
  28.  *
  29.  * (R=Readable) (W=Writeable) (S=Set on write) (C-Clear on write)
  30.  *
  31.  */
  32.  
  33. #define CSR0_ERR    0x8000    /* Error summary (R) */
  34. #define CSR0_BABL    0x4000    /* Babble transmitter timeout error (RC) */
  35. #define CSR0_CERR    0x2000    /* Collision Error (RC) */
  36. #define CSR0_MISS    0x1000    /* Missed packet (RC) */
  37. #define CSR0_MERR    0x0800    /* Memory Error  (RC) */ 
  38. #define CSR0_RINT    0x0400    /* Receiver Interrupt (RC) */
  39. #define CSR0_TINT       0x0200    /* Transmit Interrupt (RC) */ 
  40. #define CSR0_IDON    0x0100    /* Initialization Done (RC) */
  41. #define CSR0_INTR    0x0080    /* Interrupt Flag (R) */
  42. #define CSR0_INEA    0x0040    /* Interrupt Enable (RW) */
  43. #define CSR0_RXON    0x0020    /* Receiver on (R) */
  44. #define CSR0_TXON    0x0010  /* Transmitter on (R) */
  45. #define CSR0_TDMD    0x0008    /* Transmit Demand (RS) */
  46. #define CSR0_STOP    0x0004     /* Stop (RS) */
  47. #define CSR0_STRT    0x0002    /* Start (RS) */
  48. #define CSR0_INIT    0x0001    /* Initialize (RS) */
  49.  
  50. #define CSR0_CLRALL     0x7f00  /* mask for all clearable bits */
  51.  
  52. /*
  53.  *    Control and Status Register 3 (CSR3) bit definitions
  54.  *
  55.  */
  56.  
  57. #define CSR3_BSWAP    0x0004    /* Byte Swap (RW) */
  58. #define CSR3_ACON    0x0002  /* ALE Control (RW) */
  59. #define CSR3_BCON    0x0001    /* Byte Control (RW) */
  60.  
  61. /*
  62.  *    Initialization Block Mode operation Bit Definitions.
  63.  */
  64.  
  65. #define MODE_PROM    0x8000    /* Promiscuous Mode */
  66. #define MODE_INTL    0x0040  /* Internal Loopback */
  67. #define MODE_DRTY    0x0020  /* Disable Retry */ 
  68. #define MODE_COLL    0x0010    /* Force Collision */
  69. #define MODE_DTCR    0x0008    /* Disable Transmit CRC) */
  70. #define MODE_LOOP    0x0004    /* Loopback */
  71. #define MODE_DTX    0x0002    /* Disable the Transmitter */ 
  72. #define MODE_DRX    0x0001  /* Disable the Receiver */
  73.  
  74. #define MODE_NORMAL     0x0000  /* Normal operation mode */
  75.  
  76. /*
  77.  *     Receive message descriptor status bit definitions.
  78.  */
  79.  
  80. #define RX_OWN        0x80    /* Owner bit 0 = host, 1 = lance */
  81. #define RX_ERR        0x40    /* Error Summary */
  82. #define RX_FRAM        0x20    /* Framing Error */
  83. #define RX_OFLO        0x10    /* Overflow Error */
  84. #define RX_CRC        0x08    /* CRC Error */ 
  85. #define RX_BUFF        0x04    /* Buffer Error */
  86. #define RX_STP        0x02    /* Start of Packet */
  87. #define RX_ENP        0x01    /* End of Packet */
  88.  
  89.  
  90. /*
  91.  *    Transmit message descriptor status bit definitions.
  92.  */
  93.  
  94. #define TX_OWN        0x80    /* Owner bit 0 = host, 1 = lance */
  95. #define TX_ERR        0x40    /* Error Summary */
  96. #define TX_MORE        0x10    /* More the 1 retry needed to Xmit */
  97. #define TX_ONE        0x08    /* One retry needed to Xmit */
  98. #define TX_DEF        0x04    /* Deferred */
  99. #define TX_STP         0x02    /* Start of Packet */
  100. #define TX_ENP        0x01    /* End of Packet */
  101.  
  102. /*
  103.  *      Transmit status (2) (valid if TX_ERR == 1)
  104.  */
  105.  
  106. #define TX_BUFF     0x8000  /* Buffering error (no ENP) */
  107. #define TX_UFLO     0x4000  /* Underflow (late memory) */
  108. #define TX_LCOL     0x1000  /* Late collision */
  109. #define TX_LCAR     0x0400  /* Loss of Carrier */
  110. #define TX_RTRY     0x0200  /* Failed after 16 retransmissions  */
  111. #define TX_TDR          0x003f  /* Time-domain-reflectometer-value */
  112.  
  113.  
  114. /* 
  115.  * Structures used for Communication with the LANCE 
  116.  */
  117.  
  118. /* LANCE Initialize Block */
  119.  
  120. struct init_block 
  121. {
  122.   unsigned short mode;     /* Mode Register */
  123.   unsigned char  paddr[6]; /* Physical Address (MAC) */
  124.   unsigned char  laddr[8]; /* Logical Filter Address (not used) */
  125.   unsigned int   rdrp;     /* Receive Descriptor Ring pointer */
  126.   unsigned int   tdrp;     /* Transmit Descriptor Ring pointer */
  127. };
  128.  
  129.  
  130. /* Receive Message Descriptor Entry */
  131.  
  132. struct rmd 
  133.   union
  134.   {
  135.     unsigned long buffer;     /* Address of buffer */
  136.     struct 
  137.     {
  138.       unsigned char unused[3]; 
  139.       unsigned volatile char status;   /* Status Bits */
  140.     } s;
  141.   } u;
  142.   volatile short blen;        /* Buffer Length (two's complement) */
  143.   unsigned short mlen;        /* Message Byte Count */
  144. };
  145.  
  146.  
  147. /* Transmit Message Descriptor Entry */
  148.  
  149. struct tmd   
  150. {
  151.   union 
  152.   {
  153.     unsigned long  buffer;    /* Address of buffer */
  154.     struct 
  155.     {
  156.       unsigned char unused[3];
  157.       unsigned volatile char status;   /* Status Bits */
  158.     } s;
  159.   } u;
  160.   unsigned short blen;             /* Buffer Length (two's complement) */
  161.   unsigned volatile short status2; /* Error Status Bits */
  162. };
  163.  
  164. #endif /* End of SK_G16_H */
  165.