xref: /freebsd/sys/dev/cxgbe/common/t4_regs_values.h (revision b3daa684d8befdce38e6d7d889eb84be49626768)
154e4ee71SNavdeep Parhar /*-
2718cf2ccSPedro F. Giffuni  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3718cf2ccSPedro F. Giffuni  *
440bf7442SNavdeep Parhar  * Copyright (c) 2011, 2016 Chelsio Communications, Inc.
554e4ee71SNavdeep Parhar  * All rights reserved.
654e4ee71SNavdeep Parhar  *
754e4ee71SNavdeep Parhar  * Redistribution and use in source and binary forms, with or without
854e4ee71SNavdeep Parhar  * modification, are permitted provided that the following conditions
954e4ee71SNavdeep Parhar  * are met:
1054e4ee71SNavdeep Parhar  * 1. Redistributions of source code must retain the above copyright
1154e4ee71SNavdeep Parhar  *    notice, this list of conditions and the following disclaimer.
1254e4ee71SNavdeep Parhar  * 2. Redistributions in binary form must reproduce the above copyright
1354e4ee71SNavdeep Parhar  *    notice, this list of conditions and the following disclaimer in the
1454e4ee71SNavdeep Parhar  *    documentation and/or other materials provided with the distribution.
1554e4ee71SNavdeep Parhar  *
1654e4ee71SNavdeep Parhar  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1754e4ee71SNavdeep Parhar  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1854e4ee71SNavdeep Parhar  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1954e4ee71SNavdeep Parhar  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
2054e4ee71SNavdeep Parhar  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2154e4ee71SNavdeep Parhar  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2254e4ee71SNavdeep Parhar  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2354e4ee71SNavdeep Parhar  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2454e4ee71SNavdeep Parhar  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2554e4ee71SNavdeep Parhar  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2654e4ee71SNavdeep Parhar  * SUCH DAMAGE.
2754e4ee71SNavdeep Parhar  *
2854e4ee71SNavdeep Parhar  * $FreeBSD$
2954e4ee71SNavdeep Parhar  *
3054e4ee71SNavdeep Parhar  */
3154e4ee71SNavdeep Parhar 
3254e4ee71SNavdeep Parhar #ifndef __T4_REGS_VALUES_H__
3354e4ee71SNavdeep Parhar #define __T4_REGS_VALUES_H__
3454e4ee71SNavdeep Parhar 
3554e4ee71SNavdeep Parhar /*
3654e4ee71SNavdeep Parhar  * This file contains definitions for various T4 register value hardware
3754e4ee71SNavdeep Parhar  * constants.  The types of values encoded here are predominantly those for
3854e4ee71SNavdeep Parhar  * register fields which control "modal" behavior.  For the most part, we do
3954e4ee71SNavdeep Parhar  * not include definitions for register fields which are simple numeric
4054e4ee71SNavdeep Parhar  * metrics, etc.
4154e4ee71SNavdeep Parhar  *
4254e4ee71SNavdeep Parhar  * These new "modal values" use a naming convention which matches the
4354e4ee71SNavdeep Parhar  * currently existing macros in t4_reg.h.  For register field FOO which would
4454e4ee71SNavdeep Parhar  * have S_FOO, M_FOO, V_FOO() and G_FOO() macros, we introduce X_FOO_{MODE}
4554e4ee71SNavdeep Parhar  * definitions.  These can be used as V_FOO(X_FOO_MODE) or as (G_FOO(x) ==
4654e4ee71SNavdeep Parhar  * X_FOO_MODE).
4754e4ee71SNavdeep Parhar  *
4854e4ee71SNavdeep Parhar  * Note that this should all be part of t4_regs.h but the toolset used to
4954e4ee71SNavdeep Parhar  * generate that file doesn't [yet] have the capability of collecting these
5054e4ee71SNavdeep Parhar  * constants.
5154e4ee71SNavdeep Parhar  */
5254e4ee71SNavdeep Parhar 
5354e4ee71SNavdeep Parhar /*
5454e4ee71SNavdeep Parhar  * SGE definitions.
5554e4ee71SNavdeep Parhar  * ================
5654e4ee71SNavdeep Parhar  */
5754e4ee71SNavdeep Parhar 
5854e4ee71SNavdeep Parhar /*
5954e4ee71SNavdeep Parhar  * SGE register field values.
6054e4ee71SNavdeep Parhar  */
6154e4ee71SNavdeep Parhar 
6254e4ee71SNavdeep Parhar /* CONTROL register */
6354e4ee71SNavdeep Parhar #define X_FLSPLITMODE_FLSPLITMIN	0
6454e4ee71SNavdeep Parhar #define X_FLSPLITMODE_ETHHDR		1
6554e4ee71SNavdeep Parhar #define X_FLSPLITMODE_IPHDR		2
6654e4ee71SNavdeep Parhar #define X_FLSPLITMODE_TCPHDR		3
6754e4ee71SNavdeep Parhar 
6854e4ee71SNavdeep Parhar #define X_DCASYSTYPE_FSB		0
6954e4ee71SNavdeep Parhar #define X_DCASYSTYPE_CSI		1
7054e4ee71SNavdeep Parhar 
7154e4ee71SNavdeep Parhar #define X_EGSTATPAGESIZE_64B		0
7254e4ee71SNavdeep Parhar #define X_EGSTATPAGESIZE_128B		1
7354e4ee71SNavdeep Parhar 
7454e4ee71SNavdeep Parhar #define X_RXPKTCPLMODE_DATA		0
7554e4ee71SNavdeep Parhar #define X_RXPKTCPLMODE_SPLIT		1
7654e4ee71SNavdeep Parhar 
7754e4ee71SNavdeep Parhar #define X_INGPCIEBOUNDARY_SHIFT		5
7854e4ee71SNavdeep Parhar #define X_INGPCIEBOUNDARY_32B		0
7954e4ee71SNavdeep Parhar #define X_INGPCIEBOUNDARY_64B		1
8054e4ee71SNavdeep Parhar #define X_INGPCIEBOUNDARY_128B		2
8154e4ee71SNavdeep Parhar #define X_INGPCIEBOUNDARY_256B		3
8254e4ee71SNavdeep Parhar #define X_INGPCIEBOUNDARY_512B		4
8354e4ee71SNavdeep Parhar #define X_INGPCIEBOUNDARY_1024B		5
8454e4ee71SNavdeep Parhar #define X_INGPCIEBOUNDARY_2048B		6
8554e4ee71SNavdeep Parhar #define X_INGPCIEBOUNDARY_4096B		7
8654e4ee71SNavdeep Parhar 
8740bf7442SNavdeep Parhar #define X_T6_INGPADBOUNDARY_SHIFT	3
8840bf7442SNavdeep Parhar #define X_T6_INGPADBOUNDARY_8B		0
8940bf7442SNavdeep Parhar #define X_T6_INGPADBOUNDARY_16B		1
9040bf7442SNavdeep Parhar #define X_T6_INGPADBOUNDARY_32B		2
9140bf7442SNavdeep Parhar #define X_T6_INGPADBOUNDARY_64B		3
9240bf7442SNavdeep Parhar #define X_T6_INGPADBOUNDARY_128B	4
9340bf7442SNavdeep Parhar #define X_T6_INGPADBOUNDARY_256B	5
9440bf7442SNavdeep Parhar #define X_T6_INGPADBOUNDARY_512B	6
9540bf7442SNavdeep Parhar #define X_T6_INGPADBOUNDARY_1024B	7
9640bf7442SNavdeep Parhar 
9754e4ee71SNavdeep Parhar #define X_INGPADBOUNDARY_SHIFT		5
9854e4ee71SNavdeep Parhar #define X_INGPADBOUNDARY_32B		0
9954e4ee71SNavdeep Parhar #define X_INGPADBOUNDARY_64B		1
10054e4ee71SNavdeep Parhar #define X_INGPADBOUNDARY_128B		2
10154e4ee71SNavdeep Parhar #define X_INGPADBOUNDARY_256B		3
10254e4ee71SNavdeep Parhar #define X_INGPADBOUNDARY_512B		4
10354e4ee71SNavdeep Parhar #define X_INGPADBOUNDARY_1024B		5
10454e4ee71SNavdeep Parhar #define X_INGPADBOUNDARY_2048B		6
10554e4ee71SNavdeep Parhar #define X_INGPADBOUNDARY_4096B		7
10654e4ee71SNavdeep Parhar 
10754e4ee71SNavdeep Parhar #define X_EGRPCIEBOUNDARY_SHIFT		5
10854e4ee71SNavdeep Parhar #define X_EGRPCIEBOUNDARY_32B		0
10954e4ee71SNavdeep Parhar #define X_EGRPCIEBOUNDARY_64B		1
11054e4ee71SNavdeep Parhar #define X_EGRPCIEBOUNDARY_128B		2
11154e4ee71SNavdeep Parhar #define X_EGRPCIEBOUNDARY_256B		3
11254e4ee71SNavdeep Parhar #define X_EGRPCIEBOUNDARY_512B		4
11354e4ee71SNavdeep Parhar #define X_EGRPCIEBOUNDARY_1024B		5
11454e4ee71SNavdeep Parhar #define X_EGRPCIEBOUNDARY_2048B		6
11554e4ee71SNavdeep Parhar #define X_EGRPCIEBOUNDARY_4096B		7
11654e4ee71SNavdeep Parhar 
11740bf7442SNavdeep Parhar /* CONTROL2 register */
11840bf7442SNavdeep Parhar #define X_INGPACKBOUNDARY_SHIFT		5	// *most* of the values ...
11940bf7442SNavdeep Parhar #define X_INGPACKBOUNDARY_16B		0	// Note weird value!
12040bf7442SNavdeep Parhar #define X_INGPACKBOUNDARY_64B		1
12140bf7442SNavdeep Parhar #define X_INGPACKBOUNDARY_128B		2
12240bf7442SNavdeep Parhar #define X_INGPACKBOUNDARY_256B		3
12340bf7442SNavdeep Parhar #define X_INGPACKBOUNDARY_512B		4
12440bf7442SNavdeep Parhar #define X_INGPACKBOUNDARY_1024B		5
12540bf7442SNavdeep Parhar #define X_INGPACKBOUNDARY_2048B		6
12640bf7442SNavdeep Parhar #define X_INGPACKBOUNDARY_4096B		7
12740bf7442SNavdeep Parhar 
12854e4ee71SNavdeep Parhar /* GTS register */
12954e4ee71SNavdeep Parhar #define SGE_TIMERREGS			6
13054e4ee71SNavdeep Parhar #define X_TIMERREG_COUNTER0		0
13154e4ee71SNavdeep Parhar #define X_TIMERREG_COUNTER1		1
13254e4ee71SNavdeep Parhar #define X_TIMERREG_COUNTER2		2
13354e4ee71SNavdeep Parhar #define X_TIMERREG_COUNTER3		3
13454e4ee71SNavdeep Parhar #define X_TIMERREG_COUNTER4		4
13554e4ee71SNavdeep Parhar #define X_TIMERREG_COUNTER5		5
13654e4ee71SNavdeep Parhar #define X_TIMERREG_RESTART_COUNTER	6
13754e4ee71SNavdeep Parhar #define X_TIMERREG_UPDATE_CIDX		7
13854e4ee71SNavdeep Parhar 
13954e4ee71SNavdeep Parhar /*
14054e4ee71SNavdeep Parhar  * Egress Context field values
14154e4ee71SNavdeep Parhar  */
14254e4ee71SNavdeep Parhar #define EC_WR_UNITS			16
14354e4ee71SNavdeep Parhar 
14454e4ee71SNavdeep Parhar #define X_FETCHBURSTMIN_SHIFT		4
14554e4ee71SNavdeep Parhar #define X_FETCHBURSTMIN_16B		0
14654e4ee71SNavdeep Parhar #define X_FETCHBURSTMIN_32B		1
14754e4ee71SNavdeep Parhar #define X_FETCHBURSTMIN_64B		2
14854e4ee71SNavdeep Parhar #define X_FETCHBURSTMIN_128B		3
14954e4ee71SNavdeep Parhar 
15054e4ee71SNavdeep Parhar #define X_FETCHBURSTMAX_SHIFT		6
15154e4ee71SNavdeep Parhar #define X_FETCHBURSTMAX_64B		0
15254e4ee71SNavdeep Parhar #define X_FETCHBURSTMAX_128B		1
15354e4ee71SNavdeep Parhar #define X_FETCHBURSTMAX_256B		2
15454e4ee71SNavdeep Parhar #define X_FETCHBURSTMAX_512B		3
15554e4ee71SNavdeep Parhar 
15654e4ee71SNavdeep Parhar #define X_HOSTFCMODE_NONE		0
15754e4ee71SNavdeep Parhar #define X_HOSTFCMODE_INGRESS_QUEUE	1
15854e4ee71SNavdeep Parhar #define X_HOSTFCMODE_STATUS_PAGE	2
15954e4ee71SNavdeep Parhar #define X_HOSTFCMODE_BOTH		3
16054e4ee71SNavdeep Parhar 
16154e4ee71SNavdeep Parhar #define X_HOSTFCOWNER_UP		0
16254e4ee71SNavdeep Parhar #define X_HOSTFCOWNER_SGE		1
16354e4ee71SNavdeep Parhar 
16454e4ee71SNavdeep Parhar #define X_CIDXFLUSHTHRESH_1		0
16554e4ee71SNavdeep Parhar #define X_CIDXFLUSHTHRESH_2		1
16654e4ee71SNavdeep Parhar #define X_CIDXFLUSHTHRESH_4		2
16754e4ee71SNavdeep Parhar #define X_CIDXFLUSHTHRESH_8		3
16854e4ee71SNavdeep Parhar #define X_CIDXFLUSHTHRESH_16		4
16954e4ee71SNavdeep Parhar #define X_CIDXFLUSHTHRESH_32		5
17054e4ee71SNavdeep Parhar #define X_CIDXFLUSHTHRESH_64		6
17154e4ee71SNavdeep Parhar #define X_CIDXFLUSHTHRESH_128		7
17254e4ee71SNavdeep Parhar 
17354e4ee71SNavdeep Parhar #define X_IDXSIZE_UNIT			64
17454e4ee71SNavdeep Parhar 
17554e4ee71SNavdeep Parhar #define X_BASEADDRESS_ALIGN		512
17654e4ee71SNavdeep Parhar 
17754e4ee71SNavdeep Parhar /*
17854e4ee71SNavdeep Parhar  * Ingress Context field values
17954e4ee71SNavdeep Parhar  */
18054e4ee71SNavdeep Parhar #define X_UPDATESCHEDULING_TIMER	0
18154e4ee71SNavdeep Parhar #define X_UPDATESCHEDULING_COUNTER_OPTTIMER	1
18254e4ee71SNavdeep Parhar 
18354e4ee71SNavdeep Parhar #define X_UPDATEDELIVERY_NONE		0
18454e4ee71SNavdeep Parhar #define X_UPDATEDELIVERY_INTERRUPT	1
18554e4ee71SNavdeep Parhar #define X_UPDATEDELIVERY_STATUS_PAGE	2
18654e4ee71SNavdeep Parhar #define X_UPDATEDELIVERY_BOTH		3
18754e4ee71SNavdeep Parhar 
18854e4ee71SNavdeep Parhar #define X_INTERRUPTDESTINATION_PCIE	0
18954e4ee71SNavdeep Parhar #define X_INTERRUPTDESTINATION_IQ	1
19054e4ee71SNavdeep Parhar 
19154e4ee71SNavdeep Parhar #define X_QUEUEENTRYSIZE_16B		0
19254e4ee71SNavdeep Parhar #define X_QUEUEENTRYSIZE_32B		1
19354e4ee71SNavdeep Parhar #define X_QUEUEENTRYSIZE_64B		2
19454e4ee71SNavdeep Parhar #define X_QUEUEENTRYSIZE_128B		3
19554e4ee71SNavdeep Parhar 
19654e4ee71SNavdeep Parhar #define IC_SIZE_UNIT			16
19754e4ee71SNavdeep Parhar #define IC_BASEADDRESS_ALIGN		512
19854e4ee71SNavdeep Parhar 
19954e4ee71SNavdeep Parhar #define X_RSPD_TYPE_FLBUF		0
20054e4ee71SNavdeep Parhar #define X_RSPD_TYPE_CPL			1
20154e4ee71SNavdeep Parhar #define X_RSPD_TYPE_INTR		2
20254e4ee71SNavdeep Parhar 
20354e4ee71SNavdeep Parhar /*
20440bf7442SNavdeep Parhar  * Context field definitions.  This is by no means a complete list of SGE
20540bf7442SNavdeep Parhar  * Context fields.  In the vast majority of cases the firmware initializes
20640bf7442SNavdeep Parhar  * things the way they need to be set up.  But in a few small cases, we need
20740bf7442SNavdeep Parhar  * to compute new values and ship them off to the firmware to be applied to
20840bf7442SNavdeep Parhar  * the SGE Conexts ...
20940bf7442SNavdeep Parhar  */
21040bf7442SNavdeep Parhar 
21140bf7442SNavdeep Parhar /*
21240bf7442SNavdeep Parhar  * Congestion Manager Definitions.
21340bf7442SNavdeep Parhar  */
21440bf7442SNavdeep Parhar #define S_CONMCTXT_CNGTPMODE		19
21540bf7442SNavdeep Parhar #define M_CONMCTXT_CNGTPMODE		0x3
21640bf7442SNavdeep Parhar #define V_CONMCTXT_CNGTPMODE(x)		((x) << S_CONMCTXT_CNGTPMODE)
21740bf7442SNavdeep Parhar #define G_CONMCTXT_CNGTPMODE(x)  \
21840bf7442SNavdeep Parhar 	(((x) >> S_CONMCTXT_CNGTPMODE) & M_CONMCTXT_CNGTPMODE)
21940bf7442SNavdeep Parhar #define S_CONMCTXT_CNGCHMAP		0
22040bf7442SNavdeep Parhar #define M_CONMCTXT_CNGCHMAP		0xffff
22140bf7442SNavdeep Parhar #define V_CONMCTXT_CNGCHMAP(x)		((x) << S_CONMCTXT_CNGCHMAP)
22240bf7442SNavdeep Parhar #define G_CONMCTXT_CNGCHMAP(x)   \
22340bf7442SNavdeep Parhar 	(((x) >> S_CONMCTXT_CNGCHMAP) & M_CONMCTXT_CNGCHMAP)
22440bf7442SNavdeep Parhar 
22540bf7442SNavdeep Parhar #define X_CONMCTXT_CNGTPMODE_DISABLE	0
22640bf7442SNavdeep Parhar #define X_CONMCTXT_CNGTPMODE_QUEUE	1
22740bf7442SNavdeep Parhar #define X_CONMCTXT_CNGTPMODE_CHANNEL	2
22840bf7442SNavdeep Parhar #define X_CONMCTXT_CNGTPMODE_BOTH	3
22940bf7442SNavdeep Parhar 
23040bf7442SNavdeep Parhar /*
23140bf7442SNavdeep Parhar  * T5 and later support a new BAR2-based doorbell mechanism for Egress Queues.
23240bf7442SNavdeep Parhar  * The User Doorbells are each 128 bytes in length with a Simple Doorbell at
23340bf7442SNavdeep Parhar  * offsets 8x and a Write Combining single 64-byte Egress Queue Unit
23440bf7442SNavdeep Parhar  * (X_IDXSIZE_UNIT) Gather Buffer interface at offset 64.  For Ingress Queues,
23540bf7442SNavdeep Parhar  * we have a Going To Sleep register at offsets 8x+4.
23640bf7442SNavdeep Parhar  *
23740bf7442SNavdeep Parhar  * As noted above, we have many instances of the Simple Doorbell and Going To
23840bf7442SNavdeep Parhar  * Sleep registers at offsets 8x and 8x+4, respectively.  We want to use a
23940bf7442SNavdeep Parhar  * non-64-byte aligned offset for the Simple Doorbell in order to attempt to
24040bf7442SNavdeep Parhar  * avoid buffering of the writes to the Simple Doorbell and we want to use a
24140bf7442SNavdeep Parhar  * non-contiguous offset for the Going To Sleep writes in order to avoid
24240bf7442SNavdeep Parhar  * possible combining between them.
24340bf7442SNavdeep Parhar  */
24440bf7442SNavdeep Parhar #define SGE_UDB_SIZE		128
24540bf7442SNavdeep Parhar #define SGE_UDB_KDOORBELL	8
24640bf7442SNavdeep Parhar #define SGE_UDB_GTS		20
24740bf7442SNavdeep Parhar #define SGE_UDB_WCDOORBELL	64
24840bf7442SNavdeep Parhar 
24940bf7442SNavdeep Parhar /*
25054e4ee71SNavdeep Parhar  * CIM definitions.
25154e4ee71SNavdeep Parhar  * ================
25254e4ee71SNavdeep Parhar  */
25354e4ee71SNavdeep Parhar 
25454e4ee71SNavdeep Parhar /*
25554e4ee71SNavdeep Parhar  * CIM register field values.
25654e4ee71SNavdeep Parhar  */
25754e4ee71SNavdeep Parhar #define X_MBOWNER_NONE			0
25854e4ee71SNavdeep Parhar #define X_MBOWNER_FW			1
25954e4ee71SNavdeep Parhar #define X_MBOWNER_PL			2
26040bf7442SNavdeep Parhar #define X_MBOWNER_FW_DEFERRED		3
26154e4ee71SNavdeep Parhar 
262c337fa30SNavdeep Parhar /*
263c337fa30SNavdeep Parhar  * PCI-E definitions.
264c337fa30SNavdeep Parhar  * ==================
265c337fa30SNavdeep Parhar  */
266c337fa30SNavdeep Parhar 
267c337fa30SNavdeep Parhar #define X_WINDOW_SHIFT			10
268c337fa30SNavdeep Parhar #define X_PCIEOFST_SHIFT		10
269c337fa30SNavdeep Parhar 
270c337fa30SNavdeep Parhar /*
271c337fa30SNavdeep Parhar  * TP definitions.
272c337fa30SNavdeep Parhar  * ===============
273c337fa30SNavdeep Parhar  */
274c337fa30SNavdeep Parhar 
275c337fa30SNavdeep Parhar /*
276c337fa30SNavdeep Parhar  * TP_VLAN_PRI_MAP controls which subset of fields will be present in the
277c337fa30SNavdeep Parhar  * Compressed Filter Tuple for LE filters.  Each bit set in TP_VLAN_PRI_MAP
278c337fa30SNavdeep Parhar  * selects for a particular field being present.  These fields, when present
279c337fa30SNavdeep Parhar  * in the Compressed Filter Tuple, have the following widths in bits.
280c337fa30SNavdeep Parhar  */
28140bf7442SNavdeep Parhar #define S_FT_FIRST			S_FCOE
28240bf7442SNavdeep Parhar #define S_FT_LAST			S_FRAGMENTATION
28340bf7442SNavdeep Parhar 
284c337fa30SNavdeep Parhar #define W_FT_FCOE			1
285c337fa30SNavdeep Parhar #define W_FT_PORT			3
286c337fa30SNavdeep Parhar #define W_FT_VNIC_ID			17
287c337fa30SNavdeep Parhar #define W_FT_VLAN			17
288c337fa30SNavdeep Parhar #define W_FT_TOS			8
289c337fa30SNavdeep Parhar #define W_FT_PROTOCOL			8
290c337fa30SNavdeep Parhar #define W_FT_ETHERTYPE			16
291c337fa30SNavdeep Parhar #define W_FT_MACMATCH			9
292c337fa30SNavdeep Parhar #define W_FT_MPSHITTYPE			3
293c337fa30SNavdeep Parhar #define W_FT_FRAGMENTATION		1
294c337fa30SNavdeep Parhar 
295*b3daa684SNavdeep Parhar #define M_FT_FCOE			((1ULL << W_FT_FCOE) - 1)
296*b3daa684SNavdeep Parhar #define M_FT_PORT			((1ULL << W_FT_PORT) - 1)
297*b3daa684SNavdeep Parhar #define M_FT_VNIC_ID			((1ULL << W_FT_VNIC_ID) - 1)
298*b3daa684SNavdeep Parhar #define M_FT_VLAN			((1ULL << W_FT_VLAN) - 1)
299*b3daa684SNavdeep Parhar #define M_FT_TOS			((1ULL << W_FT_TOS) - 1)
300*b3daa684SNavdeep Parhar #define M_FT_PROTOCOL			((1ULL << W_FT_PROTOCOL) - 1)
301*b3daa684SNavdeep Parhar #define M_FT_ETHERTYPE			((1ULL << W_FT_ETHERTYPE) - 1)
302*b3daa684SNavdeep Parhar #define M_FT_MACMATCH			((1ULL << W_FT_MACMATCH) - 1)
303*b3daa684SNavdeep Parhar #define M_FT_MPSHITTYPE			((1ULL << W_FT_MPSHITTYPE) - 1)
304*b3daa684SNavdeep Parhar #define M_FT_FRAGMENTATION		((1ULL << W_FT_FRAGMENTATION) - 1)
305*b3daa684SNavdeep Parhar 
306c337fa30SNavdeep Parhar /*
307c337fa30SNavdeep Parhar  * Some of the Compressed Filter Tuple fields have internal structure.  These
308c337fa30SNavdeep Parhar  * bit shifts/masks describe those structures.  All shifts are relative to the
309c337fa30SNavdeep Parhar  * base position of the fields within the Compressed Filter Tuple
310c337fa30SNavdeep Parhar  */
311c337fa30SNavdeep Parhar #define S_FT_VLAN_VLD			16
312c337fa30SNavdeep Parhar #define V_FT_VLAN_VLD(x)		((x) << S_FT_VLAN_VLD)
313c337fa30SNavdeep Parhar #define F_FT_VLAN_VLD			V_FT_VLAN_VLD(1U)
314c337fa30SNavdeep Parhar 
315c337fa30SNavdeep Parhar #define S_FT_VNID_ID_VF			0
316c337fa30SNavdeep Parhar #define M_FT_VNID_ID_VF			0x7fU
317c337fa30SNavdeep Parhar #define V_FT_VNID_ID_VF(x)		((x) << S_FT_VNID_ID_VF)
318c337fa30SNavdeep Parhar #define G_FT_VNID_ID_VF(x)		(((x) >> S_FT_VNID_ID_VF) & M_FT_VNID_ID_VF)
319c337fa30SNavdeep Parhar 
320c337fa30SNavdeep Parhar #define S_FT_VNID_ID_PF			7
321c337fa30SNavdeep Parhar #define M_FT_VNID_ID_PF			0x7U
322c337fa30SNavdeep Parhar #define V_FT_VNID_ID_PF(x)		((x) << S_FT_VNID_ID_PF)
323c337fa30SNavdeep Parhar #define G_FT_VNID_ID_PF(x)		(((x) >> S_FT_VNID_ID_PF) & M_FT_VNID_ID_PF)
324c337fa30SNavdeep Parhar 
325c337fa30SNavdeep Parhar #define S_FT_VNID_ID_VLD		16
326c337fa30SNavdeep Parhar #define V_FT_VNID_ID_VLD(x)		((x) << S_FT_VNID_ID_VLD)
327c337fa30SNavdeep Parhar #define F_FT_VNID_ID_VLD(x)		V_FT_VNID_ID_VLD(1U)
328c337fa30SNavdeep Parhar 
32954e4ee71SNavdeep Parhar #endif /* __T4_REGS_VALUES_H__ */
330