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

VxWorks

开发平台:

C/C++

  1. /* nicEvbEnd.h - NIC driver header (for EVB403) */
  2. /* Copyright 1984-1999 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01a,20jan99,sut  from netif/if_nicEvb.h
  7. */
  8. #ifndef __INCnicEvbEndh
  9. #define __INCnicEvbEndh
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif
  13. /* driver flags */
  14. typedef UINT8 NIC_DRV_FLAG;
  15. #define NIC_FLAG_POLL 0x01    
  16.     
  17. typedef union nic_regs
  18. {
  19.     u_char reg [16];
  20.     struct
  21.     {
  22. volatile u_char cr;
  23. volatile u_char pstart;
  24. volatile u_char pstop;
  25. volatile u_char bnry;
  26. volatile u_char tpsr;
  27. volatile u_char tbcr0;
  28. volatile u_char tbcr1;
  29. volatile u_char isr;
  30. volatile u_char rsar0;
  31. volatile u_char rsar1;
  32. volatile u_char rbcr0;
  33. volatile u_char rbcr1;
  34. volatile u_char rcr;
  35. volatile u_char tcr;
  36. volatile u_char dcr;
  37. volatile u_char imr;
  38.     } nic_pg0;
  39.     struct
  40.     {
  41. volatile u_char cr;
  42. volatile u_char par0;
  43. volatile u_char par1;
  44. volatile u_char par2;
  45. volatile u_char par3;
  46. volatile u_char par4;
  47. volatile u_char par5;
  48. volatile u_char curr;
  49. volatile u_char mar0;
  50. volatile u_char mar1;
  51. volatile u_char mar2;
  52. volatile u_char mar3;
  53. volatile u_char mar4;
  54. volatile u_char mar5;
  55. volatile u_char mar6;
  56. volatile u_char mar7;
  57.     } nic_pg1;
  58. } NIC_DEVICE;
  59. /* Page 1 offsets IR - Internal Register */
  60. #define NIC_IR_CR 0x00 /* Command register */
  61. #define NIC_IR_PAR0 0x01 /* Phsical Address Register 0 */
  62. #define NIC_IR_PAR1 0x02 /* Phsical Address Register 1 */
  63. #define NIC_IR_PAR2 0x03 /* Phsical Address Register 2 */
  64. #define NIC_IR_PAR3 0x04 /* Phsical Address Register 3 */
  65. #define NIC_IR_PAR4 0x05 /* Phsical Address Register 4 */
  66. #define NIC_IR_PAR5 0x06 /* Phsical Address Register 5 */
  67. #define NIC_IR_CURR 0x07 /* Current Page Register */
  68. #define NIC_IR_MAR0 0x08 /* Multicast Address Register 0 */
  69. #define NIC_IR_MAR1 0x09 /* Multicast Address Register 1 */
  70. #define NIC_IR_MAR2 0x0a /* Multicast Address Register 2 */
  71. #define NIC_IR_MAR3 0x0b /* Multicast Address Register 3 */
  72. #define NIC_IR_MAR4 0x0c /* Multicast Address Register 4 */
  73. #define NIC_IR_MAR5 0x0d /* Multicast Address Register 5 */
  74. #define NIC_IR_MAR6 0x0e /* Multicast Address Register 6 */    
  75. #define NIC_IR_MAR7 0x0f /* Multicast Address Register 7 */
  76.     
  77. #define Cr nic_pg0.cr
  78. #define Pstart nic_pg0.pstart
  79. #define Pstop nic_pg0.pstop
  80. #define Bnry nic_pg0.bnry
  81. #define Tpsr nic_pg0.tpsr
  82. #define Tsr nic_pg0.tpsr
  83. #define Tbcr0 nic_pg0.tbcr0
  84. #define Tbcr1 nic_pg0.tbcr1
  85. #define Isr nic_pg0.isr
  86. #define Rsar0 nic_pg0.rsar0
  87. #define Rsar1 nic_pg0.rsar1
  88. #define Rbcr0 nic_pg0.rbcr0
  89. #define Rbcr1 nic_pg0.rbcr1
  90. #define Rcr nic_pg0.rcr
  91. #define Rsr nic_pg0.rcr
  92. #define Tcr nic_pg0.tcr
  93. #define Dcr nic_pg0.dcr
  94. #define Imr nic_pg0.imr
  95. #define Par0 nic_pg1.par0
  96. #define Par1 nic_pg1.par1
  97. #define Par2 nic_pg1.par2
  98. #define Par3 nic_pg1.par3
  99. #define Par4 nic_pg1.par4
  100. #define Par5 nic_pg1.par5
  101. #define Curr nic_pg1.curr
  102. #define NIC_BASE 0xf4000000
  103. #define NIC_PORT 0xf4000010
  104. #define NIC_ACC 0xf4000030
  105. #define NIC_DMA 0xf4000020
  106. #define NICRAM_BOT 0x8000
  107. #define NICRAM_TOP 0xFFFF
  108. #define NICROM_BOT 0x0000
  109. #define NICROM_TOP 0x001F
  110. #define NICROMSIZ (NICROM_TOP - NICROM_BOT)
  111. #define NICRAMSIZ (NICRAM_TOP - NICRAM_BOT)
  112. #define PBMASK 0xc0 /* XXX */
  113. #define ACC_MASK 0x01 /* XXX */
  114. #define PACKET_SIZE 256
  115. #define PSTART 8
  116. #define PSTOP 32
  117. #define MAXXMT 10
  118. #define BNRY PSTART
  119. #define CURR PSTART+1
  120. #define XMTBUF 0xe100
  121. /*
  122.  * CR Register bits (SAME)
  123.  */
  124. #define STP 0x1
  125. #define STA 0x2
  126. #define TXP 0x4
  127. #define RREAD 0x8
  128. #define RWRITE 0x10
  129. #define SPKT 0x18
  130. #define ABORT 0x20
  131. #define RPAGE0 0x00
  132. #define RPAGE1 0x40
  133. #define RPAGE2 0x80
  134. /*
  135.  * ISR Register (SAME)
  136.  */
  137. #define PRX 0x1
  138. #define PTX 0x2
  139. #define RXE 0x4
  140. #define TXE 0x8
  141. #define OVW 0x10
  142. #define CNT 0x20
  143. #define RDC 0x40
  144. #define RST 0x80
  145. /*
  146.  * IMR(SAme)
  147.  */
  148. #define PRXE 0x1
  149. #define PTXE 0x2
  150. #define RXEE 0x4
  151. #define TXEE 0x8
  152. #define OVWE 0x10
  153. #define CNTE 0x20
  154. #define RDCE 0x40
  155. /*
  156.  * DCR
  157.  */
  158. #define WTS 0x1
  159. #define BOS 0x2
  160. #define LAS 0x4
  161. #define NOTLS 0x8
  162. #define DCR_ARM 0x10
  163. #define FIFO2 0x00
  164. #define FIFO4 0x20
  165. #define FIFO8 0x40
  166. #define FIFO12 0x60
  167. /*
  168.  * TCR
  169.  */
  170. #define CRC  0x1
  171. #define MODE0 0x0
  172. #define MODE1 0x2
  173. #define MODE2 0x4
  174. #define MODE3 0x6
  175. #define ATD 0x8
  176. #define OFST 0x10
  177. /*
  178.  * TSR
  179.  */
  180. #define TPTX 0x1
  181. #define COL 0x4
  182. #define ABT 0x8
  183. #define CRS 0x10
  184. #define FU 0x20
  185. #define CDH 0x40
  186. #define OWC 0x80
  187. /*
  188.  * RCR
  189.  */
  190. #define SEP 0x1
  191. #define AR 0x2
  192. #define AB 0x4
  193. #define AM 0x8
  194. #define PRO 0x10
  195. #define MON 0x20
  196. /*
  197.  * RSR
  198.  */
  199. #define CRCR 0x2
  200. #define FAE 0x4
  201. #define FO 0x8
  202. #define MPA 0x10
  203. #define PHY 0x20
  204. #define DIS 0x40
  205. #define DFR 0x80
  206. #define MINPKTSIZE 64
  207. #ifdef __cplusplus
  208. }
  209. #endif
  210. #endif /* __INCnicEvbEndh */