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

VxWorks

开发平台:

C/C++

  1. /* if_ultra.h - SMC Elite Ultra network interface header */ 
  2. /* Copyright 1984-2001 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01c,09nov01,dat  Adding obsolescence warnings to outdated drivers
  7. 01b,30sep94,hdn  changed TSTART to TSTART[01] for two TX buffer.
  8. 01a,30oct93,hdn  written. 
  9. */
  10. #ifndef __INCif_ultrah
  11. #define __INCif_ultrah
  12. #warning "if_ultra driver is obsolete, please use ultraEnd driver"
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. #define ULTRA_RAMSIZE 0x4000 /* 16 Kbytes */
  17. #define ULTRA_TSTART0 0x00
  18. #define ULTRA_TSTART1 0x08
  19. #define ULTRA_PSTART 0x10
  20. #define ULTRA_PSTOP 0x40
  21. #define ULTRA_MIN_SIZE ETHERMIN /* 46 */
  22. #define ULTRA_MAX_SIZE 4096 /* 802.3 10base5 */
  23. typedef struct 
  24.     {
  25.     UCHAR rstat;
  26.     UCHAR next;
  27.     UCHAR lowByteCnt;
  28.     UCHAR uppByteCnt;
  29.     } ULTRA_HEADER;
  30. typedef struct 
  31.     {
  32. #define collisions stat[0]
  33. #define crcs stat[1]
  34. #define aligns stat[2]
  35. #define missed stat[3]
  36. #define overruns stat[4]
  37. #define disabled stat[5]
  38. #define deferring stat[6]
  39. #define underruns stat[7]
  40. #define aborts stat[8]
  41. #define outofwindow stat[9]
  42. #define heartbeats stat[10]
  43. #define badPacket stat[11]
  44. #define shortPacket stat[12]
  45. #define longPacket stat[13]
  46. #define tnoerror stat[14]
  47. #define rnoerror stat[15]
  48. #define terror stat[16]
  49. #define rerror stat[17]
  50. #define overwrite stat[18]
  51. #define wrapped stat[19]
  52. #define interrupts stat[20]
  53. #define reset stat[21]
  54. #define strayint stat[22]
  55.     UINT stat[23];
  56.     } ULTRA_STAT;
  57. typedef struct 
  58.     {
  59.     struct arpcom es_ac;
  60. #define es_if es_ac.ac_if
  61. #define es_enaddr es_ac.ac_enaddr
  62.     USHORT ioAddr;
  63.     UINT memAddr;
  64.     UINT memSize;
  65.     int intLevel;
  66.     int intVec;
  67.     int config;
  68.     UINT transmitPage[2];
  69.     UINT transmitCnt;
  70.     ULTRA_STAT stat;
  71.     UCHAR next;
  72.     UCHAR uppByteCnt;
  73.     UCHAR current;
  74.     UCHAR istat;
  75.     UCHAR tstat;
  76.     UCHAR rstat;
  77.     UCHAR receiveBuf[ULTRA_MAX_SIZE];
  78.     int flags;
  79.     } ULTRA_SOFTC;
  80. typedef struct
  81.     {
  82.     char irq;
  83.     char reg;
  84.     } IRQ_TABLE;
  85. #define CAST
  86. /* SMC Elite Ultra */ 
  87. #define ULTRA_REG_ADDR_INTERVAL 1
  88. #define ULTRA_ADRS(base,reg)   (CAST (base+(reg*ULTRA_REG_ADDR_INTERVAL)))
  89. #define CTRL_CON(base) ULTRA_ADRS(base,0x00) /* Control */
  90. #define CTRL_EEROM(base) ULTRA_ADRS(base,0x01) /* EEROM */
  91. #define CTRL_HARD(base) ULTRA_ADRS(base,0x04) /* Hardware */
  92. #define CTRL_BIOS(base) ULTRA_ADRS(base,0x05) /* BIOS page */
  93. #define CTRL_INT(base) ULTRA_ADRS(base,0x06) /* Interrupt control */
  94. #define CTRL_REV(base) ULTRA_ADRS(base,0x07) /* Revision */
  95. #define CTRL_LAN0(base) ULTRA_ADRS(base,0x08) /* SWH=0 LAN address */
  96. #define CTRL_LAN1(base) ULTRA_ADRS(base,0x09) /* SWH=0 LAN address */
  97. #define CTRL_LAN2(base) ULTRA_ADRS(base,0x0a) /* SWH=0 LAN address */
  98. #define CTRL_LAN3(base) ULTRA_ADRS(base,0x0b) /* SWH=0 LAN address */
  99. #define CTRL_LAN4(base) ULTRA_ADRS(base,0x0c) /* SWH=0 LAN address */
  100. #define CTRL_LAN5(base) ULTRA_ADRS(base,0x0d) /* SWH=0 LAN address */
  101. #define CTRL_BDID(base) ULTRA_ADRS(base,0x0e) /* SWH=0 Board ID */
  102. #define CTRL_CKSM(base) ULTRA_ADRS(base,0x0f) /* SWH=0 Checksum */
  103. #define CTRL_PIDL(base) ULTRA_ADRS(base,0x08) /* SWH=1 POS ID */
  104. #define CTRL_PIDH(base) ULTRA_ADRS(base,0x09) /* SWH=1 POS ID */
  105. #define CTRL_IOADDR(base) ULTRA_ADRS(base,0x0a) /* SWH=1 IO address */
  106. #define CTRL_MEMADDR(base) ULTRA_ADRS(base,0x0b) /* SWH=1 MEM address */
  107. #define CTRL_BIO(base) ULTRA_ADRS(base,0x0c) /* SWH=1 BIOS base */
  108. #define CTRL_GCON(base) ULTRA_ADRS(base,0x0d) /* SWH=1 Gen control */
  109. /* page-0, read */
  110. #define LAN_CMD(base) ULTRA_ADRS(base,0x10) /* command */
  111. #define LAN_BOUND(base) ULTRA_ADRS(base,0x13) /* boundary page */
  112. #define LAN_TSTAT(base) ULTRA_ADRS(base,0x14) /* transmit status */
  113. #define LAN_COLCNT(base) ULTRA_ADRS(base,0x15) /* collision error */
  114. #define LAN_INTSTAT(base) ULTRA_ADRS(base,0x17) /* interrupt status */
  115. #define LAN_RSTAT(base) ULTRA_ADRS(base,0x1c) /* receive status */
  116. #define LAN_ALICNT(base) ULTRA_ADRS(base,0x1d) /* alignment error */
  117. #define LAN_CRCCNT(base) ULTRA_ADRS(base,0x1e) /* crc error */
  118. #define LAN_MPCNT(base) ULTRA_ADRS(base,0x1f) /* missed packet */
  119. /* page-0, write */
  120. #define LAN_RSTART(base) ULTRA_ADRS(base,0x11) /* receive start */
  121. #define LAN_RSTOP(base) ULTRA_ADRS(base,0x12) /* receive stop */
  122. #define LAN_TSTART(base) ULTRA_ADRS(base,0x14) /* transmit start */
  123. #define LAN_TCNTL(base) ULTRA_ADRS(base,0x15) /* transmit counter */
  124. #define LAN_TCNTH(base) ULTRA_ADRS(base,0x16) /* transmit counter */
  125. #define LAN_RCON(base) ULTRA_ADRS(base,0x1c) /* receive config */
  126. #define LAN_TCON(base) ULTRA_ADRS(base,0x1d) /* transmit config */
  127. #define LAN_DCON(base) ULTRA_ADRS(base,0x1e) /* data config */
  128. #define LAN_INTMASK(base) ULTRA_ADRS(base,0x1f) /* interrupt mask */
  129. /* page-1, read and write */
  130. #define LAN_STA0(base) ULTRA_ADRS(base,0x11) /* station address */
  131. #define LAN_STA1(base) ULTRA_ADRS(base,0x12) /* station address */
  132. #define LAN_STA2(base) ULTRA_ADRS(base,0x13) /* station address */
  133. #define LAN_STA3(base) ULTRA_ADRS(base,0x14) /* station address */
  134. #define LAN_STA4(base) ULTRA_ADRS(base,0x15) /* station address */
  135. #define LAN_STA5(base) ULTRA_ADRS(base,0x16) /* station address */
  136. #define LAN_CURR(base) ULTRA_ADRS(base,0x17) /* current page */
  137. #define LAN_MAR0(base) ULTRA_ADRS(base,0x18) /* multicast address */
  138. #define LAN_MAR1(base) ULTRA_ADRS(base,0x19) /* multicast address */
  139. #define LAN_MAR2(base) ULTRA_ADRS(base,0x1a) /* multicast address */
  140. #define LAN_MAR3(base) ULTRA_ADRS(base,0x1b) /* multicast address */
  141. #define LAN_MAR4(base) ULTRA_ADRS(base,0x1c) /* multicast address */
  142. #define LAN_MAR5(base) ULTRA_ADRS(base,0x1d) /* multicast address */
  143. #define LAN_MAR6(base) ULTRA_ADRS(base,0x1e) /* multicast address */
  144. #define LAN_MAR7(base) ULTRA_ADRS(base,0x1f) /* multicast address */
  145. /* page-2, read and write */
  146. #define LAN_NEXT(base) ULTRA_ADRS(base,0x15) /* next page */
  147. #define LAN_ENH(base) ULTRA_ADRS(base,0x17) /* enable features */
  148. /* Control Register */
  149. #define CON_RESET 0x80
  150. #define CON_MENABLE 0x40
  151. /* Hardware Support Register */
  152. #define HARD_SWH 0x80
  153. /* BIOS Page Register */
  154. #define BIOS_M16EN 0x80
  155. /* Interrupt Control Register */
  156. #define INT_ENABLE 0x01
  157. /* Command Register */
  158. #define CMD_PS1 0x80
  159. #define CMD_PS0 0x40
  160. #define CMD_TXP 0x04
  161. #define CMD_STA 0x02
  162. #define CMD_STP 0x01
  163. /* Receive Configuration Register */
  164. #define RCON_MON 0x20
  165. #define RCON_PROM 0x10
  166. #define RCON_GROUP 0x08
  167. #define RCON_BROAD 0x04
  168. #define RCON_RUNTS 0x02
  169. #define RCON_SEP 0x01
  170. /* Transmit Configuration Register */
  171. #define TCON_LB1 0x04
  172. #define TCON_LB0 0x02
  173. #define TCON_CRCN 0x01
  174. /* Data Configuration Register */
  175. #define DCON_BSIZE1 0x40
  176. #define DCON_BSIZE0 0x20
  177. #define DCON_BUS16 0x01
  178. /* Interrupt Mask Register */
  179. #define IM_CNTE 0x20
  180. #define IM_OVWE 0x10
  181. #define IM_TXEE 0x08
  182. #define IM_RXEE 0x04
  183. #define IM_PTXE 0x02
  184. #define IM_PRXE 0x01
  185. /* Interrupt Status Register */
  186. #define ISTAT_RST 0x80
  187. #define ISTAT_CNT 0x20
  188. #define ISTAT_OVW 0x10
  189. #define ISTAT_TXE 0x08
  190. #define ISTAT_RXE 0x04
  191. #define ISTAT_PTX 0x02
  192. #define ISTAT_PRX 0x01
  193. /* Transmit Status Register */
  194. #define TSTAT_OWC 0x80
  195. #define TSTAT_CDH 0x40
  196. #define TSTAT_UNDER 0x20
  197. #define TSTAT_CRL 0x10
  198. #define TSTAT_ABORT 0x08
  199. #define TSTAT_TWC 0x04
  200. #define TSTAT_NDT 0x02
  201. #define TSTAT_PTX 0x01
  202. /* Receive Status Register */
  203. #define RSTAT_DFR 0x80
  204. #define RSTAT_DIS 0x40
  205. #define RSTAT_GROUP 0x20
  206. #define RSTAT_MPA 0x10
  207. #define RSTAT_OVER 0x08
  208. #define RSTAT_FAE 0x04
  209. #define RSTAT_CRC 0x02
  210. #define RSTAT_PRX 0x01
  211. /* Enable Features */
  212. #define ENH_WAIT1 0x80
  213. #define ENH_WAIT0 0x40
  214. #define ENH_SLOT1 0x10
  215. #define ENH_SLOT0 0x08
  216. /* flags - software synchronize bit difinitions */
  217. #define TXING 0x01
  218. #define RXING 0x02
  219. #define TXREQ 0x04
  220. #ifdef __cplusplus
  221. }
  222. #endif
  223. #endif /* __INCif_ultrah */