xref: /freebsd/sys/dev/sfxge/common/efx_regs_ef10.h (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
1e948693eSPhilip Paeps /*-
2*4d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
3718cf2ccSPedro F. Giffuni  *
4929c7febSAndrew Rybchenko  * Copyright (c) 2007-2016 Solarflare Communications Inc.
53c838a9fSAndrew Rybchenko  * All rights reserved.
6e948693eSPhilip Paeps  *
7e948693eSPhilip Paeps  * Redistribution and use in source and binary forms, with or without
83c838a9fSAndrew Rybchenko  * modification, are permitted provided that the following conditions are met:
9e948693eSPhilip Paeps  *
103c838a9fSAndrew Rybchenko  * 1. Redistributions of source code must retain the above copyright notice,
113c838a9fSAndrew Rybchenko  *    this list of conditions and the following disclaimer.
123c838a9fSAndrew Rybchenko  * 2. Redistributions in binary form must reproduce the above copyright notice,
133c838a9fSAndrew Rybchenko  *    this list of conditions and the following disclaimer in the documentation
143c838a9fSAndrew Rybchenko  *    and/or other materials provided with the distribution.
153c838a9fSAndrew Rybchenko  *
163c838a9fSAndrew Rybchenko  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
173c838a9fSAndrew Rybchenko  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
183c838a9fSAndrew Rybchenko  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
193c838a9fSAndrew Rybchenko  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
203c838a9fSAndrew Rybchenko  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
213c838a9fSAndrew Rybchenko  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
223c838a9fSAndrew Rybchenko  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
233c838a9fSAndrew Rybchenko  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
243c838a9fSAndrew Rybchenko  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
253c838a9fSAndrew Rybchenko  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
263c838a9fSAndrew Rybchenko  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
273c838a9fSAndrew Rybchenko  *
283c838a9fSAndrew Rybchenko  * The views and conclusions contained in the software and documentation are
293c838a9fSAndrew Rybchenko  * those of the authors and should not be interpreted as representing official
303c838a9fSAndrew Rybchenko  * policies, either expressed or implied, of the FreeBSD Project.
31e948693eSPhilip Paeps  */
32e948693eSPhilip Paeps 
33e948693eSPhilip Paeps #ifndef	_SYS_EFX_EF10_REGS_H
34e948693eSPhilip Paeps #define	_SYS_EFX_EF10_REGS_H
35e948693eSPhilip Paeps 
36e948693eSPhilip Paeps #ifdef	__cplusplus
37e948693eSPhilip Paeps extern "C" {
38e948693eSPhilip Paeps #endif
39e948693eSPhilip Paeps 
40946b5480SAndrew Rybchenko /**************************************************************************
41946b5480SAndrew Rybchenko  * NOTE: the line below marks the start of the autogenerated section
42946b5480SAndrew Rybchenko  * EF10 registers and descriptors
43946b5480SAndrew Rybchenko  *
44946b5480SAndrew Rybchenko  **************************************************************************
45946b5480SAndrew Rybchenko  */
46946b5480SAndrew Rybchenko 
47e948693eSPhilip Paeps /*
48e948693eSPhilip Paeps  * BIU_HW_REV_ID_REG(32bit):
49e948693eSPhilip Paeps  *
50e948693eSPhilip Paeps  */
51e948693eSPhilip Paeps 
523c838a9fSAndrew Rybchenko #define	ER_DZ_BIU_HW_REV_ID_REG_OFST 0x00000000
53f2f14997SAndrew Rybchenko /* hunta0,medforda0,medford2a0=pf_dbell_bar */
543c838a9fSAndrew Rybchenko #define	ER_DZ_BIU_HW_REV_ID_REG_RESET 0xeb14face
553c838a9fSAndrew Rybchenko 
56e948693eSPhilip Paeps #define	ERF_DZ_HW_REV_ID_LBN 0
57e948693eSPhilip Paeps #define	ERF_DZ_HW_REV_ID_WIDTH 32
58e948693eSPhilip Paeps 
59e948693eSPhilip Paeps /*
60e948693eSPhilip Paeps  * BIU_MC_SFT_STATUS_REG(32bit):
61e948693eSPhilip Paeps  *
62e948693eSPhilip Paeps  */
63e948693eSPhilip Paeps 
643c838a9fSAndrew Rybchenko #define	ER_DZ_BIU_MC_SFT_STATUS_REG_OFST 0x00000010
65f2f14997SAndrew Rybchenko /* hunta0,medforda0,medford2a0=pf_dbell_bar */
66e948693eSPhilip Paeps #define	ER_DZ_BIU_MC_SFT_STATUS_REG_STEP 4
67e948693eSPhilip Paeps #define	ER_DZ_BIU_MC_SFT_STATUS_REG_ROWS 8
683c838a9fSAndrew Rybchenko #define	ER_DZ_BIU_MC_SFT_STATUS_REG_RESET 0x1111face
693c838a9fSAndrew Rybchenko 
70e948693eSPhilip Paeps #define	ERF_DZ_MC_SFT_STATUS_LBN 0
71e948693eSPhilip Paeps #define	ERF_DZ_MC_SFT_STATUS_WIDTH 32
72e948693eSPhilip Paeps 
73e948693eSPhilip Paeps /*
74e948693eSPhilip Paeps  * BIU_INT_ISR_REG(32bit):
75e948693eSPhilip Paeps  *
76e948693eSPhilip Paeps  */
77e948693eSPhilip Paeps 
783c838a9fSAndrew Rybchenko #define	ER_DZ_BIU_INT_ISR_REG_OFST 0x00000090
79f2f14997SAndrew Rybchenko /* hunta0,medforda0,medford2a0=pf_dbell_bar */
803c838a9fSAndrew Rybchenko #define	ER_DZ_BIU_INT_ISR_REG_RESET 0x0
813c838a9fSAndrew Rybchenko 
82e948693eSPhilip Paeps #define	ERF_DZ_ISR_REG_LBN 0
83e948693eSPhilip Paeps #define	ERF_DZ_ISR_REG_WIDTH 32
84e948693eSPhilip Paeps 
85e948693eSPhilip Paeps /*
86e948693eSPhilip Paeps  * MC_DB_LWRD_REG(32bit):
87e948693eSPhilip Paeps  *
88e948693eSPhilip Paeps  */
89e948693eSPhilip Paeps 
903c838a9fSAndrew Rybchenko #define	ER_DZ_MC_DB_LWRD_REG_OFST 0x00000200
91f2f14997SAndrew Rybchenko /* hunta0,medforda0,medford2a0=pf_dbell_bar */
923c838a9fSAndrew Rybchenko #define	ER_DZ_MC_DB_LWRD_REG_RESET 0x0
933c838a9fSAndrew Rybchenko 
94e948693eSPhilip Paeps #define	ERF_DZ_MC_DOORBELL_L_LBN 0
95e948693eSPhilip Paeps #define	ERF_DZ_MC_DOORBELL_L_WIDTH 32
96e948693eSPhilip Paeps 
97e948693eSPhilip Paeps /*
98e948693eSPhilip Paeps  * MC_DB_HWRD_REG(32bit):
99e948693eSPhilip Paeps  *
100e948693eSPhilip Paeps  */
101e948693eSPhilip Paeps 
1023c838a9fSAndrew Rybchenko #define	ER_DZ_MC_DB_HWRD_REG_OFST 0x00000204
103f2f14997SAndrew Rybchenko /* hunta0,medforda0,medford2a0=pf_dbell_bar */
1043c838a9fSAndrew Rybchenko #define	ER_DZ_MC_DB_HWRD_REG_RESET 0x0
1053c838a9fSAndrew Rybchenko 
106e948693eSPhilip Paeps #define	ERF_DZ_MC_DOORBELL_H_LBN 0
107e948693eSPhilip Paeps #define	ERF_DZ_MC_DOORBELL_H_WIDTH 32
108e948693eSPhilip Paeps 
109e948693eSPhilip Paeps /*
110e948693eSPhilip Paeps  * EVQ_RPTR_REG(32bit):
111e948693eSPhilip Paeps  *
112e948693eSPhilip Paeps  */
113e948693eSPhilip Paeps 
1143c838a9fSAndrew Rybchenko #define	ER_DZ_EVQ_RPTR_REG_OFST 0x00000400
115f2f14997SAndrew Rybchenko /* hunta0,medforda0,medford2a0=pf_dbell_bar */
1163c838a9fSAndrew Rybchenko #define	ER_DZ_EVQ_RPTR_REG_STEP 8192
117e948693eSPhilip Paeps #define	ER_DZ_EVQ_RPTR_REG_ROWS 2048
1183c838a9fSAndrew Rybchenko #define	ER_DZ_EVQ_RPTR_REG_RESET 0x0
1193c838a9fSAndrew Rybchenko 
120e948693eSPhilip Paeps #define	ERF_DZ_EVQ_RPTR_VLD_LBN 15
121e948693eSPhilip Paeps #define	ERF_DZ_EVQ_RPTR_VLD_WIDTH 1
122e948693eSPhilip Paeps #define	ERF_DZ_EVQ_RPTR_LBN 0
123e948693eSPhilip Paeps #define	ERF_DZ_EVQ_RPTR_WIDTH 15
124e948693eSPhilip Paeps 
125e948693eSPhilip Paeps /*
126f2f14997SAndrew Rybchenko  * EVQ_RPTR_REG_64K(32bit):
127f2f14997SAndrew Rybchenko  *
128f2f14997SAndrew Rybchenko  */
129f2f14997SAndrew Rybchenko 
130f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_RPTR_REG_64K_OFST 0x00000400
131f2f14997SAndrew Rybchenko /* medford2a0=pf_dbell_bar */
132f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_RPTR_REG_64K_STEP 65536
133f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_RPTR_REG_64K_ROWS 2048
134f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_RPTR_REG_64K_RESET 0x0
135f2f14997SAndrew Rybchenko 
136f2f14997SAndrew Rybchenko #define	ERF_FZ_EVQ_RPTR_VLD_LBN 15
137f2f14997SAndrew Rybchenko #define	ERF_FZ_EVQ_RPTR_VLD_WIDTH 1
138f2f14997SAndrew Rybchenko #define	ERF_FZ_EVQ_RPTR_LBN 0
139f2f14997SAndrew Rybchenko #define	ERF_FZ_EVQ_RPTR_WIDTH 15
140f2f14997SAndrew Rybchenko 
141f2f14997SAndrew Rybchenko /*
142f2f14997SAndrew Rybchenko  * EVQ_RPTR_REG_16K(32bit):
143f2f14997SAndrew Rybchenko  *
144f2f14997SAndrew Rybchenko  */
145f2f14997SAndrew Rybchenko 
146f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_RPTR_REG_16K_OFST 0x00000400
147f2f14997SAndrew Rybchenko /* medford2a0=pf_dbell_bar */
148f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_RPTR_REG_16K_STEP 16384
149f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_RPTR_REG_16K_ROWS 2048
150f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_RPTR_REG_16K_RESET 0x0
151f2f14997SAndrew Rybchenko 
152f2f14997SAndrew Rybchenko /* defined as ERF_FZ_EVQ_RPTR_VLD_LBN 15; */
153f2f14997SAndrew Rybchenko /* defined as ERF_FZ_EVQ_RPTR_VLD_WIDTH 1 */
154f2f14997SAndrew Rybchenko /* defined as ERF_FZ_EVQ_RPTR_LBN 0; */
155f2f14997SAndrew Rybchenko /* defined as ERF_FZ_EVQ_RPTR_WIDTH 15 */
156f2f14997SAndrew Rybchenko 
157f2f14997SAndrew Rybchenko /*
158f2f14997SAndrew Rybchenko  * EVQ_TMR_REG_64K(32bit):
159f2f14997SAndrew Rybchenko  *
160f2f14997SAndrew Rybchenko  */
161f2f14997SAndrew Rybchenko 
162f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_TMR_REG_64K_OFST 0x00000420
163f2f14997SAndrew Rybchenko /* medford2a0=pf_dbell_bar */
164f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_TMR_REG_64K_STEP 65536
165f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_TMR_REG_64K_ROWS 2048
166f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_TMR_REG_64K_RESET 0x0
167f2f14997SAndrew Rybchenko 
1682222409bSAndrew Rybchenko #define	ERF_FZ_TC_TMR_REL_VAL_LBN 16
1692222409bSAndrew Rybchenko #define	ERF_FZ_TC_TMR_REL_VAL_WIDTH 14
170f2f14997SAndrew Rybchenko #define	ERF_FZ_TC_TIMER_MODE_LBN 14
171f2f14997SAndrew Rybchenko #define	ERF_FZ_TC_TIMER_MODE_WIDTH 2
172f2f14997SAndrew Rybchenko #define	ERF_FZ_TC_TIMER_VAL_LBN 0
173f2f14997SAndrew Rybchenko #define	ERF_FZ_TC_TIMER_VAL_WIDTH 14
174f2f14997SAndrew Rybchenko 
175f2f14997SAndrew Rybchenko /*
176f2f14997SAndrew Rybchenko  * EVQ_TMR_REG_16K(32bit):
177f2f14997SAndrew Rybchenko  *
178f2f14997SAndrew Rybchenko  */
179f2f14997SAndrew Rybchenko 
180f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_TMR_REG_16K_OFST 0x00000420
181f2f14997SAndrew Rybchenko /* medford2a0=pf_dbell_bar */
182f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_TMR_REG_16K_STEP 16384
183f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_TMR_REG_16K_ROWS 2048
184f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_TMR_REG_16K_RESET 0x0
185f2f14997SAndrew Rybchenko 
1862222409bSAndrew Rybchenko /* defined as ERF_FZ_TC_TMR_REL_VAL_LBN 16; */
1872222409bSAndrew Rybchenko /* defined as ERF_FZ_TC_TMR_REL_VAL_WIDTH 14 */
188f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TC_TIMER_MODE_LBN 14; */
189f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TC_TIMER_MODE_WIDTH 2 */
190f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TC_TIMER_VAL_LBN 0; */
191f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TC_TIMER_VAL_WIDTH 14 */
192f2f14997SAndrew Rybchenko 
193f2f14997SAndrew Rybchenko /*
194e948693eSPhilip Paeps  * EVQ_TMR_REG(32bit):
195e948693eSPhilip Paeps  *
196e948693eSPhilip Paeps  */
197e948693eSPhilip Paeps 
1983c838a9fSAndrew Rybchenko #define	ER_DZ_EVQ_TMR_REG_OFST 0x00000420
199f2f14997SAndrew Rybchenko /* hunta0,medforda0,medford2a0=pf_dbell_bar */
2003c838a9fSAndrew Rybchenko #define	ER_DZ_EVQ_TMR_REG_STEP 8192
201e948693eSPhilip Paeps #define	ER_DZ_EVQ_TMR_REG_ROWS 2048
2023c838a9fSAndrew Rybchenko #define	ER_DZ_EVQ_TMR_REG_RESET 0x0
2033c838a9fSAndrew Rybchenko 
2042222409bSAndrew Rybchenko /* defined as ERF_FZ_TC_TMR_REL_VAL_LBN 16; */
2052222409bSAndrew Rybchenko /* defined as ERF_FZ_TC_TMR_REL_VAL_WIDTH 14 */
206e948693eSPhilip Paeps #define	ERF_DZ_TC_TIMER_MODE_LBN 14
207e948693eSPhilip Paeps #define	ERF_DZ_TC_TIMER_MODE_WIDTH 2
208e948693eSPhilip Paeps #define	ERF_DZ_TC_TIMER_VAL_LBN 0
209e948693eSPhilip Paeps #define	ERF_DZ_TC_TIMER_VAL_WIDTH 14
210e948693eSPhilip Paeps 
211e948693eSPhilip Paeps /*
212f2f14997SAndrew Rybchenko  * RX_DESC_UPD_REG_16K(32bit):
213f2f14997SAndrew Rybchenko  *
214f2f14997SAndrew Rybchenko  */
215f2f14997SAndrew Rybchenko 
216f2f14997SAndrew Rybchenko #define	ER_FZ_RX_DESC_UPD_REG_16K_OFST 0x00000830
217f2f14997SAndrew Rybchenko /* medford2a0=pf_dbell_bar */
218f2f14997SAndrew Rybchenko #define	ER_FZ_RX_DESC_UPD_REG_16K_STEP 16384
219f2f14997SAndrew Rybchenko #define	ER_FZ_RX_DESC_UPD_REG_16K_ROWS 2048
220f2f14997SAndrew Rybchenko #define	ER_FZ_RX_DESC_UPD_REG_16K_RESET 0x0
221f2f14997SAndrew Rybchenko 
222f2f14997SAndrew Rybchenko #define	ERF_FZ_RX_DESC_WPTR_LBN 0
223f2f14997SAndrew Rybchenko #define	ERF_FZ_RX_DESC_WPTR_WIDTH 12
224f2f14997SAndrew Rybchenko 
225f2f14997SAndrew Rybchenko /*
226e948693eSPhilip Paeps  * RX_DESC_UPD_REG(32bit):
227e948693eSPhilip Paeps  *
228e948693eSPhilip Paeps  */
229e948693eSPhilip Paeps 
2303c838a9fSAndrew Rybchenko #define	ER_DZ_RX_DESC_UPD_REG_OFST 0x00000830
231f2f14997SAndrew Rybchenko /* hunta0,medforda0,medford2a0=pf_dbell_bar */
2323c838a9fSAndrew Rybchenko #define	ER_DZ_RX_DESC_UPD_REG_STEP 8192
233e948693eSPhilip Paeps #define	ER_DZ_RX_DESC_UPD_REG_ROWS 2048
2343c838a9fSAndrew Rybchenko #define	ER_DZ_RX_DESC_UPD_REG_RESET 0x0
2353c838a9fSAndrew Rybchenko 
236e948693eSPhilip Paeps #define	ERF_DZ_RX_DESC_WPTR_LBN 0
237e948693eSPhilip Paeps #define	ERF_DZ_RX_DESC_WPTR_WIDTH 12
238e948693eSPhilip Paeps 
239f2f14997SAndrew Rybchenko /*
240f2f14997SAndrew Rybchenko  * RX_DESC_UPD_REG_64K(32bit):
241f2f14997SAndrew Rybchenko  *
242f2f14997SAndrew Rybchenko  */
243f2f14997SAndrew Rybchenko 
244f2f14997SAndrew Rybchenko #define	ER_FZ_RX_DESC_UPD_REG_64K_OFST 0x00000830
245f2f14997SAndrew Rybchenko /* medford2a0=pf_dbell_bar */
246f2f14997SAndrew Rybchenko #define	ER_FZ_RX_DESC_UPD_REG_64K_STEP 65536
247f2f14997SAndrew Rybchenko #define	ER_FZ_RX_DESC_UPD_REG_64K_ROWS 2048
248f2f14997SAndrew Rybchenko #define	ER_FZ_RX_DESC_UPD_REG_64K_RESET 0x0
249f2f14997SAndrew Rybchenko 
250f2f14997SAndrew Rybchenko /* defined as ERF_FZ_RX_DESC_WPTR_LBN 0; */
251f2f14997SAndrew Rybchenko /* defined as ERF_FZ_RX_DESC_WPTR_WIDTH 12 */
252f2f14997SAndrew Rybchenko 
253f2f14997SAndrew Rybchenko /*
254f2f14997SAndrew Rybchenko  * TX_DESC_UPD_REG_64K(96bit):
255f2f14997SAndrew Rybchenko  *
256f2f14997SAndrew Rybchenko  */
257f2f14997SAndrew Rybchenko 
258f2f14997SAndrew Rybchenko #define	ER_FZ_TX_DESC_UPD_REG_64K_OFST 0x00000a10
259f2f14997SAndrew Rybchenko /* medford2a0=pf_dbell_bar */
260f2f14997SAndrew Rybchenko #define	ER_FZ_TX_DESC_UPD_REG_64K_STEP 65536
261f2f14997SAndrew Rybchenko #define	ER_FZ_TX_DESC_UPD_REG_64K_ROWS 2048
262f2f14997SAndrew Rybchenko #define	ER_FZ_TX_DESC_UPD_REG_64K_RESET 0x0
263f2f14997SAndrew Rybchenko 
264f2f14997SAndrew Rybchenko #define	ERF_FZ_RSVD_LBN 76
265f2f14997SAndrew Rybchenko #define	ERF_FZ_RSVD_WIDTH 20
266f2f14997SAndrew Rybchenko #define	ERF_FZ_TX_DESC_WPTR_LBN 64
267f2f14997SAndrew Rybchenko #define	ERF_FZ_TX_DESC_WPTR_WIDTH 12
268f2f14997SAndrew Rybchenko #define	ERF_FZ_TX_DESC_HWORD_LBN 32
269f2f14997SAndrew Rybchenko #define	ERF_FZ_TX_DESC_HWORD_WIDTH 32
270f2f14997SAndrew Rybchenko #define	ERF_FZ_TX_DESC_LWORD_LBN 0
271f2f14997SAndrew Rybchenko #define	ERF_FZ_TX_DESC_LWORD_WIDTH 32
272f2f14997SAndrew Rybchenko 
273f2f14997SAndrew Rybchenko /*
274f2f14997SAndrew Rybchenko  * TX_DESC_UPD_REG_16K(96bit):
275f2f14997SAndrew Rybchenko  *
276f2f14997SAndrew Rybchenko  */
277f2f14997SAndrew Rybchenko 
278f2f14997SAndrew Rybchenko #define	ER_FZ_TX_DESC_UPD_REG_16K_OFST 0x00000a10
279f2f14997SAndrew Rybchenko /* medford2a0=pf_dbell_bar */
280f2f14997SAndrew Rybchenko #define	ER_FZ_TX_DESC_UPD_REG_16K_STEP 16384
281f2f14997SAndrew Rybchenko #define	ER_FZ_TX_DESC_UPD_REG_16K_ROWS 2048
282f2f14997SAndrew Rybchenko #define	ER_FZ_TX_DESC_UPD_REG_16K_RESET 0x0
283f2f14997SAndrew Rybchenko 
284f2f14997SAndrew Rybchenko /* defined as ERF_FZ_RSVD_LBN 76; */
285f2f14997SAndrew Rybchenko /* defined as ERF_FZ_RSVD_WIDTH 20 */
286f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TX_DESC_WPTR_LBN 64; */
287f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TX_DESC_WPTR_WIDTH 12 */
288f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TX_DESC_HWORD_LBN 32; */
289f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TX_DESC_HWORD_WIDTH 32 */
290f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TX_DESC_LWORD_LBN 0; */
291f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TX_DESC_LWORD_WIDTH 32 */
292f2f14997SAndrew Rybchenko 
293e948693eSPhilip Paeps /*
2943c838a9fSAndrew Rybchenko  * TX_DESC_UPD_REG(96bit):
295e948693eSPhilip Paeps  *
296e948693eSPhilip Paeps  */
297e948693eSPhilip Paeps 
2983c838a9fSAndrew Rybchenko #define	ER_DZ_TX_DESC_UPD_REG_OFST 0x00000a10
299f2f14997SAndrew Rybchenko /* hunta0,medforda0,medford2a0=pf_dbell_bar */
3003c838a9fSAndrew Rybchenko #define	ER_DZ_TX_DESC_UPD_REG_STEP 8192
301e948693eSPhilip Paeps #define	ER_DZ_TX_DESC_UPD_REG_ROWS 2048
3023c838a9fSAndrew Rybchenko #define	ER_DZ_TX_DESC_UPD_REG_RESET 0x0
303e948693eSPhilip Paeps 
3043c838a9fSAndrew Rybchenko #define	ERF_DZ_RSVD_LBN 76
3053c838a9fSAndrew Rybchenko #define	ERF_DZ_RSVD_WIDTH 20
306e948693eSPhilip Paeps #define	ERF_DZ_TX_DESC_WPTR_LBN 64
307e948693eSPhilip Paeps #define	ERF_DZ_TX_DESC_WPTR_WIDTH 12
308e948693eSPhilip Paeps #define	ERF_DZ_TX_DESC_HWORD_LBN 32
309e948693eSPhilip Paeps #define	ERF_DZ_TX_DESC_HWORD_WIDTH 32
310e948693eSPhilip Paeps #define	ERF_DZ_TX_DESC_LWORD_LBN 0
311e948693eSPhilip Paeps #define	ERF_DZ_TX_DESC_LWORD_WIDTH 32
312e948693eSPhilip Paeps 
313e948693eSPhilip Paeps /* ES_DRIVER_EV */
314e948693eSPhilip Paeps #define	ESF_DZ_DRV_CODE_LBN 60
315e948693eSPhilip Paeps #define	ESF_DZ_DRV_CODE_WIDTH 4
316e948693eSPhilip Paeps #define	ESF_DZ_DRV_SUB_CODE_LBN 56
317e948693eSPhilip Paeps #define	ESF_DZ_DRV_SUB_CODE_WIDTH 4
3183c838a9fSAndrew Rybchenko #define	ESE_DZ_DRV_TIMER_EV 3
3193c838a9fSAndrew Rybchenko #define	ESE_DZ_DRV_START_UP_EV 2
3203c838a9fSAndrew Rybchenko #define	ESE_DZ_DRV_WAKE_UP_EV 1
321e948693eSPhilip Paeps #define	ESF_DZ_DRV_SUB_DATA_DW0_LBN 0
322e948693eSPhilip Paeps #define	ESF_DZ_DRV_SUB_DATA_DW0_WIDTH 32
323e948693eSPhilip Paeps #define	ESF_DZ_DRV_SUB_DATA_DW1_LBN 32
324e948693eSPhilip Paeps #define	ESF_DZ_DRV_SUB_DATA_DW1_WIDTH 24
325e948693eSPhilip Paeps #define	ESF_DZ_DRV_SUB_DATA_LBN 0
326e948693eSPhilip Paeps #define	ESF_DZ_DRV_SUB_DATA_WIDTH 56
327e948693eSPhilip Paeps #define	ESF_DZ_DRV_EVQ_ID_LBN 0
328e948693eSPhilip Paeps #define	ESF_DZ_DRV_EVQ_ID_WIDTH 14
329e948693eSPhilip Paeps #define	ESF_DZ_DRV_TMR_ID_LBN 0
330e948693eSPhilip Paeps #define	ESF_DZ_DRV_TMR_ID_WIDTH 14
331e948693eSPhilip Paeps 
332e948693eSPhilip Paeps /* ES_EVENT_ENTRY */
333e948693eSPhilip Paeps #define	ESF_DZ_EV_CODE_LBN 60
334e948693eSPhilip Paeps #define	ESF_DZ_EV_CODE_WIDTH 4
335e948693eSPhilip Paeps #define	ESE_DZ_EV_CODE_MCDI_EV 12
336e948693eSPhilip Paeps #define	ESE_DZ_EV_CODE_DRIVER_EV 5
337e948693eSPhilip Paeps #define	ESE_DZ_EV_CODE_TX_EV 2
338e948693eSPhilip Paeps #define	ESE_DZ_EV_CODE_RX_EV 0
339e948693eSPhilip Paeps #define	ESE_DZ_OTHER other
340e948693eSPhilip Paeps #define	ESF_DZ_EV_DATA_DW0_LBN 0
341e948693eSPhilip Paeps #define	ESF_DZ_EV_DATA_DW0_WIDTH 32
342e948693eSPhilip Paeps #define	ESF_DZ_EV_DATA_DW1_LBN 32
343e948693eSPhilip Paeps #define	ESF_DZ_EV_DATA_DW1_WIDTH 28
344e948693eSPhilip Paeps #define	ESF_DZ_EV_DATA_LBN 0
345e948693eSPhilip Paeps #define	ESF_DZ_EV_DATA_WIDTH 60
346e948693eSPhilip Paeps 
347e948693eSPhilip Paeps /* ES_MC_EVENT */
348e948693eSPhilip Paeps #define	ESF_DZ_MC_CODE_LBN 60
349e948693eSPhilip Paeps #define	ESF_DZ_MC_CODE_WIDTH 4
350e948693eSPhilip Paeps #define	ESF_DZ_MC_OVERRIDE_HOLDOFF_LBN 59
351e948693eSPhilip Paeps #define	ESF_DZ_MC_OVERRIDE_HOLDOFF_WIDTH 1
352e948693eSPhilip Paeps #define	ESF_DZ_MC_DROP_EVENT_LBN 58
353e948693eSPhilip Paeps #define	ESF_DZ_MC_DROP_EVENT_WIDTH 1
354e948693eSPhilip Paeps #define	ESF_DZ_MC_SOFT_DW0_LBN 0
355e948693eSPhilip Paeps #define	ESF_DZ_MC_SOFT_DW0_WIDTH 32
356e948693eSPhilip Paeps #define	ESF_DZ_MC_SOFT_DW1_LBN 32
357e948693eSPhilip Paeps #define	ESF_DZ_MC_SOFT_DW1_WIDTH 26
358e948693eSPhilip Paeps #define	ESF_DZ_MC_SOFT_LBN 0
359e948693eSPhilip Paeps #define	ESF_DZ_MC_SOFT_WIDTH 58
360e948693eSPhilip Paeps 
361e948693eSPhilip Paeps /* ES_RX_EVENT */
362e948693eSPhilip Paeps #define	ESF_DZ_RX_CODE_LBN 60
363e948693eSPhilip Paeps #define	ESF_DZ_RX_CODE_WIDTH 4
364e948693eSPhilip Paeps #define	ESF_DZ_RX_OVERRIDE_HOLDOFF_LBN 59
365e948693eSPhilip Paeps #define	ESF_DZ_RX_OVERRIDE_HOLDOFF_WIDTH 1
366e948693eSPhilip Paeps #define	ESF_DZ_RX_DROP_EVENT_LBN 58
367e948693eSPhilip Paeps #define	ESF_DZ_RX_DROP_EVENT_WIDTH 1
368e78e1b4dSAndrew Rybchenko #define	ESF_DD_RX_EV_RSVD2_LBN 54
369e78e1b4dSAndrew Rybchenko #define	ESF_DD_RX_EV_RSVD2_WIDTH 4
370e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_TCP_UDP_INNER_CHKSUM_ERR_LBN 57
371e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_TCP_UDP_INNER_CHKSUM_ERR_WIDTH 1
372e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_IP_INNER_CHKSUM_ERR_LBN 56
373e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_IP_INNER_CHKSUM_ERR_WIDTH 1
374e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_EV_RSVD2_LBN 54
375e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_EV_RSVD2_WIDTH 2
376e948693eSPhilip Paeps #define	ESF_DZ_RX_EV_SOFT2_LBN 52
3773c838a9fSAndrew Rybchenko #define	ESF_DZ_RX_EV_SOFT2_WIDTH 2
378e948693eSPhilip Paeps #define	ESF_DZ_RX_DSC_PTR_LBITS_LBN 48
379e948693eSPhilip Paeps #define	ESF_DZ_RX_DSC_PTR_LBITS_WIDTH 4
380f2f14997SAndrew Rybchenko #define	ESF_DE_RX_L4_CLASS_LBN 45
381f2f14997SAndrew Rybchenko #define	ESF_DE_RX_L4_CLASS_WIDTH 3
382f2f14997SAndrew Rybchenko #define	ESE_DE_L4_CLASS_RSVD7 7
383f2f14997SAndrew Rybchenko #define	ESE_DE_L4_CLASS_RSVD6 6
384f2f14997SAndrew Rybchenko #define	ESE_DE_L4_CLASS_RSVD5 5
385f2f14997SAndrew Rybchenko #define	ESE_DE_L4_CLASS_RSVD4 4
386f2f14997SAndrew Rybchenko #define	ESE_DE_L4_CLASS_RSVD3 3
387f2f14997SAndrew Rybchenko #define	ESE_DE_L4_CLASS_UDP 2
388f2f14997SAndrew Rybchenko #define	ESE_DE_L4_CLASS_TCP 1
389f2f14997SAndrew Rybchenko #define	ESE_DE_L4_CLASS_UNKNOWN 0
390f2f14997SAndrew Rybchenko #define	ESF_FZ_RX_FASTPD_INDCTR_LBN 47
391f2f14997SAndrew Rybchenko #define	ESF_FZ_RX_FASTPD_INDCTR_WIDTH 1
392f2f14997SAndrew Rybchenko #define	ESF_FZ_RX_L4_CLASS_LBN 45
393f2f14997SAndrew Rybchenko #define	ESF_FZ_RX_L4_CLASS_WIDTH 2
394f2f14997SAndrew Rybchenko #define	ESE_FZ_L4_CLASS_RSVD3 3
395f2f14997SAndrew Rybchenko #define	ESE_FZ_L4_CLASS_UDP 2
396f2f14997SAndrew Rybchenko #define	ESE_FZ_L4_CLASS_TCP 1
397f2f14997SAndrew Rybchenko #define	ESE_FZ_L4_CLASS_UNKNOWN 0
398e948693eSPhilip Paeps #define	ESF_DZ_RX_L3_CLASS_LBN 42
399e948693eSPhilip Paeps #define	ESF_DZ_RX_L3_CLASS_WIDTH 3
400e948693eSPhilip Paeps #define	ESE_DZ_L3_CLASS_RSVD7 7
401e948693eSPhilip Paeps #define	ESE_DZ_L3_CLASS_IP6_FRAG 6
402e948693eSPhilip Paeps #define	ESE_DZ_L3_CLASS_ARP 5
403e948693eSPhilip Paeps #define	ESE_DZ_L3_CLASS_IP4_FRAG 4
404e948693eSPhilip Paeps #define	ESE_DZ_L3_CLASS_FCOE 3
405e948693eSPhilip Paeps #define	ESE_DZ_L3_CLASS_IP6 2
406e948693eSPhilip Paeps #define	ESE_DZ_L3_CLASS_IP4 1
407e948693eSPhilip Paeps #define	ESE_DZ_L3_CLASS_UNKNOWN 0
408e948693eSPhilip Paeps #define	ESF_DZ_RX_ETH_TAG_CLASS_LBN 39
409e948693eSPhilip Paeps #define	ESF_DZ_RX_ETH_TAG_CLASS_WIDTH 3
410e948693eSPhilip Paeps #define	ESE_DZ_ETH_TAG_CLASS_RSVD7 7
411e948693eSPhilip Paeps #define	ESE_DZ_ETH_TAG_CLASS_RSVD6 6
412e948693eSPhilip Paeps #define	ESE_DZ_ETH_TAG_CLASS_RSVD5 5
413e948693eSPhilip Paeps #define	ESE_DZ_ETH_TAG_CLASS_RSVD4 4
414e948693eSPhilip Paeps #define	ESE_DZ_ETH_TAG_CLASS_RSVD3 3
415e948693eSPhilip Paeps #define	ESE_DZ_ETH_TAG_CLASS_VLAN2 2
416e948693eSPhilip Paeps #define	ESE_DZ_ETH_TAG_CLASS_VLAN1 1
417e948693eSPhilip Paeps #define	ESE_DZ_ETH_TAG_CLASS_NONE 0
418e948693eSPhilip Paeps #define	ESF_DZ_RX_ETH_BASE_CLASS_LBN 36
419e948693eSPhilip Paeps #define	ESF_DZ_RX_ETH_BASE_CLASS_WIDTH 3
420e948693eSPhilip Paeps #define	ESE_DZ_ETH_BASE_CLASS_LLC_SNAP 2
421e948693eSPhilip Paeps #define	ESE_DZ_ETH_BASE_CLASS_LLC 1
422e948693eSPhilip Paeps #define	ESE_DZ_ETH_BASE_CLASS_ETH2 0
423e948693eSPhilip Paeps #define	ESF_DZ_RX_MAC_CLASS_LBN 35
424e948693eSPhilip Paeps #define	ESF_DZ_RX_MAC_CLASS_WIDTH 1
425e948693eSPhilip Paeps #define	ESE_DZ_MAC_CLASS_MCAST 1
426e948693eSPhilip Paeps #define	ESE_DZ_MAC_CLASS_UCAST 0
427e78e1b4dSAndrew Rybchenko #define	ESF_DD_RX_EV_SOFT1_LBN 32
428e78e1b4dSAndrew Rybchenko #define	ESF_DD_RX_EV_SOFT1_WIDTH 3
429e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_EV_SOFT1_LBN 34
430e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_EV_SOFT1_WIDTH 1
431e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_ENCAP_HDR_LBN 32
432e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_ENCAP_HDR_WIDTH 2
433e78e1b4dSAndrew Rybchenko #define	ESE_EZ_ENCAP_HDR_GRE 2
434e78e1b4dSAndrew Rybchenko #define	ESE_EZ_ENCAP_HDR_VXLAN 1
435e78e1b4dSAndrew Rybchenko #define	ESE_EZ_ENCAP_HDR_NONE 0
436e78e1b4dSAndrew Rybchenko #define	ESF_DD_RX_EV_RSVD1_LBN 30
437e78e1b4dSAndrew Rybchenko #define	ESF_DD_RX_EV_RSVD1_WIDTH 2
438e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_EV_RSVD1_LBN 31
439e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_EV_RSVD1_WIDTH 1
440e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_ABORT_LBN 30
441e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_ABORT_WIDTH 1
442e948693eSPhilip Paeps #define	ESF_DZ_RX_ECC_ERR_LBN 29
443e948693eSPhilip Paeps #define	ESF_DZ_RX_ECC_ERR_WIDTH 1
4448bff5a20SAndrew Rybchenko #define	ESF_DZ_RX_TRUNC_ERR_LBN 29
4458bff5a20SAndrew Rybchenko #define	ESF_DZ_RX_TRUNC_ERR_WIDTH 1
446e948693eSPhilip Paeps #define	ESF_DZ_RX_CRC1_ERR_LBN 28
447e948693eSPhilip Paeps #define	ESF_DZ_RX_CRC1_ERR_WIDTH 1
448e948693eSPhilip Paeps #define	ESF_DZ_RX_CRC0_ERR_LBN 27
449e948693eSPhilip Paeps #define	ESF_DZ_RX_CRC0_ERR_WIDTH 1
450e948693eSPhilip Paeps #define	ESF_DZ_RX_TCPUDP_CKSUM_ERR_LBN 26
451e948693eSPhilip Paeps #define	ESF_DZ_RX_TCPUDP_CKSUM_ERR_WIDTH 1
452e948693eSPhilip Paeps #define	ESF_DZ_RX_IPCKSUM_ERR_LBN 25
453e948693eSPhilip Paeps #define	ESF_DZ_RX_IPCKSUM_ERR_WIDTH 1
454e948693eSPhilip Paeps #define	ESF_DZ_RX_ECRC_ERR_LBN 24
455e948693eSPhilip Paeps #define	ESF_DZ_RX_ECRC_ERR_WIDTH 1
456e948693eSPhilip Paeps #define	ESF_DZ_RX_QLABEL_LBN 16
4573c838a9fSAndrew Rybchenko #define	ESF_DZ_RX_QLABEL_WIDTH 5
458e948693eSPhilip Paeps #define	ESF_DZ_RX_PARSE_INCOMPLETE_LBN 15
459e948693eSPhilip Paeps #define	ESF_DZ_RX_PARSE_INCOMPLETE_WIDTH 1
460e948693eSPhilip Paeps #define	ESF_DZ_RX_CONT_LBN 14
461e948693eSPhilip Paeps #define	ESF_DZ_RX_CONT_WIDTH 1
462e948693eSPhilip Paeps #define	ESF_DZ_RX_BYTES_LBN 0
463e948693eSPhilip Paeps #define	ESF_DZ_RX_BYTES_WIDTH 14
464e948693eSPhilip Paeps 
465e948693eSPhilip Paeps /* ES_RX_KER_DESC */
466e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_RESERVED_LBN 62
467e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_RESERVED_WIDTH 2
468e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_BYTE_CNT_LBN 48
469e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_BYTE_CNT_WIDTH 14
470e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_BUF_ADDR_DW0_LBN 0
471e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_BUF_ADDR_DW0_WIDTH 32
472e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_BUF_ADDR_DW1_LBN 32
473e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_BUF_ADDR_DW1_WIDTH 16
474e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_BUF_ADDR_LBN 0
475e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_BUF_ADDR_WIDTH 48
476e948693eSPhilip Paeps 
4773c838a9fSAndrew Rybchenko /* ES_TX_CSUM_TSTAMP_DESC */
4783c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_DESC_IS_OPT_LBN 63
4793c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
4803c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TYPE_LBN 60
4813c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TYPE_WIDTH 3
4823c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_TSO 7
4833c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_VLAN 6
4843c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
485f8806762SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TS_AT_TXDP_LBN 8
486f8806762SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TS_AT_TXDP_WIDTH 1
487f8806762SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_INNER_UDP_TCP_CSUM_LBN 7
488f8806762SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_INNER_UDP_TCP_CSUM_WIDTH 1
489f8806762SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_INNER_IP_CSUM_LBN 6
490f8806762SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_INNER_IP_CSUM_WIDTH 1
4913c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_TIMESTAMP_LBN 5
4923c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_TIMESTAMP_WIDTH 1
4933c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_CRC_MODE_LBN 2
4943c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_CRC_MODE_WIDTH 3
4953c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_CRC_FCOIP_MPA 5
4963c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_CRC_FCOIP_FCOE 4
4973c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_CRC_ISCSI_HDR_AND_PYLD 3
4983c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_CRC_ISCSI_HDR 2
4993c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_CRC_FCOE 1
5003c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_CRC_OFF 0
5013c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_UDP_TCP_CSUM_LBN 1
5023c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_UDP_TCP_CSUM_WIDTH 1
5033c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_IP_CSUM_LBN 0
5043c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_IP_CSUM_WIDTH 1
5053c838a9fSAndrew Rybchenko 
506e948693eSPhilip Paeps /* ES_TX_EVENT */
507e948693eSPhilip Paeps #define	ESF_DZ_TX_CODE_LBN 60
508e948693eSPhilip Paeps #define	ESF_DZ_TX_CODE_WIDTH 4
509e948693eSPhilip Paeps #define	ESF_DZ_TX_OVERRIDE_HOLDOFF_LBN 59
510e948693eSPhilip Paeps #define	ESF_DZ_TX_OVERRIDE_HOLDOFF_WIDTH 1
511e948693eSPhilip Paeps #define	ESF_DZ_TX_DROP_EVENT_LBN 58
512e948693eSPhilip Paeps #define	ESF_DZ_TX_DROP_EVENT_WIDTH 1
513e78e1b4dSAndrew Rybchenko #define	ESF_DD_TX_EV_RSVD_LBN 48
514e78e1b4dSAndrew Rybchenko #define	ESF_DD_TX_EV_RSVD_WIDTH 10
515e78e1b4dSAndrew Rybchenko #define	ESF_EZ_TCP_UDP_INNER_CHKSUM_ERR_LBN 57
516e78e1b4dSAndrew Rybchenko #define	ESF_EZ_TCP_UDP_INNER_CHKSUM_ERR_WIDTH 1
517e78e1b4dSAndrew Rybchenko #define	ESF_EZ_IP_INNER_CHKSUM_ERR_LBN 56
518e78e1b4dSAndrew Rybchenko #define	ESF_EZ_IP_INNER_CHKSUM_ERR_WIDTH 1
519e78e1b4dSAndrew Rybchenko #define	ESF_EZ_TX_EV_RSVD_LBN 48
520e78e1b4dSAndrew Rybchenko #define	ESF_EZ_TX_EV_RSVD_WIDTH 8
521e948693eSPhilip Paeps #define	ESF_DZ_TX_SOFT2_LBN 32
522e948693eSPhilip Paeps #define	ESF_DZ_TX_SOFT2_WIDTH 16
523e78e1b4dSAndrew Rybchenko #define	ESF_DD_TX_SOFT1_LBN 24
524e78e1b4dSAndrew Rybchenko #define	ESF_DD_TX_SOFT1_WIDTH 8
525e78e1b4dSAndrew Rybchenko #define	ESF_EZ_TX_CAN_MERGE_LBN 31
526e78e1b4dSAndrew Rybchenko #define	ESF_EZ_TX_CAN_MERGE_WIDTH 1
527e78e1b4dSAndrew Rybchenko #define	ESF_EZ_TX_SOFT1_LBN 24
528e78e1b4dSAndrew Rybchenko #define	ESF_EZ_TX_SOFT1_WIDTH 7
529e948693eSPhilip Paeps #define	ESF_DZ_TX_QLABEL_LBN 16
5303c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_QLABEL_WIDTH 5
531e948693eSPhilip Paeps #define	ESF_DZ_TX_DESCR_INDX_LBN 0
532e948693eSPhilip Paeps #define	ESF_DZ_TX_DESCR_INDX_WIDTH 16
533e948693eSPhilip Paeps 
534e948693eSPhilip Paeps /* ES_TX_KER_DESC */
535e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_TYPE_LBN 63
536e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_TYPE_WIDTH 1
537e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_CONT_LBN 62
538e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_CONT_WIDTH 1
539e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_BYTE_CNT_LBN 48
540e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_BYTE_CNT_WIDTH 14
541e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_BUF_ADDR_DW0_LBN 0
542e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_BUF_ADDR_DW0_WIDTH 32
543e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_BUF_ADDR_DW1_LBN 32
544e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_BUF_ADDR_DW1_WIDTH 16
545e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_BUF_ADDR_LBN 0
546e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_BUF_ADDR_WIDTH 48
547e948693eSPhilip Paeps 
5483c838a9fSAndrew Rybchenko /* ES_TX_PIO_DESC */
5493c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_TYPE_LBN 63
5503c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_TYPE_WIDTH 1
5513c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_OPT_LBN 60
5523c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_OPT_WIDTH 3
5533c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_CONT_LBN 59
5543c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_CONT_WIDTH 1
5553c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_BYTE_CNT_LBN 32
5563c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_BYTE_CNT_WIDTH 12
5573c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_BUF_ADDR_LBN 0
5583c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_BUF_ADDR_WIDTH 12
5593c838a9fSAndrew Rybchenko 
5603c838a9fSAndrew Rybchenko /* ES_TX_TSO_DESC */
561e948693eSPhilip Paeps #define	ESF_DZ_TX_DESC_IS_OPT_LBN 63
562e948693eSPhilip Paeps #define	ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
563e948693eSPhilip Paeps #define	ESF_DZ_TX_OPTION_TYPE_LBN 60
564e948693eSPhilip Paeps #define	ESF_DZ_TX_OPTION_TYPE_WIDTH 3
5653c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_TSO 7
5663c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_VLAN 6
567e948693eSPhilip Paeps #define	ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
568f8806762SAndrew Rybchenko #define	ESF_DZ_TX_TSO_OPTION_TYPE_LBN 56
569f8806762SAndrew Rybchenko #define	ESF_DZ_TX_TSO_OPTION_TYPE_WIDTH 4
570f2f14997SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2B 3
571f2f14997SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2A 2
572f8806762SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_ENCAP 1
573f8806762SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_NORMAL 0
574e948693eSPhilip Paeps #define	ESF_DZ_TX_TSO_TCP_FLAGS_LBN 48
575e948693eSPhilip Paeps #define	ESF_DZ_TX_TSO_TCP_FLAGS_WIDTH 8
5763c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_TSO_IP_ID_LBN 32
5773c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_TSO_IP_ID_WIDTH 16
578e948693eSPhilip Paeps #define	ESF_DZ_TX_TSO_TCP_SEQNO_LBN 0
579e948693eSPhilip Paeps #define	ESF_DZ_TX_TSO_TCP_SEQNO_WIDTH 32
580e948693eSPhilip Paeps 
581f2f14997SAndrew Rybchenko /* ES_TX_TSO_V2_DESC_A */
58251fd6441SAndrew Rybchenko #define	ESF_DZ_TX_DESC_IS_OPT_LBN 63
58351fd6441SAndrew Rybchenko #define	ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
58451fd6441SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TYPE_LBN 60
58551fd6441SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TYPE_WIDTH 3
58651fd6441SAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_TSO 7
58751fd6441SAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_VLAN 6
58851fd6441SAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
58951fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_OPTION_TYPE_LBN 56
59051fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_OPTION_TYPE_WIDTH 4
59151fd6441SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2B 3
59251fd6441SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2A 2
59351fd6441SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_ENCAP 1
59451fd6441SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_NORMAL 0
59551fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_IP_ID_LBN 32
59651fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_IP_ID_WIDTH 16
59751fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_TCP_SEQNO_LBN 0
59851fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_TCP_SEQNO_WIDTH 32
59951fd6441SAndrew Rybchenko 
600f2f14997SAndrew Rybchenko /* ES_TX_TSO_V2_DESC_B */
60151fd6441SAndrew Rybchenko #define	ESF_DZ_TX_DESC_IS_OPT_LBN 63
60251fd6441SAndrew Rybchenko #define	ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
60351fd6441SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TYPE_LBN 60
60451fd6441SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TYPE_WIDTH 3
60551fd6441SAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_TSO 7
60651fd6441SAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_VLAN 6
60751fd6441SAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
60851fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_OPTION_TYPE_LBN 56
60951fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_OPTION_TYPE_WIDTH 4
61051fd6441SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2B 3
61151fd6441SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2A 2
61251fd6441SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_ENCAP 1
61351fd6441SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_NORMAL 0
61451fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_TCP_MSS_LBN 32
61551fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_TCP_MSS_WIDTH 16
616f2f14997SAndrew Rybchenko #define	ESF_DZ_TX_TSO_OUTER_IPID_LBN 0
617f2f14997SAndrew Rybchenko #define	ESF_DZ_TX_TSO_OUTER_IPID_WIDTH 16
61851fd6441SAndrew Rybchenko 
6193c838a9fSAndrew Rybchenko /* ES_TX_VLAN_DESC */
6203c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_DESC_IS_OPT_LBN 63
6213c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
6223c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TYPE_LBN 60
6233c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TYPE_WIDTH 3
6243c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_TSO 7
6253c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_VLAN 6
6263c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
6273c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_VLAN_OP_LBN 32
6283c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_VLAN_OP_WIDTH 2
6293c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_VLAN_TAG2_LBN 16
6303c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_VLAN_TAG2_WIDTH 16
6313c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_VLAN_TAG1_LBN 0
6323c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_VLAN_TAG1_WIDTH 16
6333c838a9fSAndrew Rybchenko 
634946b5480SAndrew Rybchenko /*************************************************************************
635946b5480SAndrew Rybchenko  * NOTE: the comment line above marks the end of the autogenerated section
636946b5480SAndrew Rybchenko  */
637946b5480SAndrew Rybchenko 
638946b5480SAndrew Rybchenko /*
639946b5480SAndrew Rybchenko  * The workaround for bug 35388 requires multiplexing writes through
640946b5480SAndrew Rybchenko  * the ERF_DZ_TX_DESC_WPTR address.
641946b5480SAndrew Rybchenko  * TX_DESC_UPD: 0ppppppppppp               (bit 11 lost)
642946b5480SAndrew Rybchenko  * EVQ_RPTR:    1000hhhhhhhh, 1001llllllll (split into high and low bits)
643946b5480SAndrew Rybchenko  * EVQ_TMR:     11mmvvvvvvvv               (bits 8:13 of value lost)
644946b5480SAndrew Rybchenko  */
645946b5480SAndrew Rybchenko #define	ER_DD_EVQ_INDIRECT_OFST (ER_DZ_TX_DESC_UPD_REG_OFST + 2 * 4)
646946b5480SAndrew Rybchenko #define	ER_DD_EVQ_INDIRECT_STEP ER_DZ_TX_DESC_UPD_REG_STEP
647946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_RPTR_FLAGS_LBN 8
648946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_RPTR_FLAGS_WIDTH 4
649946b5480SAndrew Rybchenko #define	EFE_DD_EVQ_IND_RPTR_FLAGS_HIGH 8
650946b5480SAndrew Rybchenko #define	EFE_DD_EVQ_IND_RPTR_FLAGS_LOW 9
651946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_RPTR_LBN 0
652946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_RPTR_WIDTH 8
653946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_TIMER_FLAGS_LBN 10
654946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_TIMER_FLAGS_WIDTH 2
655946b5480SAndrew Rybchenko #define	EFE_DD_EVQ_IND_TIMER_FLAGS 3
656946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_TIMER_MODE_LBN 8
657946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_TIMER_MODE_WIDTH 2
658946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_TIMER_VAL_LBN 0
659946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_TIMER_VAL_WIDTH 8
660946b5480SAndrew Rybchenko 
6618e0c4827SAndrew Rybchenko /* Packed stream magic doorbell command */
6628e0c4827SAndrew Rybchenko #define	ERF_DZ_RX_DESC_MAGIC_DOORBELL_LBN 11
6638e0c4827SAndrew Rybchenko #define	ERF_DZ_RX_DESC_MAGIC_DOORBELL_WIDTH 1
6648e0c4827SAndrew Rybchenko 
6658e0c4827SAndrew Rybchenko #define	ERF_DZ_RX_DESC_MAGIC_CMD_LBN 8
6668e0c4827SAndrew Rybchenko #define	ERF_DZ_RX_DESC_MAGIC_CMD_WIDTH 3
6678e0c4827SAndrew Rybchenko #define	ERE_DZ_RX_DESC_MAGIC_CMD_PS_CREDITS 0
6688e0c4827SAndrew Rybchenko 
6698e0c4827SAndrew Rybchenko #define	ERF_DZ_RX_DESC_MAGIC_DATA_LBN 0
6708e0c4827SAndrew Rybchenko #define	ERF_DZ_RX_DESC_MAGIC_DATA_WIDTH 8
6718e0c4827SAndrew Rybchenko 
6728e0c4827SAndrew Rybchenko /* Packed stream RX packet prefix */
6738e0c4827SAndrew Rybchenko #define	ES_DZ_PS_RX_PREFIX_TSTAMP_LBN 0
6748e0c4827SAndrew Rybchenko #define	ES_DZ_PS_RX_PREFIX_TSTAMP_WIDTH 32
6758e0c4827SAndrew Rybchenko #define	ES_DZ_PS_RX_PREFIX_CAP_LEN_LBN 32
6768e0c4827SAndrew Rybchenko #define	ES_DZ_PS_RX_PREFIX_CAP_LEN_WIDTH 16
6778e0c4827SAndrew Rybchenko #define	ES_DZ_PS_RX_PREFIX_ORIG_LEN_LBN 48
6788e0c4827SAndrew Rybchenko #define	ES_DZ_PS_RX_PREFIX_ORIG_LEN_WIDTH 16
6798e0c4827SAndrew Rybchenko 
680d222b617SAndrew Rybchenko /* Equal stride super-buffer RX packet prefix (see SF-119419-TC) */
681d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_LEN 8
682d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_DATA_LEN_LBN 0
683d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_DATA_LEN_WIDTH 16
684d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_MARK_LBN 16
685d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_MARK_WIDTH 8
686d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_HASH_VALID_LBN 28
687d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_HASH_VALID_WIDTH 1
688d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_MARK_VALID_LBN 29
689d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_MARK_VALID_WIDTH 1
690d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_MATCH_FLAG_LBN 30
691d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_MATCH_FLAG_WIDTH 1
692d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_HASH_LBN 32
693d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_HASH_WIDTH 32
694d222b617SAndrew Rybchenko 
6958e0c4827SAndrew Rybchenko /*
6968e0c4827SAndrew Rybchenko  * An extra flag for the packed stream mode,
6978e0c4827SAndrew Rybchenko  * signalling the start of a new buffer
6988e0c4827SAndrew Rybchenko  */
6998e0c4827SAndrew Rybchenko #define	ESF_DZ_RX_EV_ROTATE_LBN 53
7008e0c4827SAndrew Rybchenko #define	ESF_DZ_RX_EV_ROTATE_WIDTH 1
701946b5480SAndrew Rybchenko 
702e948693eSPhilip Paeps #ifdef	__cplusplus
703e948693eSPhilip Paeps }
704e948693eSPhilip Paeps #endif
705e948693eSPhilip Paeps 
706e948693eSPhilip Paeps #endif /* _SYS_EFX_EF10_REGS_H */
707