ef100_regs.h 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /****************************************************************************
  3. * Driver for Solarflare network controllers and boards
  4. * Copyright 2018 Solarflare Communications Inc.
  5. * Copyright 2019-2022 Xilinx Inc.
  6. *
  7. * This program is free software; you can redistribute it and/or modify it
  8. * under the terms of the GNU General Public License version 2 as published
  9. * by the Free Software Foundation, incorporated herein by reference.
  10. */
  11. #ifndef EFX_EF100_REGS_H
  12. #define EFX_EF100_REGS_H
  13. /* EF100 hardware architecture definitions have a name prefix following
  14. * the format:
  15. *
  16. * E<type>_<min-rev><max-rev>_
  17. *
  18. * The following <type> strings are used:
  19. *
  20. * MMIO register Host memory structure
  21. * -------------------------------------------------------------
  22. * Address R
  23. * Bitfield RF SF
  24. * Enumerator FE SE
  25. *
  26. * <min-rev> is the first revision to which the definition applies:
  27. *
  28. * G: Riverhead
  29. *
  30. * If the definition has been changed or removed in later revisions
  31. * then <max-rev> is the last revision to which the definition applies;
  32. * otherwise it is "Z".
  33. */
  34. /**************************************************************************
  35. *
  36. * EF100 registers and descriptors
  37. *
  38. **************************************************************************
  39. */
  40. /* HW_REV_ID_REG: Hardware revision info register */
  41. #define ER_GZ_HW_REV_ID 0x00000000
  42. /* NIC_REV_ID: SoftNIC revision info register */
  43. #define ER_GZ_NIC_REV_ID 0x00000004
  44. /* NIC_MAGIC: Signature register that should contain a well-known value */
  45. #define ER_GZ_NIC_MAGIC 0x00000008
  46. #define ERF_GZ_NIC_MAGIC_LBN 0
  47. #define ERF_GZ_NIC_MAGIC_WIDTH 32
  48. #define EFE_GZ_NIC_MAGIC_EXPECTED 0xEF100FCB
  49. /* MC_SFT_STATUS: MC soft status */
  50. #define ER_GZ_MC_SFT_STATUS 0x00000010
  51. #define ER_GZ_MC_SFT_STATUS_STEP 4
  52. #define ER_GZ_MC_SFT_STATUS_ROWS 2
  53. /* MC_DB_LWRD_REG: MC doorbell register, low word */
  54. #define ER_GZ_MC_DB_LWRD 0x00000020
  55. /* MC_DB_HWRD_REG: MC doorbell register, high word */
  56. #define ER_GZ_MC_DB_HWRD 0x00000024
  57. /* EVQ_INT_PRIME: Prime EVQ */
  58. #define ER_GZ_EVQ_INT_PRIME 0x00000040
  59. #define ERF_GZ_IDX_LBN 16
  60. #define ERF_GZ_IDX_WIDTH 16
  61. #define ERF_GZ_EVQ_ID_LBN 0
  62. #define ERF_GZ_EVQ_ID_WIDTH 16
  63. /* INT_AGG_RING_PRIME: Prime interrupt aggregation ring. */
  64. #define ER_GZ_INT_AGG_RING_PRIME 0x00000048
  65. /* defined as ERF_GZ_IDX_LBN 16; access=WO reset=0x0 */
  66. /* defined as ERF_GZ_IDX_WIDTH 16 */
  67. #define ERF_GZ_RING_ID_LBN 0
  68. #define ERF_GZ_RING_ID_WIDTH 16
  69. /* EVQ_TMR: EVQ timer control */
  70. #define ER_GZ_EVQ_TMR 0x00000104
  71. #define ER_GZ_EVQ_TMR_STEP 65536
  72. #define ER_GZ_EVQ_TMR_ROWS 1024
  73. /* EVQ_UNSOL_CREDIT_GRANT_SEQ: Grant credits for unsolicited events. */
  74. #define ER_GZ_EVQ_UNSOL_CREDIT_GRANT_SEQ 0x00000108
  75. #define ER_GZ_EVQ_UNSOL_CREDIT_GRANT_SEQ_STEP 65536
  76. #define ER_GZ_EVQ_UNSOL_CREDIT_GRANT_SEQ_ROWS 1024
  77. /* EVQ_DESC_CREDIT_GRANT_SEQ: Grant credits for descriptor proxy events. */
  78. #define ER_GZ_EVQ_DESC_CREDIT_GRANT_SEQ 0x00000110
  79. #define ER_GZ_EVQ_DESC_CREDIT_GRANT_SEQ_STEP 65536
  80. #define ER_GZ_EVQ_DESC_CREDIT_GRANT_SEQ_ROWS 1024
  81. /* RX_RING_DOORBELL: Ring Rx doorbell. */
  82. #define ER_GZ_RX_RING_DOORBELL 0x00000180
  83. #define ER_GZ_RX_RING_DOORBELL_STEP 65536
  84. #define ER_GZ_RX_RING_DOORBELL_ROWS 1024
  85. #define ERF_GZ_RX_RING_PIDX_LBN 16
  86. #define ERF_GZ_RX_RING_PIDX_WIDTH 16
  87. /* TX_RING_DOORBELL: Ring Tx doorbell. */
  88. #define ER_GZ_TX_RING_DOORBELL 0x00000200
  89. #define ER_GZ_TX_RING_DOORBELL_STEP 65536
  90. #define ER_GZ_TX_RING_DOORBELL_ROWS 1024
  91. #define ERF_GZ_TX_RING_PIDX_LBN 16
  92. #define ERF_GZ_TX_RING_PIDX_WIDTH 16
  93. /* TX_DESC_PUSH: Tx ring descriptor push. Reserved for future use. */
  94. #define ER_GZ_TX_DESC_PUSH 0x00000210
  95. #define ER_GZ_TX_DESC_PUSH_STEP 65536
  96. #define ER_GZ_TX_DESC_PUSH_ROWS 1024
  97. /* THE_TIME: NIC hardware time */
  98. #define ER_GZ_THE_TIME 0x00000280
  99. #define ER_GZ_THE_TIME_STEP 65536
  100. #define ER_GZ_THE_TIME_ROWS 1024
  101. #define ERF_GZ_THE_TIME_SECS_LBN 32
  102. #define ERF_GZ_THE_TIME_SECS_WIDTH 32
  103. #define ERF_GZ_THE_TIME_NANOS_LBN 2
  104. #define ERF_GZ_THE_TIME_NANOS_WIDTH 30
  105. #define ERF_GZ_THE_TIME_CLOCK_IN_SYNC_LBN 1
  106. #define ERF_GZ_THE_TIME_CLOCK_IN_SYNC_WIDTH 1
  107. #define ERF_GZ_THE_TIME_CLOCK_IS_SET_LBN 0
  108. #define ERF_GZ_THE_TIME_CLOCK_IS_SET_WIDTH 1
  109. /* PARAMS_TLV_LEN: Size of design parameters area in bytes */
  110. #define ER_GZ_PARAMS_TLV_LEN 0x00000c00
  111. #define ER_GZ_PARAMS_TLV_LEN_STEP 65536
  112. #define ER_GZ_PARAMS_TLV_LEN_ROWS 1024
  113. /* PARAMS_TLV: Design parameters */
  114. #define ER_GZ_PARAMS_TLV 0x00000c04
  115. #define ER_GZ_PARAMS_TLV_STEP 65536
  116. #define ER_GZ_PARAMS_TLV_ROWS 1024
  117. /* EW_EMBEDDED_EVENT */
  118. #define ESF_GZ_EV_256_EVENT_LBN 0
  119. #define ESF_GZ_EV_256_EVENT_WIDTH 64
  120. #define ESE_GZ_EW_EMBEDDED_EVENT_STRUCT_SIZE 64
  121. /* NMMU_PAGESZ_2M_ADDR */
  122. #define ESF_GZ_NMMU_2M_PAGE_SIZE_ID_LBN 59
  123. #define ESF_GZ_NMMU_2M_PAGE_SIZE_ID_WIDTH 5
  124. #define ESE_GZ_NMMU_PAGE_SIZE_2M 9
  125. #define ESF_GZ_NMMU_2M_PAGE_ID_LBN 21
  126. #define ESF_GZ_NMMU_2M_PAGE_ID_WIDTH 38
  127. #define ESF_GZ_NMMU_2M_PAGE_OFFSET_LBN 0
  128. #define ESF_GZ_NMMU_2M_PAGE_OFFSET_WIDTH 21
  129. #define ESE_GZ_NMMU_PAGESZ_2M_ADDR_STRUCT_SIZE 64
  130. /* PARAM_TLV */
  131. #define ESF_GZ_TLV_VALUE_LBN 16
  132. #define ESF_GZ_TLV_VALUE_WIDTH 8
  133. #define ESE_GZ_TLV_VALUE_LENMIN 8
  134. #define ESE_GZ_TLV_VALUE_LENMAX 2040
  135. #define ESF_GZ_TLV_LEN_LBN 8
  136. #define ESF_GZ_TLV_LEN_WIDTH 8
  137. #define ESF_GZ_TLV_TYPE_LBN 0
  138. #define ESF_GZ_TLV_TYPE_WIDTH 8
  139. #define ESE_GZ_DP_NMMU_GROUP_SIZE 5
  140. #define ESE_GZ_DP_EVQ_UNSOL_CREDIT_SEQ_BITS 4
  141. #define ESE_GZ_DP_TX_EV_NUM_DESCS_BITS 3
  142. #define ESE_GZ_DP_RX_EV_NUM_PACKETS_BITS 2
  143. #define ESE_GZ_DP_PARTIAL_TSTAMP_SUB_NANO_BITS 1
  144. #define ESE_GZ_DP_PAD 0
  145. #define ESE_GZ_PARAM_TLV_STRUCT_SIZE 24
  146. /* PCI_EXPRESS_XCAP_HDR */
  147. #define ESF_GZ_PCI_EXPRESS_XCAP_NEXT_LBN 20
  148. #define ESF_GZ_PCI_EXPRESS_XCAP_NEXT_WIDTH 12
  149. #define ESF_GZ_PCI_EXPRESS_XCAP_VER_LBN 16
  150. #define ESF_GZ_PCI_EXPRESS_XCAP_VER_WIDTH 4
  151. #define ESE_GZ_PCI_EXPRESS_XCAP_VER_VSEC 1
  152. #define ESF_GZ_PCI_EXPRESS_XCAP_ID_LBN 0
  153. #define ESF_GZ_PCI_EXPRESS_XCAP_ID_WIDTH 16
  154. #define ESE_GZ_PCI_EXPRESS_XCAP_ID_VNDR 0xb
  155. #define ESE_GZ_PCI_EXPRESS_XCAP_HDR_STRUCT_SIZE 32
  156. /* RHEAD_BASE_EVENT */
  157. #define ESF_GZ_E_TYPE_LBN 60
  158. #define ESF_GZ_E_TYPE_WIDTH 4
  159. #define ESF_GZ_EV_EVQ_PHASE_LBN 59
  160. #define ESF_GZ_EV_EVQ_PHASE_WIDTH 1
  161. #define ESE_GZ_RHEAD_BASE_EVENT_STRUCT_SIZE 64
  162. /* RHEAD_EW_EVENT */
  163. #define ESF_GZ_EV_256_EV32_PHASE_LBN 255
  164. #define ESF_GZ_EV_256_EV32_PHASE_WIDTH 1
  165. #define ESF_GZ_EV_256_EV32_TYPE_LBN 251
  166. #define ESF_GZ_EV_256_EV32_TYPE_WIDTH 4
  167. #define ESE_GZ_EF100_EVEW_VIRTQ_DESC 2
  168. #define ESE_GZ_EF100_EVEW_TXQ_DESC 1
  169. #define ESE_GZ_EF100_EVEW_64BIT 0
  170. #define ESE_GZ_RHEAD_EW_EVENT_STRUCT_SIZE 256
  171. /* RX_DESC */
  172. #define ESF_GZ_RX_BUF_ADDR_LBN 0
  173. #define ESF_GZ_RX_BUF_ADDR_WIDTH 64
  174. #define ESE_GZ_RX_DESC_STRUCT_SIZE 64
  175. /* TXQ_DESC_PROXY_EVENT */
  176. #define ESF_GZ_EV_TXQ_DP_VI_ID_LBN 128
  177. #define ESF_GZ_EV_TXQ_DP_VI_ID_WIDTH 16
  178. #define ESF_GZ_EV_TXQ_DP_TXQ_DESC_LBN 0
  179. #define ESF_GZ_EV_TXQ_DP_TXQ_DESC_WIDTH 128
  180. #define ESE_GZ_TXQ_DESC_PROXY_EVENT_STRUCT_SIZE 144
  181. /* TX_DESC_TYPE */
  182. #define ESF_GZ_TX_DESC_TYPE_LBN 124
  183. #define ESF_GZ_TX_DESC_TYPE_WIDTH 4
  184. #define ESE_GZ_TX_DESC_TYPE_DESC2CMPT 7
  185. #define ESE_GZ_TX_DESC_TYPE_MEM2MEM 4
  186. #define ESE_GZ_TX_DESC_TYPE_SEG 3
  187. #define ESE_GZ_TX_DESC_TYPE_TSO 2
  188. #define ESE_GZ_TX_DESC_TYPE_PREFIX 1
  189. #define ESE_GZ_TX_DESC_TYPE_SEND 0
  190. #define ESE_GZ_TX_DESC_TYPE_STRUCT_SIZE 128
  191. /* VIRTQ_DESC_PROXY_EVENT */
  192. #define ESF_GZ_EV_VQ_DP_AVAIL_ENTRY_LBN 144
  193. #define ESF_GZ_EV_VQ_DP_AVAIL_ENTRY_WIDTH 16
  194. #define ESF_GZ_EV_VQ_DP_VI_ID_LBN 128
  195. #define ESF_GZ_EV_VQ_DP_VI_ID_WIDTH 16
  196. #define ESF_GZ_EV_VQ_DP_VIRTQ_DESC_LBN 0
  197. #define ESF_GZ_EV_VQ_DP_VIRTQ_DESC_WIDTH 128
  198. #define ESE_GZ_VIRTQ_DESC_PROXY_EVENT_STRUCT_SIZE 160
  199. /* XIL_CFGBAR_TBL_ENTRY */
  200. #define ESF_GZ_CFGBAR_CONT_CAP_OFF_HI_LBN 96
  201. #define ESF_GZ_CFGBAR_CONT_CAP_OFF_HI_WIDTH 32
  202. #define ESF_GZ_CFGBAR_CONT_CAP_OFFSET_LBN 68
  203. #define ESF_GZ_CFGBAR_CONT_CAP_OFFSET_WIDTH 60
  204. #define ESE_GZ_CONT_CAP_OFFSET_BYTES_SHIFT 4
  205. #define ESF_GZ_CFGBAR_EF100_FUNC_CTL_WIN_OFF_LBN 67
  206. #define ESF_GZ_CFGBAR_EF100_FUNC_CTL_WIN_OFF_WIDTH 29
  207. #define ESE_GZ_EF100_FUNC_CTL_WIN_OFF_SHIFT 4
  208. #define ESF_GZ_CFGBAR_CONT_CAP_OFF_LO_LBN 68
  209. #define ESF_GZ_CFGBAR_CONT_CAP_OFF_LO_WIDTH 28
  210. #define ESF_GZ_CFGBAR_CONT_CAP_RSV_LBN 67
  211. #define ESF_GZ_CFGBAR_CONT_CAP_RSV_WIDTH 1
  212. #define ESF_GZ_CFGBAR_EF100_BAR_LBN 64
  213. #define ESF_GZ_CFGBAR_EF100_BAR_WIDTH 3
  214. #define ESE_GZ_CFGBAR_EF100_BAR_NUM_INVALID 7
  215. #define ESE_GZ_CFGBAR_EF100_BAR_NUM_EXPANSION_ROM 6
  216. #define ESF_GZ_CFGBAR_CONT_CAP_BAR_LBN 64
  217. #define ESF_GZ_CFGBAR_CONT_CAP_BAR_WIDTH 3
  218. #define ESE_GZ_CFGBAR_CONT_CAP_BAR_NUM_INVALID 7
  219. #define ESE_GZ_CFGBAR_CONT_CAP_BAR_NUM_EXPANSION_ROM 6
  220. #define ESF_GZ_CFGBAR_ENTRY_SIZE_LBN 32
  221. #define ESF_GZ_CFGBAR_ENTRY_SIZE_WIDTH 32
  222. #define ESE_GZ_CFGBAR_ENTRY_SIZE_EF100 12
  223. #define ESE_GZ_CFGBAR_ENTRY_HEADER_SIZE 8
  224. #define ESF_GZ_CFGBAR_ENTRY_LAST_LBN 28
  225. #define ESF_GZ_CFGBAR_ENTRY_LAST_WIDTH 1
  226. #define ESF_GZ_CFGBAR_ENTRY_REV_LBN 20
  227. #define ESF_GZ_CFGBAR_ENTRY_REV_WIDTH 8
  228. #define ESE_GZ_CFGBAR_ENTRY_REV_EF100 0
  229. #define ESF_GZ_CFGBAR_ENTRY_FORMAT_LBN 0
  230. #define ESF_GZ_CFGBAR_ENTRY_FORMAT_WIDTH 20
  231. #define ESE_GZ_CFGBAR_ENTRY_LAST 0xfffff
  232. #define ESE_GZ_CFGBAR_ENTRY_CONT_CAP_ADDR 0xffffe
  233. #define ESE_GZ_CFGBAR_ENTRY_EF100 0xef100
  234. #define ESE_GZ_XIL_CFGBAR_TBL_ENTRY_STRUCT_SIZE 128
  235. /* XIL_CFGBAR_VSEC */
  236. #define ESF_GZ_VSEC_TBL_OFF_HI_LBN 64
  237. #define ESF_GZ_VSEC_TBL_OFF_HI_WIDTH 32
  238. #define ESE_GZ_VSEC_TBL_OFF_HI_BYTES_SHIFT 32
  239. #define ESF_GZ_VSEC_TBL_OFF_LO_LBN 36
  240. #define ESF_GZ_VSEC_TBL_OFF_LO_WIDTH 28
  241. #define ESE_GZ_VSEC_TBL_OFF_LO_BYTES_SHIFT 4
  242. #define ESF_GZ_VSEC_TBL_BAR_LBN 32
  243. #define ESF_GZ_VSEC_TBL_BAR_WIDTH 4
  244. #define ESE_GZ_VSEC_BAR_NUM_INVALID 7
  245. #define ESE_GZ_VSEC_BAR_NUM_EXPANSION_ROM 6
  246. #define ESF_GZ_VSEC_LEN_LBN 20
  247. #define ESF_GZ_VSEC_LEN_WIDTH 12
  248. #define ESE_GZ_VSEC_LEN_HIGH_OFFT 16
  249. #define ESE_GZ_VSEC_LEN_MIN 12
  250. #define ESF_GZ_VSEC_VER_LBN 16
  251. #define ESF_GZ_VSEC_VER_WIDTH 4
  252. #define ESE_GZ_VSEC_VER_XIL_CFGBAR 0
  253. #define ESF_GZ_VSEC_ID_LBN 0
  254. #define ESF_GZ_VSEC_ID_WIDTH 16
  255. #define ESE_GZ_XILINX_VSEC_ID 0x20
  256. #define ESE_GZ_XIL_CFGBAR_VSEC_STRUCT_SIZE 96
  257. /* rh_egres_hclass */
  258. #define ESF_GZ_RX_PREFIX_HCLASS_TUN_OUTER_L4_CSUM_LBN 15
  259. #define ESF_GZ_RX_PREFIX_HCLASS_TUN_OUTER_L4_CSUM_WIDTH 1
  260. #define ESF_GZ_RX_PREFIX_HCLASS_TUN_OUTER_L3_CLASS_LBN 13
  261. #define ESF_GZ_RX_PREFIX_HCLASS_TUN_OUTER_L3_CLASS_WIDTH 2
  262. #define ESF_GZ_RX_PREFIX_HCLASS_NT_OR_INNER_L4_CSUM_LBN 12
  263. #define ESF_GZ_RX_PREFIX_HCLASS_NT_OR_INNER_L4_CSUM_WIDTH 1
  264. #define ESF_GZ_RX_PREFIX_HCLASS_NT_OR_INNER_L4_CLASS_LBN 10
  265. #define ESF_GZ_RX_PREFIX_HCLASS_NT_OR_INNER_L4_CLASS_WIDTH 2
  266. #define ESF_GZ_RX_PREFIX_HCLASS_NT_OR_INNER_L3_CLASS_LBN 8
  267. #define ESF_GZ_RX_PREFIX_HCLASS_NT_OR_INNER_L3_CLASS_WIDTH 2
  268. #define ESF_GZ_RX_PREFIX_HCLASS_TUNNEL_CLASS_LBN 5
  269. #define ESF_GZ_RX_PREFIX_HCLASS_TUNNEL_CLASS_WIDTH 3
  270. #define ESF_GZ_RX_PREFIX_HCLASS_L2_N_VLAN_LBN 3
  271. #define ESF_GZ_RX_PREFIX_HCLASS_L2_N_VLAN_WIDTH 2
  272. #define ESF_GZ_RX_PREFIX_HCLASS_L2_CLASS_LBN 2
  273. #define ESF_GZ_RX_PREFIX_HCLASS_L2_CLASS_WIDTH 1
  274. #define ESF_GZ_RX_PREFIX_HCLASS_L2_STATUS_LBN 0
  275. #define ESF_GZ_RX_PREFIX_HCLASS_L2_STATUS_WIDTH 2
  276. #define ESE_GZ_RH_EGRES_HCLASS_STRUCT_SIZE 16
  277. /* sf_driver */
  278. #define ESF_GZ_DRIVER_E_TYPE_LBN 60
  279. #define ESF_GZ_DRIVER_E_TYPE_WIDTH 4
  280. #define ESF_GZ_DRIVER_PHASE_LBN 59
  281. #define ESF_GZ_DRIVER_PHASE_WIDTH 1
  282. #define ESF_GZ_DRIVER_DATA_LBN 0
  283. #define ESF_GZ_DRIVER_DATA_WIDTH 59
  284. #define ESE_GZ_SF_DRIVER_STRUCT_SIZE 64
  285. /* sf_ev_rsvd */
  286. #define ESF_GZ_EV_RSVD_TBD_NEXT_LBN 34
  287. #define ESF_GZ_EV_RSVD_TBD_NEXT_WIDTH 3
  288. #define ESF_GZ_EV_RSVD_EVENT_GEN_FLAGS_LBN 30
  289. #define ESF_GZ_EV_RSVD_EVENT_GEN_FLAGS_WIDTH 4
  290. #define ESF_GZ_EV_RSVD_SRC_QID_LBN 18
  291. #define ESF_GZ_EV_RSVD_SRC_QID_WIDTH 12
  292. #define ESF_GZ_EV_RSVD_SEQ_NUM_LBN 2
  293. #define ESF_GZ_EV_RSVD_SEQ_NUM_WIDTH 16
  294. #define ESF_GZ_EV_RSVD_TBD_LBN 0
  295. #define ESF_GZ_EV_RSVD_TBD_WIDTH 2
  296. #define ESE_GZ_SF_EV_RSVD_STRUCT_SIZE 37
  297. /* sf_flush_evnt */
  298. #define ESF_GZ_EV_FLSH_E_TYPE_LBN 60
  299. #define ESF_GZ_EV_FLSH_E_TYPE_WIDTH 4
  300. #define ESF_GZ_EV_FLSH_PHASE_LBN 59
  301. #define ESF_GZ_EV_FLSH_PHASE_WIDTH 1
  302. #define ESF_GZ_EV_FLSH_SUB_TYPE_LBN 53
  303. #define ESF_GZ_EV_FLSH_SUB_TYPE_WIDTH 6
  304. #define ESF_GZ_EV_FLSH_RSVD_LBN 10
  305. #define ESF_GZ_EV_FLSH_RSVD_WIDTH 43
  306. #define ESF_GZ_EV_FLSH_LABEL_LBN 4
  307. #define ESF_GZ_EV_FLSH_LABEL_WIDTH 6
  308. #define ESF_GZ_EV_FLSH_FLUSH_TYPE_LBN 0
  309. #define ESF_GZ_EV_FLSH_FLUSH_TYPE_WIDTH 4
  310. #define ESE_GZ_SF_FLUSH_EVNT_STRUCT_SIZE 64
  311. /* sf_rx_pkts */
  312. #define ESF_GZ_EV_RXPKTS_E_TYPE_LBN 60
  313. #define ESF_GZ_EV_RXPKTS_E_TYPE_WIDTH 4
  314. #define ESF_GZ_EV_RXPKTS_PHASE_LBN 59
  315. #define ESF_GZ_EV_RXPKTS_PHASE_WIDTH 1
  316. #define ESF_GZ_EV_RXPKTS_RSVD_LBN 22
  317. #define ESF_GZ_EV_RXPKTS_RSVD_WIDTH 37
  318. #define ESF_GZ_EV_RXPKTS_Q_LABEL_LBN 16
  319. #define ESF_GZ_EV_RXPKTS_Q_LABEL_WIDTH 6
  320. #define ESF_GZ_EV_RXPKTS_NUM_PKT_LBN 0
  321. #define ESF_GZ_EV_RXPKTS_NUM_PKT_WIDTH 16
  322. #define ESE_GZ_SF_RX_PKTS_STRUCT_SIZE 64
  323. /* sf_rx_prefix */
  324. #define ESF_GZ_RX_PREFIX_VLAN_STRIP_TCI_LBN 160
  325. #define ESF_GZ_RX_PREFIX_VLAN_STRIP_TCI_WIDTH 16
  326. #define ESF_GZ_RX_PREFIX_CSUM_FRAME_LBN 144
  327. #define ESF_GZ_RX_PREFIX_CSUM_FRAME_WIDTH 16
  328. #define ESF_GZ_RX_PREFIX_INGRESS_MPORT_LBN 128
  329. #define ESF_GZ_RX_PREFIX_INGRESS_MPORT_WIDTH 16
  330. #define ESF_GZ_RX_PREFIX_USER_MARK_LBN 96
  331. #define ESF_GZ_RX_PREFIX_USER_MARK_WIDTH 32
  332. #define ESF_GZ_RX_PREFIX_RSS_HASH_LBN 64
  333. #define ESF_GZ_RX_PREFIX_RSS_HASH_WIDTH 32
  334. #define ESF_GZ_RX_PREFIX_PARTIAL_TSTAMP_LBN 34
  335. #define ESF_GZ_RX_PREFIX_PARTIAL_TSTAMP_WIDTH 30
  336. #define ESF_GZ_RX_PREFIX_VSWITCH_STATUS_LBN 33
  337. #define ESF_GZ_RX_PREFIX_VSWITCH_STATUS_WIDTH 1
  338. #define ESF_GZ_RX_PREFIX_VLAN_STRIPPED_LBN 32
  339. #define ESF_GZ_RX_PREFIX_VLAN_STRIPPED_WIDTH 1
  340. #define ESF_GZ_RX_PREFIX_CLASS_LBN 16
  341. #define ESF_GZ_RX_PREFIX_CLASS_WIDTH 16
  342. #define ESF_GZ_RX_PREFIX_USER_FLAG_LBN 15
  343. #define ESF_GZ_RX_PREFIX_USER_FLAG_WIDTH 1
  344. #define ESF_GZ_RX_PREFIX_RSS_HASH_VALID_LBN 14
  345. #define ESF_GZ_RX_PREFIX_RSS_HASH_VALID_WIDTH 1
  346. #define ESF_GZ_RX_PREFIX_LENGTH_LBN 0
  347. #define ESF_GZ_RX_PREFIX_LENGTH_WIDTH 14
  348. #define ESE_GZ_SF_RX_PREFIX_STRUCT_SIZE 176
  349. /* sf_rxtx_generic */
  350. #define ESF_GZ_EV_BARRIER_LBN 167
  351. #define ESF_GZ_EV_BARRIER_WIDTH 1
  352. #define ESF_GZ_EV_RSVD_LBN 130
  353. #define ESF_GZ_EV_RSVD_WIDTH 37
  354. #define ESF_GZ_EV_DPRXY_LBN 129
  355. #define ESF_GZ_EV_DPRXY_WIDTH 1
  356. #define ESF_GZ_EV_VIRTIO_LBN 128
  357. #define ESF_GZ_EV_VIRTIO_WIDTH 1
  358. #define ESF_GZ_EV_COUNT_LBN 0
  359. #define ESF_GZ_EV_COUNT_WIDTH 128
  360. #define ESE_GZ_SF_RXTX_GENERIC_STRUCT_SIZE 168
  361. /* sf_ts_stamp */
  362. #define ESF_GZ_EV_TS_E_TYPE_LBN 60
  363. #define ESF_GZ_EV_TS_E_TYPE_WIDTH 4
  364. #define ESF_GZ_EV_TS_PHASE_LBN 59
  365. #define ESF_GZ_EV_TS_PHASE_WIDTH 1
  366. #define ESF_GZ_EV_TS_RSVD_LBN 56
  367. #define ESF_GZ_EV_TS_RSVD_WIDTH 3
  368. #define ESF_GZ_EV_TS_STATUS_LBN 54
  369. #define ESF_GZ_EV_TS_STATUS_WIDTH 2
  370. #define ESF_GZ_EV_TS_Q_LABEL_LBN 48
  371. #define ESF_GZ_EV_TS_Q_LABEL_WIDTH 6
  372. #define ESF_GZ_EV_TS_DESC_ID_LBN 32
  373. #define ESF_GZ_EV_TS_DESC_ID_WIDTH 16
  374. #define ESF_GZ_EV_TS_PARTIAL_STAMP_LBN 0
  375. #define ESF_GZ_EV_TS_PARTIAL_STAMP_WIDTH 32
  376. #define ESE_GZ_SF_TS_STAMP_STRUCT_SIZE 64
  377. /* sf_tx_cmplt */
  378. #define ESF_GZ_EV_TXCMPL_E_TYPE_LBN 60
  379. #define ESF_GZ_EV_TXCMPL_E_TYPE_WIDTH 4
  380. #define ESF_GZ_EV_TXCMPL_PHASE_LBN 59
  381. #define ESF_GZ_EV_TXCMPL_PHASE_WIDTH 1
  382. #define ESF_GZ_EV_TXCMPL_RSVD_LBN 22
  383. #define ESF_GZ_EV_TXCMPL_RSVD_WIDTH 37
  384. #define ESF_GZ_EV_TXCMPL_Q_LABEL_LBN 16
  385. #define ESF_GZ_EV_TXCMPL_Q_LABEL_WIDTH 6
  386. #define ESF_GZ_EV_TXCMPL_NUM_DESC_LBN 0
  387. #define ESF_GZ_EV_TXCMPL_NUM_DESC_WIDTH 16
  388. #define ESE_GZ_SF_TX_CMPLT_STRUCT_SIZE 64
  389. /* sf_tx_desc2cmpt_dsc_fmt */
  390. #define ESF_GZ_D2C_TGT_VI_ID_LBN 108
  391. #define ESF_GZ_D2C_TGT_VI_ID_WIDTH 16
  392. #define ESF_GZ_D2C_CMPT2_LBN 107
  393. #define ESF_GZ_D2C_CMPT2_WIDTH 1
  394. #define ESF_GZ_D2C_ABS_VI_ID_LBN 106
  395. #define ESF_GZ_D2C_ABS_VI_ID_WIDTH 1
  396. #define ESF_GZ_D2C_ORDERED_LBN 105
  397. #define ESF_GZ_D2C_ORDERED_WIDTH 1
  398. #define ESF_GZ_D2C_SKIP_N_LBN 97
  399. #define ESF_GZ_D2C_SKIP_N_WIDTH 8
  400. #define ESF_GZ_D2C_RSVD_LBN 64
  401. #define ESF_GZ_D2C_RSVD_WIDTH 33
  402. #define ESF_GZ_D2C_COMPLETION_LBN 0
  403. #define ESF_GZ_D2C_COMPLETION_WIDTH 64
  404. #define ESE_GZ_SF_TX_DESC2CMPT_DSC_FMT_STRUCT_SIZE 124
  405. /* sf_tx_mem2mem_dsc_fmt */
  406. #define ESF_GZ_M2M_ADDR_SPC_EN_LBN 123
  407. #define ESF_GZ_M2M_ADDR_SPC_EN_WIDTH 1
  408. #define ESF_GZ_M2M_TRANSLATE_ADDR_LBN 122
  409. #define ESF_GZ_M2M_TRANSLATE_ADDR_WIDTH 1
  410. #define ESF_GZ_M2M_RSVD_LBN 120
  411. #define ESF_GZ_M2M_RSVD_WIDTH 2
  412. #define ESF_GZ_M2M_ADDR_SPC_ID_LBN 84
  413. #define ESF_GZ_M2M_ADDR_SPC_ID_WIDTH 36
  414. #define ESF_GZ_M2M_LEN_MINUS_1_LBN 64
  415. #define ESF_GZ_M2M_LEN_MINUS_1_WIDTH 20
  416. #define ESF_GZ_M2M_ADDR_LBN 0
  417. #define ESF_GZ_M2M_ADDR_WIDTH 64
  418. #define ESE_GZ_SF_TX_MEM2MEM_DSC_FMT_STRUCT_SIZE 124
  419. /* sf_tx_ovr_dsc_fmt */
  420. #define ESF_GZ_TX_PREFIX_MARK_EN_LBN 123
  421. #define ESF_GZ_TX_PREFIX_MARK_EN_WIDTH 1
  422. #define ESF_GZ_TX_PREFIX_INGRESS_MPORT_EN_LBN 122
  423. #define ESF_GZ_TX_PREFIX_INGRESS_MPORT_EN_WIDTH 1
  424. #define ESF_GZ_TX_PREFIX_INLINE_CAPSULE_META_LBN 121
  425. #define ESF_GZ_TX_PREFIX_INLINE_CAPSULE_META_WIDTH 1
  426. #define ESF_GZ_TX_PREFIX_EGRESS_MPORT_EN_LBN 120
  427. #define ESF_GZ_TX_PREFIX_EGRESS_MPORT_EN_WIDTH 1
  428. #define ESF_GZ_TX_PREFIX_RSRVD_LBN 64
  429. #define ESF_GZ_TX_PREFIX_RSRVD_WIDTH 56
  430. #define ESF_GZ_TX_PREFIX_EGRESS_MPORT_LBN 48
  431. #define ESF_GZ_TX_PREFIX_EGRESS_MPORT_WIDTH 16
  432. #define ESF_GZ_TX_PREFIX_INGRESS_MPORT_LBN 32
  433. #define ESF_GZ_TX_PREFIX_INGRESS_MPORT_WIDTH 16
  434. #define ESF_GZ_TX_PREFIX_MARK_LBN 0
  435. #define ESF_GZ_TX_PREFIX_MARK_WIDTH 32
  436. #define ESE_GZ_SF_TX_OVR_DSC_FMT_STRUCT_SIZE 124
  437. /* sf_tx_seg_dsc_fmt */
  438. #define ESF_GZ_TX_SEG_ADDR_SPC_EN_LBN 123
  439. #define ESF_GZ_TX_SEG_ADDR_SPC_EN_WIDTH 1
  440. #define ESF_GZ_TX_SEG_TRANSLATE_ADDR_LBN 122
  441. #define ESF_GZ_TX_SEG_TRANSLATE_ADDR_WIDTH 1
  442. #define ESF_GZ_TX_SEG_RSVD2_LBN 120
  443. #define ESF_GZ_TX_SEG_RSVD2_WIDTH 2
  444. #define ESF_GZ_TX_SEG_ADDR_SPC_ID_LBN 84
  445. #define ESF_GZ_TX_SEG_ADDR_SPC_ID_WIDTH 36
  446. #define ESF_GZ_TX_SEG_RSVD_LBN 80
  447. #define ESF_GZ_TX_SEG_RSVD_WIDTH 4
  448. #define ESF_GZ_TX_SEG_LEN_LBN 64
  449. #define ESF_GZ_TX_SEG_LEN_WIDTH 16
  450. #define ESF_GZ_TX_SEG_ADDR_LBN 0
  451. #define ESF_GZ_TX_SEG_ADDR_WIDTH 64
  452. #define ESE_GZ_SF_TX_SEG_DSC_FMT_STRUCT_SIZE 124
  453. /* sf_tx_std_dsc_fmt */
  454. #define ESF_GZ_TX_SEND_VLAN_INSERT_TCI_LBN 108
  455. #define ESF_GZ_TX_SEND_VLAN_INSERT_TCI_WIDTH 16
  456. #define ESF_GZ_TX_SEND_VLAN_INSERT_EN_LBN 107
  457. #define ESF_GZ_TX_SEND_VLAN_INSERT_EN_WIDTH 1
  458. #define ESF_GZ_TX_SEND_TSTAMP_REQ_LBN 106
  459. #define ESF_GZ_TX_SEND_TSTAMP_REQ_WIDTH 1
  460. #define ESF_GZ_TX_SEND_CSO_OUTER_L4_LBN 105
  461. #define ESF_GZ_TX_SEND_CSO_OUTER_L4_WIDTH 1
  462. #define ESF_GZ_TX_SEND_CSO_OUTER_L3_LBN 104
  463. #define ESF_GZ_TX_SEND_CSO_OUTER_L3_WIDTH 1
  464. #define ESF_GZ_TX_SEND_CSO_INNER_L3_LBN 101
  465. #define ESF_GZ_TX_SEND_CSO_INNER_L3_WIDTH 3
  466. #define ESF_GZ_TX_SEND_RSVD_LBN 99
  467. #define ESF_GZ_TX_SEND_RSVD_WIDTH 2
  468. #define ESF_GZ_TX_SEND_CSO_PARTIAL_EN_LBN 97
  469. #define ESF_GZ_TX_SEND_CSO_PARTIAL_EN_WIDTH 2
  470. #define ESF_GZ_TX_SEND_CSO_PARTIAL_CSUM_W_LBN 92
  471. #define ESF_GZ_TX_SEND_CSO_PARTIAL_CSUM_W_WIDTH 5
  472. #define ESF_GZ_TX_SEND_CSO_PARTIAL_START_W_LBN 83
  473. #define ESF_GZ_TX_SEND_CSO_PARTIAL_START_W_WIDTH 9
  474. #define ESF_GZ_TX_SEND_NUM_SEGS_LBN 78
  475. #define ESF_GZ_TX_SEND_NUM_SEGS_WIDTH 5
  476. #define ESF_GZ_TX_SEND_LEN_LBN 64
  477. #define ESF_GZ_TX_SEND_LEN_WIDTH 14
  478. #define ESF_GZ_TX_SEND_ADDR_LBN 0
  479. #define ESF_GZ_TX_SEND_ADDR_WIDTH 64
  480. #define ESE_GZ_SF_TX_STD_DSC_FMT_STRUCT_SIZE 124
  481. /* sf_tx_tso_dsc_fmt */
  482. #define ESF_GZ_TX_TSO_VLAN_INSERT_TCI_LBN 108
  483. #define ESF_GZ_TX_TSO_VLAN_INSERT_TCI_WIDTH 16
  484. #define ESF_GZ_TX_TSO_VLAN_INSERT_EN_LBN 107
  485. #define ESF_GZ_TX_TSO_VLAN_INSERT_EN_WIDTH 1
  486. #define ESF_GZ_TX_TSO_TSTAMP_REQ_LBN 106
  487. #define ESF_GZ_TX_TSO_TSTAMP_REQ_WIDTH 1
  488. #define ESF_GZ_TX_TSO_CSO_OUTER_L4_LBN 105
  489. #define ESF_GZ_TX_TSO_CSO_OUTER_L4_WIDTH 1
  490. #define ESF_GZ_TX_TSO_CSO_OUTER_L3_LBN 104
  491. #define ESF_GZ_TX_TSO_CSO_OUTER_L3_WIDTH 1
  492. #define ESF_GZ_TX_TSO_CSO_INNER_L3_LBN 101
  493. #define ESF_GZ_TX_TSO_CSO_INNER_L3_WIDTH 3
  494. #define ESF_GZ_TX_TSO_RSVD_LBN 94
  495. #define ESF_GZ_TX_TSO_RSVD_WIDTH 7
  496. #define ESF_GZ_TX_TSO_CSO_INNER_L4_LBN 93
  497. #define ESF_GZ_TX_TSO_CSO_INNER_L4_WIDTH 1
  498. #define ESF_GZ_TX_TSO_INNER_L4_OFF_W_LBN 85
  499. #define ESF_GZ_TX_TSO_INNER_L4_OFF_W_WIDTH 8
  500. #define ESF_GZ_TX_TSO_INNER_L3_OFF_W_LBN 77
  501. #define ESF_GZ_TX_TSO_INNER_L3_OFF_W_WIDTH 8
  502. #define ESF_GZ_TX_TSO_OUTER_L4_OFF_W_LBN 69
  503. #define ESF_GZ_TX_TSO_OUTER_L4_OFF_W_WIDTH 8
  504. #define ESF_GZ_TX_TSO_OUTER_L3_OFF_W_LBN 64
  505. #define ESF_GZ_TX_TSO_OUTER_L3_OFF_W_WIDTH 5
  506. #define ESF_GZ_TX_TSO_PAYLOAD_LEN_LBN 42
  507. #define ESF_GZ_TX_TSO_PAYLOAD_LEN_WIDTH 22
  508. #define ESF_GZ_TX_TSO_HDR_LEN_W_LBN 34
  509. #define ESF_GZ_TX_TSO_HDR_LEN_W_WIDTH 8
  510. #define ESF_GZ_TX_TSO_ED_OUTER_UDP_LEN_LBN 33
  511. #define ESF_GZ_TX_TSO_ED_OUTER_UDP_LEN_WIDTH 1
  512. #define ESF_GZ_TX_TSO_ED_INNER_IP_LEN_LBN 32
  513. #define ESF_GZ_TX_TSO_ED_INNER_IP_LEN_WIDTH 1
  514. #define ESF_GZ_TX_TSO_ED_OUTER_IP_LEN_LBN 31
  515. #define ESF_GZ_TX_TSO_ED_OUTER_IP_LEN_WIDTH 1
  516. #define ESF_GZ_TX_TSO_ED_INNER_IP4_ID_LBN 29
  517. #define ESF_GZ_TX_TSO_ED_INNER_IP4_ID_WIDTH 2
  518. #define ESF_GZ_TX_TSO_ED_OUTER_IP4_ID_LBN 27
  519. #define ESF_GZ_TX_TSO_ED_OUTER_IP4_ID_WIDTH 2
  520. #define ESF_GZ_TX_TSO_PAYLOAD_NUM_SEGS_LBN 17
  521. #define ESF_GZ_TX_TSO_PAYLOAD_NUM_SEGS_WIDTH 10
  522. #define ESF_GZ_TX_TSO_HDR_NUM_SEGS_LBN 14
  523. #define ESF_GZ_TX_TSO_HDR_NUM_SEGS_WIDTH 3
  524. #define ESF_GZ_TX_TSO_MSS_LBN 0
  525. #define ESF_GZ_TX_TSO_MSS_WIDTH 14
  526. #define ESE_GZ_SF_TX_TSO_DSC_FMT_STRUCT_SIZE 124
  527. /* Enum D2VIO_MSG_OP */
  528. #define ESE_GZ_QUE_JBDNE 3
  529. #define ESE_GZ_QUE_EVICT 2
  530. #define ESE_GZ_QUE_EMPTY 1
  531. #define ESE_GZ_NOP 0
  532. /* Enum DESIGN_PARAMS */
  533. #define ESE_EF100_DP_GZ_RX_MAX_RUNT 17
  534. #define ESE_EF100_DP_GZ_VI_STRIDES 16
  535. #define ESE_EF100_DP_GZ_NMMU_PAGE_SIZES 15
  536. #define ESE_EF100_DP_GZ_EVQ_TIMER_TICK_NANOS 14
  537. #define ESE_EF100_DP_GZ_MEM2MEM_MAX_LEN 13
  538. #define ESE_EF100_DP_GZ_COMPAT 12
  539. #define ESE_EF100_DP_GZ_TSO_MAX_NUM_FRAMES 11
  540. #define ESE_EF100_DP_GZ_TSO_MAX_PAYLOAD_NUM_SEGS 10
  541. #define ESE_EF100_DP_GZ_TSO_MAX_PAYLOAD_LEN 9
  542. #define ESE_EF100_DP_GZ_TXQ_SIZE_GRANULARITY 8
  543. #define ESE_EF100_DP_GZ_RXQ_SIZE_GRANULARITY 7
  544. #define ESE_EF100_DP_GZ_TSO_MAX_HDR_NUM_SEGS 6
  545. #define ESE_EF100_DP_GZ_TSO_MAX_HDR_LEN 5
  546. #define ESE_EF100_DP_GZ_RX_L4_CSUM_PROTOCOLS 4
  547. #define ESE_EF100_DP_GZ_NMMU_GROUP_SIZE 3
  548. #define ESE_EF100_DP_GZ_EVQ_UNSOL_CREDIT_SEQ_BITS 2
  549. #define ESE_EF100_DP_GZ_PARTIAL_TSTAMP_SUB_NANO_BITS 1
  550. #define ESE_EF100_DP_GZ_PAD 0
  551. /* Enum DESIGN_PARAM_DEFAULTS */
  552. #define ESE_EF100_DP_GZ_TSO_MAX_PAYLOAD_LEN_DEFAULT 0x3fffff
  553. #define ESE_EF100_DP_GZ_TSO_MAX_NUM_FRAMES_DEFAULT 8192
  554. #define ESE_EF100_DP_GZ_MEM2MEM_MAX_LEN_DEFAULT 8192
  555. #define ESE_EF100_DP_GZ_RX_L4_CSUM_PROTOCOLS_DEFAULT 0x1106
  556. #define ESE_EF100_DP_GZ_TSO_MAX_PAYLOAD_NUM_SEGS_DEFAULT 0x3ff
  557. #define ESE_EF100_DP_GZ_RX_MAX_RUNT_DEFAULT 640
  558. #define ESE_EF100_DP_GZ_EVQ_TIMER_TICK_NANOS_DEFAULT 512
  559. #define ESE_EF100_DP_GZ_NMMU_PAGE_SIZES_DEFAULT 512
  560. #define ESE_EF100_DP_GZ_TSO_MAX_HDR_LEN_DEFAULT 192
  561. #define ESE_EF100_DP_GZ_RXQ_SIZE_GRANULARITY_DEFAULT 64
  562. #define ESE_EF100_DP_GZ_TXQ_SIZE_GRANULARITY_DEFAULT 64
  563. #define ESE_EF100_DP_GZ_NMMU_GROUP_SIZE_DEFAULT 32
  564. #define ESE_EF100_DP_GZ_VI_STRIDES_DEFAULT 16
  565. #define ESE_EF100_DP_GZ_EVQ_UNSOL_CREDIT_SEQ_BITS_DEFAULT 7
  566. #define ESE_EF100_DP_GZ_TSO_MAX_HDR_NUM_SEGS_DEFAULT 4
  567. #define ESE_EF100_DP_GZ_PARTIAL_TSTAMP_SUB_NANO_BITS_DEFAULT 2
  568. #define ESE_EF100_DP_GZ_COMPAT_DEFAULT 0
  569. /* Enum HOST_IF_CONSTANTS */
  570. #define ESE_GZ_FCW_LEN 0x4C
  571. #define ESE_GZ_RX_PKT_PREFIX_LEN 22
  572. /* Enum PCI_CONSTANTS */
  573. #define ESE_GZ_PCI_BASE_CONFIG_SPACE_SIZE 256
  574. #define ESE_GZ_PCI_EXPRESS_XCAP_HDR_SIZE 4
  575. /* Enum RH_DSC_TYPE */
  576. #define ESE_GZ_TX_TOMB 0xF
  577. #define ESE_GZ_TX_VIO 0xE
  578. #define ESE_GZ_TX_TSO_OVRRD 0x8
  579. #define ESE_GZ_TX_D2CMP 0x7
  580. #define ESE_GZ_TX_DATA 0x6
  581. #define ESE_GZ_TX_D2M 0x5
  582. #define ESE_GZ_TX_M2M 0x4
  583. #define ESE_GZ_TX_SEG 0x3
  584. #define ESE_GZ_TX_TSO 0x2
  585. #define ESE_GZ_TX_OVRRD 0x1
  586. #define ESE_GZ_TX_SEND 0x0
  587. /* Enum RH_HCLASS_L2_CLASS */
  588. #define ESE_GZ_RH_HCLASS_L2_CLASS_E2_0123VLAN 1
  589. #define ESE_GZ_RH_HCLASS_L2_CLASS_OTHER 0
  590. /* Enum RH_HCLASS_L2_STATUS */
  591. #define ESE_GZ_RH_HCLASS_L2_STATUS_RESERVED 3
  592. #define ESE_GZ_RH_HCLASS_L2_STATUS_FCS_ERR 2
  593. #define ESE_GZ_RH_HCLASS_L2_STATUS_LEN_ERR 1
  594. #define ESE_GZ_RH_HCLASS_L2_STATUS_OK 0
  595. /* Enum RH_HCLASS_L3_CLASS */
  596. #define ESE_GZ_RH_HCLASS_L3_CLASS_OTHER 3
  597. #define ESE_GZ_RH_HCLASS_L3_CLASS_IP6 2
  598. #define ESE_GZ_RH_HCLASS_L3_CLASS_IP4BAD 1
  599. #define ESE_GZ_RH_HCLASS_L3_CLASS_IP4GOOD 0
  600. /* Enum RH_HCLASS_L4_CLASS */
  601. #define ESE_GZ_RH_HCLASS_L4_CLASS_OTHER 3
  602. #define ESE_GZ_RH_HCLASS_L4_CLASS_FRAG 2
  603. #define ESE_GZ_RH_HCLASS_L4_CLASS_UDP 1
  604. #define ESE_GZ_RH_HCLASS_L4_CLASS_TCP 0
  605. /* Enum RH_HCLASS_L4_CSUM */
  606. #define ESE_GZ_RH_HCLASS_L4_CSUM_GOOD 1
  607. #define ESE_GZ_RH_HCLASS_L4_CSUM_BAD_OR_UNKNOWN 0
  608. /* Enum RH_HCLASS_TUNNEL_CLASS */
  609. #define ESE_GZ_RH_HCLASS_TUNNEL_CLASS_RESERVED_7 7
  610. #define ESE_GZ_RH_HCLASS_TUNNEL_CLASS_RESERVED_6 6
  611. #define ESE_GZ_RH_HCLASS_TUNNEL_CLASS_RESERVED_5 5
  612. #define ESE_GZ_RH_HCLASS_TUNNEL_CLASS_RESERVED_4 4
  613. #define ESE_GZ_RH_HCLASS_TUNNEL_CLASS_GENEVE 3
  614. #define ESE_GZ_RH_HCLASS_TUNNEL_CLASS_NVGRE 2
  615. #define ESE_GZ_RH_HCLASS_TUNNEL_CLASS_VXLAN 1
  616. #define ESE_GZ_RH_HCLASS_TUNNEL_CLASS_NONE 0
  617. /* Enum SF_CTL_EVENT_SUBTYPE */
  618. #define ESE_GZ_EF100_CTL_EV_EVQ_TIMEOUT 0x3
  619. #define ESE_GZ_EF100_CTL_EV_FLUSH 0x2
  620. #define ESE_GZ_EF100_CTL_EV_TIME_SYNC 0x1
  621. #define ESE_GZ_EF100_CTL_EV_UNSOL_OVERFLOW 0x0
  622. /* Enum SF_EVENT_TYPE */
  623. #define ESE_GZ_EF100_EV_DRIVER 0x5
  624. #define ESE_GZ_EF100_EV_MCDI 0x4
  625. #define ESE_GZ_EF100_EV_CONTROL 0x3
  626. #define ESE_GZ_EF100_EV_TX_TIMESTAMP 0x2
  627. #define ESE_GZ_EF100_EV_TX_COMPLETION 0x1
  628. #define ESE_GZ_EF100_EV_RX_PKTS 0x0
  629. /* Enum SF_EW_EVENT_TYPE */
  630. #define ESE_GZ_EF100_EWEV_VIRTQ_DESC 0x2
  631. #define ESE_GZ_EF100_EWEV_TXQ_DESC 0x1
  632. #define ESE_GZ_EF100_EWEV_64BIT 0x0
  633. /* Enum TX_DESC_CSO_PARTIAL_EN */
  634. #define ESE_GZ_TX_DESC_CSO_PARTIAL_EN_TCP 2
  635. #define ESE_GZ_TX_DESC_CSO_PARTIAL_EN_UDP 1
  636. #define ESE_GZ_TX_DESC_CSO_PARTIAL_EN_OFF 0
  637. /* Enum TX_DESC_CS_INNER_L3 */
  638. #define ESE_GZ_TX_DESC_CS_INNER_L3_GENEVE 3
  639. #define ESE_GZ_TX_DESC_CS_INNER_L3_NVGRE 2
  640. #define ESE_GZ_TX_DESC_CS_INNER_L3_VXLAN 1
  641. #define ESE_GZ_TX_DESC_CS_INNER_L3_OFF 0
  642. /* Enum TX_DESC_IP4_ID */
  643. #define ESE_GZ_TX_DESC_IP4_ID_INC_MOD16 2
  644. #define ESE_GZ_TX_DESC_IP4_ID_INC_MOD15 1
  645. #define ESE_GZ_TX_DESC_IP4_ID_NO_OP 0
  646. /* Enum VIRTIO_NET_HDR_F */
  647. #define ESE_GZ_NEEDS_CSUM 0x1
  648. /* Enum VIRTIO_NET_HDR_GSO */
  649. #define ESE_GZ_TCPV6 0x4
  650. #define ESE_GZ_UDP 0x3
  651. #define ESE_GZ_TCPV4 0x1
  652. #define ESE_GZ_NONE 0x0
  653. /**************************************************************************/
  654. #define ESF_GZ_EV_DEBUG_EVENT_GEN_FLAGS_LBN 44
  655. #define ESF_GZ_EV_DEBUG_EVENT_GEN_FLAGS_WIDTH 4
  656. #define ESF_GZ_EV_DEBUG_SRC_QID_LBN 32
  657. #define ESF_GZ_EV_DEBUG_SRC_QID_WIDTH 12
  658. #define ESF_GZ_EV_DEBUG_SEQ_NUM_LBN 16
  659. #define ESF_GZ_EV_DEBUG_SEQ_NUM_WIDTH 16
  660. #endif /* EFX_EF100_REGS_H */