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

VxWorks

开发平台:

C/C++

  1. /* ns83902End.h - NIC driver header */
  2. /* Copyright 1984-2000 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01c,11apr00,zl   added more register definitions
  7. 01b,10apr00,zl   renamed file to ns83902End.h, cleaned up
  8. 01a,20jan99,zl   written based on nicEvbEnd.h
  9. */
  10. #ifndef __INCns83902Endh
  11. #define __INCns83902Endh
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15. /* driver flags */
  16. typedef UINT8 NS83902_DRV_FLAG;
  17. #define NS83902_FLAG_POLL 0x01 /* for poll mode */    
  18. #define NS83902_WIDE_MASK 0x01 /* option bit 0 (LSB) */
  19. #define NS83902_INTERVAL_MASK 0x02 /* option bit 1 */
  20. #define MINPKTSIZE 64 /* Minimum packet size */
  21. #define NS83902_PAGE_SIZE 256 /* Page size in buffer memory */
  22. #define NS83902_TX_POOL_SIZE 1514 /* TX pool size */
  23. /* Page 0 Internal register offsets */
  24. #define NS83902_CR 0x00 /* R/W: Command Register R/W */
  25. #define NS83902_PSTART 0x01 /* W: Page Start Register */
  26. #define NS83902_CLDA0 0x01 /* R: Current Local DMA Address0 */
  27. #define NS83902_PSTOP 0x02 /* W: Page Stop Register */
  28. #define NS83902_CLDA1 0x02 /* R: Current Local DMA Address1 */
  29. #define NS83902_BNRY 0x03 /* R/W: Boundary Pointer Register */
  30. #define NS83902_TPSR 0x04 /* W: Transmit Page Start Register */
  31. #define NS83902_TSR 0x04 /* R: Transmit Status Register */
  32. #define NS83902_TBCR0 0x05 /* W: Transmit Byte Count0 Register */
  33. #define NS83902_NCR 0x05 /* R: Number of Collisions */
  34. #define NS83902_TBCR1 0x06 /* W: Transmit Byte Count1 Register */
  35. #define NS83902_FIFO 0x06 /* R: FIFO Register */
  36. #define NS83902_ISR 0x07 /* R/W: Interrup Status Register */
  37. #define NS83902_RSAR0 0x08 /* W: Remote Start Address0 Register */
  38. #define NS83902_CRDA0 0x08 /* R: Current Remote DMA Address0 Reg.*/
  39. #define NS83902_RSAR1 0x09 /* W: Remote Start Address1 Register */
  40. #define NS83902_CRDA1 0x09 /* R: Current Remote DMA Address1 Reg.*/
  41. #define NS83902_RBCR0 0x0A /* W: Remote Byte Count0 Register */
  42. #define NS83902_RBCR1 0x0B /* W: Remote Byte Count1 Register */
  43. #define NS83902_RCR 0x0C /* W: Receive Configuration Register */
  44. #define NS83902_RSR 0x0C /* R: Receive Status Register */
  45. #define NS83902_TCR 0x0D /* W: Transmit Configuration Register */
  46. #define NS83902_CNTR0 0x0D /* R: Tally Counter 0 (Frm. Alignment.*/
  47. #define NS83902_DCR 0x0E /* W: Data Configuration Register */
  48. #define NS83902_CNTR1 0x0E /* R: Tally Counter 1 (CRC) */
  49. #define NS83902_IMR 0x0F /* W: Interrupt Mask Register */
  50. #define NS83902_CNTR2 0x0F /* R: Tally Counter 1 (Missed Pkt.)*/
  51. /* Page 1 Internal Register Offsets */
  52. #define NS83902_CR 0x00 /* Command register */
  53. #define NS83902_PAR0 0x01 /* Phsical Address Register 0 */
  54. #define NS83902_PAR1 0x02 /* Phsical Address Register 1 */
  55. #define NS83902_PAR2 0x03 /* Phsical Address Register 2 */
  56. #define NS83902_PAR3 0x04 /* Phsical Address Register 3 */
  57. #define NS83902_PAR4 0x05 /* Phsical Address Register 4 */
  58. #define NS83902_PAR5 0x06 /* Phsical Address Register 5 */
  59. #define NS83902_CURR 0x07 /* Current Page Register */
  60. #define NS83902_MAR0 0x08 /* Multicast Address Register 0 */
  61. #define NS83902_MAR1 0x09 /* Multicast Address Register 1 */
  62. #define NS83902_MAR2 0x0a /* Multicast Address Register 2 */
  63. #define NS83902_MAR3 0x0b /* Multicast Address Register 3 */
  64. #define NS83902_MAR4 0x0c /* Multicast Address Register 4 */
  65. #define NS83902_MAR5 0x0d /* Multicast Address Register 5 */
  66. #define NS83902_MAR6 0x0e /* Multicast Address Register 6 */    
  67. #define NS83902_MAR7 0x0f /* Multicast Address Register 7 */
  68. /*
  69.  * Configuration Register bits
  70.  */
  71. #define CR_STP 0x1 /* Stop */
  72. #define CR_STA 0x2 /* Start */
  73. #define CR_TXP 0x4 /* Transmit Packet command */
  74. #define CR_RREAD 0x8 /* Remote DMA Read command */
  75. #define CR_RWRITE 0x10 /* Remote DMA Write command */
  76. #define CR_SPKT 0x18 /* Send Packet command */
  77. #define CR_ABORT 0x20 /* Abort command */
  78. #define CR_RPAGE0 0x00 /* Register Page 0 */
  79. #define CR_RPAGE1 0x40 /* Register Page 1 */
  80. #define CR_RPAGE2 0x80 /* Register Page 2 */
  81. #define CR_PAGE_MASK 0xc0 /* Register Page mask */
  82. /*
  83.  * Interrupt Status Register
  84.  */
  85. #define ISR_PRX 0x1 /* Packet Received */
  86. #define ISR_PTX 0x2 /* Packet Transmitted */
  87. #define ISR_RXE 0x4 /* Receive Error */
  88. #define ISR_TXE 0x8 /* Transmit Error */
  89. #define ISR_OVW 0x10 /* Overwrite Warning */
  90. #define ISR_CNT 0x20 /* Counter Overflow */
  91. #define ISR_RDC 0x40 /* Remote DMA complete */
  92. #define ISR_RST 0x80 /* Reset Status */
  93. /*
  94.  * Interrupt Mode Register
  95.  */
  96. #define IMR_PRXE 0x1 /* Packet Received Intr. Enable */
  97. #define IMR_PTXE 0x2 /* Packet Transmitted Intr. Enable */
  98. #define IMR_RXEE 0x4 /* Receive Error Intr. Enable */
  99. #define IMR_TXEE 0x8 /* Transmit Error Intr. Enable */
  100. #define IMR_OVWE 0x10 /* Overwrite Warning Intr. Enable */
  101. #define IMR_CNTE 0x20 /* Counter Overflow Intr. Enable */
  102. #define IMR_RDCE 0x40 /* Remote DMA complete Intr. Enable */
  103. /*
  104.  * Data Configuration Register
  105.  */
  106. #define DCR_WTS 0x1 /* Word Transfer Select */
  107. #define DCR_BOS 0x2 /* Byte Order Select */
  108. #define DCR_LAS 0x4 /* Long Address Select */
  109. #define DCR_NOTLS 0x8 /* Loopback Select */
  110. #define DCR_ARM 0x10 /* Auto-Initialize Select */
  111. #define DCR_FIFO2 0x00 /* Fifo Threshold 1 word  /2 bytes */
  112. #define DCR_FIFO4 0x20 /* Fifo Threshold 2 words / 4 bytes */
  113. #define DCR_FIFO8 0x40 /* Fifo Threshold 4 words / 8 bytes */
  114. #define DCR_FIFO12 0x60 /* Fifo Threshold 6 words / 12 bytes */
  115. /*
  116.  * Transmit Configuration Register
  117.  */
  118. #define TCR_CRC  0x1 /* Inhibit CRC */
  119. #define TCR_MODE0 0x0 /* Norman operation */
  120. #define TCR_MODE1 0x2 /* Internal NIC Module Loopback */
  121. #define TCR_MODE2 0x4 /* Internal ENDEC Module Loopback */
  122. #define TCR_MODE3 0x6 /* External Loopback */
  123. #define TCR_ATD 0x8 /* Auto Transmit Disable */
  124. #define TCR_OFST 0x10 /* Collision Offset Enable */
  125. /*
  126.  * Transmit Status Register
  127.  */
  128. #define TSR_PTX 0x1 /* Packet transmitted */
  129. #define TSR_COL 0x4 /* Transmit Collided */
  130. #define TSR_ABT 0x8 /* Transmit Aborted */
  131. #define TSR_CRS 0x10 /* Carrier Sense Lost */
  132. #define TSR_FU 0x20 /* FIFO underrun */
  133. #define TSR_CDH 0x40 /* CD Heartbeat */
  134. #define TSR_OWC 0x80 /* Out of Window Collision */
  135. /*
  136.  * Receive Configuration Register
  137.  */
  138. #define RCR_SEP 0x1 /* Save Errored Packets */
  139. #define RCR_AR 0x2 /* Accept Runt Packets */
  140. #define RCR_AB 0x4 /* Acept Broadcast */
  141. #define RCR_AM 0x8 /* Accept Multicast */
  142. #define RCR_PRO 0x10 /* Promiscuous Physical */
  143. #define RCR_MON 0x20 /* Monitor Mode */
  144. /*
  145.  * Receive Status Register
  146.  */
  147. #define RSR_PRX 0x1 /* Packet Received Intact */
  148. #define RSR_CRC 0x2 /* CRC Error */
  149. #define RSR_FAE 0x4 /* Frame Alignment Error */
  150. #define RSR_FO 0x8 /* FIFO Overrun */
  151. #define RSR_MPA 0x10 /* Missed Packet */
  152. #define RSR_PHY 0x20 /* Physical/Multicast Address */
  153. #define RSR_DIS 0x40 /* Receiver Disabled */
  154. #define RSR_DFR 0x80 /* Deferring */
  155. #ifdef __cplusplus
  156. }
  157. #endif
  158. #endif /* __INCns83902Endh */