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