ne2000End.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:5k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* ne2000End.h - Novell/Eagle 2000 network interface header */
  2. /* Copyright 1984-2000 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01c,11jun00,ham  removed reference to etherLib.
  7. 01b,28may00,dat  added more macros, gen clean up
  8. 01a,16mar98,mem  written, based on drv/netif/if_ene.h
  9. */
  10. #ifndef __INCne2000Endh
  11. #define __INCne2000Endh
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15. #include "netinet/if_ether.h"
  16. #define EADDR_LEN 6
  17. #define NE2000_BUFSIZ (ETHERMTU + SIZEOF_ETHERHEADER + EADDR_LEN)
  18. /* NE 2000 on-board memory page addresses */
  19. #define NE2000_CONFIG_PAGE      0x00    /* where the Ethernet address is */
  20. #define NE2000_EADDR_LOC        0x00    /* location within config. page */
  21. #define NE2000_TSTART           0x40
  22. #define NE2000_PSTART           0x46
  23. #define NE2000_PSTOP            0x80
  24. #define ENE_PAGESIZE            256
  25. typedef struct
  26.     {
  27.     UCHAR rstat;
  28.     UCHAR next;
  29.     UCHAR lowByteCnt;
  30.     UCHAR uppByteCnt;
  31.     } NE2000_HEADER;
  32. /* NS 8390 (Ethernet LAN Controller) */
  33. /* page-0, read */
  34. #define ENE_CMD 0x00 /* command */
  35. #define ENE_TRINCRL 0x01 /* TRDMA incrementer */
  36. #define ENE_TRINCRH 0x02 /* TRDMA incrementer */
  37. #define ENE_BOUND 0x03 /* boundary page */
  38. #define ENE_TSTAT 0x04 /* transmit status */
  39. #define ENE_COLCNT 0x05 /* collision error */
  40. #define ENE_INTSTAT 0x07 /* interrupt status */
  41. #define ENE_RSTAT 0x0c /* receive status */
  42. #define ENE_ALICNT 0x0d /* alignment error */
  43. #define ENE_CRCCNT 0x0e /* crc error */
  44. #define ENE_MPCNT 0x0f /* missed packet */
  45. /* page-0, write */
  46. #define ENE_RSTART 0x01 /* receive start */
  47. #define ENE_RSTOP 0x02 /* receive stop */
  48. #define ENE_TSTART 0x04 /* transmit start */
  49. #define ENE_TCNTL 0x05 /* transmit counter */
  50. #define ENE_TCNTH 0x06 /* transmit counter */
  51. #define ENE_RSAR0 0x08 /* remote address */
  52. #define ENE_RSAR1 0x09 /* remote address */
  53. #define ENE_RBCR0 0x0a /* remote byte count */
  54. #define ENE_RBCR1 0x0b /* remote byte count */
  55. #define ENE_RCON 0x0c /* receive config */
  56. #define ENE_TCON 0x0d /* transmit config */
  57. #define ENE_DCON 0x0e /* data config */
  58. #define ENE_INTMASK 0x0f /* interrupt mask */
  59. /* page-1, read and write */
  60. #define ENE_STA0 0x01 /* station address */
  61. #define ENE_STA1 0x02 /* station address */
  62. #define ENE_STA2 0x03 /* station address */
  63. #define ENE_STA3 0x04 /* station address */
  64. #define ENE_STA4 0x05 /* station address */
  65. #define ENE_STA5 0x06 /* station address */
  66. #define ENE_CURR 0x07 /* current page */
  67. #define ENE_MAR0 0x08 /* multicast address */
  68. #define ENE_MAR1 0x09 /* multicast address */
  69. #define ENE_MAR2 0x0a /* multicast address */
  70. #define ENE_MAR3 0x0b /* multicast address */
  71. #define ENE_MAR4 0x0c /* multicast address */
  72. #define ENE_MAR5 0x0d /* multicast address */
  73. #define ENE_MAR6 0x0e /* multicast address */
  74. #define ENE_MAR7 0x0f /* multicast address */
  75. /* page-2, read and write */
  76. #define ENE_NEXT 0x05 /* next page */
  77. #define ENE_BLOCK 0x06 /* block address */
  78. #define ENE_ENH 0x07 /* enable features */
  79. /* NE2000 board registers */
  80. #define ENE_DATA 0x10 /* data window */
  81. #define ENE_RESET 0x1f /* read here to reset */
  82. /* COMMAND: Command Register */
  83. #define CMD_PAGE2 0x80
  84. #define CMD_PAGE1 0x40
  85. #define CMD_PAGE0 0x00
  86. #define CMD_NODMA 0x20
  87. #define CMD_RWRITE 0x10
  88. #define CMD_RREAD 0x08
  89. #define CMD_TXP 0x04
  90. #define CMD_START 0x02
  91. #define CMD_STOP 0x01
  92. /* RCON: Receive Configuration Register */
  93. #define RCON_MON 0x20
  94. #define RCON_PROM 0x10
  95. #define RCON_GROUP 0x08
  96. #define RCON_BROAD 0x04
  97. #define RCON_RUNTS 0x02
  98. #define RCON_SEP 0x01
  99. /* TCON: Transmit Configuration Register */
  100. #define TCON_LB1 0x04
  101. #define TCON_LB0 0x02
  102. #define TCON_CRCN 0x01
  103. #define TCON_NORMAL 0x00 /* normal operation mode */
  104. /* DCON: Data Configuration Register */
  105. #define DCON_BSIZE1 0x40
  106. #define DCON_BSIZE0 0x20
  107. #define DCON_AUTO_INIT 0x10
  108. #define DCON_LOOPBK_OFF 0x08
  109. #define DCON_LOOPBK_ON 0x00
  110. #define DCON_DMA_32 0x04
  111. #define DCON_DMA_16 0x00
  112. #define DCON_BIG_ENDIAN 0x02
  113. #define DCON_LITTLE_ENDIAN 0x00
  114. #define DCON_BUS16 0x01
  115. #define DCON_BUS_8 0x00
  116. /* INTMASK: Interrupt Mask Register */
  117. #define IM_XDCE 0x40
  118. #define IM_CNTE 0x20
  119. #define IM_OVWE 0x10
  120. #define IM_TXEE 0x08
  121. #define IM_RXEE 0x04
  122. #define IM_PTXE 0x02
  123. #define IM_PRXE 0x01
  124. /* INTSTAT: Interrupt Status Register */
  125. #define ISTAT_RST 0x80
  126. #define ISTAT_RDC 0x40 /* remote DMA complete */
  127. #define ISTAT_CNT 0x20
  128. #define ISTAT_OVW 0x10
  129. #define ISTAT_TXE 0x08
  130. #define ISTAT_RXE 0x04
  131. #define ISTAT_PTX 0x02
  132. #define ISTAT_PRX 0x01
  133. /* TSTAT: Transmit Status Register */
  134. #define TSTAT_OWC 0x80
  135. #define TSTAT_CDH 0x40
  136. #define TSTAT_UNDER 0x20
  137. #define TSTAT_CRL 0x10
  138. #define TSTAT_ABORT 0x08
  139. #define TSTAT_TWC 0x04
  140. #define TSTAT_NDT 0x02
  141. #define TSTAT_PTX 0x01
  142. /* RSTAT: Receive Status Register */
  143. #define RSTAT_DFR 0x80
  144. #define RSTAT_DIS 0x40
  145. #define RSTAT_GROUP 0x20
  146. #define RSTAT_MPA 0x10
  147. #define RSTAT_OVER 0x08
  148. #define RSTAT_FAE 0x04
  149. #define RSTAT_CRC 0x02
  150. #define RSTAT_PRX 0x01
  151. /* ENH: Enable Features */
  152. #define ENH_WAIT1 0x80
  153. #define ENH_WAIT0 0x40
  154. #define ENH_SLOT1 0x10
  155. #define ENH_SLOT0 0x08
  156. /* flags - software synchronize bit definitions */
  157. #define TXING 0x01
  158. #define RXING 0x02
  159. #define TXREQ 0x04
  160. #ifdef __cplusplus
  161. }
  162. #endif
  163. #endif  /* __INCne2000Endh */