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

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.     Written 1994 by David C. Davies.
  3.     Copyright 1994 David C. Davies. This software may be used and distributed
  4.     according to the terms of the GNU General Public License, incorporated herein by
  5.     reference.
  6. */
  7. /*
  8. ** I/O addresses. Note that the 2k buffer option is not supported in
  9. ** this driver.
  10. */
  11. #define DEPCA_NICSR ioaddr+0x00   /* Network interface CSR */
  12. #define DEPCA_RBI   ioaddr+0x02   /* RAM buffer index (2k buffer mode) */
  13. #define DEPCA_DATA  ioaddr+0x04   /* LANCE registers' data port */
  14. #define DEPCA_ADDR  ioaddr+0x06   /* LANCE registers' address port */
  15. #define DEPCA_HBASE ioaddr+0x08   /* EISA high memory base address reg. */
  16. #define DEPCA_PROM  ioaddr+0x0c   /* Ethernet address ROM data port */
  17. #define DEPCA_CNFG  ioaddr+0x0c   /* EISA Configuration port */
  18. #define DEPCA_RBSA  ioaddr+0x0e   /* RAM buffer starting address (2k buff.) */
  19. /*
  20. ** These are LANCE registers addressable through DEPCA_ADDR 
  21. */
  22. #define CSR0       0
  23. #define CSR1       1
  24. #define CSR2       2
  25. #define CSR3       3
  26. /* 
  27. ** NETWORK INTERFACE CSR (NI_CSR) bit definitions 
  28. */
  29.  
  30. #define TO        0x0100 /* Time Out for remote boot */
  31. #define SHE       0x0080  /* SHadow memory Enable */
  32. #define BS        0x0040  /* Bank Select */
  33. #define BUF       0x0020 /* BUFfer size (1->32k, 0->64k) */
  34. #define RBE       0x0010 /* Remote Boot Enable (1->net boot) */
  35. #define AAC       0x0008  /* Address ROM Address Counter (1->enable) */
  36. #define _128KB       0x0008  /* 128kB Network RAM (1->enable) */
  37. #define IM        0x0004 /* Interrupt Mask (1->mask) */
  38. #define IEN       0x0002 /* Interrupt tristate ENable (1->enable) */
  39. #define LED       0x0001 /* LED control */
  40. /* 
  41. ** Control and Status Register 0 (CSR0) bit definitions 
  42. */
  43. #define ERR      0x8000  /* Error summary */
  44. #define BABL     0x4000  /* Babble transmitter timeout error  */
  45. #define CERR     0x2000  /* Collision Error */
  46. #define MISS     0x1000  /* Missed packet */
  47. #define MERR     0x0800  /* Memory Error */
  48. #define RINT     0x0400  /* Receiver Interrupt */
  49. #define TINT     0x0200  /* Transmit Interrupt */
  50. #define IDON     0x0100  /* Initialization Done */
  51. #define INTR     0x0080  /* Interrupt Flag */
  52. #define INEA     0x0040  /* Interrupt Enable */
  53. #define RXON     0x0020  /* Receiver on */
  54. #define TXON     0x0010  /* Transmitter on */
  55. #define TDMD     0x0008  /* Transmit Demand */
  56. #define STOP     0x0004  /* Stop */
  57. #define STRT     0x0002  /* Start */
  58. #define INIT     0x0001  /* Initialize */
  59. #define INTM            0xff00  /* Interrupt Mask */
  60. #define INTE            0xfff0  /* Interrupt Enable */
  61. /*
  62. ** CONTROL AND STATUS REGISTER 3 (CSR3)
  63. */
  64. #define BSWP     0x0004 /* Byte SWaP */
  65. #define ACON     0x0002 /* ALE control */
  66. #define BCON     0x0001 /* Byte CONtrol */
  67. /*
  68. ** Initialization Block Mode Register 
  69. */
  70. #define PROM        0x8000  /* Promiscuous Mode */
  71. #define EMBA        0x0080 /* Enable Modified Back-off Algorithm */
  72. #define INTL        0x0040  /* Internal Loopback */
  73. #define DRTY        0x0020  /* Disable Retry */
  74. #define COLL        0x0010  /* Force Collision */
  75. #define DTCR        0x0008  /* Disable Transmit CRC */
  76. #define LOOP        0x0004  /* Loopback */
  77. #define DTX         0x0002  /* Disable the Transmitter */
  78. #define DRX         0x0001  /* Disable the Receiver */
  79. /*
  80. ** Receive Message Descriptor 1 (RMD1) bit definitions. 
  81. */
  82. #define R_OWN       0x80000000  /* Owner bit 0 = host, 1 = lance */
  83. #define R_ERR      0x4000  /* Error Summary */
  84. #define R_FRAM     0x2000  /* Framing Error */
  85. #define R_OFLO     0x1000  /* Overflow Error */
  86. #define R_CRC      0x0800  /* CRC Error */
  87. #define R_BUFF     0x0400  /* Buffer Error */
  88. #define R_STP      0x0200  /* Start of Packet */
  89. #define R_ENP      0x0100  /* End of Packet */
  90. /*
  91. ** Transmit Message Descriptor 1 (TMD1) bit definitions. 
  92. */
  93. #define T_OWN       0x80000000  /* Owner bit 0 = host, 1 = lance */
  94. #define T_ERR      0x4000  /* Error Summary */
  95. #define T_ADD_FCS  0x2000  /* More the 1 retry needed to Xmit */
  96. #define T_MORE     0x1000 /* >1 retry to transmit packet */
  97. #define T_ONE      0x0800  /* 1 try needed to transmit the packet */
  98. #define T_DEF      0x0400  /* Deferred */
  99. #define T_STP       0x02000000  /* Start of Packet */
  100. #define T_ENP       0x01000000 /* End of Packet */
  101. #define T_FLAGS     0xff000000  /* TX Flags Field */
  102. /*
  103. ** Transmit Message Descriptor 3 (TMD3) bit definitions.
  104. */
  105. #define TMD3_BUFF    0x8000 /* BUFFer error */
  106. #define TMD3_UFLO    0x4000 /* UnderFLOw error */
  107. #define TMD3_RES     0x2000 /* REServed */
  108. #define TMD3_LCOL    0x1000 /* Late COLlision */
  109. #define TMD3_LCAR    0x0800 /* Loss of CARrier */
  110. #define TMD3_RTRY    0x0400 /* ReTRY error */
  111. /* 
  112. ** EISA configuration Register (CNFG) bit definitions 
  113. */
  114.  
  115. #define TIMEOUT        0x0100 /* 0:2.5 mins, 1: 30 secs */
  116. #define REMOTE       0x0080  /* Remote Boot Enable -> 1 */
  117. #define IRQ11        0x0040  /* Enable -> 1 */
  118. #define IRQ10     0x0020 /* Enable -> 1 */
  119. #define IRQ9     0x0010 /* Enable -> 1 */
  120. #define IRQ5       0x0008  /* Enable -> 1 */
  121. #define BUFF      0x0004 /* 0: 64kB or 128kB, 1: 32kB */
  122. #define PADR16    0x0002 /* RAM on 64kB boundary */
  123. #define PADR17     0x0001 /* RAM on 128kB boundary */
  124. /*
  125. ** Miscellaneous
  126. */
  127. #define HASH_TABLE_LEN   64           /* Bits */
  128. #define HASH_BITS        0x003f       /* 6 LS bits */
  129. #define MASK_INTERRUPTS   1
  130. #define UNMASK_INTERRUPTS 0
  131. #define EISA_EN         0x0001        /* Enable EISA bus buffers */
  132. #define EISA_ID         iobase+0x0080 /* ID long word for EISA card */
  133. #define EISA_CTRL       iobase+0x0084 /* Control word for EISA card */
  134. /*
  135. ** Include the IOCTL stuff
  136. */
  137. #include <linux/sockios.h>
  138. #define DEPCAIOCTL SIOCDEVPRIVATE
  139. struct depca_ioctl {
  140. unsigned short cmd;                /* Command to run */
  141. unsigned short len;                /* Length of the data buffer */
  142. unsigned char  *data;              /* Pointer to the data buffer */
  143. };
  144. /* 
  145. ** Recognised commands for the driver 
  146. */
  147. #define DEPCA_GET_HWADDR 0x01 /* Get the hardware address */
  148. #define DEPCA_SET_HWADDR 0x02 /* Get the hardware address */
  149. #define DEPCA_SET_PROM   0x03 /* Set Promiscuous Mode */
  150. #define DEPCA_CLR_PROM   0x04 /* Clear Promiscuous Mode */
  151. #define DEPCA_SAY_BOO         0x05 /* Say "Boo!" to the kernel log file */
  152. #define DEPCA_GET_MCA    0x06 /* Get a multicast address */
  153. #define DEPCA_SET_MCA    0x07 /* Set a multicast address */
  154. #define DEPCA_CLR_MCA     0x08 /* Clear a multicast address */
  155. #define DEPCA_MCA_EN     0x09 /* Enable a multicast address group */
  156. #define DEPCA_GET_STATS   0x0a /* Get the driver statistics */
  157. #define DEPCA_CLR_STATS  0x0b /* Zero out the driver statistics */
  158. #define DEPCA_GET_REG    0x0c /* Get the Register contents */
  159. #define DEPCA_SET_REG    0x0d /* Set the Register contents */
  160. #define DEPCA_DUMP              0x0f /* Dump the DEPCA Status */