suni1x10gexp_regs.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. /*****************************************************************************
  2. * *
  3. * File: suni1x10gexp_regs.h *
  4. * $Revision: 1.4 $ *
  5. * $Date: 2005/03/23 07:15:59 $ *
  6. * Description: *
  7. * PMC/SIERRA (pm3393) MAC-PHY functionality. *
  8. * part of the Chelsio 10Gb Ethernet Driver. *
  9. * *
  10. * This program is free software; you can redistribute it and/or modify *
  11. * it under the terms of the GNU General Public License, version 2, as *
  12. * published by the Free Software Foundation. *
  13. * *
  14. * You should have received a copy of the GNU General Public License along *
  15. * with this program; if not, write to the Free Software Foundation, Inc., *
  16. * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
  17. * *
  18. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED *
  19. * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF *
  20. * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. *
  21. * *
  22. * http://www.chelsio.com *
  23. * *
  24. * Copyright (c) 2003 - 2005 Chelsio Communications, Inc. *
  25. * All rights reserved. *
  26. * *
  27. * Maintainers: maintainers@chelsio.com *
  28. * *
  29. * Authors: Dimitrios Michailidis <dm@chelsio.com> *
  30. * Tina Yang <tainay@chelsio.com> *
  31. * Felix Marti <felix@chelsio.com> *
  32. * Scott Bardone <sbardone@chelsio.com> *
  33. * Kurt Ottaway <kottaway@chelsio.com> *
  34. * Frank DiMambro <frank@chelsio.com> *
  35. * *
  36. * History: *
  37. * *
  38. ****************************************************************************/
  39. #ifndef _SUNI1x10GEXP_REGS_H
  40. #define _SUNI1x10GEXP_REGS_H
  41. /******************************************************************************/
  42. /** S/UNI-1x10GE-XP REGISTER ADDRESS MAP **/
  43. /******************************************************************************/
  44. /* Refer to the Register Bit Masks bellow for the naming of each register and */
  45. /* to the S/UNI-1x10GE-XP Data Sheet for the signification of each bit */
  46. /******************************************************************************/
  47. #define SUNI1x10GEXP_REG_DEVICE_STATUS 0x0004
  48. #define SUNI1x10GEXP_REG_MASTER_INTERRUPT_STATUS 0x000D
  49. #define SUNI1x10GEXP_REG_GLOBAL_INTERRUPT_ENABLE 0x000E
  50. #define SUNI1x10GEXP_REG_SERDES_3125_INTERRUPT_ENABLE 0x0102
  51. #define SUNI1x10GEXP_REG_SERDES_3125_INTERRUPT_STATUS 0x0104
  52. #define SUNI1x10GEXP_REG_RXXG_CONFIG_1 0x2040
  53. #define SUNI1x10GEXP_REG_RXXG_CONFIG_3 0x2042
  54. #define SUNI1x10GEXP_REG_RXXG_INTERRUPT 0x2043
  55. #define SUNI1x10GEXP_REG_RXXG_MAX_FRAME_LENGTH 0x2045
  56. #define SUNI1x10GEXP_REG_RXXG_SA_15_0 0x2046
  57. #define SUNI1x10GEXP_REG_RXXG_SA_31_16 0x2047
  58. #define SUNI1x10GEXP_REG_RXXG_SA_47_32 0x2048
  59. #define SUNI1x10GEXP_REG_RXXG_EXACT_MATCH_ADDR_1_LOW 0x204D
  60. #define SUNI1x10GEXP_REG_RXXG_EXACT_MATCH_ADDR_1_MID 0x204E
  61. #define SUNI1x10GEXP_REG_RXXG_EXACT_MATCH_ADDR_1_HIGH 0x204F
  62. #define SUNI1x10GEXP_REG_RXXG_MULTICAST_HASH_LOW 0x206A
  63. #define SUNI1x10GEXP_REG_RXXG_MULTICAST_HASH_MIDLOW 0x206B
  64. #define SUNI1x10GEXP_REG_RXXG_MULTICAST_HASH_MIDHIGH 0x206C
  65. #define SUNI1x10GEXP_REG_RXXG_MULTICAST_HASH_HIGH 0x206D
  66. #define SUNI1x10GEXP_REG_RXXG_ADDRESS_FILTER_CONTROL_0 0x206E
  67. #define SUNI1x10GEXP_REG_RXXG_ADDRESS_FILTER_CONTROL_2 0x2070
  68. #define SUNI1x10GEXP_REG_XRF_INTERRUPT_ENABLE 0x2088
  69. #define SUNI1x10GEXP_REG_XRF_INTERRUPT_STATUS 0x2089
  70. #define SUNI1x10GEXP_REG_XRF_DIAG_INTERRUPT_ENABLE 0x208B
  71. #define SUNI1x10GEXP_REG_XRF_DIAG_INTERRUPT_STATUS 0x208C
  72. #define SUNI1x10GEXP_REG_RXOAM_INTERRUPT_ENABLE 0x20C7
  73. #define SUNI1x10GEXP_REG_RXOAM_INTERRUPT_STATUS 0x20C8
  74. #define SUNI1x10GEXP_REG_MSTAT_CONTROL 0x2100
  75. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_ROLLOVER_0 0x2101
  76. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_ROLLOVER_1 0x2102
  77. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_ROLLOVER_2 0x2103
  78. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_ROLLOVER_3 0x2104
  79. #define SUNI1x10GEXP_REG_MSTAT_INTERRUPT_MASK_0 0x2105
  80. #define SUNI1x10GEXP_REG_MSTAT_INTERRUPT_MASK_1 0x2106
  81. #define SUNI1x10GEXP_REG_MSTAT_INTERRUPT_MASK_2 0x2107
  82. #define SUNI1x10GEXP_REG_MSTAT_INTERRUPT_MASK_3 0x2108
  83. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_0_LOW 0x2110
  84. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_1_LOW 0x2114
  85. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_4_LOW 0x2120
  86. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_5_LOW 0x2124
  87. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_6_LOW 0x2128
  88. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_8_LOW 0x2130
  89. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_10_LOW 0x2138
  90. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_11_LOW 0x213C
  91. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_12_LOW 0x2140
  92. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_13_LOW 0x2144
  93. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_15_LOW 0x214C
  94. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_16_LOW 0x2150
  95. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_17_LOW 0x2154
  96. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_18_LOW 0x2158
  97. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_33_LOW 0x2194
  98. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_35_LOW 0x219C
  99. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_36_LOW 0x21A0
  100. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_38_LOW 0x21A8
  101. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_40_LOW 0x21B0
  102. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_42_LOW 0x21B8
  103. #define SUNI1x10GEXP_REG_MSTAT_COUNTER_43_LOW 0x21BC
  104. #define SUNI1x10GEXP_REG_IFLX_FIFO_OVERFLOW_ENABLE 0x2209
  105. #define SUNI1x10GEXP_REG_IFLX_FIFO_OVERFLOW_INTERRUPT 0x220A
  106. #define SUNI1x10GEXP_REG_PL4ODP_INTERRUPT_MASK 0x2282
  107. #define SUNI1x10GEXP_REG_PL4ODP_INTERRUPT 0x2283
  108. #define SUNI1x10GEXP_REG_PL4IO_LOCK_DETECT_STATUS 0x2300
  109. #define SUNI1x10GEXP_REG_PL4IO_LOCK_DETECT_CHANGE 0x2301
  110. #define SUNI1x10GEXP_REG_PL4IO_LOCK_DETECT_MASK 0x2302
  111. #define SUNI1x10GEXP_REG_TXXG_CONFIG_1 0x3040
  112. #define SUNI1x10GEXP_REG_TXXG_CONFIG_3 0x3042
  113. #define SUNI1x10GEXP_REG_TXXG_INTERRUPT 0x3043
  114. #define SUNI1x10GEXP_REG_TXXG_MAX_FRAME_SIZE 0x3045
  115. #define SUNI1x10GEXP_REG_TXXG_SA_15_0 0x3047
  116. #define SUNI1x10GEXP_REG_TXXG_SA_31_16 0x3048
  117. #define SUNI1x10GEXP_REG_TXXG_SA_47_32 0x3049
  118. #define SUNI1x10GEXP_REG_XTEF_INTERRUPT_STATUS 0x3084
  119. #define SUNI1x10GEXP_REG_XTEF_INTERRUPT_ENABLE 0x3085
  120. #define SUNI1x10GEXP_REG_TXOAM_INTERRUPT_ENABLE 0x30C6
  121. #define SUNI1x10GEXP_REG_TXOAM_INTERRUPT_STATUS 0x30C7
  122. #define SUNI1x10GEXP_REG_EFLX_FIFO_OVERFLOW_ERROR_ENABLE 0x320C
  123. #define SUNI1x10GEXP_REG_EFLX_FIFO_OVERFLOW_ERROR_INDICATION 0x320D
  124. #define SUNI1x10GEXP_REG_PL4IDU_INTERRUPT_MASK 0x3282
  125. #define SUNI1x10GEXP_REG_PL4IDU_INTERRUPT 0x3283
  126. /******************************************************************************/
  127. /* -- End register offset definitions -- */
  128. /******************************************************************************/
  129. /******************************************************************************/
  130. /** SUNI-1x10GE-XP REGISTER BIT MASKS **/
  131. /******************************************************************************/
  132. /*----------------------------------------------------------------------------
  133. * Register 0x0004: S/UNI-1x10GE-XP Device Status
  134. * Bit 9 TOP_SXRA_EXPIRED
  135. * Bit 8 TOP_MDIO_BUSY
  136. * Bit 7 TOP_DTRB
  137. * Bit 6 TOP_EXPIRED
  138. * Bit 5 TOP_PAUSED
  139. * Bit 4 TOP_PL4_ID_DOOL
  140. * Bit 3 TOP_PL4_IS_DOOL
  141. * Bit 2 TOP_PL4_ID_ROOL
  142. * Bit 1 TOP_PL4_IS_ROOL
  143. * Bit 0 TOP_PL4_OUT_ROOL
  144. *----------------------------------------------------------------------------*/
  145. #define SUNI1x10GEXP_BITMSK_TOP_SXRA_EXPIRED 0x0200
  146. #define SUNI1x10GEXP_BITMSK_TOP_EXPIRED 0x0040
  147. #define SUNI1x10GEXP_BITMSK_TOP_PL4_ID_DOOL 0x0010
  148. #define SUNI1x10GEXP_BITMSK_TOP_PL4_IS_DOOL 0x0008
  149. #define SUNI1x10GEXP_BITMSK_TOP_PL4_ID_ROOL 0x0004
  150. #define SUNI1x10GEXP_BITMSK_TOP_PL4_IS_ROOL 0x0002
  151. #define SUNI1x10GEXP_BITMSK_TOP_PL4_OUT_ROOL 0x0001
  152. /*----------------------------------------------------------------------------
  153. * Register 0x000E:PM3393 Global interrupt enable
  154. * Bit 15 TOP_INTE
  155. *----------------------------------------------------------------------------*/
  156. #define SUNI1x10GEXP_BITMSK_TOP_INTE 0x8000
  157. /*----------------------------------------------------------------------------
  158. * Register 0x2040: RXXG Configuration 1
  159. * Bit 15 RXXG_RXEN
  160. * Bit 14 RXXG_ROCF
  161. * Bit 13 RXXG_PAD_STRIP
  162. * Bit 10 RXXG_PUREP
  163. * Bit 9 RXXG_LONGP
  164. * Bit 8 RXXG_PARF
  165. * Bit 7 RXXG_FLCHK
  166. * Bit 5 RXXG_PASS_CTRL
  167. * Bit 3 RXXG_CRC_STRIP
  168. * Bit 2-0 RXXG_MIFG
  169. *----------------------------------------------------------------------------*/
  170. #define SUNI1x10GEXP_BITMSK_RXXG_RXEN 0x8000
  171. #define SUNI1x10GEXP_BITMSK_RXXG_PUREP 0x0400
  172. #define SUNI1x10GEXP_BITMSK_RXXG_FLCHK 0x0080
  173. #define SUNI1x10GEXP_BITMSK_RXXG_CRC_STRIP 0x0008
  174. /*----------------------------------------------------------------------------
  175. * Register 0x2070: RXXG Address Filter Control 2
  176. * Bit 1 RXXG_PMODE
  177. * Bit 0 RXXG_MHASH_EN
  178. *----------------------------------------------------------------------------*/
  179. #define SUNI1x10GEXP_BITMSK_RXXG_PMODE 0x0002
  180. #define SUNI1x10GEXP_BITMSK_RXXG_MHASH_EN 0x0001
  181. /*----------------------------------------------------------------------------
  182. * Register 0x2100: MSTAT Control
  183. * Bit 2 MSTAT_WRITE
  184. * Bit 1 MSTAT_CLEAR
  185. * Bit 0 MSTAT_SNAP
  186. *----------------------------------------------------------------------------*/
  187. #define SUNI1x10GEXP_BITMSK_MSTAT_CLEAR 0x0002
  188. #define SUNI1x10GEXP_BITMSK_MSTAT_SNAP 0x0001
  189. /*----------------------------------------------------------------------------
  190. * Register 0x3040: TXXG Configuration Register 1
  191. * Bit 15 TXXG_TXEN0
  192. * Bit 13 TXXG_HOSTPAUSE
  193. * Bit 12-7 TXXG_IPGT
  194. * Bit 5 TXXG_32BIT_ALIGN
  195. * Bit 4 TXXG_CRCEN
  196. * Bit 3 TXXG_FCTX
  197. * Bit 2 TXXG_FCRX
  198. * Bit 1 TXXG_PADEN
  199. * Bit 0 TXXG_SPRE
  200. *----------------------------------------------------------------------------*/
  201. #define SUNI1x10GEXP_BITMSK_TXXG_TXEN0 0x8000
  202. #define SUNI1x10GEXP_BITOFF_TXXG_IPGT 7
  203. #define SUNI1x10GEXP_BITMSK_TXXG_32BIT_ALIGN 0x0020
  204. #define SUNI1x10GEXP_BITMSK_TXXG_CRCEN 0x0010
  205. #define SUNI1x10GEXP_BITMSK_TXXG_FCTX 0x0008
  206. #define SUNI1x10GEXP_BITMSK_TXXG_FCRX 0x0004
  207. #define SUNI1x10GEXP_BITMSK_TXXG_PADEN 0x0002
  208. #endif /* _SUNI1x10GEXP_REGS_H */