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