xref: /freebsd/sys/dev/sfxge/common/efx_regs_ef10.h (revision d222b6174302502d44d86d583fa27de44dd11c63)
1e948693eSPhilip Paeps /*-
2718cf2ccSPedro F. Giffuni  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
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.
315dee87d7SPhilip Paeps  *
325dee87d7SPhilip Paeps  * $FreeBSD$
33e948693eSPhilip Paeps  */
34e948693eSPhilip Paeps 
35e948693eSPhilip Paeps #ifndef	_SYS_EFX_EF10_REGS_H
36e948693eSPhilip Paeps #define	_SYS_EFX_EF10_REGS_H
37e948693eSPhilip Paeps 
38e948693eSPhilip Paeps #ifdef	__cplusplus
39e948693eSPhilip Paeps extern "C" {
40e948693eSPhilip Paeps #endif
41e948693eSPhilip Paeps 
42946b5480SAndrew Rybchenko /**************************************************************************
43946b5480SAndrew Rybchenko  * NOTE: the line below marks the start of the autogenerated section
44946b5480SAndrew Rybchenko  * EF10 registers and descriptors
45946b5480SAndrew Rybchenko  *
46946b5480SAndrew Rybchenko  **************************************************************************
47946b5480SAndrew Rybchenko  */
48946b5480SAndrew Rybchenko 
49e948693eSPhilip Paeps /*
50e948693eSPhilip Paeps  * BIU_HW_REV_ID_REG(32bit):
51e948693eSPhilip Paeps  *
52e948693eSPhilip Paeps  */
53e948693eSPhilip Paeps 
543c838a9fSAndrew Rybchenko #define	ER_DZ_BIU_HW_REV_ID_REG_OFST 0x00000000
55f2f14997SAndrew Rybchenko /* hunta0,medforda0,medford2a0=pf_dbell_bar */
563c838a9fSAndrew Rybchenko #define	ER_DZ_BIU_HW_REV_ID_REG_RESET 0xeb14face
573c838a9fSAndrew Rybchenko 
58e948693eSPhilip Paeps 
59e948693eSPhilip Paeps #define	ERF_DZ_HW_REV_ID_LBN 0
60e948693eSPhilip Paeps #define	ERF_DZ_HW_REV_ID_WIDTH 32
61e948693eSPhilip Paeps 
62e948693eSPhilip Paeps 
63e948693eSPhilip Paeps /*
64e948693eSPhilip Paeps  * BIU_MC_SFT_STATUS_REG(32bit):
65e948693eSPhilip Paeps  *
66e948693eSPhilip Paeps  */
67e948693eSPhilip Paeps 
683c838a9fSAndrew Rybchenko #define	ER_DZ_BIU_MC_SFT_STATUS_REG_OFST 0x00000010
69f2f14997SAndrew Rybchenko /* hunta0,medforda0,medford2a0=pf_dbell_bar */
70e948693eSPhilip Paeps #define	ER_DZ_BIU_MC_SFT_STATUS_REG_STEP 4
71e948693eSPhilip Paeps #define	ER_DZ_BIU_MC_SFT_STATUS_REG_ROWS 8
723c838a9fSAndrew Rybchenko #define	ER_DZ_BIU_MC_SFT_STATUS_REG_RESET 0x1111face
733c838a9fSAndrew Rybchenko 
74e948693eSPhilip Paeps 
75e948693eSPhilip Paeps #define	ERF_DZ_MC_SFT_STATUS_LBN 0
76e948693eSPhilip Paeps #define	ERF_DZ_MC_SFT_STATUS_WIDTH 32
77e948693eSPhilip Paeps 
78e948693eSPhilip Paeps 
79e948693eSPhilip Paeps /*
80e948693eSPhilip Paeps  * BIU_INT_ISR_REG(32bit):
81e948693eSPhilip Paeps  *
82e948693eSPhilip Paeps  */
83e948693eSPhilip Paeps 
843c838a9fSAndrew Rybchenko #define	ER_DZ_BIU_INT_ISR_REG_OFST 0x00000090
85f2f14997SAndrew Rybchenko /* hunta0,medforda0,medford2a0=pf_dbell_bar */
863c838a9fSAndrew Rybchenko #define	ER_DZ_BIU_INT_ISR_REG_RESET 0x0
873c838a9fSAndrew Rybchenko 
88e948693eSPhilip Paeps 
89e948693eSPhilip Paeps #define	ERF_DZ_ISR_REG_LBN 0
90e948693eSPhilip Paeps #define	ERF_DZ_ISR_REG_WIDTH 32
91e948693eSPhilip Paeps 
92e948693eSPhilip Paeps 
93e948693eSPhilip Paeps /*
94e948693eSPhilip Paeps  * MC_DB_LWRD_REG(32bit):
95e948693eSPhilip Paeps  *
96e948693eSPhilip Paeps  */
97e948693eSPhilip Paeps 
983c838a9fSAndrew Rybchenko #define	ER_DZ_MC_DB_LWRD_REG_OFST 0x00000200
99f2f14997SAndrew Rybchenko /* hunta0,medforda0,medford2a0=pf_dbell_bar */
1003c838a9fSAndrew Rybchenko #define	ER_DZ_MC_DB_LWRD_REG_RESET 0x0
1013c838a9fSAndrew Rybchenko 
102e948693eSPhilip Paeps 
103e948693eSPhilip Paeps #define	ERF_DZ_MC_DOORBELL_L_LBN 0
104e948693eSPhilip Paeps #define	ERF_DZ_MC_DOORBELL_L_WIDTH 32
105e948693eSPhilip Paeps 
106e948693eSPhilip Paeps 
107e948693eSPhilip Paeps /*
108e948693eSPhilip Paeps  * MC_DB_HWRD_REG(32bit):
109e948693eSPhilip Paeps  *
110e948693eSPhilip Paeps  */
111e948693eSPhilip Paeps 
1123c838a9fSAndrew Rybchenko #define	ER_DZ_MC_DB_HWRD_REG_OFST 0x00000204
113f2f14997SAndrew Rybchenko /* hunta0,medforda0,medford2a0=pf_dbell_bar */
1143c838a9fSAndrew Rybchenko #define	ER_DZ_MC_DB_HWRD_REG_RESET 0x0
1153c838a9fSAndrew Rybchenko 
116e948693eSPhilip Paeps 
117e948693eSPhilip Paeps #define	ERF_DZ_MC_DOORBELL_H_LBN 0
118e948693eSPhilip Paeps #define	ERF_DZ_MC_DOORBELL_H_WIDTH 32
119e948693eSPhilip Paeps 
120e948693eSPhilip Paeps 
121e948693eSPhilip Paeps /*
122e948693eSPhilip Paeps  * EVQ_RPTR_REG(32bit):
123e948693eSPhilip Paeps  *
124e948693eSPhilip Paeps  */
125e948693eSPhilip Paeps 
1263c838a9fSAndrew Rybchenko #define	ER_DZ_EVQ_RPTR_REG_OFST 0x00000400
127f2f14997SAndrew Rybchenko /* hunta0,medforda0,medford2a0=pf_dbell_bar */
1283c838a9fSAndrew Rybchenko #define	ER_DZ_EVQ_RPTR_REG_STEP 8192
129e948693eSPhilip Paeps #define	ER_DZ_EVQ_RPTR_REG_ROWS 2048
1303c838a9fSAndrew Rybchenko #define	ER_DZ_EVQ_RPTR_REG_RESET 0x0
1313c838a9fSAndrew Rybchenko 
132e948693eSPhilip Paeps 
133e948693eSPhilip Paeps #define	ERF_DZ_EVQ_RPTR_VLD_LBN 15
134e948693eSPhilip Paeps #define	ERF_DZ_EVQ_RPTR_VLD_WIDTH 1
135e948693eSPhilip Paeps #define	ERF_DZ_EVQ_RPTR_LBN 0
136e948693eSPhilip Paeps #define	ERF_DZ_EVQ_RPTR_WIDTH 15
137e948693eSPhilip Paeps 
138e948693eSPhilip Paeps 
139e948693eSPhilip Paeps /*
140f2f14997SAndrew Rybchenko  * EVQ_RPTR_REG_64K(32bit):
141f2f14997SAndrew Rybchenko  *
142f2f14997SAndrew Rybchenko  */
143f2f14997SAndrew Rybchenko 
144f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_RPTR_REG_64K_OFST 0x00000400
145f2f14997SAndrew Rybchenko /* medford2a0=pf_dbell_bar */
146f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_RPTR_REG_64K_STEP 65536
147f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_RPTR_REG_64K_ROWS 2048
148f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_RPTR_REG_64K_RESET 0x0
149f2f14997SAndrew Rybchenko 
150f2f14997SAndrew Rybchenko 
151f2f14997SAndrew Rybchenko #define	ERF_FZ_EVQ_RPTR_VLD_LBN 15
152f2f14997SAndrew Rybchenko #define	ERF_FZ_EVQ_RPTR_VLD_WIDTH 1
153f2f14997SAndrew Rybchenko #define	ERF_FZ_EVQ_RPTR_LBN 0
154f2f14997SAndrew Rybchenko #define	ERF_FZ_EVQ_RPTR_WIDTH 15
155f2f14997SAndrew Rybchenko 
156f2f14997SAndrew Rybchenko 
157f2f14997SAndrew Rybchenko /*
158f2f14997SAndrew Rybchenko  * EVQ_RPTR_REG_16K(32bit):
159f2f14997SAndrew Rybchenko  *
160f2f14997SAndrew Rybchenko  */
161f2f14997SAndrew Rybchenko 
162f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_RPTR_REG_16K_OFST 0x00000400
163f2f14997SAndrew Rybchenko /* medford2a0=pf_dbell_bar */
164f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_RPTR_REG_16K_STEP 16384
165f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_RPTR_REG_16K_ROWS 2048
166f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_RPTR_REG_16K_RESET 0x0
167f2f14997SAndrew Rybchenko 
168f2f14997SAndrew Rybchenko 
169f2f14997SAndrew Rybchenko /* defined as ERF_FZ_EVQ_RPTR_VLD_LBN 15; */
170f2f14997SAndrew Rybchenko /* defined as ERF_FZ_EVQ_RPTR_VLD_WIDTH 1 */
171f2f14997SAndrew Rybchenko /* defined as ERF_FZ_EVQ_RPTR_LBN 0; */
172f2f14997SAndrew Rybchenko /* defined as ERF_FZ_EVQ_RPTR_WIDTH 15 */
173f2f14997SAndrew Rybchenko 
174f2f14997SAndrew Rybchenko 
175f2f14997SAndrew Rybchenko /*
176f2f14997SAndrew Rybchenko  * EVQ_TMR_REG_64K(32bit):
177f2f14997SAndrew Rybchenko  *
178f2f14997SAndrew Rybchenko  */
179f2f14997SAndrew Rybchenko 
180f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_TMR_REG_64K_OFST 0x00000420
181f2f14997SAndrew Rybchenko /* medford2a0=pf_dbell_bar */
182f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_TMR_REG_64K_STEP 65536
183f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_TMR_REG_64K_ROWS 2048
184f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_TMR_REG_64K_RESET 0x0
185f2f14997SAndrew Rybchenko 
186f2f14997SAndrew Rybchenko 
1872222409bSAndrew Rybchenko #define	ERF_FZ_TC_TMR_REL_VAL_LBN 16
1882222409bSAndrew Rybchenko #define	ERF_FZ_TC_TMR_REL_VAL_WIDTH 14
189f2f14997SAndrew Rybchenko #define	ERF_FZ_TC_TIMER_MODE_LBN 14
190f2f14997SAndrew Rybchenko #define	ERF_FZ_TC_TIMER_MODE_WIDTH 2
191f2f14997SAndrew Rybchenko #define	ERF_FZ_TC_TIMER_VAL_LBN 0
192f2f14997SAndrew Rybchenko #define	ERF_FZ_TC_TIMER_VAL_WIDTH 14
193f2f14997SAndrew Rybchenko 
194f2f14997SAndrew Rybchenko 
195f2f14997SAndrew Rybchenko /*
196f2f14997SAndrew Rybchenko  * EVQ_TMR_REG_16K(32bit):
197f2f14997SAndrew Rybchenko  *
198f2f14997SAndrew Rybchenko  */
199f2f14997SAndrew Rybchenko 
200f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_TMR_REG_16K_OFST 0x00000420
201f2f14997SAndrew Rybchenko /* medford2a0=pf_dbell_bar */
202f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_TMR_REG_16K_STEP 16384
203f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_TMR_REG_16K_ROWS 2048
204f2f14997SAndrew Rybchenko #define	ER_FZ_EVQ_TMR_REG_16K_RESET 0x0
205f2f14997SAndrew Rybchenko 
206f2f14997SAndrew Rybchenko 
2072222409bSAndrew Rybchenko /* defined as ERF_FZ_TC_TMR_REL_VAL_LBN 16; */
2082222409bSAndrew Rybchenko /* defined as ERF_FZ_TC_TMR_REL_VAL_WIDTH 14 */
209f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TC_TIMER_MODE_LBN 14; */
210f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TC_TIMER_MODE_WIDTH 2 */
211f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TC_TIMER_VAL_LBN 0; */
212f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TC_TIMER_VAL_WIDTH 14 */
213f2f14997SAndrew Rybchenko 
214f2f14997SAndrew Rybchenko 
215f2f14997SAndrew Rybchenko /*
216e948693eSPhilip Paeps  * EVQ_TMR_REG(32bit):
217e948693eSPhilip Paeps  *
218e948693eSPhilip Paeps  */
219e948693eSPhilip Paeps 
2203c838a9fSAndrew Rybchenko #define	ER_DZ_EVQ_TMR_REG_OFST 0x00000420
221f2f14997SAndrew Rybchenko /* hunta0,medforda0,medford2a0=pf_dbell_bar */
2223c838a9fSAndrew Rybchenko #define	ER_DZ_EVQ_TMR_REG_STEP 8192
223e948693eSPhilip Paeps #define	ER_DZ_EVQ_TMR_REG_ROWS 2048
2243c838a9fSAndrew Rybchenko #define	ER_DZ_EVQ_TMR_REG_RESET 0x0
2253c838a9fSAndrew Rybchenko 
226e948693eSPhilip Paeps 
2272222409bSAndrew Rybchenko /* defined as ERF_FZ_TC_TMR_REL_VAL_LBN 16; */
2282222409bSAndrew Rybchenko /* defined as ERF_FZ_TC_TMR_REL_VAL_WIDTH 14 */
229e948693eSPhilip Paeps #define	ERF_DZ_TC_TIMER_MODE_LBN 14
230e948693eSPhilip Paeps #define	ERF_DZ_TC_TIMER_MODE_WIDTH 2
231e948693eSPhilip Paeps #define	ERF_DZ_TC_TIMER_VAL_LBN 0
232e948693eSPhilip Paeps #define	ERF_DZ_TC_TIMER_VAL_WIDTH 14
233e948693eSPhilip Paeps 
234e948693eSPhilip Paeps 
235e948693eSPhilip Paeps /*
236f2f14997SAndrew Rybchenko  * RX_DESC_UPD_REG_16K(32bit):
237f2f14997SAndrew Rybchenko  *
238f2f14997SAndrew Rybchenko  */
239f2f14997SAndrew Rybchenko 
240f2f14997SAndrew Rybchenko #define	ER_FZ_RX_DESC_UPD_REG_16K_OFST 0x00000830
241f2f14997SAndrew Rybchenko /* medford2a0=pf_dbell_bar */
242f2f14997SAndrew Rybchenko #define	ER_FZ_RX_DESC_UPD_REG_16K_STEP 16384
243f2f14997SAndrew Rybchenko #define	ER_FZ_RX_DESC_UPD_REG_16K_ROWS 2048
244f2f14997SAndrew Rybchenko #define	ER_FZ_RX_DESC_UPD_REG_16K_RESET 0x0
245f2f14997SAndrew Rybchenko 
246f2f14997SAndrew Rybchenko 
247f2f14997SAndrew Rybchenko #define	ERF_FZ_RX_DESC_WPTR_LBN 0
248f2f14997SAndrew Rybchenko #define	ERF_FZ_RX_DESC_WPTR_WIDTH 12
249f2f14997SAndrew Rybchenko 
250f2f14997SAndrew Rybchenko 
251f2f14997SAndrew Rybchenko /*
252e948693eSPhilip Paeps  * RX_DESC_UPD_REG(32bit):
253e948693eSPhilip Paeps  *
254e948693eSPhilip Paeps  */
255e948693eSPhilip Paeps 
2563c838a9fSAndrew Rybchenko #define	ER_DZ_RX_DESC_UPD_REG_OFST 0x00000830
257f2f14997SAndrew Rybchenko /* hunta0,medforda0,medford2a0=pf_dbell_bar */
2583c838a9fSAndrew Rybchenko #define	ER_DZ_RX_DESC_UPD_REG_STEP 8192
259e948693eSPhilip Paeps #define	ER_DZ_RX_DESC_UPD_REG_ROWS 2048
2603c838a9fSAndrew Rybchenko #define	ER_DZ_RX_DESC_UPD_REG_RESET 0x0
2613c838a9fSAndrew Rybchenko 
262e948693eSPhilip Paeps 
263e948693eSPhilip Paeps #define	ERF_DZ_RX_DESC_WPTR_LBN 0
264e948693eSPhilip Paeps #define	ERF_DZ_RX_DESC_WPTR_WIDTH 12
265e948693eSPhilip Paeps 
266f2f14997SAndrew Rybchenko 
267f2f14997SAndrew Rybchenko /*
268f2f14997SAndrew Rybchenko  * RX_DESC_UPD_REG_64K(32bit):
269f2f14997SAndrew Rybchenko  *
270f2f14997SAndrew Rybchenko  */
271f2f14997SAndrew Rybchenko 
272f2f14997SAndrew Rybchenko #define	ER_FZ_RX_DESC_UPD_REG_64K_OFST 0x00000830
273f2f14997SAndrew Rybchenko /* medford2a0=pf_dbell_bar */
274f2f14997SAndrew Rybchenko #define	ER_FZ_RX_DESC_UPD_REG_64K_STEP 65536
275f2f14997SAndrew Rybchenko #define	ER_FZ_RX_DESC_UPD_REG_64K_ROWS 2048
276f2f14997SAndrew Rybchenko #define	ER_FZ_RX_DESC_UPD_REG_64K_RESET 0x0
277f2f14997SAndrew Rybchenko 
278f2f14997SAndrew Rybchenko 
279f2f14997SAndrew Rybchenko /* defined as ERF_FZ_RX_DESC_WPTR_LBN 0; */
280f2f14997SAndrew Rybchenko /* defined as ERF_FZ_RX_DESC_WPTR_WIDTH 12 */
281f2f14997SAndrew Rybchenko 
282f2f14997SAndrew Rybchenko 
283f2f14997SAndrew Rybchenko /*
284f2f14997SAndrew Rybchenko  * TX_DESC_UPD_REG_64K(96bit):
285f2f14997SAndrew Rybchenko  *
286f2f14997SAndrew Rybchenko  */
287f2f14997SAndrew Rybchenko 
288f2f14997SAndrew Rybchenko #define	ER_FZ_TX_DESC_UPD_REG_64K_OFST 0x00000a10
289f2f14997SAndrew Rybchenko /* medford2a0=pf_dbell_bar */
290f2f14997SAndrew Rybchenko #define	ER_FZ_TX_DESC_UPD_REG_64K_STEP 65536
291f2f14997SAndrew Rybchenko #define	ER_FZ_TX_DESC_UPD_REG_64K_ROWS 2048
292f2f14997SAndrew Rybchenko #define	ER_FZ_TX_DESC_UPD_REG_64K_RESET 0x0
293f2f14997SAndrew Rybchenko 
294f2f14997SAndrew Rybchenko 
295f2f14997SAndrew Rybchenko #define	ERF_FZ_RSVD_LBN 76
296f2f14997SAndrew Rybchenko #define	ERF_FZ_RSVD_WIDTH 20
297f2f14997SAndrew Rybchenko #define	ERF_FZ_TX_DESC_WPTR_LBN 64
298f2f14997SAndrew Rybchenko #define	ERF_FZ_TX_DESC_WPTR_WIDTH 12
299f2f14997SAndrew Rybchenko #define	ERF_FZ_TX_DESC_HWORD_LBN 32
300f2f14997SAndrew Rybchenko #define	ERF_FZ_TX_DESC_HWORD_WIDTH 32
301f2f14997SAndrew Rybchenko #define	ERF_FZ_TX_DESC_LWORD_LBN 0
302f2f14997SAndrew Rybchenko #define	ERF_FZ_TX_DESC_LWORD_WIDTH 32
303f2f14997SAndrew Rybchenko 
304f2f14997SAndrew Rybchenko 
305f2f14997SAndrew Rybchenko /*
306f2f14997SAndrew Rybchenko  * TX_DESC_UPD_REG_16K(96bit):
307f2f14997SAndrew Rybchenko  *
308f2f14997SAndrew Rybchenko  */
309f2f14997SAndrew Rybchenko 
310f2f14997SAndrew Rybchenko #define	ER_FZ_TX_DESC_UPD_REG_16K_OFST 0x00000a10
311f2f14997SAndrew Rybchenko /* medford2a0=pf_dbell_bar */
312f2f14997SAndrew Rybchenko #define	ER_FZ_TX_DESC_UPD_REG_16K_STEP 16384
313f2f14997SAndrew Rybchenko #define	ER_FZ_TX_DESC_UPD_REG_16K_ROWS 2048
314f2f14997SAndrew Rybchenko #define	ER_FZ_TX_DESC_UPD_REG_16K_RESET 0x0
315f2f14997SAndrew Rybchenko 
316f2f14997SAndrew Rybchenko 
317f2f14997SAndrew Rybchenko /* defined as ERF_FZ_RSVD_LBN 76; */
318f2f14997SAndrew Rybchenko /* defined as ERF_FZ_RSVD_WIDTH 20 */
319f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TX_DESC_WPTR_LBN 64; */
320f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TX_DESC_WPTR_WIDTH 12 */
321f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TX_DESC_HWORD_LBN 32; */
322f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TX_DESC_HWORD_WIDTH 32 */
323f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TX_DESC_LWORD_LBN 0; */
324f2f14997SAndrew Rybchenko /* defined as ERF_FZ_TX_DESC_LWORD_WIDTH 32 */
325f2f14997SAndrew Rybchenko 
326f2f14997SAndrew Rybchenko 
327e948693eSPhilip Paeps /*
3283c838a9fSAndrew Rybchenko  * TX_DESC_UPD_REG(96bit):
329e948693eSPhilip Paeps  *
330e948693eSPhilip Paeps  */
331e948693eSPhilip Paeps 
3323c838a9fSAndrew Rybchenko #define	ER_DZ_TX_DESC_UPD_REG_OFST 0x00000a10
333f2f14997SAndrew Rybchenko /* hunta0,medforda0,medford2a0=pf_dbell_bar */
3343c838a9fSAndrew Rybchenko #define	ER_DZ_TX_DESC_UPD_REG_STEP 8192
335e948693eSPhilip Paeps #define	ER_DZ_TX_DESC_UPD_REG_ROWS 2048
3363c838a9fSAndrew Rybchenko #define	ER_DZ_TX_DESC_UPD_REG_RESET 0x0
337e948693eSPhilip Paeps 
3383c838a9fSAndrew Rybchenko 
3393c838a9fSAndrew Rybchenko #define	ERF_DZ_RSVD_LBN 76
3403c838a9fSAndrew Rybchenko #define	ERF_DZ_RSVD_WIDTH 20
341e948693eSPhilip Paeps #define	ERF_DZ_TX_DESC_WPTR_LBN 64
342e948693eSPhilip Paeps #define	ERF_DZ_TX_DESC_WPTR_WIDTH 12
343e948693eSPhilip Paeps #define	ERF_DZ_TX_DESC_HWORD_LBN 32
344e948693eSPhilip Paeps #define	ERF_DZ_TX_DESC_HWORD_WIDTH 32
345e948693eSPhilip Paeps #define	ERF_DZ_TX_DESC_LWORD_LBN 0
346e948693eSPhilip Paeps #define	ERF_DZ_TX_DESC_LWORD_WIDTH 32
347e948693eSPhilip Paeps 
348f8806762SAndrew Rybchenko 
349e948693eSPhilip Paeps /* ES_DRIVER_EV */
350e948693eSPhilip Paeps #define	ESF_DZ_DRV_CODE_LBN 60
351e948693eSPhilip Paeps #define	ESF_DZ_DRV_CODE_WIDTH 4
352e948693eSPhilip Paeps #define	ESF_DZ_DRV_SUB_CODE_LBN 56
353e948693eSPhilip Paeps #define	ESF_DZ_DRV_SUB_CODE_WIDTH 4
3543c838a9fSAndrew Rybchenko #define	ESE_DZ_DRV_TIMER_EV 3
3553c838a9fSAndrew Rybchenko #define	ESE_DZ_DRV_START_UP_EV 2
3563c838a9fSAndrew Rybchenko #define	ESE_DZ_DRV_WAKE_UP_EV 1
357e948693eSPhilip Paeps #define	ESF_DZ_DRV_SUB_DATA_DW0_LBN 0
358e948693eSPhilip Paeps #define	ESF_DZ_DRV_SUB_DATA_DW0_WIDTH 32
359e948693eSPhilip Paeps #define	ESF_DZ_DRV_SUB_DATA_DW1_LBN 32
360e948693eSPhilip Paeps #define	ESF_DZ_DRV_SUB_DATA_DW1_WIDTH 24
361e948693eSPhilip Paeps #define	ESF_DZ_DRV_SUB_DATA_LBN 0
362e948693eSPhilip Paeps #define	ESF_DZ_DRV_SUB_DATA_WIDTH 56
363e948693eSPhilip Paeps #define	ESF_DZ_DRV_EVQ_ID_LBN 0
364e948693eSPhilip Paeps #define	ESF_DZ_DRV_EVQ_ID_WIDTH 14
365e948693eSPhilip Paeps #define	ESF_DZ_DRV_TMR_ID_LBN 0
366e948693eSPhilip Paeps #define	ESF_DZ_DRV_TMR_ID_WIDTH 14
367e948693eSPhilip Paeps 
368e948693eSPhilip Paeps 
369e948693eSPhilip Paeps /* ES_EVENT_ENTRY */
370e948693eSPhilip Paeps #define	ESF_DZ_EV_CODE_LBN 60
371e948693eSPhilip Paeps #define	ESF_DZ_EV_CODE_WIDTH 4
372e948693eSPhilip Paeps #define	ESE_DZ_EV_CODE_MCDI_EV 12
373e948693eSPhilip Paeps #define	ESE_DZ_EV_CODE_DRIVER_EV 5
374e948693eSPhilip Paeps #define	ESE_DZ_EV_CODE_TX_EV 2
375e948693eSPhilip Paeps #define	ESE_DZ_EV_CODE_RX_EV 0
376e948693eSPhilip Paeps #define	ESE_DZ_OTHER other
377e948693eSPhilip Paeps #define	ESF_DZ_EV_DATA_DW0_LBN 0
378e948693eSPhilip Paeps #define	ESF_DZ_EV_DATA_DW0_WIDTH 32
379e948693eSPhilip Paeps #define	ESF_DZ_EV_DATA_DW1_LBN 32
380e948693eSPhilip Paeps #define	ESF_DZ_EV_DATA_DW1_WIDTH 28
381e948693eSPhilip Paeps #define	ESF_DZ_EV_DATA_LBN 0
382e948693eSPhilip Paeps #define	ESF_DZ_EV_DATA_WIDTH 60
383e948693eSPhilip Paeps 
384e948693eSPhilip Paeps 
385e948693eSPhilip Paeps /* ES_MC_EVENT */
386e948693eSPhilip Paeps #define	ESF_DZ_MC_CODE_LBN 60
387e948693eSPhilip Paeps #define	ESF_DZ_MC_CODE_WIDTH 4
388e948693eSPhilip Paeps #define	ESF_DZ_MC_OVERRIDE_HOLDOFF_LBN 59
389e948693eSPhilip Paeps #define	ESF_DZ_MC_OVERRIDE_HOLDOFF_WIDTH 1
390e948693eSPhilip Paeps #define	ESF_DZ_MC_DROP_EVENT_LBN 58
391e948693eSPhilip Paeps #define	ESF_DZ_MC_DROP_EVENT_WIDTH 1
392e948693eSPhilip Paeps #define	ESF_DZ_MC_SOFT_DW0_LBN 0
393e948693eSPhilip Paeps #define	ESF_DZ_MC_SOFT_DW0_WIDTH 32
394e948693eSPhilip Paeps #define	ESF_DZ_MC_SOFT_DW1_LBN 32
395e948693eSPhilip Paeps #define	ESF_DZ_MC_SOFT_DW1_WIDTH 26
396e948693eSPhilip Paeps #define	ESF_DZ_MC_SOFT_LBN 0
397e948693eSPhilip Paeps #define	ESF_DZ_MC_SOFT_WIDTH 58
398e948693eSPhilip Paeps 
399e948693eSPhilip Paeps 
400e948693eSPhilip Paeps /* ES_RX_EVENT */
401e948693eSPhilip Paeps #define	ESF_DZ_RX_CODE_LBN 60
402e948693eSPhilip Paeps #define	ESF_DZ_RX_CODE_WIDTH 4
403e948693eSPhilip Paeps #define	ESF_DZ_RX_OVERRIDE_HOLDOFF_LBN 59
404e948693eSPhilip Paeps #define	ESF_DZ_RX_OVERRIDE_HOLDOFF_WIDTH 1
405e948693eSPhilip Paeps #define	ESF_DZ_RX_DROP_EVENT_LBN 58
406e948693eSPhilip Paeps #define	ESF_DZ_RX_DROP_EVENT_WIDTH 1
407e78e1b4dSAndrew Rybchenko #define	ESF_DD_RX_EV_RSVD2_LBN 54
408e78e1b4dSAndrew Rybchenko #define	ESF_DD_RX_EV_RSVD2_WIDTH 4
409e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_TCP_UDP_INNER_CHKSUM_ERR_LBN 57
410e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_TCP_UDP_INNER_CHKSUM_ERR_WIDTH 1
411e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_IP_INNER_CHKSUM_ERR_LBN 56
412e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_IP_INNER_CHKSUM_ERR_WIDTH 1
413e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_EV_RSVD2_LBN 54
414e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_EV_RSVD2_WIDTH 2
415e948693eSPhilip Paeps #define	ESF_DZ_RX_EV_SOFT2_LBN 52
4163c838a9fSAndrew Rybchenko #define	ESF_DZ_RX_EV_SOFT2_WIDTH 2
417e948693eSPhilip Paeps #define	ESF_DZ_RX_DSC_PTR_LBITS_LBN 48
418e948693eSPhilip Paeps #define	ESF_DZ_RX_DSC_PTR_LBITS_WIDTH 4
419f2f14997SAndrew Rybchenko #define	ESF_DE_RX_L4_CLASS_LBN 45
420f2f14997SAndrew Rybchenko #define	ESF_DE_RX_L4_CLASS_WIDTH 3
421f2f14997SAndrew Rybchenko #define	ESE_DE_L4_CLASS_RSVD7 7
422f2f14997SAndrew Rybchenko #define	ESE_DE_L4_CLASS_RSVD6 6
423f2f14997SAndrew Rybchenko #define	ESE_DE_L4_CLASS_RSVD5 5
424f2f14997SAndrew Rybchenko #define	ESE_DE_L4_CLASS_RSVD4 4
425f2f14997SAndrew Rybchenko #define	ESE_DE_L4_CLASS_RSVD3 3
426f2f14997SAndrew Rybchenko #define	ESE_DE_L4_CLASS_UDP 2
427f2f14997SAndrew Rybchenko #define	ESE_DE_L4_CLASS_TCP 1
428f2f14997SAndrew Rybchenko #define	ESE_DE_L4_CLASS_UNKNOWN 0
429f2f14997SAndrew Rybchenko #define	ESF_FZ_RX_FASTPD_INDCTR_LBN 47
430f2f14997SAndrew Rybchenko #define	ESF_FZ_RX_FASTPD_INDCTR_WIDTH 1
431f2f14997SAndrew Rybchenko #define	ESF_FZ_RX_L4_CLASS_LBN 45
432f2f14997SAndrew Rybchenko #define	ESF_FZ_RX_L4_CLASS_WIDTH 2
433f2f14997SAndrew Rybchenko #define	ESE_FZ_L4_CLASS_RSVD3 3
434f2f14997SAndrew Rybchenko #define	ESE_FZ_L4_CLASS_UDP 2
435f2f14997SAndrew Rybchenko #define	ESE_FZ_L4_CLASS_TCP 1
436f2f14997SAndrew Rybchenko #define	ESE_FZ_L4_CLASS_UNKNOWN 0
437e948693eSPhilip Paeps #define	ESF_DZ_RX_L3_CLASS_LBN 42
438e948693eSPhilip Paeps #define	ESF_DZ_RX_L3_CLASS_WIDTH 3
439e948693eSPhilip Paeps #define	ESE_DZ_L3_CLASS_RSVD7 7
440e948693eSPhilip Paeps #define	ESE_DZ_L3_CLASS_IP6_FRAG 6
441e948693eSPhilip Paeps #define	ESE_DZ_L3_CLASS_ARP 5
442e948693eSPhilip Paeps #define	ESE_DZ_L3_CLASS_IP4_FRAG 4
443e948693eSPhilip Paeps #define	ESE_DZ_L3_CLASS_FCOE 3
444e948693eSPhilip Paeps #define	ESE_DZ_L3_CLASS_IP6 2
445e948693eSPhilip Paeps #define	ESE_DZ_L3_CLASS_IP4 1
446e948693eSPhilip Paeps #define	ESE_DZ_L3_CLASS_UNKNOWN 0
447e948693eSPhilip Paeps #define	ESF_DZ_RX_ETH_TAG_CLASS_LBN 39
448e948693eSPhilip Paeps #define	ESF_DZ_RX_ETH_TAG_CLASS_WIDTH 3
449e948693eSPhilip Paeps #define	ESE_DZ_ETH_TAG_CLASS_RSVD7 7
450e948693eSPhilip Paeps #define	ESE_DZ_ETH_TAG_CLASS_RSVD6 6
451e948693eSPhilip Paeps #define	ESE_DZ_ETH_TAG_CLASS_RSVD5 5
452e948693eSPhilip Paeps #define	ESE_DZ_ETH_TAG_CLASS_RSVD4 4
453e948693eSPhilip Paeps #define	ESE_DZ_ETH_TAG_CLASS_RSVD3 3
454e948693eSPhilip Paeps #define	ESE_DZ_ETH_TAG_CLASS_VLAN2 2
455e948693eSPhilip Paeps #define	ESE_DZ_ETH_TAG_CLASS_VLAN1 1
456e948693eSPhilip Paeps #define	ESE_DZ_ETH_TAG_CLASS_NONE 0
457e948693eSPhilip Paeps #define	ESF_DZ_RX_ETH_BASE_CLASS_LBN 36
458e948693eSPhilip Paeps #define	ESF_DZ_RX_ETH_BASE_CLASS_WIDTH 3
459e948693eSPhilip Paeps #define	ESE_DZ_ETH_BASE_CLASS_LLC_SNAP 2
460e948693eSPhilip Paeps #define	ESE_DZ_ETH_BASE_CLASS_LLC 1
461e948693eSPhilip Paeps #define	ESE_DZ_ETH_BASE_CLASS_ETH2 0
462e948693eSPhilip Paeps #define	ESF_DZ_RX_MAC_CLASS_LBN 35
463e948693eSPhilip Paeps #define	ESF_DZ_RX_MAC_CLASS_WIDTH 1
464e948693eSPhilip Paeps #define	ESE_DZ_MAC_CLASS_MCAST 1
465e948693eSPhilip Paeps #define	ESE_DZ_MAC_CLASS_UCAST 0
466e78e1b4dSAndrew Rybchenko #define	ESF_DD_RX_EV_SOFT1_LBN 32
467e78e1b4dSAndrew Rybchenko #define	ESF_DD_RX_EV_SOFT1_WIDTH 3
468e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_EV_SOFT1_LBN 34
469e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_EV_SOFT1_WIDTH 1
470e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_ENCAP_HDR_LBN 32
471e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_ENCAP_HDR_WIDTH 2
472e78e1b4dSAndrew Rybchenko #define	ESE_EZ_ENCAP_HDR_GRE 2
473e78e1b4dSAndrew Rybchenko #define	ESE_EZ_ENCAP_HDR_VXLAN 1
474e78e1b4dSAndrew Rybchenko #define	ESE_EZ_ENCAP_HDR_NONE 0
475e78e1b4dSAndrew Rybchenko #define	ESF_DD_RX_EV_RSVD1_LBN 30
476e78e1b4dSAndrew Rybchenko #define	ESF_DD_RX_EV_RSVD1_WIDTH 2
477e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_EV_RSVD1_LBN 31
478e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_EV_RSVD1_WIDTH 1
479e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_ABORT_LBN 30
480e78e1b4dSAndrew Rybchenko #define	ESF_EZ_RX_ABORT_WIDTH 1
481e948693eSPhilip Paeps #define	ESF_DZ_RX_ECC_ERR_LBN 29
482e948693eSPhilip Paeps #define	ESF_DZ_RX_ECC_ERR_WIDTH 1
4838bff5a20SAndrew Rybchenko #define	ESF_DZ_RX_TRUNC_ERR_LBN 29
4848bff5a20SAndrew Rybchenko #define	ESF_DZ_RX_TRUNC_ERR_WIDTH 1
485e948693eSPhilip Paeps #define	ESF_DZ_RX_CRC1_ERR_LBN 28
486e948693eSPhilip Paeps #define	ESF_DZ_RX_CRC1_ERR_WIDTH 1
487e948693eSPhilip Paeps #define	ESF_DZ_RX_CRC0_ERR_LBN 27
488e948693eSPhilip Paeps #define	ESF_DZ_RX_CRC0_ERR_WIDTH 1
489e948693eSPhilip Paeps #define	ESF_DZ_RX_TCPUDP_CKSUM_ERR_LBN 26
490e948693eSPhilip Paeps #define	ESF_DZ_RX_TCPUDP_CKSUM_ERR_WIDTH 1
491e948693eSPhilip Paeps #define	ESF_DZ_RX_IPCKSUM_ERR_LBN 25
492e948693eSPhilip Paeps #define	ESF_DZ_RX_IPCKSUM_ERR_WIDTH 1
493e948693eSPhilip Paeps #define	ESF_DZ_RX_ECRC_ERR_LBN 24
494e948693eSPhilip Paeps #define	ESF_DZ_RX_ECRC_ERR_WIDTH 1
495e948693eSPhilip Paeps #define	ESF_DZ_RX_QLABEL_LBN 16
4963c838a9fSAndrew Rybchenko #define	ESF_DZ_RX_QLABEL_WIDTH 5
497e948693eSPhilip Paeps #define	ESF_DZ_RX_PARSE_INCOMPLETE_LBN 15
498e948693eSPhilip Paeps #define	ESF_DZ_RX_PARSE_INCOMPLETE_WIDTH 1
499e948693eSPhilip Paeps #define	ESF_DZ_RX_CONT_LBN 14
500e948693eSPhilip Paeps #define	ESF_DZ_RX_CONT_WIDTH 1
501e948693eSPhilip Paeps #define	ESF_DZ_RX_BYTES_LBN 0
502e948693eSPhilip Paeps #define	ESF_DZ_RX_BYTES_WIDTH 14
503e948693eSPhilip Paeps 
504e948693eSPhilip Paeps 
505e948693eSPhilip Paeps /* ES_RX_KER_DESC */
506e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_RESERVED_LBN 62
507e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_RESERVED_WIDTH 2
508e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_BYTE_CNT_LBN 48
509e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_BYTE_CNT_WIDTH 14
510e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_BUF_ADDR_DW0_LBN 0
511e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_BUF_ADDR_DW0_WIDTH 32
512e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_BUF_ADDR_DW1_LBN 32
513e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_BUF_ADDR_DW1_WIDTH 16
514e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_BUF_ADDR_LBN 0
515e948693eSPhilip Paeps #define	ESF_DZ_RX_KER_BUF_ADDR_WIDTH 48
516e948693eSPhilip Paeps 
517e948693eSPhilip Paeps 
5183c838a9fSAndrew Rybchenko /* ES_TX_CSUM_TSTAMP_DESC */
5193c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_DESC_IS_OPT_LBN 63
5203c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
5213c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TYPE_LBN 60
5223c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TYPE_WIDTH 3
5233c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_TSO 7
5243c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_VLAN 6
5253c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
526f8806762SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TS_AT_TXDP_LBN 8
527f8806762SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TS_AT_TXDP_WIDTH 1
528f8806762SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_INNER_UDP_TCP_CSUM_LBN 7
529f8806762SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_INNER_UDP_TCP_CSUM_WIDTH 1
530f8806762SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_INNER_IP_CSUM_LBN 6
531f8806762SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_INNER_IP_CSUM_WIDTH 1
5323c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_TIMESTAMP_LBN 5
5333c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_TIMESTAMP_WIDTH 1
5343c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_CRC_MODE_LBN 2
5353c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_CRC_MODE_WIDTH 3
5363c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_CRC_FCOIP_MPA 5
5373c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_CRC_FCOIP_FCOE 4
5383c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_CRC_ISCSI_HDR_AND_PYLD 3
5393c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_CRC_ISCSI_HDR 2
5403c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_CRC_FCOE 1
5413c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_CRC_OFF 0
5423c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_UDP_TCP_CSUM_LBN 1
5433c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_UDP_TCP_CSUM_WIDTH 1
5443c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_IP_CSUM_LBN 0
5453c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_IP_CSUM_WIDTH 1
5463c838a9fSAndrew Rybchenko 
5473c838a9fSAndrew Rybchenko 
548e948693eSPhilip Paeps /* ES_TX_EVENT */
549e948693eSPhilip Paeps #define	ESF_DZ_TX_CODE_LBN 60
550e948693eSPhilip Paeps #define	ESF_DZ_TX_CODE_WIDTH 4
551e948693eSPhilip Paeps #define	ESF_DZ_TX_OVERRIDE_HOLDOFF_LBN 59
552e948693eSPhilip Paeps #define	ESF_DZ_TX_OVERRIDE_HOLDOFF_WIDTH 1
553e948693eSPhilip Paeps #define	ESF_DZ_TX_DROP_EVENT_LBN 58
554e948693eSPhilip Paeps #define	ESF_DZ_TX_DROP_EVENT_WIDTH 1
555e78e1b4dSAndrew Rybchenko #define	ESF_DD_TX_EV_RSVD_LBN 48
556e78e1b4dSAndrew Rybchenko #define	ESF_DD_TX_EV_RSVD_WIDTH 10
557e78e1b4dSAndrew Rybchenko #define	ESF_EZ_TCP_UDP_INNER_CHKSUM_ERR_LBN 57
558e78e1b4dSAndrew Rybchenko #define	ESF_EZ_TCP_UDP_INNER_CHKSUM_ERR_WIDTH 1
559e78e1b4dSAndrew Rybchenko #define	ESF_EZ_IP_INNER_CHKSUM_ERR_LBN 56
560e78e1b4dSAndrew Rybchenko #define	ESF_EZ_IP_INNER_CHKSUM_ERR_WIDTH 1
561e78e1b4dSAndrew Rybchenko #define	ESF_EZ_TX_EV_RSVD_LBN 48
562e78e1b4dSAndrew Rybchenko #define	ESF_EZ_TX_EV_RSVD_WIDTH 8
563e948693eSPhilip Paeps #define	ESF_DZ_TX_SOFT2_LBN 32
564e948693eSPhilip Paeps #define	ESF_DZ_TX_SOFT2_WIDTH 16
565e78e1b4dSAndrew Rybchenko #define	ESF_DD_TX_SOFT1_LBN 24
566e78e1b4dSAndrew Rybchenko #define	ESF_DD_TX_SOFT1_WIDTH 8
567e78e1b4dSAndrew Rybchenko #define	ESF_EZ_TX_CAN_MERGE_LBN 31
568e78e1b4dSAndrew Rybchenko #define	ESF_EZ_TX_CAN_MERGE_WIDTH 1
569e78e1b4dSAndrew Rybchenko #define	ESF_EZ_TX_SOFT1_LBN 24
570e78e1b4dSAndrew Rybchenko #define	ESF_EZ_TX_SOFT1_WIDTH 7
571e948693eSPhilip Paeps #define	ESF_DZ_TX_QLABEL_LBN 16
5723c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_QLABEL_WIDTH 5
573e948693eSPhilip Paeps #define	ESF_DZ_TX_DESCR_INDX_LBN 0
574e948693eSPhilip Paeps #define	ESF_DZ_TX_DESCR_INDX_WIDTH 16
575e948693eSPhilip Paeps 
576e948693eSPhilip Paeps 
577e948693eSPhilip Paeps /* ES_TX_KER_DESC */
578e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_TYPE_LBN 63
579e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_TYPE_WIDTH 1
580e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_CONT_LBN 62
581e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_CONT_WIDTH 1
582e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_BYTE_CNT_LBN 48
583e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_BYTE_CNT_WIDTH 14
584e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_BUF_ADDR_DW0_LBN 0
585e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_BUF_ADDR_DW0_WIDTH 32
586e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_BUF_ADDR_DW1_LBN 32
587e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_BUF_ADDR_DW1_WIDTH 16
588e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_BUF_ADDR_LBN 0
589e948693eSPhilip Paeps #define	ESF_DZ_TX_KER_BUF_ADDR_WIDTH 48
590e948693eSPhilip Paeps 
591e948693eSPhilip Paeps 
5923c838a9fSAndrew Rybchenko /* ES_TX_PIO_DESC */
5933c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_TYPE_LBN 63
5943c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_TYPE_WIDTH 1
5953c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_OPT_LBN 60
5963c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_OPT_WIDTH 3
5973c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_CONT_LBN 59
5983c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_CONT_WIDTH 1
5993c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_BYTE_CNT_LBN 32
6003c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_BYTE_CNT_WIDTH 12
6013c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_BUF_ADDR_LBN 0
6023c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_PIO_BUF_ADDR_WIDTH 12
6033c838a9fSAndrew Rybchenko 
6043c838a9fSAndrew Rybchenko 
6053c838a9fSAndrew Rybchenko /* ES_TX_TSO_DESC */
606e948693eSPhilip Paeps #define	ESF_DZ_TX_DESC_IS_OPT_LBN 63
607e948693eSPhilip Paeps #define	ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
608e948693eSPhilip Paeps #define	ESF_DZ_TX_OPTION_TYPE_LBN 60
609e948693eSPhilip Paeps #define	ESF_DZ_TX_OPTION_TYPE_WIDTH 3
6103c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_TSO 7
6113c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_VLAN 6
612e948693eSPhilip Paeps #define	ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
613f8806762SAndrew Rybchenko #define	ESF_DZ_TX_TSO_OPTION_TYPE_LBN 56
614f8806762SAndrew Rybchenko #define	ESF_DZ_TX_TSO_OPTION_TYPE_WIDTH 4
615f2f14997SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2B 3
616f2f14997SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2A 2
617f8806762SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_ENCAP 1
618f8806762SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_NORMAL 0
619e948693eSPhilip Paeps #define	ESF_DZ_TX_TSO_TCP_FLAGS_LBN 48
620e948693eSPhilip Paeps #define	ESF_DZ_TX_TSO_TCP_FLAGS_WIDTH 8
6213c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_TSO_IP_ID_LBN 32
6223c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_TSO_IP_ID_WIDTH 16
623e948693eSPhilip Paeps #define	ESF_DZ_TX_TSO_TCP_SEQNO_LBN 0
624e948693eSPhilip Paeps #define	ESF_DZ_TX_TSO_TCP_SEQNO_WIDTH 32
625e948693eSPhilip Paeps 
626e948693eSPhilip Paeps 
627f2f14997SAndrew Rybchenko /* ES_TX_TSO_V2_DESC_A */
62851fd6441SAndrew Rybchenko #define	ESF_DZ_TX_DESC_IS_OPT_LBN 63
62951fd6441SAndrew Rybchenko #define	ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
63051fd6441SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TYPE_LBN 60
63151fd6441SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TYPE_WIDTH 3
63251fd6441SAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_TSO 7
63351fd6441SAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_VLAN 6
63451fd6441SAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
63551fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_OPTION_TYPE_LBN 56
63651fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_OPTION_TYPE_WIDTH 4
63751fd6441SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2B 3
63851fd6441SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2A 2
63951fd6441SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_ENCAP 1
64051fd6441SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_NORMAL 0
64151fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_IP_ID_LBN 32
64251fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_IP_ID_WIDTH 16
64351fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_TCP_SEQNO_LBN 0
64451fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_TCP_SEQNO_WIDTH 32
64551fd6441SAndrew Rybchenko 
64651fd6441SAndrew Rybchenko 
647f2f14997SAndrew Rybchenko /* ES_TX_TSO_V2_DESC_B */
64851fd6441SAndrew Rybchenko #define	ESF_DZ_TX_DESC_IS_OPT_LBN 63
64951fd6441SAndrew Rybchenko #define	ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
65051fd6441SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TYPE_LBN 60
65151fd6441SAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TYPE_WIDTH 3
65251fd6441SAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_TSO 7
65351fd6441SAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_VLAN 6
65451fd6441SAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
65551fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_OPTION_TYPE_LBN 56
65651fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_OPTION_TYPE_WIDTH 4
65751fd6441SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2B 3
65851fd6441SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2A 2
65951fd6441SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_ENCAP 1
66051fd6441SAndrew Rybchenko #define	ESE_DZ_TX_TSO_OPTION_DESC_NORMAL 0
66151fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_TCP_MSS_LBN 32
66251fd6441SAndrew Rybchenko #define	ESF_DZ_TX_TSO_TCP_MSS_WIDTH 16
663f2f14997SAndrew Rybchenko #define	ESF_DZ_TX_TSO_OUTER_IPID_LBN 0
664f2f14997SAndrew Rybchenko #define	ESF_DZ_TX_TSO_OUTER_IPID_WIDTH 16
66551fd6441SAndrew Rybchenko 
66651fd6441SAndrew Rybchenko 
6673c838a9fSAndrew Rybchenko /* ES_TX_VLAN_DESC */
6683c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_DESC_IS_OPT_LBN 63
6693c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
6703c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TYPE_LBN 60
6713c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_OPTION_TYPE_WIDTH 3
6723c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_TSO 7
6733c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_VLAN 6
6743c838a9fSAndrew Rybchenko #define	ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
6753c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_VLAN_OP_LBN 32
6763c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_VLAN_OP_WIDTH 2
6773c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_VLAN_TAG2_LBN 16
6783c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_VLAN_TAG2_WIDTH 16
6793c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_VLAN_TAG1_LBN 0
6803c838a9fSAndrew Rybchenko #define	ESF_DZ_TX_VLAN_TAG1_WIDTH 16
6813c838a9fSAndrew Rybchenko 
6823c838a9fSAndrew Rybchenko 
683946b5480SAndrew Rybchenko /*************************************************************************
684946b5480SAndrew Rybchenko  * NOTE: the comment line above marks the end of the autogenerated section
685946b5480SAndrew Rybchenko  */
686946b5480SAndrew Rybchenko 
687946b5480SAndrew Rybchenko /*
688946b5480SAndrew Rybchenko  * The workaround for bug 35388 requires multiplexing writes through
689946b5480SAndrew Rybchenko  * the ERF_DZ_TX_DESC_WPTR address.
690946b5480SAndrew Rybchenko  * TX_DESC_UPD: 0ppppppppppp               (bit 11 lost)
691946b5480SAndrew Rybchenko  * EVQ_RPTR:    1000hhhhhhhh, 1001llllllll (split into high and low bits)
692946b5480SAndrew Rybchenko  * EVQ_TMR:     11mmvvvvvvvv               (bits 8:13 of value lost)
693946b5480SAndrew Rybchenko  */
694946b5480SAndrew Rybchenko #define	ER_DD_EVQ_INDIRECT_OFST (ER_DZ_TX_DESC_UPD_REG_OFST + 2 * 4)
695946b5480SAndrew Rybchenko #define	ER_DD_EVQ_INDIRECT_STEP ER_DZ_TX_DESC_UPD_REG_STEP
696946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_RPTR_FLAGS_LBN 8
697946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_RPTR_FLAGS_WIDTH 4
698946b5480SAndrew Rybchenko #define	EFE_DD_EVQ_IND_RPTR_FLAGS_HIGH 8
699946b5480SAndrew Rybchenko #define	EFE_DD_EVQ_IND_RPTR_FLAGS_LOW 9
700946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_RPTR_LBN 0
701946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_RPTR_WIDTH 8
702946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_TIMER_FLAGS_LBN 10
703946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_TIMER_FLAGS_WIDTH 2
704946b5480SAndrew Rybchenko #define	EFE_DD_EVQ_IND_TIMER_FLAGS 3
705946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_TIMER_MODE_LBN 8
706946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_TIMER_MODE_WIDTH 2
707946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_TIMER_VAL_LBN 0
708946b5480SAndrew Rybchenko #define	ERF_DD_EVQ_IND_TIMER_VAL_WIDTH 8
709946b5480SAndrew Rybchenko 
7108e0c4827SAndrew Rybchenko /* Packed stream magic doorbell command */
7118e0c4827SAndrew Rybchenko #define	ERF_DZ_RX_DESC_MAGIC_DOORBELL_LBN 11
7128e0c4827SAndrew Rybchenko #define	ERF_DZ_RX_DESC_MAGIC_DOORBELL_WIDTH 1
7138e0c4827SAndrew Rybchenko 
7148e0c4827SAndrew Rybchenko #define	ERF_DZ_RX_DESC_MAGIC_CMD_LBN 8
7158e0c4827SAndrew Rybchenko #define	ERF_DZ_RX_DESC_MAGIC_CMD_WIDTH 3
7168e0c4827SAndrew Rybchenko #define	ERE_DZ_RX_DESC_MAGIC_CMD_PS_CREDITS 0
7178e0c4827SAndrew Rybchenko 
7188e0c4827SAndrew Rybchenko #define	ERF_DZ_RX_DESC_MAGIC_DATA_LBN 0
7198e0c4827SAndrew Rybchenko #define	ERF_DZ_RX_DESC_MAGIC_DATA_WIDTH 8
7208e0c4827SAndrew Rybchenko 
7218e0c4827SAndrew Rybchenko /* Packed stream RX packet prefix */
7228e0c4827SAndrew Rybchenko #define	ES_DZ_PS_RX_PREFIX_TSTAMP_LBN 0
7238e0c4827SAndrew Rybchenko #define	ES_DZ_PS_RX_PREFIX_TSTAMP_WIDTH 32
7248e0c4827SAndrew Rybchenko #define	ES_DZ_PS_RX_PREFIX_CAP_LEN_LBN 32
7258e0c4827SAndrew Rybchenko #define	ES_DZ_PS_RX_PREFIX_CAP_LEN_WIDTH 16
7268e0c4827SAndrew Rybchenko #define	ES_DZ_PS_RX_PREFIX_ORIG_LEN_LBN 48
7278e0c4827SAndrew Rybchenko #define	ES_DZ_PS_RX_PREFIX_ORIG_LEN_WIDTH 16
7288e0c4827SAndrew Rybchenko 
729*d222b617SAndrew Rybchenko /* Equal stride super-buffer RX packet prefix (see SF-119419-TC) */
730*d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_LEN 8
731*d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_DATA_LEN_LBN 0
732*d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_DATA_LEN_WIDTH 16
733*d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_MARK_LBN 16
734*d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_MARK_WIDTH 8
735*d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_HASH_VALID_LBN 28
736*d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_HASH_VALID_WIDTH 1
737*d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_MARK_VALID_LBN 29
738*d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_MARK_VALID_WIDTH 1
739*d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_MATCH_FLAG_LBN 30
740*d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_MATCH_FLAG_WIDTH 1
741*d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_HASH_LBN 32
742*d222b617SAndrew Rybchenko #define	ES_EZ_ESSB_RX_PREFIX_HASH_WIDTH 32
743*d222b617SAndrew Rybchenko 
7448e0c4827SAndrew Rybchenko /*
7458e0c4827SAndrew Rybchenko  * An extra flag for the packed stream mode,
7468e0c4827SAndrew Rybchenko  * signalling the start of a new buffer
7478e0c4827SAndrew Rybchenko  */
7488e0c4827SAndrew Rybchenko #define	ESF_DZ_RX_EV_ROTATE_LBN 53
7498e0c4827SAndrew Rybchenko #define	ESF_DZ_RX_EV_ROTATE_WIDTH 1
750946b5480SAndrew Rybchenko 
751e948693eSPhilip Paeps #ifdef	__cplusplus
752e948693eSPhilip Paeps }
753e948693eSPhilip Paeps #endif
754e948693eSPhilip Paeps 
755e948693eSPhilip Paeps #endif /* _SYS_EFX_EF10_REGS_H */
756