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

VxWorks

开发平台:

C/C++

  1. /* if_nicEvb.h - NIC driver header (for EVB403) */
  2. /* Copyright 1984-2001 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 02d,09nov01,dat  Adding obsolescence warnings to outdated drivers
  7. 02c,06dec96,cdp  changed ARM to DCR_ARM to avoid clash with ARM arch.
  8. 02b,29jun95,caf  changed name to "nicEvb".
  9. 02a,16jun95,amp  modified if_nic.h for EVB403.
  10. 01j,22sep92,rrr  added support for c++
  11. 01i,26may92,rrr  the tree shuffle
  12. 01h,26may92,ajm  got rid of HOST_DEC def's (new compiler)
  13.                   updated copyright
  14. 01g,04oct91,rrr  passed through the ansification filter
  15.   -changed copyright notice
  16. 01f,28sep91,ajm  ifdef'd HOST_DEC for compiler problem
  17. 01e,02Aug91,rfs  simplified device struct, removed we32104 items
  18. 01d,05oct90,shl  added copyright notice.
  19.                  made #endif ANSI style.
  20. 01c,18sep89,cwp  added multiple transmit buffer support.
  21. 01b,07sep89,dab  added modification history; fixed header.
  22. 01a,12jan89,hk   written.
  23. */
  24. #ifndef __INCif_nich
  25. #define __INCif_nich
  26. #warning "if_nicEvb driver is obsolete, please use nicEvbEnd driver"
  27. #ifdef __cplusplus
  28. extern "C" {
  29. #endif
  30. typedef union nic_regs
  31. {
  32.     u_char reg [16];
  33.     struct
  34.     {
  35. volatile u_char cr;
  36. volatile u_char pstart;
  37. volatile u_char pstop;
  38. volatile u_char bnry;
  39. volatile u_char tpsr;
  40. volatile u_char tbcr0;
  41. volatile u_char tbcr1;
  42. volatile u_char isr;
  43. volatile u_char rsar0;
  44. volatile u_char rsar1;
  45. volatile u_char rbcr0;
  46. volatile u_char rbcr1;
  47. volatile u_char rcr;
  48. volatile u_char tcr;
  49. volatile u_char dcr;
  50. volatile u_char imr;
  51.     } nic_pg0;
  52.     struct
  53.     {
  54. volatile u_char cr;
  55. volatile u_char par0;
  56. volatile u_char par1;
  57. volatile u_char par2;
  58. volatile u_char par3;
  59. volatile u_char par4;
  60. volatile u_char par5;
  61. volatile u_char curr;
  62. volatile u_char mar0;
  63. volatile u_char mar1;
  64. volatile u_char mar2;
  65. volatile u_char mar3;
  66. volatile u_char mar4;
  67. volatile u_char mar5;
  68. volatile u_char mar6;
  69. volatile u_char mar7;
  70.     } nic_pg1;
  71. } NIC_DEVICE;
  72. #define Cr nic_pg0.cr
  73. #define Pstart nic_pg0.pstart
  74. #define Pstop nic_pg0.pstop
  75. #define Bnry nic_pg0.bnry
  76. #define Tpsr nic_pg0.tpsr
  77. #define Tsr nic_pg0.tpsr
  78. #define Tbcr0 nic_pg0.tbcr0
  79. #define Tbcr1 nic_pg0.tbcr1
  80. #define Isr nic_pg0.isr
  81. #define Rsar0 nic_pg0.rsar0
  82. #define Rsar1 nic_pg0.rsar1
  83. #define Rbcr0 nic_pg0.rbcr0
  84. #define Rbcr1 nic_pg0.rbcr1
  85. #define Rcr nic_pg0.rcr
  86. #define Rsr nic_pg0.rcr
  87. #define Tcr nic_pg0.tcr
  88. #define Dcr nic_pg0.dcr
  89. #define Imr nic_pg0.imr
  90. #define Par0 nic_pg1.par0
  91. #define Par1 nic_pg1.par1
  92. #define Par2 nic_pg1.par2
  93. #define Par3 nic_pg1.par3
  94. #define Par4 nic_pg1.par4
  95. #define Par5 nic_pg1.par5
  96. #define Curr nic_pg1.curr
  97. #define NIC_BASE 0xf4000000
  98. #define NIC_PORT 0xf4000010
  99. #define NIC_ACC 0xf4000030
  100. #define NIC_DMA 0xf4000020
  101. #define NICRAM_BOT 0x8000
  102. #define NICRAM_TOP 0xFFFF
  103. #define NICROM_BOT 0x0000
  104. #define NICROM_TOP 0x001F
  105. #define NICROMSIZ (NICROM_TOP - NICROM_BOT)
  106. #define NICRAMSIZ (NICRAM_TOP - NICRAM_BOT)
  107. #define PBMASK 0xc0 /* XXX */
  108. #define ACC_MASK 0x01 /* XXX */
  109. #define PACKET_SIZE 256
  110. #define PSTART 8
  111. #define PSTOP 32
  112. #define MAXXMT 10
  113. #define BNRY PSTART
  114. #define CURR PSTART+1
  115. #define XMTBUF 0xe100
  116. /*
  117.  * CR Register bits (SAME)
  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 (SAME)
  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(SAme)
  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 */