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

VxWorks

开发平台:

C/C++

  1. /* if_nic.h - NIC driver header file */
  2. /* Copyright 1984-1997 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01k,06dec96,cdp  changed ARM to DCR_ARM to avoid clash with ARM arch.
  7. 01j,22sep92,rrr  added support for c++
  8. 01i,26may92,rrr  the tree shuffle
  9. 01h,26may92,ajm  got rid of HOST_DEC def's (new compiler)
  10.                   updated copyright
  11. 01g,04oct91,rrr  passed through the ansification filter
  12.   -changed copyright notice
  13. 01f,28sep91,ajm  ifdef'd HOST_DEC for compiler problem
  14. 01e,02Aug91,rfs  simplified device struct, removed we32104 items
  15. 01d,05oct90,shl  added copyright notice.
  16.                  made #endif ANSI style.
  17. 01c,18sep89,cwp  added multiple transmit buffer support.
  18. 01b,07sep89,dab  added modification history; fixed header.
  19. 01a,12jan89,hk   written.
  20. */
  21. #ifndef __INCif_nich
  22. #define __INCif_nich
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif
  26. typedef union nic_regs
  27.     {
  28.     u_long reg [16];
  29.     struct
  30. {
  31. volatile u_long cr;
  32. volatile u_long pstart;
  33. volatile u_long pstop;
  34. volatile u_long bnry;
  35. volatile u_long tpsr;
  36. volatile u_long tbcr0;
  37. volatile u_long tbcr1;
  38. volatile u_long isr;
  39. volatile u_long rsar0;
  40. volatile u_long rsar1;
  41. volatile u_long rbcr0;
  42. volatile u_long rbcr1;
  43. volatile u_long rcr;
  44. volatile u_long tcr;
  45. volatile u_long dcr;
  46. volatile u_long imr;
  47. } nic_pg0;
  48.     struct
  49. {
  50. volatile u_long cr;
  51. volatile u_long par0;
  52. volatile u_long par1;
  53. volatile u_long par2;
  54. volatile u_long par3;
  55. volatile u_long par4;
  56. volatile u_long par5;
  57. volatile u_long curr;
  58. volatile u_long mar0;
  59. volatile u_long mar1;
  60. volatile u_long mar2;
  61. volatile u_long mar3;
  62. volatile u_long mar4;
  63. volatile u_long mar5;
  64. volatile u_long mar6;
  65. volatile u_long mar7;
  66. } nic_pg1;
  67.     } NIC_DEVICE;
  68. #define Cr nic_pg0.cr
  69. #define Pstart nic_pg0.pstart
  70. #define Pstop nic_pg0.pstop
  71. #define Bnry nic_pg0.bnry
  72. #define Tpsr nic_pg0.tpsr
  73. #define Tsr nic_pg0.tpsr
  74. #define Tbcr0 nic_pg0.tbcr0
  75. #define Tbcr1 nic_pg0.tbcr1
  76. #define Isr nic_pg0.isr
  77. #define Rsar0 nic_pg0.rsar0
  78. #define Rsar1 nic_pg0.rsar1
  79. #define Rbcr0 nic_pg0.rbcr0
  80. #define Rbcr1 nic_pg0.rbcr1
  81. #define Rcr nic_pg0.rcr
  82. #define Rsr nic_pg0.rcr
  83. #define Tcr nic_pg0.tcr
  84. #define Dcr nic_pg0.dcr
  85. #define Imr nic_pg0.imr
  86. #define Par0 nic_pg1.par0
  87. #define Par1 nic_pg1.par1
  88. #define Par2 nic_pg1.par2
  89. #define Par3 nic_pg1.par3
  90. #define Par4 nic_pg1.par4
  91. #define Par5 nic_pg1.par5
  92. #define Curr nic_pg1.curr
  93. #define IO_BASE 0x00800000
  94. #define DMA_BASE (IO_BASE + 0x200)
  95. #define NIC_BASE (IO_BASE + 0x103)
  96. #define NICRAM_BOT 0x8000
  97. #define NICRAM_TOP 0xFFFF
  98. #define NICROM_BOT 0x0000
  99. #define NICROM_TOP 0x001F
  100. #define NICROMSIZ (NICROM_TOP - NICROM_BOT)
  101. #define NICRAMSIZ (NICRAM_TOP - NICRAM_BOT)
  102. #define PSTART 0x80
  103. #define PSTOP 0xe0
  104. #define XMTBUF 0xe100 /* start of Tx area */
  105. #define MAXXMT 4
  106. #define BNRY PSTART
  107. #define CURR PSTART+1
  108. #define  ENETB        (IO_BASE + 0x000100)        /* Ethernet base chan 2 */
  109. #define  BURST_ON     *((char *) ENETB + 0x40)
  110. #define  BURST_OFF    *((char *) ENETB + 0x50)
  111. #define  NIC_BUF_PORT ((char *)0x800163)
  112. #define  RESET_ON     *((char *) ENETB + 0x70)
  113. #define  RESET_OFF    *((char *) ENETB + 0x74)
  114. #define  LED_ON       *((char *) ENETB + 0x78)
  115. #define  LED_OFF      *((char *) ENETB + 0x7C)
  116. /*
  117.  * CR Register bits
  118.  */
  119. #define STP 0x1
  120. #define STA 0x2
  121. #define TXP 0x4
  122. #define RREAD 0x8
  123. #define RWRITE 0x10
  124. #define SPKT 0x18
  125. #define ABORT 0x20
  126. #define RPAGE0 0x00
  127. #define RPAGE1 0x40
  128. #define RPAGE2 0x80
  129. /*
  130.  * ISR Register
  131.  */
  132. #define PRX 0x1
  133. #define PTX 0x2
  134. #define RXE 0x4
  135. #define TXE 0x8
  136. #define OVW 0x10
  137. #define CNT 0x20
  138. #define RDC 0x40
  139. #define RST 0x80
  140. /*
  141.  * IMR
  142.  */
  143. #define PRXE 0x1
  144. #define PTXE 0x2
  145. #define RXEE 0x4
  146. #define TXEE 0x8
  147. #define OVWE 0x10
  148. #define CNTE 0x20
  149. #define RDCE 0x40
  150. /*
  151.  * DCR
  152.  */
  153. #define WTS 0x1
  154. #define BOS 0x2
  155. #define LAS 0x4
  156. #define NOTLS 0x8
  157. #define DCR_ARM 0x10
  158. #define FIFO2 0x00
  159. #define FIFO4 0x20
  160. #define FIFO8 0x40
  161. #define FIFO12 0x60
  162. /*
  163.  * TCR
  164.  */
  165. #define CRC  0x1
  166. #define MODE0 0x0
  167. #define MODE1 0x2
  168. #define MODE2 0x4
  169. #define MODE3 0x6
  170. #define ATD 0x8
  171. #define OFST 0x10
  172. /*
  173.  * TSR
  174.  */
  175. #define TPTX 0x1
  176. #define COL 0x4
  177. #define ABT 0x8
  178. #define CRS 0x10
  179. #define FU 0x20
  180. #define CDH 0x40
  181. #define OWC 0x80
  182. /*
  183.  * RCR
  184.  */
  185. #define SEP 0x1
  186. #define AR 0x2
  187. #define AB 0x4
  188. #define AM 0x8
  189. #define PRO 0x10
  190. #define MON 0x20
  191. /*
  192.  * RSR
  193.  */
  194. #define CRCR 0x2
  195. #define FAE 0x4
  196. #define FO 0x8
  197. #define MPA 0x10
  198. #define PHY 0x20
  199. #define DIS 0x40
  200. #define DFR 0x80
  201. #define MINPKTSIZE 64
  202. #ifdef __cplusplus
  203. }
  204. #endif
  205. #endif /* __INCif_nich */