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