154e4ee71SNavdeep Parhar /*- 2*4d846d26SWarner Losh * SPDX-License-Identifier: BSD-2-Clause 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 */ 2954e4ee71SNavdeep Parhar 3054e4ee71SNavdeep Parhar #ifndef __T4_REGS_VALUES_H__ 3154e4ee71SNavdeep Parhar #define __T4_REGS_VALUES_H__ 3254e4ee71SNavdeep Parhar 3354e4ee71SNavdeep Parhar /* 3454e4ee71SNavdeep Parhar * This file contains definitions for various T4 register value hardware 3554e4ee71SNavdeep Parhar * constants. The types of values encoded here are predominantly those for 3654e4ee71SNavdeep Parhar * register fields which control "modal" behavior. For the most part, we do 3754e4ee71SNavdeep Parhar * not include definitions for register fields which are simple numeric 3854e4ee71SNavdeep Parhar * metrics, etc. 3954e4ee71SNavdeep Parhar * 4054e4ee71SNavdeep Parhar * These new "modal values" use a naming convention which matches the 4154e4ee71SNavdeep Parhar * currently existing macros in t4_reg.h. For register field FOO which would 4254e4ee71SNavdeep Parhar * have S_FOO, M_FOO, V_FOO() and G_FOO() macros, we introduce X_FOO_{MODE} 4354e4ee71SNavdeep Parhar * definitions. These can be used as V_FOO(X_FOO_MODE) or as (G_FOO(x) == 4454e4ee71SNavdeep Parhar * X_FOO_MODE). 4554e4ee71SNavdeep Parhar * 4654e4ee71SNavdeep Parhar * Note that this should all be part of t4_regs.h but the toolset used to 4754e4ee71SNavdeep Parhar * generate that file doesn't [yet] have the capability of collecting these 4854e4ee71SNavdeep Parhar * constants. 4954e4ee71SNavdeep Parhar */ 5054e4ee71SNavdeep Parhar 5154e4ee71SNavdeep Parhar /* 5254e4ee71SNavdeep Parhar * SGE definitions. 5354e4ee71SNavdeep Parhar * ================ 5454e4ee71SNavdeep Parhar */ 5554e4ee71SNavdeep Parhar 5654e4ee71SNavdeep Parhar /* 5754e4ee71SNavdeep Parhar * SGE register field values. 5854e4ee71SNavdeep Parhar */ 5954e4ee71SNavdeep Parhar 6054e4ee71SNavdeep Parhar /* CONTROL register */ 6154e4ee71SNavdeep Parhar #define X_FLSPLITMODE_FLSPLITMIN 0 6254e4ee71SNavdeep Parhar #define X_FLSPLITMODE_ETHHDR 1 6354e4ee71SNavdeep Parhar #define X_FLSPLITMODE_IPHDR 2 6454e4ee71SNavdeep Parhar #define X_FLSPLITMODE_TCPHDR 3 6554e4ee71SNavdeep Parhar 6654e4ee71SNavdeep Parhar #define X_DCASYSTYPE_FSB 0 6754e4ee71SNavdeep Parhar #define X_DCASYSTYPE_CSI 1 6854e4ee71SNavdeep Parhar 6954e4ee71SNavdeep Parhar #define X_EGSTATPAGESIZE_64B 0 7054e4ee71SNavdeep Parhar #define X_EGSTATPAGESIZE_128B 1 7154e4ee71SNavdeep Parhar 7254e4ee71SNavdeep Parhar #define X_RXPKTCPLMODE_DATA 0 7354e4ee71SNavdeep Parhar #define X_RXPKTCPLMODE_SPLIT 1 7454e4ee71SNavdeep Parhar 7554e4ee71SNavdeep Parhar #define X_INGPCIEBOUNDARY_SHIFT 5 7654e4ee71SNavdeep Parhar #define X_INGPCIEBOUNDARY_32B 0 7754e4ee71SNavdeep Parhar #define X_INGPCIEBOUNDARY_64B 1 7854e4ee71SNavdeep Parhar #define X_INGPCIEBOUNDARY_128B 2 7954e4ee71SNavdeep Parhar #define X_INGPCIEBOUNDARY_256B 3 8054e4ee71SNavdeep Parhar #define X_INGPCIEBOUNDARY_512B 4 8154e4ee71SNavdeep Parhar #define X_INGPCIEBOUNDARY_1024B 5 8254e4ee71SNavdeep Parhar #define X_INGPCIEBOUNDARY_2048B 6 8354e4ee71SNavdeep Parhar #define X_INGPCIEBOUNDARY_4096B 7 8454e4ee71SNavdeep Parhar 8540bf7442SNavdeep Parhar #define X_T6_INGPADBOUNDARY_SHIFT 3 8640bf7442SNavdeep Parhar #define X_T6_INGPADBOUNDARY_8B 0 8740bf7442SNavdeep Parhar #define X_T6_INGPADBOUNDARY_16B 1 8840bf7442SNavdeep Parhar #define X_T6_INGPADBOUNDARY_32B 2 8940bf7442SNavdeep Parhar #define X_T6_INGPADBOUNDARY_64B 3 9040bf7442SNavdeep Parhar #define X_T6_INGPADBOUNDARY_128B 4 9140bf7442SNavdeep Parhar #define X_T6_INGPADBOUNDARY_256B 5 9240bf7442SNavdeep Parhar #define X_T6_INGPADBOUNDARY_512B 6 9340bf7442SNavdeep Parhar #define X_T6_INGPADBOUNDARY_1024B 7 9440bf7442SNavdeep Parhar 9554e4ee71SNavdeep Parhar #define X_INGPADBOUNDARY_SHIFT 5 9654e4ee71SNavdeep Parhar #define X_INGPADBOUNDARY_32B 0 9754e4ee71SNavdeep Parhar #define X_INGPADBOUNDARY_64B 1 9854e4ee71SNavdeep Parhar #define X_INGPADBOUNDARY_128B 2 9954e4ee71SNavdeep Parhar #define X_INGPADBOUNDARY_256B 3 10054e4ee71SNavdeep Parhar #define X_INGPADBOUNDARY_512B 4 10154e4ee71SNavdeep Parhar #define X_INGPADBOUNDARY_1024B 5 10254e4ee71SNavdeep Parhar #define X_INGPADBOUNDARY_2048B 6 10354e4ee71SNavdeep Parhar #define X_INGPADBOUNDARY_4096B 7 10454e4ee71SNavdeep Parhar 10554e4ee71SNavdeep Parhar #define X_EGRPCIEBOUNDARY_SHIFT 5 10654e4ee71SNavdeep Parhar #define X_EGRPCIEBOUNDARY_32B 0 10754e4ee71SNavdeep Parhar #define X_EGRPCIEBOUNDARY_64B 1 10854e4ee71SNavdeep Parhar #define X_EGRPCIEBOUNDARY_128B 2 10954e4ee71SNavdeep Parhar #define X_EGRPCIEBOUNDARY_256B 3 11054e4ee71SNavdeep Parhar #define X_EGRPCIEBOUNDARY_512B 4 11154e4ee71SNavdeep Parhar #define X_EGRPCIEBOUNDARY_1024B 5 11254e4ee71SNavdeep Parhar #define X_EGRPCIEBOUNDARY_2048B 6 11354e4ee71SNavdeep Parhar #define X_EGRPCIEBOUNDARY_4096B 7 11454e4ee71SNavdeep Parhar 11540bf7442SNavdeep Parhar /* CONTROL2 register */ 11640bf7442SNavdeep Parhar #define X_INGPACKBOUNDARY_SHIFT 5 // *most* of the values ... 11740bf7442SNavdeep Parhar #define X_INGPACKBOUNDARY_16B 0 // Note weird value! 11840bf7442SNavdeep Parhar #define X_INGPACKBOUNDARY_64B 1 11940bf7442SNavdeep Parhar #define X_INGPACKBOUNDARY_128B 2 12040bf7442SNavdeep Parhar #define X_INGPACKBOUNDARY_256B 3 12140bf7442SNavdeep Parhar #define X_INGPACKBOUNDARY_512B 4 12240bf7442SNavdeep Parhar #define X_INGPACKBOUNDARY_1024B 5 12340bf7442SNavdeep Parhar #define X_INGPACKBOUNDARY_2048B 6 12440bf7442SNavdeep Parhar #define X_INGPACKBOUNDARY_4096B 7 12540bf7442SNavdeep Parhar 12654e4ee71SNavdeep Parhar /* GTS register */ 12754e4ee71SNavdeep Parhar #define SGE_TIMERREGS 6 12854e4ee71SNavdeep Parhar #define X_TIMERREG_COUNTER0 0 12954e4ee71SNavdeep Parhar #define X_TIMERREG_COUNTER1 1 13054e4ee71SNavdeep Parhar #define X_TIMERREG_COUNTER2 2 13154e4ee71SNavdeep Parhar #define X_TIMERREG_COUNTER3 3 13254e4ee71SNavdeep Parhar #define X_TIMERREG_COUNTER4 4 13354e4ee71SNavdeep Parhar #define X_TIMERREG_COUNTER5 5 13454e4ee71SNavdeep Parhar #define X_TIMERREG_RESTART_COUNTER 6 13554e4ee71SNavdeep Parhar #define X_TIMERREG_UPDATE_CIDX 7 13654e4ee71SNavdeep Parhar 13754e4ee71SNavdeep Parhar /* 13854e4ee71SNavdeep Parhar * Egress Context field values 13954e4ee71SNavdeep Parhar */ 14054e4ee71SNavdeep Parhar #define EC_WR_UNITS 16 14154e4ee71SNavdeep Parhar 14254e4ee71SNavdeep Parhar #define X_FETCHBURSTMIN_SHIFT 4 14354e4ee71SNavdeep Parhar #define X_FETCHBURSTMIN_16B 0 14454e4ee71SNavdeep Parhar #define X_FETCHBURSTMIN_32B 1 14554e4ee71SNavdeep Parhar #define X_FETCHBURSTMIN_64B 2 14654e4ee71SNavdeep Parhar #define X_FETCHBURSTMIN_128B 3 14754e4ee71SNavdeep Parhar 148adb0cd84SNavdeep Parhar /* T6 and later use a single-bit encoding for FetchBurstMin */ 149adb0cd84SNavdeep Parhar #define X_FETCHBURSTMIN_SHIFT_T6 6 150adb0cd84SNavdeep Parhar #define X_FETCHBURSTMIN_64B_T6 0 151adb0cd84SNavdeep Parhar #define X_FETCHBURSTMIN_128B_T6 1 152adb0cd84SNavdeep Parhar 15354e4ee71SNavdeep Parhar #define X_FETCHBURSTMAX_SHIFT 6 15454e4ee71SNavdeep Parhar #define X_FETCHBURSTMAX_64B 0 15554e4ee71SNavdeep Parhar #define X_FETCHBURSTMAX_128B 1 15654e4ee71SNavdeep Parhar #define X_FETCHBURSTMAX_256B 2 15754e4ee71SNavdeep Parhar #define X_FETCHBURSTMAX_512B 3 15854e4ee71SNavdeep Parhar 15954e4ee71SNavdeep Parhar #define X_HOSTFCMODE_NONE 0 16054e4ee71SNavdeep Parhar #define X_HOSTFCMODE_INGRESS_QUEUE 1 16154e4ee71SNavdeep Parhar #define X_HOSTFCMODE_STATUS_PAGE 2 16254e4ee71SNavdeep Parhar #define X_HOSTFCMODE_BOTH 3 16354e4ee71SNavdeep Parhar 16454e4ee71SNavdeep Parhar #define X_HOSTFCOWNER_UP 0 16554e4ee71SNavdeep Parhar #define X_HOSTFCOWNER_SGE 1 16654e4ee71SNavdeep Parhar 16754e4ee71SNavdeep Parhar #define X_CIDXFLUSHTHRESH_1 0 16854e4ee71SNavdeep Parhar #define X_CIDXFLUSHTHRESH_2 1 16954e4ee71SNavdeep Parhar #define X_CIDXFLUSHTHRESH_4 2 17054e4ee71SNavdeep Parhar #define X_CIDXFLUSHTHRESH_8 3 17154e4ee71SNavdeep Parhar #define X_CIDXFLUSHTHRESH_16 4 17254e4ee71SNavdeep Parhar #define X_CIDXFLUSHTHRESH_32 5 17354e4ee71SNavdeep Parhar #define X_CIDXFLUSHTHRESH_64 6 17454e4ee71SNavdeep Parhar #define X_CIDXFLUSHTHRESH_128 7 17554e4ee71SNavdeep Parhar 17654e4ee71SNavdeep Parhar #define X_IDXSIZE_UNIT 64 17754e4ee71SNavdeep Parhar 17854e4ee71SNavdeep Parhar #define X_BASEADDRESS_ALIGN 512 17954e4ee71SNavdeep Parhar 18054e4ee71SNavdeep Parhar /* 18154e4ee71SNavdeep Parhar * Ingress Context field values 18254e4ee71SNavdeep Parhar */ 18354e4ee71SNavdeep Parhar #define X_UPDATESCHEDULING_TIMER 0 18454e4ee71SNavdeep Parhar #define X_UPDATESCHEDULING_COUNTER_OPTTIMER 1 18554e4ee71SNavdeep Parhar 18654e4ee71SNavdeep Parhar #define X_UPDATEDELIVERY_NONE 0 18754e4ee71SNavdeep Parhar #define X_UPDATEDELIVERY_INTERRUPT 1 18854e4ee71SNavdeep Parhar #define X_UPDATEDELIVERY_STATUS_PAGE 2 18954e4ee71SNavdeep Parhar #define X_UPDATEDELIVERY_BOTH 3 19054e4ee71SNavdeep Parhar 19154e4ee71SNavdeep Parhar #define X_INTERRUPTDESTINATION_PCIE 0 19254e4ee71SNavdeep Parhar #define X_INTERRUPTDESTINATION_IQ 1 19354e4ee71SNavdeep Parhar 19454e4ee71SNavdeep Parhar #define X_QUEUEENTRYSIZE_16B 0 19554e4ee71SNavdeep Parhar #define X_QUEUEENTRYSIZE_32B 1 19654e4ee71SNavdeep Parhar #define X_QUEUEENTRYSIZE_64B 2 19754e4ee71SNavdeep Parhar #define X_QUEUEENTRYSIZE_128B 3 19854e4ee71SNavdeep Parhar 19954e4ee71SNavdeep Parhar #define IC_SIZE_UNIT 16 20054e4ee71SNavdeep Parhar #define IC_BASEADDRESS_ALIGN 512 20154e4ee71SNavdeep Parhar 20254e4ee71SNavdeep Parhar #define X_RSPD_TYPE_FLBUF 0 20354e4ee71SNavdeep Parhar #define X_RSPD_TYPE_CPL 1 20454e4ee71SNavdeep Parhar #define X_RSPD_TYPE_INTR 2 20554e4ee71SNavdeep Parhar 20654e4ee71SNavdeep Parhar /* 20740bf7442SNavdeep Parhar * Context field definitions. This is by no means a complete list of SGE 20840bf7442SNavdeep Parhar * Context fields. In the vast majority of cases the firmware initializes 20940bf7442SNavdeep Parhar * things the way they need to be set up. But in a few small cases, we need 21040bf7442SNavdeep Parhar * to compute new values and ship them off to the firmware to be applied to 21140bf7442SNavdeep Parhar * the SGE Conexts ... 21240bf7442SNavdeep Parhar */ 21340bf7442SNavdeep Parhar 21440bf7442SNavdeep Parhar /* 21540bf7442SNavdeep Parhar * Congestion Manager Definitions. 21640bf7442SNavdeep Parhar */ 21740bf7442SNavdeep Parhar #define S_CONMCTXT_CNGTPMODE 19 21840bf7442SNavdeep Parhar #define M_CONMCTXT_CNGTPMODE 0x3 21940bf7442SNavdeep Parhar #define V_CONMCTXT_CNGTPMODE(x) ((x) << S_CONMCTXT_CNGTPMODE) 22040bf7442SNavdeep Parhar #define G_CONMCTXT_CNGTPMODE(x) \ 22140bf7442SNavdeep Parhar (((x) >> S_CONMCTXT_CNGTPMODE) & M_CONMCTXT_CNGTPMODE) 22240bf7442SNavdeep Parhar #define S_CONMCTXT_CNGCHMAP 0 22340bf7442SNavdeep Parhar #define M_CONMCTXT_CNGCHMAP 0xffff 22440bf7442SNavdeep Parhar #define V_CONMCTXT_CNGCHMAP(x) ((x) << S_CONMCTXT_CNGCHMAP) 22540bf7442SNavdeep Parhar #define G_CONMCTXT_CNGCHMAP(x) \ 22640bf7442SNavdeep Parhar (((x) >> S_CONMCTXT_CNGCHMAP) & M_CONMCTXT_CNGCHMAP) 22740bf7442SNavdeep Parhar 22840bf7442SNavdeep Parhar #define X_CONMCTXT_CNGTPMODE_DISABLE 0 22940bf7442SNavdeep Parhar #define X_CONMCTXT_CNGTPMODE_QUEUE 1 23040bf7442SNavdeep Parhar #define X_CONMCTXT_CNGTPMODE_CHANNEL 2 23140bf7442SNavdeep Parhar #define X_CONMCTXT_CNGTPMODE_BOTH 3 23240bf7442SNavdeep Parhar 23340bf7442SNavdeep Parhar /* 23440bf7442SNavdeep Parhar * T5 and later support a new BAR2-based doorbell mechanism for Egress Queues. 23540bf7442SNavdeep Parhar * The User Doorbells are each 128 bytes in length with a Simple Doorbell at 23640bf7442SNavdeep Parhar * offsets 8x and a Write Combining single 64-byte Egress Queue Unit 23740bf7442SNavdeep Parhar * (X_IDXSIZE_UNIT) Gather Buffer interface at offset 64. For Ingress Queues, 23840bf7442SNavdeep Parhar * we have a Going To Sleep register at offsets 8x+4. 23940bf7442SNavdeep Parhar * 24040bf7442SNavdeep Parhar * As noted above, we have many instances of the Simple Doorbell and Going To 24140bf7442SNavdeep Parhar * Sleep registers at offsets 8x and 8x+4, respectively. We want to use a 24240bf7442SNavdeep Parhar * non-64-byte aligned offset for the Simple Doorbell in order to attempt to 24340bf7442SNavdeep Parhar * avoid buffering of the writes to the Simple Doorbell and we want to use a 24440bf7442SNavdeep Parhar * non-contiguous offset for the Going To Sleep writes in order to avoid 24540bf7442SNavdeep Parhar * possible combining between them. 24640bf7442SNavdeep Parhar */ 24740bf7442SNavdeep Parhar #define SGE_UDB_SIZE 128 24840bf7442SNavdeep Parhar #define SGE_UDB_KDOORBELL 8 24940bf7442SNavdeep Parhar #define SGE_UDB_GTS 20 25040bf7442SNavdeep Parhar #define SGE_UDB_WCDOORBELL 64 25140bf7442SNavdeep Parhar 25240bf7442SNavdeep Parhar /* 25354e4ee71SNavdeep Parhar * CIM definitions. 25454e4ee71SNavdeep Parhar * ================ 25554e4ee71SNavdeep Parhar */ 25654e4ee71SNavdeep Parhar 25754e4ee71SNavdeep Parhar /* 25854e4ee71SNavdeep Parhar * CIM register field values. 25954e4ee71SNavdeep Parhar */ 26054e4ee71SNavdeep Parhar #define X_MBOWNER_NONE 0 26154e4ee71SNavdeep Parhar #define X_MBOWNER_FW 1 26254e4ee71SNavdeep Parhar #define X_MBOWNER_PL 2 26340bf7442SNavdeep Parhar #define X_MBOWNER_FW_DEFERRED 3 26454e4ee71SNavdeep Parhar 265c337fa30SNavdeep Parhar /* 266c337fa30SNavdeep Parhar * PCI-E definitions. 267c337fa30SNavdeep Parhar * ================== 268c337fa30SNavdeep Parhar */ 269c337fa30SNavdeep Parhar 270c337fa30SNavdeep Parhar #define X_WINDOW_SHIFT 10 271c337fa30SNavdeep Parhar #define X_PCIEOFST_SHIFT 10 272c337fa30SNavdeep Parhar 273c337fa30SNavdeep Parhar /* 274c337fa30SNavdeep Parhar * TP definitions. 275c337fa30SNavdeep Parhar * =============== 276c337fa30SNavdeep Parhar */ 277c337fa30SNavdeep Parhar 278c337fa30SNavdeep Parhar /* 279c337fa30SNavdeep Parhar * TP_VLAN_PRI_MAP controls which subset of fields will be present in the 280c337fa30SNavdeep Parhar * Compressed Filter Tuple for LE filters. Each bit set in TP_VLAN_PRI_MAP 281c337fa30SNavdeep Parhar * selects for a particular field being present. These fields, when present 282c337fa30SNavdeep Parhar * in the Compressed Filter Tuple, have the following widths in bits. 283c337fa30SNavdeep Parhar */ 28440bf7442SNavdeep Parhar #define S_FT_FIRST S_FCOE 28540bf7442SNavdeep Parhar #define S_FT_LAST S_FRAGMENTATION 28640bf7442SNavdeep Parhar 287c337fa30SNavdeep Parhar #define W_FT_FCOE 1 288c337fa30SNavdeep Parhar #define W_FT_PORT 3 289c337fa30SNavdeep Parhar #define W_FT_VNIC_ID 17 290c337fa30SNavdeep Parhar #define W_FT_VLAN 17 291c337fa30SNavdeep Parhar #define W_FT_TOS 8 292c337fa30SNavdeep Parhar #define W_FT_PROTOCOL 8 293c337fa30SNavdeep Parhar #define W_FT_ETHERTYPE 16 294c337fa30SNavdeep Parhar #define W_FT_MACMATCH 9 295c337fa30SNavdeep Parhar #define W_FT_MPSHITTYPE 3 296c337fa30SNavdeep Parhar #define W_FT_FRAGMENTATION 1 297c337fa30SNavdeep Parhar 298b3daa684SNavdeep Parhar #define M_FT_FCOE ((1ULL << W_FT_FCOE) - 1) 299b3daa684SNavdeep Parhar #define M_FT_PORT ((1ULL << W_FT_PORT) - 1) 300b3daa684SNavdeep Parhar #define M_FT_VNIC_ID ((1ULL << W_FT_VNIC_ID) - 1) 301b3daa684SNavdeep Parhar #define M_FT_VLAN ((1ULL << W_FT_VLAN) - 1) 302b3daa684SNavdeep Parhar #define M_FT_TOS ((1ULL << W_FT_TOS) - 1) 303b3daa684SNavdeep Parhar #define M_FT_PROTOCOL ((1ULL << W_FT_PROTOCOL) - 1) 304b3daa684SNavdeep Parhar #define M_FT_ETHERTYPE ((1ULL << W_FT_ETHERTYPE) - 1) 305b3daa684SNavdeep Parhar #define M_FT_MACMATCH ((1ULL << W_FT_MACMATCH) - 1) 306b3daa684SNavdeep Parhar #define M_FT_MPSHITTYPE ((1ULL << W_FT_MPSHITTYPE) - 1) 307b3daa684SNavdeep Parhar #define M_FT_FRAGMENTATION ((1ULL << W_FT_FRAGMENTATION) - 1) 308b3daa684SNavdeep Parhar 309c337fa30SNavdeep Parhar /* 310c337fa30SNavdeep Parhar * Some of the Compressed Filter Tuple fields have internal structure. These 311c337fa30SNavdeep Parhar * bit shifts/masks describe those structures. All shifts are relative to the 312c337fa30SNavdeep Parhar * base position of the fields within the Compressed Filter Tuple 313c337fa30SNavdeep Parhar */ 314c337fa30SNavdeep Parhar #define S_FT_VLAN_VLD 16 315c337fa30SNavdeep Parhar #define V_FT_VLAN_VLD(x) ((x) << S_FT_VLAN_VLD) 316c337fa30SNavdeep Parhar #define F_FT_VLAN_VLD V_FT_VLAN_VLD(1U) 317c337fa30SNavdeep Parhar 318c337fa30SNavdeep Parhar #define S_FT_VNID_ID_VF 0 319c337fa30SNavdeep Parhar #define M_FT_VNID_ID_VF 0x7fU 320c337fa30SNavdeep Parhar #define V_FT_VNID_ID_VF(x) ((x) << S_FT_VNID_ID_VF) 321c337fa30SNavdeep Parhar #define G_FT_VNID_ID_VF(x) (((x) >> S_FT_VNID_ID_VF) & M_FT_VNID_ID_VF) 322c337fa30SNavdeep Parhar 323c337fa30SNavdeep Parhar #define S_FT_VNID_ID_PF 7 324c337fa30SNavdeep Parhar #define M_FT_VNID_ID_PF 0x7U 325c337fa30SNavdeep Parhar #define V_FT_VNID_ID_PF(x) ((x) << S_FT_VNID_ID_PF) 326c337fa30SNavdeep Parhar #define G_FT_VNID_ID_PF(x) (((x) >> S_FT_VNID_ID_PF) & M_FT_VNID_ID_PF) 327c337fa30SNavdeep Parhar 328c337fa30SNavdeep Parhar #define S_FT_VNID_ID_VLD 16 329c337fa30SNavdeep Parhar #define V_FT_VNID_ID_VLD(x) ((x) << S_FT_VNID_ID_VLD) 330c337fa30SNavdeep Parhar #define F_FT_VNID_ID_VLD(x) V_FT_VNID_ID_VLD(1U) 331c337fa30SNavdeep Parhar 33254e4ee71SNavdeep Parhar #endif /* __T4_REGS_VALUES_H__ */ 333