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

VxWorks

开发平台:

C/C++

  1. /* mbcEnd.h - Motorola 68302fads End network interface header */
  2. /* Copyright 1996-1999 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01a,19feb99,dra  written.
  7. */
  8. /*
  9. This file contains I/O addresses and related constants for the Motorola
  10. Module Bus Ethernet controller used in the M68EN360 communications
  11. controller.
  12. */
  13. #ifndef __INCmbcEndh
  14. #define __INCmbcEndh
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif
  18. /* defines */
  19. /* MBC - Module Bus Ethernet controller */
  20. #define DEV_NAME "mbc" /* device interface name */
  21. #define DEV_NAME_LEN 4 /* device name length */
  22.  
  23. /* Module Bus Ethernet Controller registers */
  24. #define MBC_ECNTL 0x000 /* ethernet control register */
  25. #define MBC_EDMA 0x002 /* DMA configuration register */
  26. #define MBC_EMRBLR 0x004 /* max receive buffer length */
  27. #define MBC_IVEC 0x006 /* interrupt vector register */
  28. #define MBC_IEVNT 0x008 /* interrupt event */
  29. #define MBC_IMASK 0x00a /* interrupt mask register */
  30. #define MBC_ECFG 0x00c /* configurartion register */
  31. #define MBC_TEST 0x00e /* test register */
  32. #define MBC_AR 0x010 /* address recognition control */
  33. #define MBC_ARTAB 0x200 /* address recognition table */
  34. #define MBC_EBD 0x400 /* buffer descriptors table */
  35. /* Ethernet Control register definitions */
  36. #define MBC_ECNTL_RES 0x0000 /* ethernet reset */
  37. #define MBC_ECNTL_RES_OFF 0x0001 /* ethernet reset off */
  38. #define MBC_ECNTL_ENBL 0x0002 /* ethernet enable */
  39. #define MBC_ECNTL_GTS 0x0004 /* graceful tx stop */
  40. /* Ethernet DMA config/status register definitions */
  41.  
  42. #define MBC_EDMA_BLIM_MSK 0x0007 /* burst limit mask */
  43. #define MBC_EDMA_BLIM_1 0x0000 /* burst limit, 1 */
  44. #define MBC_EDMA_BLIM_2 0x0001 /* burst limit, 2 */
  45. #define MBC_EDMA_BLIM_4 0x0002 /* burst limit, 4 */
  46. #define MBC_EDMA_BLIM_8 0x0003 /* burst limit, 8 */
  47. #define MBC_EDMA_BLIM_16 0x0004 /* burst limit, 16 */
  48. #define MBC_EDMA_BLIM_32 0x0005 /* burst limit, 32 */
  49. #define MBC_EDMA_BLIM_64 0x0006 /* burst limit, 64 */
  50. #define MBC_EDMA_BLIM_UNL 0x0007 /* burst limit, unlimited */
  51. #define MBC_EDMA_WMRK_MSK 0x0018 /* fifo watermark mask */
  52. #define MBC_EDMA_WMRK_8 0x0000 /* fifo watermark 8 bytes */
  53. #define MBC_EDMA_WMRK_16 0x0008 /* fifo watermark 16 bytes */
  54. #define MBC_EDMA_WMRK_24 0x0010 /* fifo watermark 24 bytes */
  55. #define MBC_EDMA_WMRK_32 0x0018 /* fifo watermark 32 bytes */
  56. #define MBC_EDMA_TSRLY 0x0020 /* transmit start early */
  57. #define MBC_EDMA_BDS_MSK 0x00c0 /* bdsize mask */
  58. #define MBC_EDMA_BDS_SHFT 0x0006 /* shift cnt for bd size */
  59. #define MBC_EDMA_BDS_8 0x0000 /* bdsize 8tx/120rx */
  60. #define MBC_EDMA_BDS_16 0x0001 /* bdsize 16tx/112rx */
  61. #define MBC_EDMA_BDS_32 0x0002 /* bdsize 32tx/96rx */
  62. #define MBC_EDMA_BDS_64 0x0003 /* bdsize 64tx/64rx */
  63. #define MBC_EDMA_BDE_MSK 0xfe00 /* bd error # */
  64. #define MBC_EDMA_BDE_SHFT 0x0009 /* shift cnt for bd error # */
  65. #define MBC_BD_MAX 128 /* total number of buffer descriptors */
  66. /* Interrupt Vector register definitions */
  67.  
  68. #define MBC_IVEC_MSK 0x00ff /* interrupt vector mask */
  69. #define MBC_IVEC_RX 0x0000 /* receive interrupt */
  70. #define MBC_IVEC_TX 0x0001 /* transmit interrupt */
  71. #define MBC_IVEC_NTC 0x0002 /* non time critical interrupt */
  72. #define MBC_IVEC_TC 0x0003 /* time critical interrupt */
  73. #define MBC_IVEC_VG 0x0100 /* vector granularity */
  74. /* Interrupt Event register definitions */
  75. #define MBC_IEVNT_RXB 0x0001 /* receive buffer interrupt */
  76. #define MBC_IEVNT_TXB 0x0002 /* transmit buffer interrupt */
  77. #define MBC_IEVNT_BSY 0x0004 /* busy interrupt */
  78. #define MBC_IEVNT_RXF 0x0008 /* receive frame interrupt */
  79. #define MBC_IEVNT_TXF 0x0010 /* transmit frame interrupt */
  80. #define MBC_IEVNT_EBE 0x0020 /* ethernet bus error */
  81. #define MBC_IEVNT_BOD 0x0040 /* backoff done */
  82. #define MBC_IEVNT_GRA 0x0080 /* graceful stop complete */
  83. #define MBC_IEVNT_BTE 0x0100 /* babbling transmitter error */
  84. #define MBC_IEVNT_BRE 0x0200 /* babbling receiver error */
  85. #define MBC_IEVNT_HBE 0x0400 /* heartbeat error */
  86. /* Interrupt Mask register */
  87. #define MBC_IMASK_RXB 0x0001 /* receive buffer interrupt */
  88. #define MBC_IMASK_TXB 0x0002 /* transmit buffer interrupt */
  89. #define MBC_IMASK_BSY 0x0004 /* busy interrupt */
  90. #define MBC_IMASK_RXF 0x0008 /* receive frame interrupt */
  91. #define MBC_IMASK_TXF 0x0010 /* transmit frame interrupt */
  92. #define MBC_IMASK_EBE 0x0020 /* ethernet bus error */
  93. #define MBC_IMASK_BOD 0x0040 /* backoff done */
  94. #define MBC_IMASK_GRA 0x0080 /* graceful stop complete */
  95. #define MBC_IMASK_BTE 0x0100 /* babbling transmitter error */
  96. #define MBC_IMASK_BRE 0x0200 /* babbling receiver error */
  97. #define MBC_IMASK_HBE 0x0400 /* heartbeat error */
  98. /* Ethernet Configuration register definitions */
  99.  
  100. #define MBC_ECFG_LOOP 0x0001 /* internal loopback */
  101. #define MBC_ECFG_FDEN 0x0002 /* full duplex enable */
  102. #define MBC_ECFG_HBC 0x0004 /* heartbeat control */
  103. /* Address Recognition register definitions */
  104. /* written only when ethernet controller is disabled */
  105.  
  106. #define MBC_AR_PROM 0x0400 /* promiscuous */
  107. #define MBC_AR_PAREJ 0x0800 /* phys address reject  */
  108. #define MBC_AR_INDEX 0x4000 /* index enable */
  109. #define MBC_AR_MULTI_00 0x0000 /* multicast and broadcast */
  110. #define MBC_AR_MULTI_01 0x1000 /* multicast, but no broadcast */
  111. #define MBC_AR_MULTI_10 0x2000 /* all multicast and broadcast */
  112. #define MBC_AR_MULTI_11 0x3000 /* no multicast or broadcast */
  113. #define MBC_AR_HASH 0x8000 /* hash mode enable */
  114. #define MBC_ARTAB_SIZE 64 /* number of entries in the AR table */
  115. /* SCC Ethernet Protocol Specific Mode Register definitions */
  116. /* Receive/Transmit Buffer Descriptor */
  117. #ifndef _ASMLANGUAGE
  118. typedef struct   /* MBC_BD */
  119.     {
  120.     UINT16 statusMode; /* status and control */
  121.     UINT16 dataLength; /* length of data buffer in bytes */
  122.     UCHAR * dataPointer; /* points to data buffer */
  123.     } MBC_BD;
  124. #endif /* _ASMLANGUAGE */
  125. /* Receive Buffer Descriptor statusMode field definitions */
  126.  
  127. #define MBC_RXBD_CL 0x0001 /* collision condition */
  128. #define MBC_RXBD_OV 0x0002 /* overrun condition */
  129. #define MBC_RXBD_CR 0x0004 /* Rx CRC error */
  130. #define MBC_RXBD_SH 0x0008 /* short frame received */
  131. #define MBC_RXBD_NO 0x0010 /* Rx nonoctet aligned frame */
  132. #define MBC_RXBD_LG 0x0020 /* Rx frame length violation */
  133. #define MBC_RXBD_M 0x0100 /* miss bit for prom mode */
  134. #define MBC_RXBD_F 0x0400 /* buffer is first in frame */
  135. #define MBC_RXBD_L 0x0800 /* buffer is last in frame */
  136. #define MBC_RXBD_I 0x1000 /* interrupt on receive */
  137. #define MBC_RXBD_W 0x2000 /* last BD in ring */
  138. #define MBC_RXBD_E 0x8000 /* buffer is empty */
  139.  
  140. /* Transmit Buffer Descriptor statusMode field definitions */
  141.  
  142. #define MBC_TXBD_CSL 0x0001 /* carrier sense lost */
  143. #define MBC_TXBD_UN 0x0002 /* underrun */
  144. #define MBC_TXBD_RC 0x003c /* retry count */
  145. #define MBC_TXBD_RC_SHFT 0x0002 /* shift cnt for RC */
  146. #define MBC_TXBD_RL 0x0040 /* retransmission limit */
  147. #define MBC_TXBD_LC 0x0080 /* late collision */
  148. #define MBC_TXBD_HB 0x0100 /* heartbeat */
  149. #define MBC_TXBD_DEF 0x0200 /* defer indication */
  150. #define MBC_TXBD_TC 0x0400 /* auto transmit CRC */
  151. #define MBC_TXBD_L 0x0800 /* buffer is last in frame */
  152. #define MBC_TXBD_I 0x1000 /* interrupt on transmit */
  153. #define MBC_TXBD_W 0x2000 /* last BD in ring */
  154. #define MBC_TXBD_PAD 0x4000 /* auto pad short frames */
  155. #define MBC_TXBD_R 0x8000 /* buffer is ready */
  156. #define MBC_TXBD_ERRS (MBC_TXBD_DEF | MBC_TXBD_HB | 
  157.                                  MBC_TXBD_LC  | MBC_TXBD_RL | 
  158.                                  MBC_TXBD_UN  | MBC_TXBD_CSL)
  159. #ifdef __cplusplus
  160. }
  161. #endif
  162. #endif /* __INCmbcEndh */