ef10_regs.h 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428
  1. /****************************************************************************
  2. * Driver for Solarflare network controllers and boards
  3. * Copyright 2012-2015 Solarflare Communications Inc.
  4. *
  5. * This program is free software; you can redistribute it and/or modify it
  6. * under the terms of the GNU General Public License version 2 as published
  7. * by the Free Software Foundation, incorporated herein by reference.
  8. */
  9. #ifndef EFX_EF10_REGS_H
  10. #define EFX_EF10_REGS_H
  11. /* EF10 hardware architecture definitions have a name prefix following
  12. * the format:
  13. *
  14. * E<type>_<min-rev><max-rev>_
  15. *
  16. * The following <type> strings are used:
  17. *
  18. * MMIO register Host memory structure
  19. * -------------------------------------------------------------
  20. * Address R
  21. * Bitfield RF SF
  22. * Enumerator FE SE
  23. *
  24. * <min-rev> is the first revision to which the definition applies:
  25. *
  26. * D: Huntington A0
  27. *
  28. * If the definition has been changed or removed in later revisions
  29. * then <max-rev> is the last revision to which the definition applies;
  30. * otherwise it is "Z".
  31. */
  32. /**************************************************************************
  33. *
  34. * EF10 registers and descriptors
  35. *
  36. **************************************************************************
  37. */
  38. /* BIU_HW_REV_ID_REG: */
  39. #define ER_DZ_BIU_HW_REV_ID 0x00000000
  40. #define ERF_DZ_HW_REV_ID_LBN 0
  41. #define ERF_DZ_HW_REV_ID_WIDTH 32
  42. /* BIU_MC_SFT_STATUS_REG: */
  43. #define ER_DZ_BIU_MC_SFT_STATUS 0x00000010
  44. #define ER_DZ_BIU_MC_SFT_STATUS_STEP 4
  45. #define ER_DZ_BIU_MC_SFT_STATUS_ROWS 8
  46. #define ERF_DZ_MC_SFT_STATUS_LBN 0
  47. #define ERF_DZ_MC_SFT_STATUS_WIDTH 32
  48. /* BIU_INT_ISR_REG: */
  49. #define ER_DZ_BIU_INT_ISR 0x00000090
  50. #define ERF_DZ_ISR_REG_LBN 0
  51. #define ERF_DZ_ISR_REG_WIDTH 32
  52. /* MC_DB_LWRD_REG: */
  53. #define ER_DZ_MC_DB_LWRD 0x00000200
  54. #define ERF_DZ_MC_DOORBELL_L_LBN 0
  55. #define ERF_DZ_MC_DOORBELL_L_WIDTH 32
  56. /* MC_DB_HWRD_REG: */
  57. #define ER_DZ_MC_DB_HWRD 0x00000204
  58. #define ERF_DZ_MC_DOORBELL_H_LBN 0
  59. #define ERF_DZ_MC_DOORBELL_H_WIDTH 32
  60. /* EVQ_RPTR_REG: */
  61. #define ER_DZ_EVQ_RPTR 0x00000400
  62. #define ER_DZ_EVQ_RPTR_STEP 8192
  63. #define ER_DZ_EVQ_RPTR_ROWS 2048
  64. #define ERF_DZ_EVQ_RPTR_VLD_LBN 15
  65. #define ERF_DZ_EVQ_RPTR_VLD_WIDTH 1
  66. #define ERF_DZ_EVQ_RPTR_LBN 0
  67. #define ERF_DZ_EVQ_RPTR_WIDTH 15
  68. /* EVQ_TMR_REG: */
  69. #define ER_DZ_EVQ_TMR 0x00000420
  70. #define ER_DZ_EVQ_TMR_STEP 8192
  71. #define ER_DZ_EVQ_TMR_ROWS 2048
  72. #define ERF_DZ_TC_TIMER_MODE_LBN 14
  73. #define ERF_DZ_TC_TIMER_MODE_WIDTH 2
  74. #define ERF_DZ_TC_TIMER_VAL_LBN 0
  75. #define ERF_DZ_TC_TIMER_VAL_WIDTH 14
  76. /* RX_DESC_UPD_REG: */
  77. #define ER_DZ_RX_DESC_UPD 0x00000830
  78. #define ER_DZ_RX_DESC_UPD_STEP 8192
  79. #define ER_DZ_RX_DESC_UPD_ROWS 2048
  80. #define ERF_DZ_RX_DESC_WPTR_LBN 0
  81. #define ERF_DZ_RX_DESC_WPTR_WIDTH 12
  82. /* TX_DESC_UPD_REG: */
  83. #define ER_DZ_TX_DESC_UPD 0x00000a10
  84. #define ER_DZ_TX_DESC_UPD_STEP 8192
  85. #define ER_DZ_TX_DESC_UPD_ROWS 2048
  86. #define ERF_DZ_RSVD_LBN 76
  87. #define ERF_DZ_RSVD_WIDTH 20
  88. #define ERF_DZ_TX_DESC_WPTR_LBN 64
  89. #define ERF_DZ_TX_DESC_WPTR_WIDTH 12
  90. #define ERF_DZ_TX_DESC_HWORD_LBN 32
  91. #define ERF_DZ_TX_DESC_HWORD_WIDTH 32
  92. #define ERF_DZ_TX_DESC_LWORD_LBN 0
  93. #define ERF_DZ_TX_DESC_LWORD_WIDTH 32
  94. /* DRIVER_EV */
  95. #define ESF_DZ_DRV_CODE_LBN 60
  96. #define ESF_DZ_DRV_CODE_WIDTH 4
  97. #define ESF_DZ_DRV_SUB_CODE_LBN 56
  98. #define ESF_DZ_DRV_SUB_CODE_WIDTH 4
  99. #define ESE_DZ_DRV_TIMER_EV 3
  100. #define ESE_DZ_DRV_START_UP_EV 2
  101. #define ESE_DZ_DRV_WAKE_UP_EV 1
  102. #define ESF_DZ_DRV_SUB_DATA_LBN 0
  103. #define ESF_DZ_DRV_SUB_DATA_WIDTH 56
  104. #define ESF_DZ_DRV_EVQ_ID_LBN 0
  105. #define ESF_DZ_DRV_EVQ_ID_WIDTH 14
  106. #define ESF_DZ_DRV_TMR_ID_LBN 0
  107. #define ESF_DZ_DRV_TMR_ID_WIDTH 14
  108. /* EVENT_ENTRY */
  109. #define ESF_DZ_EV_CODE_LBN 60
  110. #define ESF_DZ_EV_CODE_WIDTH 4
  111. #define ESE_DZ_EV_CODE_MCDI_EV 12
  112. #define ESE_DZ_EV_CODE_DRIVER_EV 5
  113. #define ESE_DZ_EV_CODE_TX_EV 2
  114. #define ESE_DZ_EV_CODE_RX_EV 0
  115. #define ESE_DZ_OTHER other
  116. #define ESF_DZ_EV_DATA_LBN 0
  117. #define ESF_DZ_EV_DATA_WIDTH 60
  118. /* MC_EVENT */
  119. #define ESF_DZ_MC_CODE_LBN 60
  120. #define ESF_DZ_MC_CODE_WIDTH 4
  121. #define ESF_DZ_MC_OVERRIDE_HOLDOFF_LBN 59
  122. #define ESF_DZ_MC_OVERRIDE_HOLDOFF_WIDTH 1
  123. #define ESF_DZ_MC_DROP_EVENT_LBN 58
  124. #define ESF_DZ_MC_DROP_EVENT_WIDTH 1
  125. #define ESF_DZ_MC_SOFT_LBN 0
  126. #define ESF_DZ_MC_SOFT_WIDTH 58
  127. /* RX_EVENT */
  128. #define ESF_DZ_RX_CODE_LBN 60
  129. #define ESF_DZ_RX_CODE_WIDTH 4
  130. #define ESF_DZ_RX_OVERRIDE_HOLDOFF_LBN 59
  131. #define ESF_DZ_RX_OVERRIDE_HOLDOFF_WIDTH 1
  132. #define ESF_DZ_RX_DROP_EVENT_LBN 58
  133. #define ESF_DZ_RX_DROP_EVENT_WIDTH 1
  134. #define ESF_DD_RX_EV_RSVD2_LBN 54
  135. #define ESF_DD_RX_EV_RSVD2_WIDTH 4
  136. #define ESF_EZ_RX_TCP_UDP_INNER_CHKSUM_ERR_LBN 57
  137. #define ESF_EZ_RX_TCP_UDP_INNER_CHKSUM_ERR_WIDTH 1
  138. #define ESF_EZ_RX_IP_INNER_CHKSUM_ERR_LBN 56
  139. #define ESF_EZ_RX_IP_INNER_CHKSUM_ERR_WIDTH 1
  140. #define ESF_EZ_RX_EV_RSVD2_LBN 54
  141. #define ESF_EZ_RX_EV_RSVD2_WIDTH 2
  142. #define ESF_DZ_RX_EV_SOFT2_LBN 52
  143. #define ESF_DZ_RX_EV_SOFT2_WIDTH 2
  144. #define ESF_DZ_RX_DSC_PTR_LBITS_LBN 48
  145. #define ESF_DZ_RX_DSC_PTR_LBITS_WIDTH 4
  146. #define ESF_DZ_RX_L4_CLASS_LBN 45
  147. #define ESF_DZ_RX_L4_CLASS_WIDTH 3
  148. #define ESE_DZ_L4_CLASS_RSVD7 7
  149. #define ESE_DZ_L4_CLASS_RSVD6 6
  150. #define ESE_DZ_L4_CLASS_RSVD5 5
  151. #define ESE_DZ_L4_CLASS_RSVD4 4
  152. #define ESE_DZ_L4_CLASS_RSVD3 3
  153. #define ESE_DZ_L4_CLASS_UDP 2
  154. #define ESE_DZ_L4_CLASS_TCP 1
  155. #define ESE_DZ_L4_CLASS_UNKNOWN 0
  156. #define ESF_DZ_RX_L3_CLASS_LBN 42
  157. #define ESF_DZ_RX_L3_CLASS_WIDTH 3
  158. #define ESE_DZ_L3_CLASS_RSVD7 7
  159. #define ESE_DZ_L3_CLASS_IP6_FRAG 6
  160. #define ESE_DZ_L3_CLASS_ARP 5
  161. #define ESE_DZ_L3_CLASS_IP4_FRAG 4
  162. #define ESE_DZ_L3_CLASS_FCOE 3
  163. #define ESE_DZ_L3_CLASS_IP6 2
  164. #define ESE_DZ_L3_CLASS_IP4 1
  165. #define ESE_DZ_L3_CLASS_UNKNOWN 0
  166. #define ESF_DZ_RX_ETH_TAG_CLASS_LBN 39
  167. #define ESF_DZ_RX_ETH_TAG_CLASS_WIDTH 3
  168. #define ESE_DZ_ETH_TAG_CLASS_RSVD7 7
  169. #define ESE_DZ_ETH_TAG_CLASS_RSVD6 6
  170. #define ESE_DZ_ETH_TAG_CLASS_RSVD5 5
  171. #define ESE_DZ_ETH_TAG_CLASS_RSVD4 4
  172. #define ESE_DZ_ETH_TAG_CLASS_RSVD3 3
  173. #define ESE_DZ_ETH_TAG_CLASS_VLAN2 2
  174. #define ESE_DZ_ETH_TAG_CLASS_VLAN1 1
  175. #define ESE_DZ_ETH_TAG_CLASS_NONE 0
  176. #define ESF_DZ_RX_ETH_BASE_CLASS_LBN 36
  177. #define ESF_DZ_RX_ETH_BASE_CLASS_WIDTH 3
  178. #define ESE_DZ_ETH_BASE_CLASS_LLC_SNAP 2
  179. #define ESE_DZ_ETH_BASE_CLASS_LLC 1
  180. #define ESE_DZ_ETH_BASE_CLASS_ETH2 0
  181. #define ESF_DZ_RX_MAC_CLASS_LBN 35
  182. #define ESF_DZ_RX_MAC_CLASS_WIDTH 1
  183. #define ESE_DZ_MAC_CLASS_MCAST 1
  184. #define ESE_DZ_MAC_CLASS_UCAST 0
  185. #define ESF_DD_RX_EV_SOFT1_LBN 32
  186. #define ESF_DD_RX_EV_SOFT1_WIDTH 3
  187. #define ESF_EZ_RX_EV_SOFT1_LBN 34
  188. #define ESF_EZ_RX_EV_SOFT1_WIDTH 1
  189. #define ESF_EZ_RX_ENCAP_HDR_LBN 32
  190. #define ESF_EZ_RX_ENCAP_HDR_WIDTH 2
  191. #define ESE_EZ_ENCAP_HDR_GRE 2
  192. #define ESE_EZ_ENCAP_HDR_VXLAN 1
  193. #define ESE_EZ_ENCAP_HDR_NONE 0
  194. #define ESF_DD_RX_EV_RSVD1_LBN 30
  195. #define ESF_DD_RX_EV_RSVD1_WIDTH 2
  196. #define ESF_EZ_RX_EV_RSVD1_LBN 31
  197. #define ESF_EZ_RX_EV_RSVD1_WIDTH 1
  198. #define ESF_EZ_RX_ABORT_LBN 30
  199. #define ESF_EZ_RX_ABORT_WIDTH 1
  200. #define ESF_DZ_RX_ECC_ERR_LBN 29
  201. #define ESF_DZ_RX_ECC_ERR_WIDTH 1
  202. #define ESF_DZ_RX_CRC1_ERR_LBN 28
  203. #define ESF_DZ_RX_CRC1_ERR_WIDTH 1
  204. #define ESF_DZ_RX_CRC0_ERR_LBN 27
  205. #define ESF_DZ_RX_CRC0_ERR_WIDTH 1
  206. #define ESF_DZ_RX_TCPUDP_CKSUM_ERR_LBN 26
  207. #define ESF_DZ_RX_TCPUDP_CKSUM_ERR_WIDTH 1
  208. #define ESF_DZ_RX_IPCKSUM_ERR_LBN 25
  209. #define ESF_DZ_RX_IPCKSUM_ERR_WIDTH 1
  210. #define ESF_DZ_RX_ECRC_ERR_LBN 24
  211. #define ESF_DZ_RX_ECRC_ERR_WIDTH 1
  212. #define ESF_DZ_RX_QLABEL_LBN 16
  213. #define ESF_DZ_RX_QLABEL_WIDTH 5
  214. #define ESF_DZ_RX_PARSE_INCOMPLETE_LBN 15
  215. #define ESF_DZ_RX_PARSE_INCOMPLETE_WIDTH 1
  216. #define ESF_DZ_RX_CONT_LBN 14
  217. #define ESF_DZ_RX_CONT_WIDTH 1
  218. #define ESF_DZ_RX_BYTES_LBN 0
  219. #define ESF_DZ_RX_BYTES_WIDTH 14
  220. /* RX_KER_DESC */
  221. #define ESF_DZ_RX_KER_RESERVED_LBN 62
  222. #define ESF_DZ_RX_KER_RESERVED_WIDTH 2
  223. #define ESF_DZ_RX_KER_BYTE_CNT_LBN 48
  224. #define ESF_DZ_RX_KER_BYTE_CNT_WIDTH 14
  225. #define ESF_DZ_RX_KER_BUF_ADDR_LBN 0
  226. #define ESF_DZ_RX_KER_BUF_ADDR_WIDTH 48
  227. /* TX_CSUM_TSTAMP_DESC */
  228. #define ESF_DZ_TX_DESC_IS_OPT_LBN 63
  229. #define ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
  230. #define ESF_DZ_TX_OPTION_TYPE_LBN 60
  231. #define ESF_DZ_TX_OPTION_TYPE_WIDTH 3
  232. #define ESE_DZ_TX_OPTION_DESC_TSO 7
  233. #define ESE_DZ_TX_OPTION_DESC_VLAN 6
  234. #define ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
  235. #define ESF_DZ_TX_OPTION_TS_AT_TXDP_LBN 8
  236. #define ESF_DZ_TX_OPTION_TS_AT_TXDP_WIDTH 1
  237. #define ESF_DZ_TX_OPTION_INNER_UDP_TCP_CSUM_LBN 7
  238. #define ESF_DZ_TX_OPTION_INNER_UDP_TCP_CSUM_WIDTH 1
  239. #define ESF_DZ_TX_OPTION_INNER_IP_CSUM_LBN 6
  240. #define ESF_DZ_TX_OPTION_INNER_IP_CSUM_WIDTH 1
  241. #define ESF_DZ_TX_TIMESTAMP_LBN 5
  242. #define ESF_DZ_TX_TIMESTAMP_WIDTH 1
  243. #define ESF_DZ_TX_OPTION_CRC_MODE_LBN 2
  244. #define ESF_DZ_TX_OPTION_CRC_MODE_WIDTH 3
  245. #define ESE_DZ_TX_OPTION_CRC_FCOIP_MPA 5
  246. #define ESE_DZ_TX_OPTION_CRC_FCOIP_FCOE 4
  247. #define ESE_DZ_TX_OPTION_CRC_ISCSI_HDR_AND_PYLD 3
  248. #define ESE_DZ_TX_OPTION_CRC_ISCSI_HDR 2
  249. #define ESE_DZ_TX_OPTION_CRC_FCOE 1
  250. #define ESE_DZ_TX_OPTION_CRC_OFF 0
  251. #define ESF_DZ_TX_OPTION_UDP_TCP_CSUM_LBN 1
  252. #define ESF_DZ_TX_OPTION_UDP_TCP_CSUM_WIDTH 1
  253. #define ESF_DZ_TX_OPTION_IP_CSUM_LBN 0
  254. #define ESF_DZ_TX_OPTION_IP_CSUM_WIDTH 1
  255. /* TX_EVENT */
  256. #define ESF_DZ_TX_CODE_LBN 60
  257. #define ESF_DZ_TX_CODE_WIDTH 4
  258. #define ESF_DZ_TX_OVERRIDE_HOLDOFF_LBN 59
  259. #define ESF_DZ_TX_OVERRIDE_HOLDOFF_WIDTH 1
  260. #define ESF_DZ_TX_DROP_EVENT_LBN 58
  261. #define ESF_DZ_TX_DROP_EVENT_WIDTH 1
  262. #define ESF_DD_TX_EV_RSVD_LBN 48
  263. #define ESF_DD_TX_EV_RSVD_WIDTH 10
  264. #define ESF_EZ_TCP_UDP_INNER_CHKSUM_ERR_LBN 57
  265. #define ESF_EZ_TCP_UDP_INNER_CHKSUM_ERR_WIDTH 1
  266. #define ESF_EZ_IP_INNER_CHKSUM_ERR_LBN 56
  267. #define ESF_EZ_IP_INNER_CHKSUM_ERR_WIDTH 1
  268. #define ESF_EZ_TX_EV_RSVD_LBN 48
  269. #define ESF_EZ_TX_EV_RSVD_WIDTH 8
  270. #define ESF_DZ_TX_SOFT2_LBN 32
  271. #define ESF_DZ_TX_SOFT2_WIDTH 16
  272. #define ESF_DD_TX_SOFT1_LBN 24
  273. #define ESF_DD_TX_SOFT1_WIDTH 8
  274. #define ESF_EZ_TX_CAN_MERGE_LBN 31
  275. #define ESF_EZ_TX_CAN_MERGE_WIDTH 1
  276. #define ESF_EZ_TX_SOFT1_LBN 24
  277. #define ESF_EZ_TX_SOFT1_WIDTH 7
  278. #define ESF_DZ_TX_QLABEL_LBN 16
  279. #define ESF_DZ_TX_QLABEL_WIDTH 5
  280. #define ESF_DZ_TX_DESCR_INDX_LBN 0
  281. #define ESF_DZ_TX_DESCR_INDX_WIDTH 16
  282. /* TX_KER_DESC */
  283. #define ESF_DZ_TX_KER_TYPE_LBN 63
  284. #define ESF_DZ_TX_KER_TYPE_WIDTH 1
  285. #define ESF_DZ_TX_KER_CONT_LBN 62
  286. #define ESF_DZ_TX_KER_CONT_WIDTH 1
  287. #define ESF_DZ_TX_KER_BYTE_CNT_LBN 48
  288. #define ESF_DZ_TX_KER_BYTE_CNT_WIDTH 14
  289. #define ESF_DZ_TX_KER_BUF_ADDR_LBN 0
  290. #define ESF_DZ_TX_KER_BUF_ADDR_WIDTH 48
  291. /* TX_PIO_DESC */
  292. #define ESF_DZ_TX_PIO_TYPE_LBN 63
  293. #define ESF_DZ_TX_PIO_TYPE_WIDTH 1
  294. #define ESF_DZ_TX_PIO_OPT_LBN 60
  295. #define ESF_DZ_TX_PIO_OPT_WIDTH 3
  296. #define ESE_DZ_TX_OPTION_DESC_PIO 1
  297. #define ESF_DZ_TX_PIO_CONT_LBN 59
  298. #define ESF_DZ_TX_PIO_CONT_WIDTH 1
  299. #define ESF_DZ_TX_PIO_BYTE_CNT_LBN 32
  300. #define ESF_DZ_TX_PIO_BYTE_CNT_WIDTH 12
  301. #define ESF_DZ_TX_PIO_BUF_ADDR_LBN 0
  302. #define ESF_DZ_TX_PIO_BUF_ADDR_WIDTH 12
  303. /* TX_TSO_DESC */
  304. #define ESF_DZ_TX_DESC_IS_OPT_LBN 63
  305. #define ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
  306. #define ESF_DZ_TX_OPTION_TYPE_LBN 60
  307. #define ESF_DZ_TX_OPTION_TYPE_WIDTH 3
  308. #define ESE_DZ_TX_OPTION_DESC_TSO 7
  309. #define ESE_DZ_TX_OPTION_DESC_VLAN 6
  310. #define ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
  311. #define ESF_DZ_TX_TSO_OPTION_TYPE_LBN 56
  312. #define ESF_DZ_TX_TSO_OPTION_TYPE_WIDTH 4
  313. #define ESE_DZ_TX_TSO_OPTION_DESC_ENCAP 1
  314. #define ESE_DZ_TX_TSO_OPTION_DESC_NORMAL 0
  315. #define ESF_DZ_TX_TSO_TCP_FLAGS_LBN 48
  316. #define ESF_DZ_TX_TSO_TCP_FLAGS_WIDTH 8
  317. #define ESF_DZ_TX_TSO_IP_ID_LBN 32
  318. #define ESF_DZ_TX_TSO_IP_ID_WIDTH 16
  319. #define ESF_DZ_TX_TSO_TCP_SEQNO_LBN 0
  320. #define ESF_DZ_TX_TSO_TCP_SEQNO_WIDTH 32
  321. /* TX_TSO_FATSO2A_DESC */
  322. #define ESF_DZ_TX_DESC_IS_OPT_LBN 63
  323. #define ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
  324. #define ESF_DZ_TX_OPTION_TYPE_LBN 60
  325. #define ESF_DZ_TX_OPTION_TYPE_WIDTH 3
  326. #define ESE_DZ_TX_OPTION_DESC_TSO 7
  327. #define ESE_DZ_TX_OPTION_DESC_VLAN 6
  328. #define ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
  329. #define ESF_DZ_TX_TSO_OPTION_TYPE_LBN 56
  330. #define ESF_DZ_TX_TSO_OPTION_TYPE_WIDTH 4
  331. #define ESE_DZ_TX_TSO_OPTION_DESC_FATSO2B 3
  332. #define ESE_DZ_TX_TSO_OPTION_DESC_FATSO2A 2
  333. #define ESE_DZ_TX_TSO_OPTION_DESC_ENCAP 1
  334. #define ESE_DZ_TX_TSO_OPTION_DESC_NORMAL 0
  335. #define ESF_DZ_TX_TSO_IP_ID_LBN 32
  336. #define ESF_DZ_TX_TSO_IP_ID_WIDTH 16
  337. #define ESF_DZ_TX_TSO_TCP_SEQNO_LBN 0
  338. #define ESF_DZ_TX_TSO_TCP_SEQNO_WIDTH 32
  339. /* TX_TSO_FATSO2B_DESC */
  340. #define ESF_DZ_TX_DESC_IS_OPT_LBN 63
  341. #define ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
  342. #define ESF_DZ_TX_OPTION_TYPE_LBN 60
  343. #define ESF_DZ_TX_OPTION_TYPE_WIDTH 3
  344. #define ESE_DZ_TX_OPTION_DESC_TSO 7
  345. #define ESE_DZ_TX_OPTION_DESC_VLAN 6
  346. #define ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
  347. #define ESF_DZ_TX_TSO_OPTION_TYPE_LBN 56
  348. #define ESF_DZ_TX_TSO_OPTION_TYPE_WIDTH 4
  349. #define ESE_DZ_TX_TSO_OPTION_DESC_FATSO2B 3
  350. #define ESE_DZ_TX_TSO_OPTION_DESC_FATSO2A 2
  351. #define ESE_DZ_TX_TSO_OPTION_DESC_ENCAP 1
  352. #define ESE_DZ_TX_TSO_OPTION_DESC_NORMAL 0
  353. #define ESF_DZ_TX_TSO_OUTER_IP_ID_LBN 0
  354. #define ESF_DZ_TX_TSO_OUTER_IP_ID_WIDTH 16
  355. #define ESF_DZ_TX_TSO_TCP_MSS_LBN 32
  356. #define ESF_DZ_TX_TSO_TCP_MSS_WIDTH 16
  357. /*************************************************************************/
  358. /* TX_DESC_UPD_REG: Transmit descriptor update register.
  359. * We may write just one dword of these registers.
  360. */
  361. #define ER_DZ_TX_DESC_UPD_DWORD (ER_DZ_TX_DESC_UPD + 2 * 4)
  362. #define ERF_DZ_TX_DESC_WPTR_DWORD_LBN (ERF_DZ_TX_DESC_WPTR_LBN - 2 * 32)
  363. #define ERF_DZ_TX_DESC_WPTR_DWORD_WIDTH ERF_DZ_TX_DESC_WPTR_WIDTH
  364. /* The workaround for bug 35388 requires multiplexing writes through
  365. * the TX_DESC_UPD_DWORD address.
  366. * TX_DESC_UPD: 0ppppppppppp (bit 11 lost)
  367. * EVQ_RPTR: 1000hhhhhhhh, 1001llllllll (split into high and low bits)
  368. * EVQ_TMR: 11mmvvvvvvvv (bits 8:13 of value lost)
  369. */
  370. #define ER_DD_EVQ_INDIRECT ER_DZ_TX_DESC_UPD_DWORD
  371. #define ERF_DD_EVQ_IND_RPTR_FLAGS_LBN 8
  372. #define ERF_DD_EVQ_IND_RPTR_FLAGS_WIDTH 4
  373. #define EFE_DD_EVQ_IND_RPTR_FLAGS_HIGH 8
  374. #define EFE_DD_EVQ_IND_RPTR_FLAGS_LOW 9
  375. #define ERF_DD_EVQ_IND_RPTR_LBN 0
  376. #define ERF_DD_EVQ_IND_RPTR_WIDTH 8
  377. #define ERF_DD_EVQ_IND_TIMER_FLAGS_LBN 10
  378. #define ERF_DD_EVQ_IND_TIMER_FLAGS_WIDTH 2
  379. #define EFE_DD_EVQ_IND_TIMER_FLAGS 3
  380. #define ERF_DD_EVQ_IND_TIMER_MODE_LBN 8
  381. #define ERF_DD_EVQ_IND_TIMER_MODE_WIDTH 2
  382. #define ERF_DD_EVQ_IND_TIMER_VAL_LBN 0
  383. #define ERF_DD_EVQ_IND_TIMER_VAL_WIDTH 8
  384. /* TX_PIOBUF
  385. * PIO buffer aperture (paged)
  386. */
  387. #define ER_DZ_TX_PIOBUF 4096
  388. #define ER_DZ_TX_PIOBUF_SIZE 2048
  389. /* RX packet prefix */
  390. #define ES_DZ_RX_PREFIX_HASH_OFST 0
  391. #define ES_DZ_RX_PREFIX_VLAN1_OFST 4
  392. #define ES_DZ_RX_PREFIX_VLAN2_OFST 6
  393. #define ES_DZ_RX_PREFIX_PKTLEN_OFST 8
  394. #define ES_DZ_RX_PREFIX_TSTAMP_OFST 10
  395. #define ES_DZ_RX_PREFIX_SIZE 14
  396. #endif /* EFX_EF10_REGS_H */