sk_g16.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:5k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*-
  2.  *
  3.  * This software may be used and distributed according to the terms
  4.  * of the GNU General 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. #ifndef SK_G16_H
  21. #define SK_G16_H
  22. /*
  23.  *  Control and Status Register 0 (CSR0) bit definitions
  24.  *
  25.  * (R=Readable) (W=Writeable) (S=Set on write) (C-Clear on write)
  26.  *
  27.  */
  28. #define CSR0_ERR 0x8000 /* Error summary (R) */
  29. #define CSR0_BABL 0x4000 /* Babble transmitter timeout error (RC) */
  30. #define CSR0_CERR 0x2000 /* Collision Error (RC) */
  31. #define CSR0_MISS 0x1000 /* Missed packet (RC) */
  32. #define CSR0_MERR 0x0800 /* Memory Error  (RC) */ 
  33. #define CSR0_RINT 0x0400 /* Receiver Interrupt (RC) */
  34. #define CSR0_TINT       0x0200 /* Transmit Interrupt (RC) */ 
  35. #define CSR0_IDON 0x0100 /* Initialization Done (RC) */
  36. #define CSR0_INTR 0x0080 /* Interrupt Flag (R) */
  37. #define CSR0_INEA 0x0040 /* Interrupt Enable (RW) */
  38. #define CSR0_RXON 0x0020 /* Receiver on (R) */
  39. #define CSR0_TXON 0x0010  /* Transmitter on (R) */
  40. #define CSR0_TDMD 0x0008 /* Transmit Demand (RS) */
  41. #define CSR0_STOP 0x0004  /* Stop (RS) */
  42. #define CSR0_STRT 0x0002 /* Start (RS) */
  43. #define CSR0_INIT 0x0001 /* Initialize (RS) */
  44. #define CSR0_CLRALL     0x7f00  /* mask for all clearable bits */
  45. /*
  46.  *    Control and Status Register 3 (CSR3) bit definitions
  47.  *
  48.  */
  49. #define CSR3_BSWAP 0x0004 /* Byte Swap (RW) */
  50. #define CSR3_ACON 0x0002  /* ALE Control (RW) */
  51. #define CSR3_BCON 0x0001 /* Byte Control (RW) */
  52. /*
  53.  * Initialization Block Mode operation Bit Definitions.
  54.  */
  55. #define MODE_PROM 0x8000 /* Promiscuous Mode */
  56. #define MODE_INTL 0x0040  /* Internal Loopback */
  57. #define MODE_DRTY 0x0020  /* Disable Retry */ 
  58. #define MODE_COLL 0x0010 /* Force Collision */
  59. #define MODE_DTCR 0x0008 /* Disable Transmit CRC) */
  60. #define MODE_LOOP 0x0004 /* Loopback */
  61. #define MODE_DTX 0x0002 /* Disable the Transmitter */ 
  62. #define MODE_DRX 0x0001  /* Disable the Receiver */
  63. #define MODE_NORMAL  0x0000  /* Normal operation mode */
  64. /*
  65.  *  Receive message descriptor status bit definitions.
  66.  */
  67. #define RX_OWN 0x80 /* Owner bit 0 = host, 1 = lance */
  68. #define RX_ERR 0x40 /* Error Summary */
  69. #define RX_FRAM 0x20 /* Framing Error */
  70. #define RX_OFLO 0x10 /* Overflow Error */
  71. #define RX_CRC 0x08 /* CRC Error */ 
  72. #define RX_BUFF 0x04 /* Buffer Error */
  73. #define RX_STP 0x02 /* Start of Packet */
  74. #define RX_ENP 0x01 /* End of Packet */
  75. /*
  76.  * Transmit message descriptor status bit definitions.
  77.  */
  78. #define TX_OWN 0x80 /* Owner bit 0 = host, 1 = lance */
  79. #define TX_ERR 0x40    /* Error Summary */
  80. #define TX_MORE 0x10 /* More the 1 retry needed to Xmit */
  81. #define TX_ONE 0x08 /* One retry needed to Xmit */
  82. #define TX_DEF 0x04 /* Deferred */
  83. #define TX_STP  0x02 /* Start of Packet */
  84. #define TX_ENP 0x01 /* End of Packet */
  85. /*
  86.  *      Transmit status (2) (valid if TX_ERR == 1)
  87.  */
  88. #define TX_BUFF  0x8000  /* Buffering error (no ENP) */
  89. #define TX_UFLO  0x4000  /* Underflow (late memory) */
  90. #define TX_LCOL  0x1000  /* Late collision */
  91. #define TX_LCAR  0x0400  /* Loss of Carrier */
  92. #define TX_RTRY  0x0200  /* Failed after 16 retransmissions  */
  93. #define TX_TDR          0x003f  /* Time-domain-reflectometer-value */
  94. /* 
  95.  * Structures used for Communication with the LANCE 
  96.  */
  97. /* LANCE Initialize Block */
  98. struct init_block 
  99. {
  100.   unsigned short mode;     /* Mode Register */
  101.   unsigned char  paddr[6]; /* Physical Address (MAC) */
  102.   unsigned char  laddr[8]; /* Logical Filter Address (not used) */
  103.   unsigned int   rdrp;     /* Receive Descriptor Ring pointer */
  104.   unsigned int   tdrp;     /* Transmit Descriptor Ring pointer */
  105. };
  106. /* Receive Message Descriptor Entry */
  107. struct rmd 
  108.   union
  109.   {
  110.     unsigned long buffer;     /* Address of buffer */
  111.     struct 
  112.     {
  113.       unsigned char unused[3]; 
  114.       unsigned volatile char status;   /* Status Bits */
  115.     } s;
  116.   } u;
  117.   volatile short blen;        /* Buffer Length (two's complement) */
  118.   unsigned short mlen;        /* Message Byte Count */
  119. };
  120. /* Transmit Message Descriptor Entry */
  121. struct tmd   
  122. {
  123.   union 
  124.   {
  125.     unsigned long  buffer;    /* Address of buffer */
  126.     struct 
  127.     {
  128.       unsigned char unused[3];
  129.       unsigned volatile char status;   /* Status Bits */
  130.     } s;
  131.   } u;
  132.   unsigned short blen;             /* Buffer Length (two's complement) */
  133.   unsigned volatile short status2; /* Error Status Bits */
  134. };
  135. #endif /* End of SK_G16_H */