1*14b24e2bSVaishali Kulkarni /* 2*14b24e2bSVaishali Kulkarni * CDDL HEADER START 3*14b24e2bSVaishali Kulkarni * 4*14b24e2bSVaishali Kulkarni * The contents of this file are subject to the terms of the 5*14b24e2bSVaishali Kulkarni * Common Development and Distribution License, v.1, (the "License"). 6*14b24e2bSVaishali Kulkarni * You may not use this file except in compliance with the License. 7*14b24e2bSVaishali Kulkarni * 8*14b24e2bSVaishali Kulkarni * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*14b24e2bSVaishali Kulkarni * or http://opensource.org/licenses/CDDL-1.0. 10*14b24e2bSVaishali Kulkarni * See the License for the specific language governing permissions 11*14b24e2bSVaishali Kulkarni * and limitations under the License. 12*14b24e2bSVaishali Kulkarni * 13*14b24e2bSVaishali Kulkarni * When distributing Covered Code, include this CDDL HEADER in each 14*14b24e2bSVaishali Kulkarni * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*14b24e2bSVaishali Kulkarni * If applicable, add the following below this CDDL HEADER, with the 16*14b24e2bSVaishali Kulkarni * fields enclosed by brackets "[]" replaced with your own identifying 17*14b24e2bSVaishali Kulkarni * information: Portions Copyright [yyyy] [name of copyright owner] 18*14b24e2bSVaishali Kulkarni * 19*14b24e2bSVaishali Kulkarni * CDDL HEADER END 20*14b24e2bSVaishali Kulkarni */ 21*14b24e2bSVaishali Kulkarni 22*14b24e2bSVaishali Kulkarni /* 23*14b24e2bSVaishali Kulkarni * Copyright 2014-2017 Cavium, Inc. 24*14b24e2bSVaishali Kulkarni * The contents of this file are subject to the terms of the Common Development 25*14b24e2bSVaishali Kulkarni * and Distribution License, v.1, (the "License"). 26*14b24e2bSVaishali Kulkarni 27*14b24e2bSVaishali Kulkarni * You may not use this file except in compliance with the License. 28*14b24e2bSVaishali Kulkarni 29*14b24e2bSVaishali Kulkarni * You can obtain a copy of the License at available 30*14b24e2bSVaishali Kulkarni * at http://opensource.org/licenses/CDDL-1.0 31*14b24e2bSVaishali Kulkarni 32*14b24e2bSVaishali Kulkarni * See the License for the specific language governing permissions and 33*14b24e2bSVaishali Kulkarni * limitations under the License. 34*14b24e2bSVaishali Kulkarni */ 35*14b24e2bSVaishali Kulkarni 36*14b24e2bSVaishali Kulkarni #ifndef __ECORE_HSI_COMMON__ 37*14b24e2bSVaishali Kulkarni #define __ECORE_HSI_COMMON__ 38*14b24e2bSVaishali Kulkarni /********************************/ 39*14b24e2bSVaishali Kulkarni /* Add include to common target */ 40*14b24e2bSVaishali Kulkarni /********************************/ 41*14b24e2bSVaishali Kulkarni #include "common_hsi.h" 42*14b24e2bSVaishali Kulkarni 43*14b24e2bSVaishali Kulkarni 44*14b24e2bSVaishali Kulkarni /* 45*14b24e2bSVaishali Kulkarni * opcodes for the event ring 46*14b24e2bSVaishali Kulkarni */ 47*14b24e2bSVaishali Kulkarni enum common_event_opcode 48*14b24e2bSVaishali Kulkarni { 49*14b24e2bSVaishali Kulkarni COMMON_EVENT_PF_START, 50*14b24e2bSVaishali Kulkarni COMMON_EVENT_PF_STOP, 51*14b24e2bSVaishali Kulkarni COMMON_EVENT_VF_START, 52*14b24e2bSVaishali Kulkarni COMMON_EVENT_VF_STOP, 53*14b24e2bSVaishali Kulkarni COMMON_EVENT_VF_PF_CHANNEL, 54*14b24e2bSVaishali Kulkarni COMMON_EVENT_VF_FLR, 55*14b24e2bSVaishali Kulkarni COMMON_EVENT_PF_UPDATE, 56*14b24e2bSVaishali Kulkarni COMMON_EVENT_MALICIOUS_VF, 57*14b24e2bSVaishali Kulkarni COMMON_EVENT_RL_UPDATE, 58*14b24e2bSVaishali Kulkarni COMMON_EVENT_EMPTY, 59*14b24e2bSVaishali Kulkarni MAX_COMMON_EVENT_OPCODE 60*14b24e2bSVaishali Kulkarni }; 61*14b24e2bSVaishali Kulkarni 62*14b24e2bSVaishali Kulkarni 63*14b24e2bSVaishali Kulkarni /* 64*14b24e2bSVaishali Kulkarni * Common Ramrod Command IDs 65*14b24e2bSVaishali Kulkarni */ 66*14b24e2bSVaishali Kulkarni enum common_ramrod_cmd_id 67*14b24e2bSVaishali Kulkarni { 68*14b24e2bSVaishali Kulkarni COMMON_RAMROD_UNUSED, 69*14b24e2bSVaishali Kulkarni COMMON_RAMROD_PF_START /* PF Function Start Ramrod */, 70*14b24e2bSVaishali Kulkarni COMMON_RAMROD_PF_STOP /* PF Function Stop Ramrod */, 71*14b24e2bSVaishali Kulkarni COMMON_RAMROD_VF_START /* VF Function Start */, 72*14b24e2bSVaishali Kulkarni COMMON_RAMROD_VF_STOP /* VF Function Stop Ramrod */, 73*14b24e2bSVaishali Kulkarni COMMON_RAMROD_PF_UPDATE /* PF update Ramrod */, 74*14b24e2bSVaishali Kulkarni COMMON_RAMROD_RL_UPDATE /* QCN/DCQCN RL update Ramrod */, 75*14b24e2bSVaishali Kulkarni COMMON_RAMROD_EMPTY /* Empty Ramrod */, 76*14b24e2bSVaishali Kulkarni MAX_COMMON_RAMROD_CMD_ID 77*14b24e2bSVaishali Kulkarni }; 78*14b24e2bSVaishali Kulkarni 79*14b24e2bSVaishali Kulkarni 80*14b24e2bSVaishali Kulkarni /* 81*14b24e2bSVaishali Kulkarni * The core storm context for the Ystorm 82*14b24e2bSVaishali Kulkarni */ 83*14b24e2bSVaishali Kulkarni struct ystorm_core_conn_st_ctx 84*14b24e2bSVaishali Kulkarni { 85*14b24e2bSVaishali Kulkarni __le32 reserved[4]; 86*14b24e2bSVaishali Kulkarni }; 87*14b24e2bSVaishali Kulkarni 88*14b24e2bSVaishali Kulkarni /* 89*14b24e2bSVaishali Kulkarni * The core storm context for the Pstorm 90*14b24e2bSVaishali Kulkarni */ 91*14b24e2bSVaishali Kulkarni struct pstorm_core_conn_st_ctx 92*14b24e2bSVaishali Kulkarni { 93*14b24e2bSVaishali Kulkarni __le32 reserved[4]; 94*14b24e2bSVaishali Kulkarni }; 95*14b24e2bSVaishali Kulkarni 96*14b24e2bSVaishali Kulkarni /* 97*14b24e2bSVaishali Kulkarni * Core Slowpath Connection storm context of Xstorm 98*14b24e2bSVaishali Kulkarni */ 99*14b24e2bSVaishali Kulkarni struct xstorm_core_conn_st_ctx 100*14b24e2bSVaishali Kulkarni { 101*14b24e2bSVaishali Kulkarni __le32 spq_base_lo /* SPQ Ring Base Address low dword */; 102*14b24e2bSVaishali Kulkarni __le32 spq_base_hi /* SPQ Ring Base Address high dword */; 103*14b24e2bSVaishali Kulkarni struct regpair consolid_base_addr /* Consolidation Ring Base Address */; 104*14b24e2bSVaishali Kulkarni __le16 spq_cons /* SPQ Ring Consumer */; 105*14b24e2bSVaishali Kulkarni __le16 consolid_cons /* Consolidation Ring Consumer */; 106*14b24e2bSVaishali Kulkarni __le32 reserved0[55] /* Pad to 15 cycles */; 107*14b24e2bSVaishali Kulkarni }; 108*14b24e2bSVaishali Kulkarni 109*14b24e2bSVaishali Kulkarni struct e4_xstorm_core_conn_ag_ctx 110*14b24e2bSVaishali Kulkarni { 111*14b24e2bSVaishali Kulkarni u8 reserved0 /* cdu_validation */; 112*14b24e2bSVaishali Kulkarni u8 core_state /* state */; 113*14b24e2bSVaishali Kulkarni u8 flags0; 114*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */ 115*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 116*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED1_MASK 0x1 /* exist_in_qm1 */ 117*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED1_SHIFT 1 118*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED2_MASK 0x1 /* exist_in_qm2 */ 119*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED2_SHIFT 2 120*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1 /* exist_in_qm3 */ 121*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3 122*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED3_MASK 0x1 /* bit4 */ 123*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED3_SHIFT 4 124*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED4_MASK 0x1 /* cf_array_active */ 125*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED4_SHIFT 5 126*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED5_MASK 0x1 /* bit6 */ 127*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED5_SHIFT 6 128*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED6_MASK 0x1 /* bit7 */ 129*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED6_SHIFT 7 130*14b24e2bSVaishali Kulkarni u8 flags1; 131*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED7_MASK 0x1 /* bit8 */ 132*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED7_SHIFT 0 133*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED8_MASK 0x1 /* bit9 */ 134*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED8_SHIFT 1 135*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED9_MASK 0x1 /* bit10 */ 136*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED9_SHIFT 2 137*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_BIT11_MASK 0x1 /* bit11 */ 138*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_BIT11_SHIFT 3 139*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_BIT12_MASK 0x1 /* bit12 */ 140*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_BIT12_SHIFT 4 141*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_BIT13_MASK 0x1 /* bit13 */ 142*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_BIT13_SHIFT 5 143*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_TX_RULE_ACTIVE_MASK 0x1 /* bit14 */ 144*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_TX_RULE_ACTIVE_SHIFT 6 145*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_DQ_CF_ACTIVE_MASK 0x1 /* bit15 */ 146*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_DQ_CF_ACTIVE_SHIFT 7 147*14b24e2bSVaishali Kulkarni u8 flags2; 148*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */ 149*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 0 150*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3 /* timer1cf */ 151*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 2 152*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */ 153*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 4 154*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3 /* timer_stop_all */ 155*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF3_SHIFT 6 156*14b24e2bSVaishali Kulkarni u8 flags3; 157*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */ 158*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF4_SHIFT 0 159*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */ 160*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF5_SHIFT 2 161*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */ 162*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF6_SHIFT 4 163*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF7_MASK 0x3 /* cf7 */ 164*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF7_SHIFT 6 165*14b24e2bSVaishali Kulkarni u8 flags4; 166*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF8_MASK 0x3 /* cf8 */ 167*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF8_SHIFT 0 168*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF9_MASK 0x3 /* cf9 */ 169*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF9_SHIFT 2 170*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF10_MASK 0x3 /* cf10 */ 171*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF10_SHIFT 4 172*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF11_MASK 0x3 /* cf11 */ 173*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF11_SHIFT 6 174*14b24e2bSVaishali Kulkarni u8 flags5; 175*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF12_MASK 0x3 /* cf12 */ 176*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF12_SHIFT 0 177*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF13_MASK 0x3 /* cf13 */ 178*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF13_SHIFT 2 179*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF14_MASK 0x3 /* cf14 */ 180*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF14_SHIFT 4 181*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF15_MASK 0x3 /* cf15 */ 182*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF15_SHIFT 6 183*14b24e2bSVaishali Kulkarni u8 flags6; 184*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_MASK 0x3 /* cf16 */ 185*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_SHIFT 0 186*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF17_MASK 0x3 /* cf_array_cf */ 187*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF17_SHIFT 2 188*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_DQ_CF_MASK 0x3 /* cf18 */ 189*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_DQ_CF_SHIFT 4 190*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_MASK 0x3 /* cf19 */ 191*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_SHIFT 6 192*14b24e2bSVaishali Kulkarni u8 flags7; 193*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_MASK 0x3 /* cf20 */ 194*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_SHIFT 0 195*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED10_MASK 0x3 /* cf21 */ 196*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED10_SHIFT 2 197*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_MASK 0x3 /* cf22 */ 198*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_SHIFT 4 199*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 200*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 6 201*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 202*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 7 203*14b24e2bSVaishali Kulkarni u8 flags8; 204*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 205*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 0 206*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */ 207*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 1 208*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */ 209*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 2 210*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */ 211*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 3 212*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */ 213*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 4 214*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF7EN_MASK 0x1 /* cf7en */ 215*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF7EN_SHIFT 5 216*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF8EN_MASK 0x1 /* cf8en */ 217*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF8EN_SHIFT 6 218*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF9EN_MASK 0x1 /* cf9en */ 219*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF9EN_SHIFT 7 220*14b24e2bSVaishali Kulkarni u8 flags9; 221*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF10EN_MASK 0x1 /* cf10en */ 222*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF10EN_SHIFT 0 223*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF11EN_MASK 0x1 /* cf11en */ 224*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF11EN_SHIFT 1 225*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF12EN_MASK 0x1 /* cf12en */ 226*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF12EN_SHIFT 2 227*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF13EN_MASK 0x1 /* cf13en */ 228*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF13EN_SHIFT 3 229*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF14EN_MASK 0x1 /* cf14en */ 230*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF14EN_SHIFT 4 231*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF15EN_MASK 0x1 /* cf15en */ 232*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF15EN_SHIFT 5 233*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_EN_MASK 0x1 /* cf16en */ 234*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_EN_SHIFT 6 235*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF17EN_MASK 0x1 /* cf_array_cf_en */ 236*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF17EN_SHIFT 7 237*14b24e2bSVaishali Kulkarni u8 flags10; 238*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_DQ_CF_EN_MASK 0x1 /* cf18en */ 239*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_DQ_CF_EN_SHIFT 0 240*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_EN_MASK 0x1 /* cf19en */ 241*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_EN_SHIFT 1 242*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1 /* cf20en */ 243*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2 244*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED11_MASK 0x1 /* cf21en */ 245*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED11_SHIFT 3 246*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1 /* cf22en */ 247*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4 248*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF23EN_MASK 0x1 /* cf23en */ 249*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF23EN_SHIFT 5 250*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED12_MASK 0x1 /* rule0en */ 251*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED12_SHIFT 6 252*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED13_MASK 0x1 /* rule1en */ 253*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED13_SHIFT 7 254*14b24e2bSVaishali Kulkarni u8 flags11; 255*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED14_MASK 0x1 /* rule2en */ 256*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED14_SHIFT 0 257*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED15_MASK 0x1 /* rule3en */ 258*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RESERVED15_SHIFT 1 259*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_TX_DEC_RULE_EN_MASK 0x1 /* rule4en */ 260*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_TX_DEC_RULE_EN_SHIFT 2 261*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */ 262*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 3 263*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */ 264*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 4 265*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */ 266*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 5 267*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED1_MASK 0x1 /* rule8en */ 268*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED1_SHIFT 6 269*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE9EN_MASK 0x1 /* rule9en */ 270*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE9EN_SHIFT 7 271*14b24e2bSVaishali Kulkarni u8 flags12; 272*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE10EN_MASK 0x1 /* rule10en */ 273*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE10EN_SHIFT 0 274*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE11EN_MASK 0x1 /* rule11en */ 275*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE11EN_SHIFT 1 276*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED2_MASK 0x1 /* rule12en */ 277*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED2_SHIFT 2 278*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED3_MASK 0x1 /* rule13en */ 279*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED3_SHIFT 3 280*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE14EN_MASK 0x1 /* rule14en */ 281*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE14EN_SHIFT 4 282*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE15EN_MASK 0x1 /* rule15en */ 283*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE15EN_SHIFT 5 284*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE16EN_MASK 0x1 /* rule16en */ 285*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE16EN_SHIFT 6 286*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE17EN_MASK 0x1 /* rule17en */ 287*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE17EN_SHIFT 7 288*14b24e2bSVaishali Kulkarni u8 flags13; 289*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE18EN_MASK 0x1 /* rule18en */ 290*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE18EN_SHIFT 0 291*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE19EN_MASK 0x1 /* rule19en */ 292*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_RULE19EN_SHIFT 1 293*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED4_MASK 0x1 /* rule20en */ 294*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED4_SHIFT 2 295*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED5_MASK 0x1 /* rule21en */ 296*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED5_SHIFT 3 297*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED6_MASK 0x1 /* rule22en */ 298*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED6_SHIFT 4 299*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED7_MASK 0x1 /* rule23en */ 300*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED7_SHIFT 5 301*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED8_MASK 0x1 /* rule24en */ 302*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED8_SHIFT 6 303*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED9_MASK 0x1 /* rule25en */ 304*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED9_SHIFT 7 305*14b24e2bSVaishali Kulkarni u8 flags14; 306*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_BIT16_MASK 0x1 /* bit16 */ 307*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_BIT16_SHIFT 0 308*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_BIT17_MASK 0x1 /* bit17 */ 309*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_BIT17_SHIFT 1 310*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_BIT18_MASK 0x1 /* bit18 */ 311*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_BIT18_SHIFT 2 312*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_BIT19_MASK 0x1 /* bit19 */ 313*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_BIT19_SHIFT 3 314*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_BIT20_MASK 0x1 /* bit20 */ 315*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_BIT20_SHIFT 4 316*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_BIT21_MASK 0x1 /* bit21 */ 317*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_BIT21_SHIFT 5 318*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF23_MASK 0x3 /* cf23 */ 319*14b24e2bSVaishali Kulkarni #define E4_XSTORM_CORE_CONN_AG_CTX_CF23_SHIFT 6 320*14b24e2bSVaishali Kulkarni u8 byte2 /* byte2 */; 321*14b24e2bSVaishali Kulkarni __le16 physical_q0 /* physical_q0 */; 322*14b24e2bSVaishali Kulkarni __le16 consolid_prod /* physical_q1 */; 323*14b24e2bSVaishali Kulkarni __le16 reserved16 /* physical_q2 */; 324*14b24e2bSVaishali Kulkarni __le16 tx_bd_cons /* word3 */; 325*14b24e2bSVaishali Kulkarni __le16 tx_bd_or_spq_prod /* word4 */; 326*14b24e2bSVaishali Kulkarni __le16 word5 /* word5 */; 327*14b24e2bSVaishali Kulkarni __le16 conn_dpi /* conn_dpi */; 328*14b24e2bSVaishali Kulkarni u8 byte3 /* byte3 */; 329*14b24e2bSVaishali Kulkarni u8 byte4 /* byte4 */; 330*14b24e2bSVaishali Kulkarni u8 byte5 /* byte5 */; 331*14b24e2bSVaishali Kulkarni u8 byte6 /* byte6 */; 332*14b24e2bSVaishali Kulkarni __le32 reg0 /* reg0 */; 333*14b24e2bSVaishali Kulkarni __le32 reg1 /* reg1 */; 334*14b24e2bSVaishali Kulkarni __le32 reg2 /* reg2 */; 335*14b24e2bSVaishali Kulkarni __le32 reg3 /* reg3 */; 336*14b24e2bSVaishali Kulkarni __le32 reg4 /* reg4 */; 337*14b24e2bSVaishali Kulkarni __le32 reg5 /* cf_array0 */; 338*14b24e2bSVaishali Kulkarni __le32 reg6 /* cf_array1 */; 339*14b24e2bSVaishali Kulkarni __le16 word7 /* word7 */; 340*14b24e2bSVaishali Kulkarni __le16 word8 /* word8 */; 341*14b24e2bSVaishali Kulkarni __le16 word9 /* word9 */; 342*14b24e2bSVaishali Kulkarni __le16 word10 /* word10 */; 343*14b24e2bSVaishali Kulkarni __le32 reg7 /* reg7 */; 344*14b24e2bSVaishali Kulkarni __le32 reg8 /* reg8 */; 345*14b24e2bSVaishali Kulkarni __le32 reg9 /* reg9 */; 346*14b24e2bSVaishali Kulkarni u8 byte7 /* byte7 */; 347*14b24e2bSVaishali Kulkarni u8 byte8 /* byte8 */; 348*14b24e2bSVaishali Kulkarni u8 byte9 /* byte9 */; 349*14b24e2bSVaishali Kulkarni u8 byte10 /* byte10 */; 350*14b24e2bSVaishali Kulkarni u8 byte11 /* byte11 */; 351*14b24e2bSVaishali Kulkarni u8 byte12 /* byte12 */; 352*14b24e2bSVaishali Kulkarni u8 byte13 /* byte13 */; 353*14b24e2bSVaishali Kulkarni u8 byte14 /* byte14 */; 354*14b24e2bSVaishali Kulkarni u8 byte15 /* byte15 */; 355*14b24e2bSVaishali Kulkarni u8 e5_reserved /* e5_reserved */; 356*14b24e2bSVaishali Kulkarni __le16 word11 /* word11 */; 357*14b24e2bSVaishali Kulkarni __le32 reg10 /* reg10 */; 358*14b24e2bSVaishali Kulkarni __le32 reg11 /* reg11 */; 359*14b24e2bSVaishali Kulkarni __le32 reg12 /* reg12 */; 360*14b24e2bSVaishali Kulkarni __le32 reg13 /* reg13 */; 361*14b24e2bSVaishali Kulkarni __le32 reg14 /* reg14 */; 362*14b24e2bSVaishali Kulkarni __le32 reg15 /* reg15 */; 363*14b24e2bSVaishali Kulkarni __le32 reg16 /* reg16 */; 364*14b24e2bSVaishali Kulkarni __le32 reg17 /* reg17 */; 365*14b24e2bSVaishali Kulkarni __le32 reg18 /* reg18 */; 366*14b24e2bSVaishali Kulkarni __le32 reg19 /* reg19 */; 367*14b24e2bSVaishali Kulkarni __le16 word12 /* word12 */; 368*14b24e2bSVaishali Kulkarni __le16 word13 /* word13 */; 369*14b24e2bSVaishali Kulkarni __le16 word14 /* word14 */; 370*14b24e2bSVaishali Kulkarni __le16 word15 /* word15 */; 371*14b24e2bSVaishali Kulkarni }; 372*14b24e2bSVaishali Kulkarni 373*14b24e2bSVaishali Kulkarni struct e4_tstorm_core_conn_ag_ctx 374*14b24e2bSVaishali Kulkarni { 375*14b24e2bSVaishali Kulkarni u8 byte0 /* cdu_validation */; 376*14b24e2bSVaishali Kulkarni u8 byte1 /* state */; 377*14b24e2bSVaishali Kulkarni u8 flags0; 378*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1 /* exist_in_qm0 */ 379*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0 380*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 381*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1 382*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_BIT2_MASK 0x1 /* bit2 */ 383*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_BIT2_SHIFT 2 384*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_BIT3_MASK 0x1 /* bit3 */ 385*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_BIT3_SHIFT 3 386*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_BIT4_MASK 0x1 /* bit4 */ 387*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_BIT4_SHIFT 4 388*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_BIT5_MASK 0x1 /* bit5 */ 389*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_BIT5_SHIFT 5 390*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */ 391*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 6 392*14b24e2bSVaishali Kulkarni u8 flags1; 393*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3 /* timer1cf */ 394*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 0 395*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */ 396*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 2 397*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3 /* timer_stop_all */ 398*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF3_SHIFT 4 399*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */ 400*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF4_SHIFT 6 401*14b24e2bSVaishali Kulkarni u8 flags2; 402*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */ 403*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF5_SHIFT 0 404*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */ 405*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF6_SHIFT 2 406*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF7_MASK 0x3 /* cf7 */ 407*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF7_SHIFT 4 408*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF8_MASK 0x3 /* cf8 */ 409*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF8_SHIFT 6 410*14b24e2bSVaishali Kulkarni u8 flags3; 411*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF9_MASK 0x3 /* cf9 */ 412*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF9_SHIFT 0 413*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF10_MASK 0x3 /* cf10 */ 414*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF10_SHIFT 2 415*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 416*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 4 417*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 418*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 5 419*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 420*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 6 421*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */ 422*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 7 423*14b24e2bSVaishali Kulkarni u8 flags4; 424*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */ 425*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 0 426*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */ 427*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 1 428*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */ 429*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 2 430*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF7EN_MASK 0x1 /* cf7en */ 431*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF7EN_SHIFT 3 432*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF8EN_MASK 0x1 /* cf8en */ 433*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF8EN_SHIFT 4 434*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF9EN_MASK 0x1 /* cf9en */ 435*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF9EN_SHIFT 5 436*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF10EN_MASK 0x1 /* cf10en */ 437*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_CF10EN_SHIFT 6 438*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 439*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 7 440*14b24e2bSVaishali Kulkarni u8 flags5; 441*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */ 442*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 0 443*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 444*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 1 445*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 446*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 2 447*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 448*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 3 449*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */ 450*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 4 451*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */ 452*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 5 453*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */ 454*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 6 455*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_RULE8EN_MASK 0x1 /* rule8en */ 456*14b24e2bSVaishali Kulkarni #define E4_TSTORM_CORE_CONN_AG_CTX_RULE8EN_SHIFT 7 457*14b24e2bSVaishali Kulkarni __le32 reg0 /* reg0 */; 458*14b24e2bSVaishali Kulkarni __le32 reg1 /* reg1 */; 459*14b24e2bSVaishali Kulkarni __le32 reg2 /* reg2 */; 460*14b24e2bSVaishali Kulkarni __le32 reg3 /* reg3 */; 461*14b24e2bSVaishali Kulkarni __le32 reg4 /* reg4 */; 462*14b24e2bSVaishali Kulkarni __le32 reg5 /* reg5 */; 463*14b24e2bSVaishali Kulkarni __le32 reg6 /* reg6 */; 464*14b24e2bSVaishali Kulkarni __le32 reg7 /* reg7 */; 465*14b24e2bSVaishali Kulkarni __le32 reg8 /* reg8 */; 466*14b24e2bSVaishali Kulkarni u8 byte2 /* byte2 */; 467*14b24e2bSVaishali Kulkarni u8 byte3 /* byte3 */; 468*14b24e2bSVaishali Kulkarni __le16 word0 /* word0 */; 469*14b24e2bSVaishali Kulkarni u8 byte4 /* byte4 */; 470*14b24e2bSVaishali Kulkarni u8 byte5 /* byte5 */; 471*14b24e2bSVaishali Kulkarni __le16 word1 /* word1 */; 472*14b24e2bSVaishali Kulkarni __le16 word2 /* conn_dpi */; 473*14b24e2bSVaishali Kulkarni __le16 word3 /* word3 */; 474*14b24e2bSVaishali Kulkarni __le32 reg9 /* reg9 */; 475*14b24e2bSVaishali Kulkarni __le32 reg10 /* reg10 */; 476*14b24e2bSVaishali Kulkarni }; 477*14b24e2bSVaishali Kulkarni 478*14b24e2bSVaishali Kulkarni struct e4_ustorm_core_conn_ag_ctx 479*14b24e2bSVaishali Kulkarni { 480*14b24e2bSVaishali Kulkarni u8 reserved /* cdu_validation */; 481*14b24e2bSVaishali Kulkarni u8 byte1 /* state */; 482*14b24e2bSVaishali Kulkarni u8 flags0; 483*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1 /* exist_in_qm0 */ 484*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0 485*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 486*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1 487*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */ 488*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2 489*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3 /* timer1cf */ 490*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4 491*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */ 492*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6 493*14b24e2bSVaishali Kulkarni u8 flags1; 494*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3 /* timer_stop_all */ 495*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF3_SHIFT 0 496*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */ 497*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF4_SHIFT 2 498*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */ 499*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF5_SHIFT 4 500*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */ 501*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF6_SHIFT 6 502*14b24e2bSVaishali Kulkarni u8 flags2; 503*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 504*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0 505*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 506*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1 507*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 508*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2 509*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */ 510*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 3 511*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */ 512*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 4 513*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */ 514*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 5 515*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */ 516*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 6 517*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 518*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 7 519*14b24e2bSVaishali Kulkarni u8 flags3; 520*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */ 521*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 0 522*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 523*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 1 524*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 525*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 2 526*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 527*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 3 528*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */ 529*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 4 530*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */ 531*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 5 532*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */ 533*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 6 534*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_RULE8EN_MASK 0x1 /* rule8en */ 535*14b24e2bSVaishali Kulkarni #define E4_USTORM_CORE_CONN_AG_CTX_RULE8EN_SHIFT 7 536*14b24e2bSVaishali Kulkarni u8 byte2 /* byte2 */; 537*14b24e2bSVaishali Kulkarni u8 byte3 /* byte3 */; 538*14b24e2bSVaishali Kulkarni __le16 word0 /* conn_dpi */; 539*14b24e2bSVaishali Kulkarni __le16 word1 /* word1 */; 540*14b24e2bSVaishali Kulkarni __le32 rx_producers /* reg0 */; 541*14b24e2bSVaishali Kulkarni __le32 reg1 /* reg1 */; 542*14b24e2bSVaishali Kulkarni __le32 reg2 /* reg2 */; 543*14b24e2bSVaishali Kulkarni __le32 reg3 /* reg3 */; 544*14b24e2bSVaishali Kulkarni __le16 word2 /* word2 */; 545*14b24e2bSVaishali Kulkarni __le16 word3 /* word3 */; 546*14b24e2bSVaishali Kulkarni }; 547*14b24e2bSVaishali Kulkarni 548*14b24e2bSVaishali Kulkarni /* 549*14b24e2bSVaishali Kulkarni * The core storm context for the Mstorm 550*14b24e2bSVaishali Kulkarni */ 551*14b24e2bSVaishali Kulkarni struct mstorm_core_conn_st_ctx 552*14b24e2bSVaishali Kulkarni { 553*14b24e2bSVaishali Kulkarni __le32 reserved[24]; 554*14b24e2bSVaishali Kulkarni }; 555*14b24e2bSVaishali Kulkarni 556*14b24e2bSVaishali Kulkarni /* 557*14b24e2bSVaishali Kulkarni * The core storm context for the Ustorm 558*14b24e2bSVaishali Kulkarni */ 559*14b24e2bSVaishali Kulkarni struct ustorm_core_conn_st_ctx 560*14b24e2bSVaishali Kulkarni { 561*14b24e2bSVaishali Kulkarni __le32 reserved[4]; 562*14b24e2bSVaishali Kulkarni }; 563*14b24e2bSVaishali Kulkarni 564*14b24e2bSVaishali Kulkarni /* 565*14b24e2bSVaishali Kulkarni * core connection context 566*14b24e2bSVaishali Kulkarni */ 567*14b24e2bSVaishali Kulkarni struct core_conn_context 568*14b24e2bSVaishali Kulkarni { 569*14b24e2bSVaishali Kulkarni struct ystorm_core_conn_st_ctx ystorm_st_context /* ystorm storm context */; 570*14b24e2bSVaishali Kulkarni struct regpair ystorm_st_padding[2] /* padding */; 571*14b24e2bSVaishali Kulkarni struct pstorm_core_conn_st_ctx pstorm_st_context /* pstorm storm context */; 572*14b24e2bSVaishali Kulkarni struct regpair pstorm_st_padding[2] /* padding */; 573*14b24e2bSVaishali Kulkarni struct xstorm_core_conn_st_ctx xstorm_st_context /* xstorm storm context */; 574*14b24e2bSVaishali Kulkarni struct e4_xstorm_core_conn_ag_ctx xstorm_ag_context /* xstorm aggregative context */; 575*14b24e2bSVaishali Kulkarni struct e4_tstorm_core_conn_ag_ctx tstorm_ag_context /* tstorm aggregative context */; 576*14b24e2bSVaishali Kulkarni struct e4_ustorm_core_conn_ag_ctx ustorm_ag_context /* ustorm aggregative context */; 577*14b24e2bSVaishali Kulkarni struct mstorm_core_conn_st_ctx mstorm_st_context /* mstorm storm context */; 578*14b24e2bSVaishali Kulkarni struct ustorm_core_conn_st_ctx ustorm_st_context /* ustorm storm context */; 579*14b24e2bSVaishali Kulkarni struct regpair ustorm_st_padding[2] /* padding */; 580*14b24e2bSVaishali Kulkarni }; 581*14b24e2bSVaishali Kulkarni 582*14b24e2bSVaishali Kulkarni 583*14b24e2bSVaishali Kulkarni /* 584*14b24e2bSVaishali Kulkarni * How ll2 should deal with packet upon errors 585*14b24e2bSVaishali Kulkarni */ 586*14b24e2bSVaishali Kulkarni enum core_error_handle 587*14b24e2bSVaishali Kulkarni { 588*14b24e2bSVaishali Kulkarni LL2_DROP_PACKET /* If error occurs drop packet */, 589*14b24e2bSVaishali Kulkarni LL2_DO_NOTHING /* If error occurs do nothing */, 590*14b24e2bSVaishali Kulkarni LL2_ASSERT /* If error occurs assert */, 591*14b24e2bSVaishali Kulkarni MAX_CORE_ERROR_HANDLE 592*14b24e2bSVaishali Kulkarni }; 593*14b24e2bSVaishali Kulkarni 594*14b24e2bSVaishali Kulkarni 595*14b24e2bSVaishali Kulkarni /* 596*14b24e2bSVaishali Kulkarni * opcodes for the event ring 597*14b24e2bSVaishali Kulkarni */ 598*14b24e2bSVaishali Kulkarni enum core_event_opcode 599*14b24e2bSVaishali Kulkarni { 600*14b24e2bSVaishali Kulkarni CORE_EVENT_TX_QUEUE_START, 601*14b24e2bSVaishali Kulkarni CORE_EVENT_TX_QUEUE_STOP, 602*14b24e2bSVaishali Kulkarni CORE_EVENT_RX_QUEUE_START, 603*14b24e2bSVaishali Kulkarni CORE_EVENT_RX_QUEUE_STOP, 604*14b24e2bSVaishali Kulkarni CORE_EVENT_RX_QUEUE_FLUSH, 605*14b24e2bSVaishali Kulkarni MAX_CORE_EVENT_OPCODE 606*14b24e2bSVaishali Kulkarni }; 607*14b24e2bSVaishali Kulkarni 608*14b24e2bSVaishali Kulkarni 609*14b24e2bSVaishali Kulkarni /* 610*14b24e2bSVaishali Kulkarni * The L4 pseudo checksum mode for Core 611*14b24e2bSVaishali Kulkarni */ 612*14b24e2bSVaishali Kulkarni enum core_l4_pseudo_checksum_mode 613*14b24e2bSVaishali Kulkarni { 614*14b24e2bSVaishali Kulkarni CORE_L4_PSEUDO_CSUM_CORRECT_LENGTH /* Pseudo Checksum on packet is calculated with the correct packet length. */, 615*14b24e2bSVaishali Kulkarni CORE_L4_PSEUDO_CSUM_ZERO_LENGTH /* Pseudo Checksum on packet is calculated with zero length. */, 616*14b24e2bSVaishali Kulkarni MAX_CORE_L4_PSEUDO_CHECKSUM_MODE 617*14b24e2bSVaishali Kulkarni }; 618*14b24e2bSVaishali Kulkarni 619*14b24e2bSVaishali Kulkarni 620*14b24e2bSVaishali Kulkarni /* 621*14b24e2bSVaishali Kulkarni * Light-L2 RX Producers in Tstorm RAM 622*14b24e2bSVaishali Kulkarni */ 623*14b24e2bSVaishali Kulkarni struct core_ll2_port_stats 624*14b24e2bSVaishali Kulkarni { 625*14b24e2bSVaishali Kulkarni struct regpair gsi_invalid_hdr; 626*14b24e2bSVaishali Kulkarni struct regpair gsi_invalid_pkt_length; 627*14b24e2bSVaishali Kulkarni struct regpair gsi_unsupported_pkt_typ; 628*14b24e2bSVaishali Kulkarni struct regpair gsi_crcchksm_error; 629*14b24e2bSVaishali Kulkarni }; 630*14b24e2bSVaishali Kulkarni 631*14b24e2bSVaishali Kulkarni 632*14b24e2bSVaishali Kulkarni /* 633*14b24e2bSVaishali Kulkarni * Ethernet TX Per Queue Stats 634*14b24e2bSVaishali Kulkarni */ 635*14b24e2bSVaishali Kulkarni struct core_ll2_pstorm_per_queue_stat 636*14b24e2bSVaishali Kulkarni { 637*14b24e2bSVaishali Kulkarni struct regpair sent_ucast_bytes /* number of total bytes sent without errors */; 638*14b24e2bSVaishali Kulkarni struct regpair sent_mcast_bytes /* number of total bytes sent without errors */; 639*14b24e2bSVaishali Kulkarni struct regpair sent_bcast_bytes /* number of total bytes sent without errors */; 640*14b24e2bSVaishali Kulkarni struct regpair sent_ucast_pkts /* number of total packets sent without errors */; 641*14b24e2bSVaishali Kulkarni struct regpair sent_mcast_pkts /* number of total packets sent without errors */; 642*14b24e2bSVaishali Kulkarni struct regpair sent_bcast_pkts /* number of total packets sent without errors */; 643*14b24e2bSVaishali Kulkarni }; 644*14b24e2bSVaishali Kulkarni 645*14b24e2bSVaishali Kulkarni 646*14b24e2bSVaishali Kulkarni /* 647*14b24e2bSVaishali Kulkarni * Light-L2 RX Producers in Tstorm RAM 648*14b24e2bSVaishali Kulkarni */ 649*14b24e2bSVaishali Kulkarni struct core_ll2_rx_prod 650*14b24e2bSVaishali Kulkarni { 651*14b24e2bSVaishali Kulkarni __le16 bd_prod /* BD Producer */; 652*14b24e2bSVaishali Kulkarni __le16 cqe_prod /* CQE Producer */; 653*14b24e2bSVaishali Kulkarni __le32 reserved; 654*14b24e2bSVaishali Kulkarni }; 655*14b24e2bSVaishali Kulkarni 656*14b24e2bSVaishali Kulkarni 657*14b24e2bSVaishali Kulkarni struct core_ll2_tstorm_per_queue_stat 658*14b24e2bSVaishali Kulkarni { 659*14b24e2bSVaishali Kulkarni struct regpair packet_too_big_discard /* Number of packets discarded because they are bigger than MTU */; 660*14b24e2bSVaishali Kulkarni struct regpair no_buff_discard /* Number of packets discarded due to lack of host buffers */; 661*14b24e2bSVaishali Kulkarni }; 662*14b24e2bSVaishali Kulkarni 663*14b24e2bSVaishali Kulkarni 664*14b24e2bSVaishali Kulkarni struct core_ll2_ustorm_per_queue_stat 665*14b24e2bSVaishali Kulkarni { 666*14b24e2bSVaishali Kulkarni struct regpair rcv_ucast_bytes; 667*14b24e2bSVaishali Kulkarni struct regpair rcv_mcast_bytes; 668*14b24e2bSVaishali Kulkarni struct regpair rcv_bcast_bytes; 669*14b24e2bSVaishali Kulkarni struct regpair rcv_ucast_pkts; 670*14b24e2bSVaishali Kulkarni struct regpair rcv_mcast_pkts; 671*14b24e2bSVaishali Kulkarni struct regpair rcv_bcast_pkts; 672*14b24e2bSVaishali Kulkarni }; 673*14b24e2bSVaishali Kulkarni 674*14b24e2bSVaishali Kulkarni 675*14b24e2bSVaishali Kulkarni /* 676*14b24e2bSVaishali Kulkarni * Core Ramrod Command IDs (light L2) 677*14b24e2bSVaishali Kulkarni */ 678*14b24e2bSVaishali Kulkarni enum core_ramrod_cmd_id 679*14b24e2bSVaishali Kulkarni { 680*14b24e2bSVaishali Kulkarni CORE_RAMROD_UNUSED, 681*14b24e2bSVaishali Kulkarni CORE_RAMROD_RX_QUEUE_START /* RX Queue Start Ramrod */, 682*14b24e2bSVaishali Kulkarni CORE_RAMROD_TX_QUEUE_START /* TX Queue Start Ramrod */, 683*14b24e2bSVaishali Kulkarni CORE_RAMROD_RX_QUEUE_STOP /* RX Queue Stop Ramrod */, 684*14b24e2bSVaishali Kulkarni CORE_RAMROD_TX_QUEUE_STOP /* TX Queue Stop Ramrod */, 685*14b24e2bSVaishali Kulkarni CORE_RAMROD_RX_QUEUE_FLUSH /* RX Flush queue Ramrod */, 686*14b24e2bSVaishali Kulkarni MAX_CORE_RAMROD_CMD_ID 687*14b24e2bSVaishali Kulkarni }; 688*14b24e2bSVaishali Kulkarni 689*14b24e2bSVaishali Kulkarni 690*14b24e2bSVaishali Kulkarni /* 691*14b24e2bSVaishali Kulkarni * Core RX CQE Type for Light L2 692*14b24e2bSVaishali Kulkarni */ 693*14b24e2bSVaishali Kulkarni enum core_roce_flavor_type 694*14b24e2bSVaishali Kulkarni { 695*14b24e2bSVaishali Kulkarni CORE_ROCE, 696*14b24e2bSVaishali Kulkarni CORE_RROCE, 697*14b24e2bSVaishali Kulkarni MAX_CORE_ROCE_FLAVOR_TYPE 698*14b24e2bSVaishali Kulkarni }; 699*14b24e2bSVaishali Kulkarni 700*14b24e2bSVaishali Kulkarni 701*14b24e2bSVaishali Kulkarni /* 702*14b24e2bSVaishali Kulkarni * Specifies how ll2 should deal with packets errors: packet_too_big and no_buff 703*14b24e2bSVaishali Kulkarni */ 704*14b24e2bSVaishali Kulkarni struct core_rx_action_on_error 705*14b24e2bSVaishali Kulkarni { 706*14b24e2bSVaishali Kulkarni u8 error_type; 707*14b24e2bSVaishali Kulkarni #define CORE_RX_ACTION_ON_ERROR_PACKET_TOO_BIG_MASK 0x3 /* ll2 how to handle error packet_too_big (use enum core_error_handle) */ 708*14b24e2bSVaishali Kulkarni #define CORE_RX_ACTION_ON_ERROR_PACKET_TOO_BIG_SHIFT 0 709*14b24e2bSVaishali Kulkarni #define CORE_RX_ACTION_ON_ERROR_NO_BUFF_MASK 0x3 /* ll2 how to handle error with no_buff (use enum core_error_handle) */ 710*14b24e2bSVaishali Kulkarni #define CORE_RX_ACTION_ON_ERROR_NO_BUFF_SHIFT 2 711*14b24e2bSVaishali Kulkarni #define CORE_RX_ACTION_ON_ERROR_RESERVED_MASK 0xF 712*14b24e2bSVaishali Kulkarni #define CORE_RX_ACTION_ON_ERROR_RESERVED_SHIFT 4 713*14b24e2bSVaishali Kulkarni }; 714*14b24e2bSVaishali Kulkarni 715*14b24e2bSVaishali Kulkarni 716*14b24e2bSVaishali Kulkarni /* 717*14b24e2bSVaishali Kulkarni * Core RX BD for Light L2 718*14b24e2bSVaishali Kulkarni */ 719*14b24e2bSVaishali Kulkarni struct core_rx_bd 720*14b24e2bSVaishali Kulkarni { 721*14b24e2bSVaishali Kulkarni struct regpair addr; 722*14b24e2bSVaishali Kulkarni __le16 reserved[4]; 723*14b24e2bSVaishali Kulkarni }; 724*14b24e2bSVaishali Kulkarni 725*14b24e2bSVaishali Kulkarni 726*14b24e2bSVaishali Kulkarni /* 727*14b24e2bSVaishali Kulkarni * Core RX CM offload BD for Light L2 728*14b24e2bSVaishali Kulkarni */ 729*14b24e2bSVaishali Kulkarni struct core_rx_bd_with_buff_len 730*14b24e2bSVaishali Kulkarni { 731*14b24e2bSVaishali Kulkarni struct regpair addr; 732*14b24e2bSVaishali Kulkarni __le16 buff_length; 733*14b24e2bSVaishali Kulkarni __le16 reserved[3]; 734*14b24e2bSVaishali Kulkarni }; 735*14b24e2bSVaishali Kulkarni 736*14b24e2bSVaishali Kulkarni /* 737*14b24e2bSVaishali Kulkarni * Core RX CM offload BD for Light L2 738*14b24e2bSVaishali Kulkarni */ 739*14b24e2bSVaishali Kulkarni union core_rx_bd_union 740*14b24e2bSVaishali Kulkarni { 741*14b24e2bSVaishali Kulkarni struct core_rx_bd rx_bd /* Core Rx Bd static buffer size */; 742*14b24e2bSVaishali Kulkarni struct core_rx_bd_with_buff_len rx_bd_with_len /* Core Rx Bd with dynamic buffer length */; 743*14b24e2bSVaishali Kulkarni }; 744*14b24e2bSVaishali Kulkarni 745*14b24e2bSVaishali Kulkarni 746*14b24e2bSVaishali Kulkarni 747*14b24e2bSVaishali Kulkarni /* 748*14b24e2bSVaishali Kulkarni * Opaque Data for Light L2 RX CQE . 749*14b24e2bSVaishali Kulkarni */ 750*14b24e2bSVaishali Kulkarni struct core_rx_cqe_opaque_data 751*14b24e2bSVaishali Kulkarni { 752*14b24e2bSVaishali Kulkarni __le32 data[2] /* Opaque CQE Data */; 753*14b24e2bSVaishali Kulkarni }; 754*14b24e2bSVaishali Kulkarni 755*14b24e2bSVaishali Kulkarni 756*14b24e2bSVaishali Kulkarni /* 757*14b24e2bSVaishali Kulkarni * Core RX CQE Type for Light L2 758*14b24e2bSVaishali Kulkarni */ 759*14b24e2bSVaishali Kulkarni enum core_rx_cqe_type 760*14b24e2bSVaishali Kulkarni { 761*14b24e2bSVaishali Kulkarni CORE_RX_CQE_ILLIGAL_TYPE /* Bad RX Cqe type */, 762*14b24e2bSVaishali Kulkarni CORE_RX_CQE_TYPE_REGULAR /* Regular Core RX CQE */, 763*14b24e2bSVaishali Kulkarni CORE_RX_CQE_TYPE_GSI_OFFLOAD /* Fp Gsi offload RX CQE */, 764*14b24e2bSVaishali Kulkarni CORE_RX_CQE_TYPE_SLOW_PATH /* Slow path Core RX CQE */, 765*14b24e2bSVaishali Kulkarni MAX_CORE_RX_CQE_TYPE 766*14b24e2bSVaishali Kulkarni }; 767*14b24e2bSVaishali Kulkarni 768*14b24e2bSVaishali Kulkarni 769*14b24e2bSVaishali Kulkarni /* 770*14b24e2bSVaishali Kulkarni * Core RX CQE for Light L2 . 771*14b24e2bSVaishali Kulkarni */ 772*14b24e2bSVaishali Kulkarni struct core_rx_fast_path_cqe 773*14b24e2bSVaishali Kulkarni { 774*14b24e2bSVaishali Kulkarni u8 type /* CQE type */; 775*14b24e2bSVaishali Kulkarni u8 placement_offset /* Offset (in bytes) of the packet from start of the buffer */; 776*14b24e2bSVaishali Kulkarni struct parsing_and_err_flags parse_flags /* Parsing and error flags from the parser */; 777*14b24e2bSVaishali Kulkarni __le16 packet_length /* Total packet length (from the parser) */; 778*14b24e2bSVaishali Kulkarni __le16 vlan /* 802.1q VLAN tag */; 779*14b24e2bSVaishali Kulkarni struct core_rx_cqe_opaque_data opaque_data /* Opaque Data */; 780*14b24e2bSVaishali Kulkarni struct parsing_err_flags err_flags /* bit- map: each bit represents a specific error. errors indications are provided by the cracker. see spec for detailed description */; 781*14b24e2bSVaishali Kulkarni __le16 reserved0; 782*14b24e2bSVaishali Kulkarni __le32 reserved1[3]; 783*14b24e2bSVaishali Kulkarni }; 784*14b24e2bSVaishali Kulkarni 785*14b24e2bSVaishali Kulkarni /* 786*14b24e2bSVaishali Kulkarni * Core Rx CM offload CQE . 787*14b24e2bSVaishali Kulkarni */ 788*14b24e2bSVaishali Kulkarni struct core_rx_gsi_offload_cqe 789*14b24e2bSVaishali Kulkarni { 790*14b24e2bSVaishali Kulkarni u8 type /* CQE type */; 791*14b24e2bSVaishali Kulkarni u8 data_length_error /* set if gsi data is bigger than buff */; 792*14b24e2bSVaishali Kulkarni struct parsing_and_err_flags parse_flags /* Parsing and error flags from the parser */; 793*14b24e2bSVaishali Kulkarni __le16 data_length /* Total packet length (from the parser) */; 794*14b24e2bSVaishali Kulkarni __le16 vlan /* 802.1q VLAN tag */; 795*14b24e2bSVaishali Kulkarni __le32 src_mac_addrhi /* hi 4 bytes source mac address */; 796*14b24e2bSVaishali Kulkarni __le16 src_mac_addrlo /* lo 2 bytes of source mac address */; 797*14b24e2bSVaishali Kulkarni __le16 qp_id /* These are the lower 16 bit of QP id in RoCE BTH header */; 798*14b24e2bSVaishali Kulkarni __le32 gid_dst[4] /* Gid destination address */; 799*14b24e2bSVaishali Kulkarni }; 800*14b24e2bSVaishali Kulkarni 801*14b24e2bSVaishali Kulkarni /* 802*14b24e2bSVaishali Kulkarni * Core RX CQE for Light L2 . 803*14b24e2bSVaishali Kulkarni */ 804*14b24e2bSVaishali Kulkarni struct core_rx_slow_path_cqe 805*14b24e2bSVaishali Kulkarni { 806*14b24e2bSVaishali Kulkarni u8 type /* CQE type */; 807*14b24e2bSVaishali Kulkarni u8 ramrod_cmd_id; 808*14b24e2bSVaishali Kulkarni __le16 echo; 809*14b24e2bSVaishali Kulkarni struct core_rx_cqe_opaque_data opaque_data /* Opaque Data */; 810*14b24e2bSVaishali Kulkarni __le32 reserved1[5]; 811*14b24e2bSVaishali Kulkarni }; 812*14b24e2bSVaishali Kulkarni 813*14b24e2bSVaishali Kulkarni /* 814*14b24e2bSVaishali Kulkarni * Core RX CM offload BD for Light L2 815*14b24e2bSVaishali Kulkarni */ 816*14b24e2bSVaishali Kulkarni union core_rx_cqe_union 817*14b24e2bSVaishali Kulkarni { 818*14b24e2bSVaishali Kulkarni struct core_rx_fast_path_cqe rx_cqe_fp /* Fast path CQE */; 819*14b24e2bSVaishali Kulkarni struct core_rx_gsi_offload_cqe rx_cqe_gsi /* GSI offload CQE */; 820*14b24e2bSVaishali Kulkarni struct core_rx_slow_path_cqe rx_cqe_sp /* Slow path CQE */; 821*14b24e2bSVaishali Kulkarni }; 822*14b24e2bSVaishali Kulkarni 823*14b24e2bSVaishali Kulkarni 824*14b24e2bSVaishali Kulkarni 825*14b24e2bSVaishali Kulkarni 826*14b24e2bSVaishali Kulkarni 827*14b24e2bSVaishali Kulkarni /* 828*14b24e2bSVaishali Kulkarni * Ramrod data for rx queue start ramrod 829*14b24e2bSVaishali Kulkarni */ 830*14b24e2bSVaishali Kulkarni struct core_rx_start_ramrod_data 831*14b24e2bSVaishali Kulkarni { 832*14b24e2bSVaishali Kulkarni struct regpair bd_base /* bd address of the first bd page */; 833*14b24e2bSVaishali Kulkarni struct regpair cqe_pbl_addr /* Base address on host of CQE PBL */; 834*14b24e2bSVaishali Kulkarni __le16 mtu /* Maximum transmission unit */; 835*14b24e2bSVaishali Kulkarni __le16 sb_id /* Status block ID */; 836*14b24e2bSVaishali Kulkarni u8 sb_index /* index of the protocol index */; 837*14b24e2bSVaishali Kulkarni u8 complete_cqe_flg /* post completion to the CQE ring if set */; 838*14b24e2bSVaishali Kulkarni u8 complete_event_flg /* post completion to the event ring if set */; 839*14b24e2bSVaishali Kulkarni u8 drop_ttl0_flg /* drop packet with ttl0 if set */; 840*14b24e2bSVaishali Kulkarni __le16 num_of_pbl_pages /* Num of pages in CQE PBL */; 841*14b24e2bSVaishali Kulkarni u8 inner_vlan_removal_en /* if set, 802.1q tags will be removed and copied to CQE */; 842*14b24e2bSVaishali Kulkarni u8 queue_id /* Light L2 RX Queue ID */; 843*14b24e2bSVaishali Kulkarni u8 main_func_queue /* Is this the main queue for the PF */; 844*14b24e2bSVaishali Kulkarni u8 mf_si_bcast_accept_all /* Duplicate broadcast packets to LL2 main queue in mf_si mode. Valid if main_func_queue is set. */; 845*14b24e2bSVaishali Kulkarni u8 mf_si_mcast_accept_all /* Duplicate multicast packets to LL2 main queue in mf_si mode. Valid if main_func_queue is set. */; 846*14b24e2bSVaishali Kulkarni struct core_rx_action_on_error action_on_error /* Specifies how ll2 should deal with packets errors: packet_too_big and no_buff */; 847*14b24e2bSVaishali Kulkarni u8 gsi_offload_flag /* set when in GSI offload mode on ROCE connection */; 848*14b24e2bSVaishali Kulkarni u8 reserved[7]; 849*14b24e2bSVaishali Kulkarni }; 850*14b24e2bSVaishali Kulkarni 851*14b24e2bSVaishali Kulkarni 852*14b24e2bSVaishali Kulkarni /* 853*14b24e2bSVaishali Kulkarni * Ramrod data for rx queue stop ramrod 854*14b24e2bSVaishali Kulkarni */ 855*14b24e2bSVaishali Kulkarni struct core_rx_stop_ramrod_data 856*14b24e2bSVaishali Kulkarni { 857*14b24e2bSVaishali Kulkarni u8 complete_cqe_flg /* post completion to the CQE ring if set */; 858*14b24e2bSVaishali Kulkarni u8 complete_event_flg /* post completion to the event ring if set */; 859*14b24e2bSVaishali Kulkarni u8 queue_id /* Light L2 RX Queue ID */; 860*14b24e2bSVaishali Kulkarni u8 reserved1; 861*14b24e2bSVaishali Kulkarni __le16 reserved2[2]; 862*14b24e2bSVaishali Kulkarni }; 863*14b24e2bSVaishali Kulkarni 864*14b24e2bSVaishali Kulkarni 865*14b24e2bSVaishali Kulkarni /* 866*14b24e2bSVaishali Kulkarni * Flags for Core TX BD 867*14b24e2bSVaishali Kulkarni */ 868*14b24e2bSVaishali Kulkarni struct core_tx_bd_data 869*14b24e2bSVaishali Kulkarni { 870*14b24e2bSVaishali Kulkarni __le16 as_bitfield; 871*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_FORCE_VLAN_MODE_MASK 0x1 /* Do not allow additional VLAN manipulations on this packet (DCB) */ 872*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_FORCE_VLAN_MODE_SHIFT 0 873*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_VLAN_INSERTION_MASK 0x1 /* Insert VLAN into packet */ 874*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_VLAN_INSERTION_SHIFT 1 875*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_START_BD_MASK 0x1 /* This is the first BD of the packet (for debug) */ 876*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_START_BD_SHIFT 2 877*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_IP_CSUM_MASK 0x1 /* Calculate the IP checksum for the packet */ 878*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_IP_CSUM_SHIFT 3 879*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_L4_CSUM_MASK 0x1 /* Calculate the L4 checksum for the packet */ 880*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_L4_CSUM_SHIFT 4 881*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_IPV6_EXT_MASK 0x1 /* Packet is IPv6 with extensions */ 882*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_IPV6_EXT_SHIFT 5 883*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_L4_PROTOCOL_MASK 0x1 /* If IPv6+ext, and if l4_csum is 1, than this field indicates L4 protocol: 0-TCP, 1-UDP */ 884*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_L4_PROTOCOL_SHIFT 6 885*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_L4_PSEUDO_CSUM_MODE_MASK 0x1 /* The pseudo checksum mode to place in the L4 checksum field. Required only when IPv6+ext and l4_csum is set. (use enum core_l4_pseudo_checksum_mode) */ 886*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_L4_PSEUDO_CSUM_MODE_SHIFT 7 887*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_NBDS_MASK 0xF /* Number of BDs that make up one packet - width wide enough to present CORE_LL2_TX_MAX_BDS_PER_PACKET */ 888*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_NBDS_SHIFT 8 889*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_ROCE_FLAV_MASK 0x1 /* Use roce_flavor enum - Differentiate between Roce flavors is valid when connType is ROCE (use enum core_roce_flavor_type) */ 890*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_ROCE_FLAV_SHIFT 12 891*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_IP_LEN_MASK 0x1 /* Calculate ip length */ 892*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_IP_LEN_SHIFT 13 893*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_RESERVED0_MASK 0x3 894*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_DATA_RESERVED0_SHIFT 14 895*14b24e2bSVaishali Kulkarni }; 896*14b24e2bSVaishali Kulkarni 897*14b24e2bSVaishali Kulkarni /* 898*14b24e2bSVaishali Kulkarni * Core TX BD for Light L2 899*14b24e2bSVaishali Kulkarni */ 900*14b24e2bSVaishali Kulkarni struct core_tx_bd 901*14b24e2bSVaishali Kulkarni { 902*14b24e2bSVaishali Kulkarni struct regpair addr /* Buffer Address */; 903*14b24e2bSVaishali Kulkarni __le16 nbytes /* Number of Bytes in Buffer */; 904*14b24e2bSVaishali Kulkarni __le16 nw_vlan_or_lb_echo /* Network packets: VLAN to insert to packet (if insertion flag set) LoopBack packets: echo data to pass to Rx */; 905*14b24e2bSVaishali Kulkarni struct core_tx_bd_data bd_data /* BD Flags */; 906*14b24e2bSVaishali Kulkarni __le16 bitfield1; 907*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_L4_HDR_OFFSET_W_MASK 0x3FFF /* L4 Header Offset from start of packet (in Words). This is needed if both l4_csum and ipv6_ext are set */ 908*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_L4_HDR_OFFSET_W_SHIFT 0 909*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_TX_DST_MASK 0x3 /* Packet destination - Network, Loopback or Drop (use enum core_tx_dest) */ 910*14b24e2bSVaishali Kulkarni #define CORE_TX_BD_TX_DST_SHIFT 14 911*14b24e2bSVaishali Kulkarni }; 912*14b24e2bSVaishali Kulkarni 913*14b24e2bSVaishali Kulkarni 914*14b24e2bSVaishali Kulkarni 915*14b24e2bSVaishali Kulkarni /* 916*14b24e2bSVaishali Kulkarni * Light L2 TX Destination 917*14b24e2bSVaishali Kulkarni */ 918*14b24e2bSVaishali Kulkarni enum core_tx_dest 919*14b24e2bSVaishali Kulkarni { 920*14b24e2bSVaishali Kulkarni CORE_TX_DEST_NW /* TX Destination to the Network */, 921*14b24e2bSVaishali Kulkarni CORE_TX_DEST_LB /* TX Destination to the Loopback */, 922*14b24e2bSVaishali Kulkarni CORE_TX_DEST_RESERVED, 923*14b24e2bSVaishali Kulkarni CORE_TX_DEST_DROP /* TX Drop */, 924*14b24e2bSVaishali Kulkarni MAX_CORE_TX_DEST 925*14b24e2bSVaishali Kulkarni }; 926*14b24e2bSVaishali Kulkarni 927*14b24e2bSVaishali Kulkarni 928*14b24e2bSVaishali Kulkarni /* 929*14b24e2bSVaishali Kulkarni * Ramrod data for tx queue start ramrod 930*14b24e2bSVaishali Kulkarni */ 931*14b24e2bSVaishali Kulkarni struct core_tx_start_ramrod_data 932*14b24e2bSVaishali Kulkarni { 933*14b24e2bSVaishali Kulkarni struct regpair pbl_base_addr /* Address of the pbl page */; 934*14b24e2bSVaishali Kulkarni __le16 mtu /* Maximum transmission unit */; 935*14b24e2bSVaishali Kulkarni __le16 sb_id /* Status block ID */; 936*14b24e2bSVaishali Kulkarni u8 sb_index /* Status block protocol index */; 937*14b24e2bSVaishali Kulkarni u8 stats_en /* Statistics Enable */; 938*14b24e2bSVaishali Kulkarni u8 stats_id /* Statistics Counter ID */; 939*14b24e2bSVaishali Kulkarni u8 conn_type /* connection type that loaded ll2 */; 940*14b24e2bSVaishali Kulkarni __le16 pbl_size /* Number of BD pages pointed by PBL */; 941*14b24e2bSVaishali Kulkarni __le16 qm_pq_id /* QM PQ ID */; 942*14b24e2bSVaishali Kulkarni u8 gsi_offload_flag /* set when in GSI offload mode on ROCE connection */; 943*14b24e2bSVaishali Kulkarni u8 resrved[3]; 944*14b24e2bSVaishali Kulkarni }; 945*14b24e2bSVaishali Kulkarni 946*14b24e2bSVaishali Kulkarni 947*14b24e2bSVaishali Kulkarni /* 948*14b24e2bSVaishali Kulkarni * Ramrod data for tx queue stop ramrod 949*14b24e2bSVaishali Kulkarni */ 950*14b24e2bSVaishali Kulkarni struct core_tx_stop_ramrod_data 951*14b24e2bSVaishali Kulkarni { 952*14b24e2bSVaishali Kulkarni __le32 reserved0[2]; 953*14b24e2bSVaishali Kulkarni }; 954*14b24e2bSVaishali Kulkarni 955*14b24e2bSVaishali Kulkarni 956*14b24e2bSVaishali Kulkarni /* 957*14b24e2bSVaishali Kulkarni * Enum flag for what type of dcb data to update 958*14b24e2bSVaishali Kulkarni */ 959*14b24e2bSVaishali Kulkarni enum dcb_dscp_update_mode 960*14b24e2bSVaishali Kulkarni { 961*14b24e2bSVaishali Kulkarni DONT_UPDATE_DCB_DSCP /* use when no change should be done to dcb data */, 962*14b24e2bSVaishali Kulkarni UPDATE_DCB /* use to update only l2 (vlan) priority */, 963*14b24e2bSVaishali Kulkarni UPDATE_DSCP /* use to update only l3 dscp */, 964*14b24e2bSVaishali Kulkarni UPDATE_DCB_DSCP /* update vlan pri and dscp */, 965*14b24e2bSVaishali Kulkarni MAX_DCB_DSCP_UPDATE_MODE 966*14b24e2bSVaishali Kulkarni }; 967*14b24e2bSVaishali Kulkarni 968*14b24e2bSVaishali Kulkarni 969*14b24e2bSVaishali Kulkarni struct eth_mstorm_per_pf_stat 970*14b24e2bSVaishali Kulkarni { 971*14b24e2bSVaishali Kulkarni struct regpair gre_discard_pkts /* Dropped GRE RX packets */; 972*14b24e2bSVaishali Kulkarni struct regpair vxlan_discard_pkts /* Dropped VXLAN RX packets */; 973*14b24e2bSVaishali Kulkarni struct regpair geneve_discard_pkts /* Dropped GENEVE RX packets */; 974*14b24e2bSVaishali Kulkarni struct regpair lb_discard_pkts /* Dropped Tx switched packets */; 975*14b24e2bSVaishali Kulkarni }; 976*14b24e2bSVaishali Kulkarni 977*14b24e2bSVaishali Kulkarni 978*14b24e2bSVaishali Kulkarni struct eth_mstorm_per_queue_stat 979*14b24e2bSVaishali Kulkarni { 980*14b24e2bSVaishali Kulkarni struct regpair ttl0_discard /* Number of packets discarded because TTL=0 (in IPv4) or hopLimit=0 (in IPv6) */; 981*14b24e2bSVaishali Kulkarni struct regpair packet_too_big_discard /* Number of packets discarded because they are bigger than MTU */; 982*14b24e2bSVaishali Kulkarni struct regpair no_buff_discard /* Number of packets discarded due to lack of host buffers (BDs/SGEs/CQEs) */; 983*14b24e2bSVaishali Kulkarni struct regpair not_active_discard /* Number of packets discarded because of no active Rx connection */; 984*14b24e2bSVaishali Kulkarni struct regpair tpa_coalesced_pkts /* number of coalesced packets in all TPA aggregations */; 985*14b24e2bSVaishali Kulkarni struct regpair tpa_coalesced_events /* total number of TPA aggregations */; 986*14b24e2bSVaishali Kulkarni struct regpair tpa_aborts_num /* number of aggregations, which abnormally ended */; 987*14b24e2bSVaishali Kulkarni struct regpair tpa_coalesced_bytes /* total TCP payload length in all TPA aggregations */; 988*14b24e2bSVaishali Kulkarni }; 989*14b24e2bSVaishali Kulkarni 990*14b24e2bSVaishali Kulkarni 991*14b24e2bSVaishali Kulkarni /* 992*14b24e2bSVaishali Kulkarni * Ethernet TX Per PF 993*14b24e2bSVaishali Kulkarni */ 994*14b24e2bSVaishali Kulkarni struct eth_pstorm_per_pf_stat 995*14b24e2bSVaishali Kulkarni { 996*14b24e2bSVaishali Kulkarni struct regpair sent_lb_ucast_bytes /* number of total ucast bytes sent on loopback port without errors */; 997*14b24e2bSVaishali Kulkarni struct regpair sent_lb_mcast_bytes /* number of total mcast bytes sent on loopback port without errors */; 998*14b24e2bSVaishali Kulkarni struct regpair sent_lb_bcast_bytes /* number of total bcast bytes sent on loopback port without errors */; 999*14b24e2bSVaishali Kulkarni struct regpair sent_lb_ucast_pkts /* number of total ucast packets sent on loopback port without errors */; 1000*14b24e2bSVaishali Kulkarni struct regpair sent_lb_mcast_pkts /* number of total mcast packets sent on loopback port without errors */; 1001*14b24e2bSVaishali Kulkarni struct regpair sent_lb_bcast_pkts /* number of total bcast packets sent on loopback port without errors */; 1002*14b24e2bSVaishali Kulkarni struct regpair sent_gre_bytes /* Sent GRE bytes */; 1003*14b24e2bSVaishali Kulkarni struct regpair sent_vxlan_bytes /* Sent VXLAN bytes */; 1004*14b24e2bSVaishali Kulkarni struct regpair sent_geneve_bytes /* Sent GENEVE bytes */; 1005*14b24e2bSVaishali Kulkarni struct regpair sent_gre_pkts /* Sent GRE packets */; 1006*14b24e2bSVaishali Kulkarni struct regpair sent_vxlan_pkts /* Sent VXLAN packets */; 1007*14b24e2bSVaishali Kulkarni struct regpair sent_geneve_pkts /* Sent GENEVE packets */; 1008*14b24e2bSVaishali Kulkarni struct regpair gre_drop_pkts /* Dropped GRE TX packets */; 1009*14b24e2bSVaishali Kulkarni struct regpair vxlan_drop_pkts /* Dropped VXLAN TX packets */; 1010*14b24e2bSVaishali Kulkarni struct regpair geneve_drop_pkts /* Dropped GENEVE TX packets */; 1011*14b24e2bSVaishali Kulkarni }; 1012*14b24e2bSVaishali Kulkarni 1013*14b24e2bSVaishali Kulkarni 1014*14b24e2bSVaishali Kulkarni /* 1015*14b24e2bSVaishali Kulkarni * Ethernet TX Per Queue Stats 1016*14b24e2bSVaishali Kulkarni */ 1017*14b24e2bSVaishali Kulkarni struct eth_pstorm_per_queue_stat 1018*14b24e2bSVaishali Kulkarni { 1019*14b24e2bSVaishali Kulkarni struct regpair sent_ucast_bytes /* number of total bytes sent without errors */; 1020*14b24e2bSVaishali Kulkarni struct regpair sent_mcast_bytes /* number of total bytes sent without errors */; 1021*14b24e2bSVaishali Kulkarni struct regpair sent_bcast_bytes /* number of total bytes sent without errors */; 1022*14b24e2bSVaishali Kulkarni struct regpair sent_ucast_pkts /* number of total packets sent without errors */; 1023*14b24e2bSVaishali Kulkarni struct regpair sent_mcast_pkts /* number of total packets sent without errors */; 1024*14b24e2bSVaishali Kulkarni struct regpair sent_bcast_pkts /* number of total packets sent without errors */; 1025*14b24e2bSVaishali Kulkarni struct regpair error_drop_pkts /* number of total packets dropped due to errors */; 1026*14b24e2bSVaishali Kulkarni }; 1027*14b24e2bSVaishali Kulkarni 1028*14b24e2bSVaishali Kulkarni 1029*14b24e2bSVaishali Kulkarni /* 1030*14b24e2bSVaishali Kulkarni * ETH Rx producers data 1031*14b24e2bSVaishali Kulkarni */ 1032*14b24e2bSVaishali Kulkarni struct eth_rx_rate_limit 1033*14b24e2bSVaishali Kulkarni { 1034*14b24e2bSVaishali Kulkarni __le16 mult /* Rate Limit Multiplier - (Storm Clock (MHz) * 8 / Desired Bandwidth (MB/s)) */; 1035*14b24e2bSVaishali Kulkarni __le16 cnst /* Constant term to add (or subtract from number of cycles) */; 1036*14b24e2bSVaishali Kulkarni u8 add_sub_cnst /* Add (1) or subtract (0) constant term */; 1037*14b24e2bSVaishali Kulkarni u8 reserved0; 1038*14b24e2bSVaishali Kulkarni __le16 reserved1; 1039*14b24e2bSVaishali Kulkarni }; 1040*14b24e2bSVaishali Kulkarni 1041*14b24e2bSVaishali Kulkarni 1042*14b24e2bSVaishali Kulkarni struct eth_ustorm_per_pf_stat 1043*14b24e2bSVaishali Kulkarni { 1044*14b24e2bSVaishali Kulkarni struct regpair rcv_lb_ucast_bytes /* number of total ucast bytes received on loopback port without errors */; 1045*14b24e2bSVaishali Kulkarni struct regpair rcv_lb_mcast_bytes /* number of total mcast bytes received on loopback port without errors */; 1046*14b24e2bSVaishali Kulkarni struct regpair rcv_lb_bcast_bytes /* number of total bcast bytes received on loopback port without errors */; 1047*14b24e2bSVaishali Kulkarni struct regpair rcv_lb_ucast_pkts /* number of total ucast packets received on loopback port without errors */; 1048*14b24e2bSVaishali Kulkarni struct regpair rcv_lb_mcast_pkts /* number of total mcast packets received on loopback port without errors */; 1049*14b24e2bSVaishali Kulkarni struct regpair rcv_lb_bcast_pkts /* number of total bcast packets received on loopback port without errors */; 1050*14b24e2bSVaishali Kulkarni struct regpair rcv_gre_bytes /* Received GRE bytes */; 1051*14b24e2bSVaishali Kulkarni struct regpair rcv_vxlan_bytes /* Received VXLAN bytes */; 1052*14b24e2bSVaishali Kulkarni struct regpair rcv_geneve_bytes /* Received GENEVE bytes */; 1053*14b24e2bSVaishali Kulkarni struct regpair rcv_gre_pkts /* Received GRE packets */; 1054*14b24e2bSVaishali Kulkarni struct regpair rcv_vxlan_pkts /* Received VXLAN packets */; 1055*14b24e2bSVaishali Kulkarni struct regpair rcv_geneve_pkts /* Received GENEVE packets */; 1056*14b24e2bSVaishali Kulkarni }; 1057*14b24e2bSVaishali Kulkarni 1058*14b24e2bSVaishali Kulkarni 1059*14b24e2bSVaishali Kulkarni struct eth_ustorm_per_queue_stat 1060*14b24e2bSVaishali Kulkarni { 1061*14b24e2bSVaishali Kulkarni struct regpair rcv_ucast_bytes; 1062*14b24e2bSVaishali Kulkarni struct regpair rcv_mcast_bytes; 1063*14b24e2bSVaishali Kulkarni struct regpair rcv_bcast_bytes; 1064*14b24e2bSVaishali Kulkarni struct regpair rcv_ucast_pkts; 1065*14b24e2bSVaishali Kulkarni struct regpair rcv_mcast_pkts; 1066*14b24e2bSVaishali Kulkarni struct regpair rcv_bcast_pkts; 1067*14b24e2bSVaishali Kulkarni }; 1068*14b24e2bSVaishali Kulkarni 1069*14b24e2bSVaishali Kulkarni 1070*14b24e2bSVaishali Kulkarni /* 1071*14b24e2bSVaishali Kulkarni * Event Ring Next Page Address 1072*14b24e2bSVaishali Kulkarni */ 1073*14b24e2bSVaishali Kulkarni struct event_ring_next_addr 1074*14b24e2bSVaishali Kulkarni { 1075*14b24e2bSVaishali Kulkarni struct regpair addr /* Next Page Address */; 1076*14b24e2bSVaishali Kulkarni __le32 reserved[2] /* Reserved */; 1077*14b24e2bSVaishali Kulkarni }; 1078*14b24e2bSVaishali Kulkarni 1079*14b24e2bSVaishali Kulkarni /* 1080*14b24e2bSVaishali Kulkarni * Event Ring Element 1081*14b24e2bSVaishali Kulkarni */ 1082*14b24e2bSVaishali Kulkarni union event_ring_element 1083*14b24e2bSVaishali Kulkarni { 1084*14b24e2bSVaishali Kulkarni struct event_ring_entry entry /* Event Ring Entry */; 1085*14b24e2bSVaishali Kulkarni struct event_ring_next_addr next_addr /* Event Ring Next Page Address */; 1086*14b24e2bSVaishali Kulkarni }; 1087*14b24e2bSVaishali Kulkarni 1088*14b24e2bSVaishali Kulkarni 1089*14b24e2bSVaishali Kulkarni 1090*14b24e2bSVaishali Kulkarni /* 1091*14b24e2bSVaishali Kulkarni * Ports mode 1092*14b24e2bSVaishali Kulkarni */ 1093*14b24e2bSVaishali Kulkarni enum fw_flow_ctrl_mode 1094*14b24e2bSVaishali Kulkarni { 1095*14b24e2bSVaishali Kulkarni flow_ctrl_pause, 1096*14b24e2bSVaishali Kulkarni flow_ctrl_pfc, 1097*14b24e2bSVaishali Kulkarni MAX_FW_FLOW_CTRL_MODE 1098*14b24e2bSVaishali Kulkarni }; 1099*14b24e2bSVaishali Kulkarni 1100*14b24e2bSVaishali Kulkarni 1101*14b24e2bSVaishali Kulkarni /* 1102*14b24e2bSVaishali Kulkarni * Major and Minor hsi Versions 1103*14b24e2bSVaishali Kulkarni */ 1104*14b24e2bSVaishali Kulkarni struct hsi_fp_ver_struct 1105*14b24e2bSVaishali Kulkarni { 1106*14b24e2bSVaishali Kulkarni u8 minor_ver_arr[2] /* Minor Version of hsi loading pf */; 1107*14b24e2bSVaishali Kulkarni u8 major_ver_arr[2] /* Major Version of driver loading pf */; 1108*14b24e2bSVaishali Kulkarni }; 1109*14b24e2bSVaishali Kulkarni 1110*14b24e2bSVaishali Kulkarni 1111*14b24e2bSVaishali Kulkarni /* 1112*14b24e2bSVaishali Kulkarni * Integration Phase 1113*14b24e2bSVaishali Kulkarni */ 1114*14b24e2bSVaishali Kulkarni enum integ_phase 1115*14b24e2bSVaishali Kulkarni { 1116*14b24e2bSVaishali Kulkarni INTEG_PHASE_BB_A0_LATEST=3 /* BB A0 latest integration phase */, 1117*14b24e2bSVaishali Kulkarni INTEG_PHASE_BB_B0_NO_MCP=10 /* BB B0 without MCP */, 1118*14b24e2bSVaishali Kulkarni INTEG_PHASE_BB_B0_WITH_MCP=11 /* BB B0 with MCP */, 1119*14b24e2bSVaishali Kulkarni MAX_INTEG_PHASE 1120*14b24e2bSVaishali Kulkarni }; 1121*14b24e2bSVaishali Kulkarni 1122*14b24e2bSVaishali Kulkarni 1123*14b24e2bSVaishali Kulkarni /* 1124*14b24e2bSVaishali Kulkarni * Ports mode 1125*14b24e2bSVaishali Kulkarni */ 1126*14b24e2bSVaishali Kulkarni enum iwarp_ll2_tx_queues 1127*14b24e2bSVaishali Kulkarni { 1128*14b24e2bSVaishali Kulkarni IWARP_LL2_IN_ORDER_TX_QUEUE=1 /* LL2 queue for OOO packets sent in-order by the driver */, 1129*14b24e2bSVaishali Kulkarni IWARP_LL2_ALIGNED_TX_QUEUE /* LL2 queue for unaligned packets sent aligned by the driver */, 1130*14b24e2bSVaishali Kulkarni IWARP_LL2_ALIGNED_RIGHT_TRIMMED_TX_QUEUE /* LL2 queue for unaligned packets sent aligned and was right-trimmed by the driver */, 1131*14b24e2bSVaishali Kulkarni IWARP_LL2_ERROR /* Error indication */, 1132*14b24e2bSVaishali Kulkarni MAX_IWARP_LL2_TX_QUEUES 1133*14b24e2bSVaishali Kulkarni }; 1134*14b24e2bSVaishali Kulkarni 1135*14b24e2bSVaishali Kulkarni 1136*14b24e2bSVaishali Kulkarni /* 1137*14b24e2bSVaishali Kulkarni * Malicious VF error ID 1138*14b24e2bSVaishali Kulkarni */ 1139*14b24e2bSVaishali Kulkarni enum malicious_vf_error_id 1140*14b24e2bSVaishali Kulkarni { 1141*14b24e2bSVaishali Kulkarni MALICIOUS_VF_NO_ERROR /* Zero placeholder value */, 1142*14b24e2bSVaishali Kulkarni VF_PF_CHANNEL_NOT_READY /* Writing to VF/PF channel when it is not ready */, 1143*14b24e2bSVaishali Kulkarni VF_ZONE_MSG_NOT_VALID /* VF channel message is not valid */, 1144*14b24e2bSVaishali Kulkarni VF_ZONE_FUNC_NOT_ENABLED /* Parent PF of VF channel is not active */, 1145*14b24e2bSVaishali Kulkarni ETH_PACKET_TOO_SMALL /* TX packet is shorter then reported on BDs or from minimal size */, 1146*14b24e2bSVaishali Kulkarni ETH_ILLEGAL_VLAN_MODE /* Tx packet with marked as insert VLAN when its illegal */, 1147*14b24e2bSVaishali Kulkarni ETH_MTU_VIOLATION /* TX packet is greater then MTU */, 1148*14b24e2bSVaishali Kulkarni ETH_ILLEGAL_INBAND_TAGS /* TX packet has illegal inband tags marked */, 1149*14b24e2bSVaishali Kulkarni ETH_VLAN_INSERT_AND_INBAND_VLAN /* Vlan cant be added to inband tag */, 1150*14b24e2bSVaishali Kulkarni ETH_ILLEGAL_NBDS /* indicated number of BDs for the packet is illegal */, 1151*14b24e2bSVaishali Kulkarni ETH_FIRST_BD_WO_SOP /* 1st BD must have start_bd flag set */, 1152*14b24e2bSVaishali Kulkarni ETH_INSUFFICIENT_BDS /* There are not enough BDs for transmission of even one packet */, 1153*14b24e2bSVaishali Kulkarni ETH_ILLEGAL_LSO_HDR_NBDS /* Header NBDs value is illegal */, 1154*14b24e2bSVaishali Kulkarni ETH_ILLEGAL_LSO_MSS /* LSO MSS value is more than allowed */, 1155*14b24e2bSVaishali Kulkarni ETH_ZERO_SIZE_BD /* empty BD (which not contains control flags) is illegal */, 1156*14b24e2bSVaishali Kulkarni ETH_ILLEGAL_LSO_HDR_LEN /* LSO header size is above the limit */, 1157*14b24e2bSVaishali Kulkarni ETH_INSUFFICIENT_PAYLOAD /* In LSO its expected that on the local BD ring there will be at least MSS bytes of data */, 1158*14b24e2bSVaishali Kulkarni ETH_EDPM_OUT_OF_SYNC /* Valid BDs on local ring after EDPM L2 sync */, 1159*14b24e2bSVaishali Kulkarni ETH_TUNN_IPV6_EXT_NBD_ERR /* Tunneled packet with IPv6+Ext without a proper number of BDs */, 1160*14b24e2bSVaishali Kulkarni ETH_CONTROL_PACKET_VIOLATION /* VF sent control frame such as PFC */, 1161*14b24e2bSVaishali Kulkarni ETH_ANTI_SPOOFING_ERR /* Anti-Spoofing verification failure */, 1162*14b24e2bSVaishali Kulkarni MAX_MALICIOUS_VF_ERROR_ID 1163*14b24e2bSVaishali Kulkarni }; 1164*14b24e2bSVaishali Kulkarni 1165*14b24e2bSVaishali Kulkarni 1166*14b24e2bSVaishali Kulkarni 1167*14b24e2bSVaishali Kulkarni /* 1168*14b24e2bSVaishali Kulkarni * Mstorm non-triggering VF zone 1169*14b24e2bSVaishali Kulkarni */ 1170*14b24e2bSVaishali Kulkarni struct mstorm_non_trigger_vf_zone 1171*14b24e2bSVaishali Kulkarni { 1172*14b24e2bSVaishali Kulkarni struct eth_mstorm_per_queue_stat eth_queue_stat /* VF statistic bucket */; 1173*14b24e2bSVaishali Kulkarni struct eth_rx_prod_data eth_rx_queue_producers[ETH_MAX_NUM_RX_QUEUES_PER_VF_QUAD] /* VF RX queues producers */; 1174*14b24e2bSVaishali Kulkarni }; 1175*14b24e2bSVaishali Kulkarni 1176*14b24e2bSVaishali Kulkarni 1177*14b24e2bSVaishali Kulkarni /* 1178*14b24e2bSVaishali Kulkarni * Mstorm VF zone 1179*14b24e2bSVaishali Kulkarni */ 1180*14b24e2bSVaishali Kulkarni struct mstorm_vf_zone 1181*14b24e2bSVaishali Kulkarni { 1182*14b24e2bSVaishali Kulkarni struct mstorm_non_trigger_vf_zone non_trigger /* non-interrupt-triggering zone */; 1183*14b24e2bSVaishali Kulkarni }; 1184*14b24e2bSVaishali Kulkarni 1185*14b24e2bSVaishali Kulkarni 1186*14b24e2bSVaishali Kulkarni /* 1187*14b24e2bSVaishali Kulkarni * personality per PF 1188*14b24e2bSVaishali Kulkarni */ 1189*14b24e2bSVaishali Kulkarni enum personality_type 1190*14b24e2bSVaishali Kulkarni { 1191*14b24e2bSVaishali Kulkarni BAD_PERSONALITY_TYP, 1192*14b24e2bSVaishali Kulkarni PERSONALITY_ISCSI /* iSCSI and LL2 */, 1193*14b24e2bSVaishali Kulkarni PERSONALITY_FCOE /* Fcoe and LL2 */, 1194*14b24e2bSVaishali Kulkarni PERSONALITY_RDMA_AND_ETH /* Roce or Iwarp, Eth and LL2 */, 1195*14b24e2bSVaishali Kulkarni PERSONALITY_RDMA /* Roce and LL2 */, 1196*14b24e2bSVaishali Kulkarni PERSONALITY_CORE /* CORE(LL2) */, 1197*14b24e2bSVaishali Kulkarni PERSONALITY_ETH /* Ethernet */, 1198*14b24e2bSVaishali Kulkarni PERSONALITY_TOE /* Toe and LL2 */, 1199*14b24e2bSVaishali Kulkarni MAX_PERSONALITY_TYPE 1200*14b24e2bSVaishali Kulkarni }; 1201*14b24e2bSVaishali Kulkarni 1202*14b24e2bSVaishali Kulkarni 1203*14b24e2bSVaishali Kulkarni /* 1204*14b24e2bSVaishali Kulkarni * tunnel configuration 1205*14b24e2bSVaishali Kulkarni */ 1206*14b24e2bSVaishali Kulkarni struct pf_start_tunnel_config 1207*14b24e2bSVaishali Kulkarni { 1208*14b24e2bSVaishali Kulkarni u8 set_vxlan_udp_port_flg /* Set VXLAN tunnel UDP destination port to vxlan_udp_port. If not set - FW will use a default port */; 1209*14b24e2bSVaishali Kulkarni u8 set_geneve_udp_port_flg /* Set GENEVE tunnel UDP destination port to geneve_udp_port. If not set - FW will use a default port */; 1210*14b24e2bSVaishali Kulkarni u8 tunnel_clss_vxlan /* Rx classification scheme for VXLAN tunnel. */; 1211*14b24e2bSVaishali Kulkarni u8 tunnel_clss_l2geneve /* Rx classification scheme for l2 GENEVE tunnel. */; 1212*14b24e2bSVaishali Kulkarni u8 tunnel_clss_ipgeneve /* Rx classification scheme for ip GENEVE tunnel. */; 1213*14b24e2bSVaishali Kulkarni u8 tunnel_clss_l2gre /* Rx classification scheme for l2 GRE tunnel. */; 1214*14b24e2bSVaishali Kulkarni u8 tunnel_clss_ipgre /* Rx classification scheme for ip GRE tunnel. */; 1215*14b24e2bSVaishali Kulkarni u8 reserved; 1216*14b24e2bSVaishali Kulkarni __le16 vxlan_udp_port /* VXLAN tunnel UDP destination port. Valid if set_vxlan_udp_port_flg=1 */; 1217*14b24e2bSVaishali Kulkarni __le16 geneve_udp_port /* GENEVE tunnel UDP destination port. Valid if set_geneve_udp_port_flg=1 */; 1218*14b24e2bSVaishali Kulkarni }; 1219*14b24e2bSVaishali Kulkarni 1220*14b24e2bSVaishali Kulkarni /* 1221*14b24e2bSVaishali Kulkarni * Ramrod data for PF start ramrod 1222*14b24e2bSVaishali Kulkarni */ 1223*14b24e2bSVaishali Kulkarni struct pf_start_ramrod_data 1224*14b24e2bSVaishali Kulkarni { 1225*14b24e2bSVaishali Kulkarni struct regpair event_ring_pbl_addr /* Address of event ring PBL */; 1226*14b24e2bSVaishali Kulkarni struct regpair consolid_q_pbl_addr /* PBL address of consolidation queue */; 1227*14b24e2bSVaishali Kulkarni struct pf_start_tunnel_config tunnel_config /* tunnel configuration. */; 1228*14b24e2bSVaishali Kulkarni __le32 reserved; 1229*14b24e2bSVaishali Kulkarni __le16 event_ring_sb_id /* Status block ID */; 1230*14b24e2bSVaishali Kulkarni u8 base_vf_id /* All VfIds owned by Pf will be from baseVfId till baseVfId+numVfs */; 1231*14b24e2bSVaishali Kulkarni u8 num_vfs /* Amount of vfs owned by PF */; 1232*14b24e2bSVaishali Kulkarni u8 event_ring_num_pages /* Number of PBL pages in event ring */; 1233*14b24e2bSVaishali Kulkarni u8 event_ring_sb_index /* Status block index */; 1234*14b24e2bSVaishali Kulkarni u8 path_id /* HW path ID (engine ID) */; 1235*14b24e2bSVaishali Kulkarni u8 warning_as_error /* In FW asserts, treat warning as error */; 1236*14b24e2bSVaishali Kulkarni u8 dont_log_ramrods /* If not set - throw a warning for each ramrod (for debug) */; 1237*14b24e2bSVaishali Kulkarni u8 personality /* define what type of personality is new PF */; 1238*14b24e2bSVaishali Kulkarni __le16 log_type_mask /* Log type mask. Each bit set enables a corresponding event type logging. Event types are defined as ASSERT_LOG_TYPE_xxx */; 1239*14b24e2bSVaishali Kulkarni u8 mf_mode /* Multi function mode */; 1240*14b24e2bSVaishali Kulkarni u8 integ_phase /* Integration phase */; 1241*14b24e2bSVaishali Kulkarni u8 allow_npar_tx_switching /* If set, inter-pf tx switching is allowed in Switch Independent function mode */; 1242*14b24e2bSVaishali Kulkarni u8 inner_to_outer_pri_map[8] /* Map from inner to outer priority. Set pri_map_valid when init map */; 1243*14b24e2bSVaishali Kulkarni u8 pri_map_valid /* If inner_to_outer_pri_map is initialize then set pri_map_valid */; 1244*14b24e2bSVaishali Kulkarni __le32 outer_tag /* In case mf_mode is MF_OVLAN, this field specifies the outer vlan (lower 16 bits) and ethType to use (higher 16 bits) */; 1245*14b24e2bSVaishali Kulkarni struct hsi_fp_ver_struct hsi_fp_ver /* FP HSI version to be used by FW */; 1246*14b24e2bSVaishali Kulkarni }; 1247*14b24e2bSVaishali Kulkarni 1248*14b24e2bSVaishali Kulkarni 1249*14b24e2bSVaishali Kulkarni 1250*14b24e2bSVaishali Kulkarni /* 1251*14b24e2bSVaishali Kulkarni * Data for port update ramrod 1252*14b24e2bSVaishali Kulkarni */ 1253*14b24e2bSVaishali Kulkarni struct protocol_dcb_data 1254*14b24e2bSVaishali Kulkarni { 1255*14b24e2bSVaishali Kulkarni u8 dcb_enable_flag /* dcbEnable flag value */; 1256*14b24e2bSVaishali Kulkarni u8 dscp_enable_flag /* If set use dscp value */; 1257*14b24e2bSVaishali Kulkarni u8 dcb_priority /* dcbPri flag value */; 1258*14b24e2bSVaishali Kulkarni u8 dcb_tc /* dcb TC value */; 1259*14b24e2bSVaishali Kulkarni u8 dscp_val /* dscp value to write if dscp_enable_flag is set */; 1260*14b24e2bSVaishali Kulkarni u8 reserved0; 1261*14b24e2bSVaishali Kulkarni }; 1262*14b24e2bSVaishali Kulkarni 1263*14b24e2bSVaishali Kulkarni /* 1264*14b24e2bSVaishali Kulkarni * Update tunnel configuration 1265*14b24e2bSVaishali Kulkarni */ 1266*14b24e2bSVaishali Kulkarni struct pf_update_tunnel_config 1267*14b24e2bSVaishali Kulkarni { 1268*14b24e2bSVaishali Kulkarni u8 update_rx_pf_clss /* Update RX per PF tunnel classification scheme. */; 1269*14b24e2bSVaishali Kulkarni u8 update_rx_def_ucast_clss /* Update per PORT default tunnel RX classification scheme for traffic with unknown unicast outer MAC in NPAR mode. */; 1270*14b24e2bSVaishali Kulkarni u8 update_rx_def_non_ucast_clss /* Update per PORT default tunnel RX classification scheme for traffic with non unicast outer MAC in NPAR mode. */; 1271*14b24e2bSVaishali Kulkarni u8 set_vxlan_udp_port_flg /* Update VXLAN tunnel UDP destination port. */; 1272*14b24e2bSVaishali Kulkarni u8 set_geneve_udp_port_flg /* Update GENEVE tunnel UDP destination port. */; 1273*14b24e2bSVaishali Kulkarni u8 tunnel_clss_vxlan /* Classification scheme for VXLAN tunnel. */; 1274*14b24e2bSVaishali Kulkarni u8 tunnel_clss_l2geneve /* Classification scheme for l2 GENEVE tunnel. */; 1275*14b24e2bSVaishali Kulkarni u8 tunnel_clss_ipgeneve /* Classification scheme for ip GENEVE tunnel. */; 1276*14b24e2bSVaishali Kulkarni u8 tunnel_clss_l2gre /* Classification scheme for l2 GRE tunnel. */; 1277*14b24e2bSVaishali Kulkarni u8 tunnel_clss_ipgre /* Classification scheme for ip GRE tunnel. */; 1278*14b24e2bSVaishali Kulkarni __le16 vxlan_udp_port /* VXLAN tunnel UDP destination port. */; 1279*14b24e2bSVaishali Kulkarni __le16 geneve_udp_port /* GENEVE tunnel UDP destination port. */; 1280*14b24e2bSVaishali Kulkarni __le16 reserved; 1281*14b24e2bSVaishali Kulkarni }; 1282*14b24e2bSVaishali Kulkarni 1283*14b24e2bSVaishali Kulkarni /* 1284*14b24e2bSVaishali Kulkarni * Data for port update ramrod 1285*14b24e2bSVaishali Kulkarni */ 1286*14b24e2bSVaishali Kulkarni struct pf_update_ramrod_data 1287*14b24e2bSVaishali Kulkarni { 1288*14b24e2bSVaishali Kulkarni u8 pf_id; 1289*14b24e2bSVaishali Kulkarni u8 update_eth_dcb_data_mode /* Update Eth DCB data indication */; 1290*14b24e2bSVaishali Kulkarni u8 update_fcoe_dcb_data_mode /* Update FCOE DCB data indication */; 1291*14b24e2bSVaishali Kulkarni u8 update_iscsi_dcb_data_mode /* Update iSCSI DCB data indication */; 1292*14b24e2bSVaishali Kulkarni u8 update_roce_dcb_data_mode /* Update ROCE DCB data indication */; 1293*14b24e2bSVaishali Kulkarni u8 update_rroce_dcb_data_mode /* Update RROCE (RoceV2) DCB data indication */; 1294*14b24e2bSVaishali Kulkarni u8 update_iwarp_dcb_data_mode /* Update IWARP DCB data indication */; 1295*14b24e2bSVaishali Kulkarni u8 update_mf_vlan_flag /* Update MF outer vlan Id */; 1296*14b24e2bSVaishali Kulkarni struct protocol_dcb_data eth_dcb_data /* core eth related fields */; 1297*14b24e2bSVaishali Kulkarni struct protocol_dcb_data fcoe_dcb_data /* core fcoe related fields */; 1298*14b24e2bSVaishali Kulkarni struct protocol_dcb_data iscsi_dcb_data /* core iscsi related fields */; 1299*14b24e2bSVaishali Kulkarni struct protocol_dcb_data roce_dcb_data /* core roce related fields */; 1300*14b24e2bSVaishali Kulkarni struct protocol_dcb_data rroce_dcb_data /* core roce related fields */; 1301*14b24e2bSVaishali Kulkarni struct protocol_dcb_data iwarp_dcb_data /* core iwarp related fields */; 1302*14b24e2bSVaishali Kulkarni __le16 mf_vlan /* new outer vlan id value */; 1303*14b24e2bSVaishali Kulkarni __le16 reserved; 1304*14b24e2bSVaishali Kulkarni struct pf_update_tunnel_config tunnel_config /* tunnel configuration. */; 1305*14b24e2bSVaishali Kulkarni }; 1306*14b24e2bSVaishali Kulkarni 1307*14b24e2bSVaishali Kulkarni 1308*14b24e2bSVaishali Kulkarni 1309*14b24e2bSVaishali Kulkarni /* 1310*14b24e2bSVaishali Kulkarni * Ports mode 1311*14b24e2bSVaishali Kulkarni */ 1312*14b24e2bSVaishali Kulkarni enum ports_mode 1313*14b24e2bSVaishali Kulkarni { 1314*14b24e2bSVaishali Kulkarni ENGX2_PORTX1 /* 2 engines x 1 port */, 1315*14b24e2bSVaishali Kulkarni ENGX2_PORTX2 /* 2 engines x 2 ports */, 1316*14b24e2bSVaishali Kulkarni ENGX1_PORTX1 /* 1 engine x 1 port */, 1317*14b24e2bSVaishali Kulkarni ENGX1_PORTX2 /* 1 engine x 2 ports */, 1318*14b24e2bSVaishali Kulkarni ENGX1_PORTX4 /* 1 engine x 4 ports */, 1319*14b24e2bSVaishali Kulkarni MAX_PORTS_MODE 1320*14b24e2bSVaishali Kulkarni }; 1321*14b24e2bSVaishali Kulkarni 1322*14b24e2bSVaishali Kulkarni 1323*14b24e2bSVaishali Kulkarni 1324*14b24e2bSVaishali Kulkarni /* 1325*14b24e2bSVaishali Kulkarni * use to index in hsi_fp_[major|minor]_ver_arr per protocol 1326*14b24e2bSVaishali Kulkarni */ 1327*14b24e2bSVaishali Kulkarni enum protocol_version_array_key 1328*14b24e2bSVaishali Kulkarni { 1329*14b24e2bSVaishali Kulkarni ETH_VER_KEY=0, 1330*14b24e2bSVaishali Kulkarni ROCE_VER_KEY, 1331*14b24e2bSVaishali Kulkarni MAX_PROTOCOL_VERSION_ARRAY_KEY 1332*14b24e2bSVaishali Kulkarni }; 1333*14b24e2bSVaishali Kulkarni 1334*14b24e2bSVaishali Kulkarni 1335*14b24e2bSVaishali Kulkarni 1336*14b24e2bSVaishali Kulkarni /* 1337*14b24e2bSVaishali Kulkarni * RDMA TX Stats 1338*14b24e2bSVaishali Kulkarni */ 1339*14b24e2bSVaishali Kulkarni struct rdma_sent_stats 1340*14b24e2bSVaishali Kulkarni { 1341*14b24e2bSVaishali Kulkarni struct regpair sent_bytes /* number of total RDMA bytes sent */; 1342*14b24e2bSVaishali Kulkarni struct regpair sent_pkts /* number of total RDMA packets sent */; 1343*14b24e2bSVaishali Kulkarni }; 1344*14b24e2bSVaishali Kulkarni 1345*14b24e2bSVaishali Kulkarni /* 1346*14b24e2bSVaishali Kulkarni * Pstorm non-triggering VF zone 1347*14b24e2bSVaishali Kulkarni */ 1348*14b24e2bSVaishali Kulkarni struct pstorm_non_trigger_vf_zone 1349*14b24e2bSVaishali Kulkarni { 1350*14b24e2bSVaishali Kulkarni struct eth_pstorm_per_queue_stat eth_queue_stat /* VF statistic bucket */; 1351*14b24e2bSVaishali Kulkarni struct rdma_sent_stats rdma_stats /* RoCE sent statistics */; 1352*14b24e2bSVaishali Kulkarni }; 1353*14b24e2bSVaishali Kulkarni 1354*14b24e2bSVaishali Kulkarni 1355*14b24e2bSVaishali Kulkarni /* 1356*14b24e2bSVaishali Kulkarni * Pstorm VF zone 1357*14b24e2bSVaishali Kulkarni */ 1358*14b24e2bSVaishali Kulkarni struct pstorm_vf_zone 1359*14b24e2bSVaishali Kulkarni { 1360*14b24e2bSVaishali Kulkarni struct pstorm_non_trigger_vf_zone non_trigger /* non-interrupt-triggering zone */; 1361*14b24e2bSVaishali Kulkarni struct regpair reserved[7] /* vf_zone size mus be power of 2 */; 1362*14b24e2bSVaishali Kulkarni }; 1363*14b24e2bSVaishali Kulkarni 1364*14b24e2bSVaishali Kulkarni 1365*14b24e2bSVaishali Kulkarni /* 1366*14b24e2bSVaishali Kulkarni * Ramrod Header of SPQE 1367*14b24e2bSVaishali Kulkarni */ 1368*14b24e2bSVaishali Kulkarni struct ramrod_header 1369*14b24e2bSVaishali Kulkarni { 1370*14b24e2bSVaishali Kulkarni __le32 cid /* Slowpath Connection CID */; 1371*14b24e2bSVaishali Kulkarni u8 cmd_id /* Ramrod Cmd (Per Protocol Type) */; 1372*14b24e2bSVaishali Kulkarni u8 protocol_id /* Ramrod Protocol ID */; 1373*14b24e2bSVaishali Kulkarni __le16 echo /* Ramrod echo */; 1374*14b24e2bSVaishali Kulkarni }; 1375*14b24e2bSVaishali Kulkarni 1376*14b24e2bSVaishali Kulkarni 1377*14b24e2bSVaishali Kulkarni /* 1378*14b24e2bSVaishali Kulkarni * RDMA RX Stats 1379*14b24e2bSVaishali Kulkarni */ 1380*14b24e2bSVaishali Kulkarni struct rdma_rcv_stats 1381*14b24e2bSVaishali Kulkarni { 1382*14b24e2bSVaishali Kulkarni struct regpair rcv_bytes /* number of total RDMA bytes received */; 1383*14b24e2bSVaishali Kulkarni struct regpair rcv_pkts /* number of total RDMA packets received */; 1384*14b24e2bSVaishali Kulkarni }; 1385*14b24e2bSVaishali Kulkarni 1386*14b24e2bSVaishali Kulkarni 1387*14b24e2bSVaishali Kulkarni 1388*14b24e2bSVaishali Kulkarni /* 1389*14b24e2bSVaishali Kulkarni * Data for update QCN/DCQCN RL ramrod 1390*14b24e2bSVaishali Kulkarni */ 1391*14b24e2bSVaishali Kulkarni struct rl_update_ramrod_data 1392*14b24e2bSVaishali Kulkarni { 1393*14b24e2bSVaishali Kulkarni u8 qcn_update_param_flg /* Update QCN global params: timeout. */; 1394*14b24e2bSVaishali Kulkarni u8 dcqcn_update_param_flg /* Update DCQCN global params: timeout, g, k. */; 1395*14b24e2bSVaishali Kulkarni u8 rl_init_flg /* Init RL parameters, when RL disabled. */; 1396*14b24e2bSVaishali Kulkarni u8 rl_start_flg /* Start RL in IDLE state. Set rate to maximum. */; 1397*14b24e2bSVaishali Kulkarni u8 rl_stop_flg /* Stop RL. */; 1398*14b24e2bSVaishali Kulkarni u8 rl_id_first /* ID of first or single RL, that will be updated. */; 1399*14b24e2bSVaishali Kulkarni u8 rl_id_last /* ID of last RL, that will be updated. If clear, single RL will updated. */; 1400*14b24e2bSVaishali Kulkarni u8 rl_dc_qcn_flg /* If set, RL will used for DCQCN. */; 1401*14b24e2bSVaishali Kulkarni __le32 rl_bc_rate /* Byte Counter Limit. */; 1402*14b24e2bSVaishali Kulkarni __le16 rl_max_rate /* Maximum rate in 1.6 Mbps resolution. */; 1403*14b24e2bSVaishali Kulkarni __le16 rl_r_ai /* Active increase rate. */; 1404*14b24e2bSVaishali Kulkarni __le16 rl_r_hai /* Hyper active increase rate. */; 1405*14b24e2bSVaishali Kulkarni __le16 dcqcn_g /* DCQCN Alpha update gain in 1/64K resolution . */; 1406*14b24e2bSVaishali Kulkarni __le32 dcqcn_k_us /* DCQCN Alpha update interval. */; 1407*14b24e2bSVaishali Kulkarni __le32 dcqcn_timeuot_us /* DCQCN timeout. */; 1408*14b24e2bSVaishali Kulkarni __le32 qcn_timeuot_us /* QCN timeout. */; 1409*14b24e2bSVaishali Kulkarni __le32 reserved[2]; 1410*14b24e2bSVaishali Kulkarni }; 1411*14b24e2bSVaishali Kulkarni 1412*14b24e2bSVaishali Kulkarni 1413*14b24e2bSVaishali Kulkarni /* 1414*14b24e2bSVaishali Kulkarni * Slowpath Element (SPQE) 1415*14b24e2bSVaishali Kulkarni */ 1416*14b24e2bSVaishali Kulkarni struct slow_path_element 1417*14b24e2bSVaishali Kulkarni { 1418*14b24e2bSVaishali Kulkarni struct ramrod_header hdr /* Ramrod Header */; 1419*14b24e2bSVaishali Kulkarni struct regpair data_ptr /* Pointer to the Ramrod Data on the Host */; 1420*14b24e2bSVaishali Kulkarni }; 1421*14b24e2bSVaishali Kulkarni 1422*14b24e2bSVaishali Kulkarni 1423*14b24e2bSVaishali Kulkarni /* 1424*14b24e2bSVaishali Kulkarni * Tstorm non-triggering VF zone 1425*14b24e2bSVaishali Kulkarni */ 1426*14b24e2bSVaishali Kulkarni struct tstorm_non_trigger_vf_zone 1427*14b24e2bSVaishali Kulkarni { 1428*14b24e2bSVaishali Kulkarni struct rdma_rcv_stats rdma_stats /* RoCE received statistics */; 1429*14b24e2bSVaishali Kulkarni }; 1430*14b24e2bSVaishali Kulkarni 1431*14b24e2bSVaishali Kulkarni 1432*14b24e2bSVaishali Kulkarni struct tstorm_per_port_stat 1433*14b24e2bSVaishali Kulkarni { 1434*14b24e2bSVaishali Kulkarni struct regpair trunc_error_discard /* packet is dropped because it was truncated in NIG */; 1435*14b24e2bSVaishali Kulkarni struct regpair mac_error_discard /* packet is dropped because of Ethernet FCS error */; 1436*14b24e2bSVaishali Kulkarni struct regpair mftag_filter_discard /* packet is dropped because classification was unsuccessful */; 1437*14b24e2bSVaishali Kulkarni struct regpair eth_mac_filter_discard /* packet was passed to Ethernet and dropped because of no mac filter match */; 1438*14b24e2bSVaishali Kulkarni struct regpair ll2_mac_filter_discard /* packet passed to Light L2 and dropped because Light L2 is not configured for this PF */; 1439*14b24e2bSVaishali Kulkarni struct regpair ll2_conn_disabled_discard /* packet passed to Light L2 and dropped because Light L2 is not configured for this PF */; 1440*14b24e2bSVaishali Kulkarni struct regpair iscsi_irregular_pkt /* packet is an ISCSI irregular packet */; 1441*14b24e2bSVaishali Kulkarni struct regpair fcoe_irregular_pkt /* packet is an FCOE irregular packet */; 1442*14b24e2bSVaishali Kulkarni struct regpair roce_irregular_pkt /* packet is an ROCE irregular packet */; 1443*14b24e2bSVaishali Kulkarni struct regpair iwarp_irregular_pkt /* packet is an IWARP irregular packet */; 1444*14b24e2bSVaishali Kulkarni struct regpair eth_irregular_pkt /* packet is an ETH irregular packet */; 1445*14b24e2bSVaishali Kulkarni struct regpair toe_irregular_pkt /* packet is an TOE irregular packet */; 1446*14b24e2bSVaishali Kulkarni struct regpair preroce_irregular_pkt /* packet is an PREROCE irregular packet */; 1447*14b24e2bSVaishali Kulkarni struct regpair eth_gre_tunn_filter_discard /* GRE dropped packets */; 1448*14b24e2bSVaishali Kulkarni struct regpair eth_vxlan_tunn_filter_discard /* VXLAN dropped packets */; 1449*14b24e2bSVaishali Kulkarni struct regpair eth_geneve_tunn_filter_discard /* GENEVE dropped packets */; 1450*14b24e2bSVaishali Kulkarni }; 1451*14b24e2bSVaishali Kulkarni 1452*14b24e2bSVaishali Kulkarni 1453*14b24e2bSVaishali Kulkarni /* 1454*14b24e2bSVaishali Kulkarni * Tstorm VF zone 1455*14b24e2bSVaishali Kulkarni */ 1456*14b24e2bSVaishali Kulkarni struct tstorm_vf_zone 1457*14b24e2bSVaishali Kulkarni { 1458*14b24e2bSVaishali Kulkarni struct tstorm_non_trigger_vf_zone non_trigger /* non-interrupt-triggering zone */; 1459*14b24e2bSVaishali Kulkarni }; 1460*14b24e2bSVaishali Kulkarni 1461*14b24e2bSVaishali Kulkarni 1462*14b24e2bSVaishali Kulkarni /* 1463*14b24e2bSVaishali Kulkarni * Tunnel classification scheme 1464*14b24e2bSVaishali Kulkarni */ 1465*14b24e2bSVaishali Kulkarni enum tunnel_clss 1466*14b24e2bSVaishali Kulkarni { 1467*14b24e2bSVaishali Kulkarni TUNNEL_CLSS_MAC_VLAN=0 /* Use MAC and VLAN from first L2 header for vport classification. */, 1468*14b24e2bSVaishali Kulkarni TUNNEL_CLSS_MAC_VNI /* Use MAC from first L2 header and VNI from tunnel header for vport classification */, 1469*14b24e2bSVaishali Kulkarni TUNNEL_CLSS_INNER_MAC_VLAN /* Use MAC and VLAN from last L2 header for vport classification */, 1470*14b24e2bSVaishali Kulkarni TUNNEL_CLSS_INNER_MAC_VNI /* Use MAC from last L2 header and VNI from tunnel header for vport classification */, 1471*14b24e2bSVaishali Kulkarni TUNNEL_CLSS_MAC_VLAN_DUAL_STAGE /* Use MAC and VLAN from last L2 header for vport classification. If no exact match, use MAC and VLAN from first L2 header for classification. */, 1472*14b24e2bSVaishali Kulkarni MAX_TUNNEL_CLSS 1473*14b24e2bSVaishali Kulkarni }; 1474*14b24e2bSVaishali Kulkarni 1475*14b24e2bSVaishali Kulkarni 1476*14b24e2bSVaishali Kulkarni 1477*14b24e2bSVaishali Kulkarni /* 1478*14b24e2bSVaishali Kulkarni * Ustorm non-triggering VF zone 1479*14b24e2bSVaishali Kulkarni */ 1480*14b24e2bSVaishali Kulkarni struct ustorm_non_trigger_vf_zone 1481*14b24e2bSVaishali Kulkarni { 1482*14b24e2bSVaishali Kulkarni struct eth_ustorm_per_queue_stat eth_queue_stat /* VF statistic bucket */; 1483*14b24e2bSVaishali Kulkarni struct regpair vf_pf_msg_addr /* VF-PF message address */; 1484*14b24e2bSVaishali Kulkarni }; 1485*14b24e2bSVaishali Kulkarni 1486*14b24e2bSVaishali Kulkarni 1487*14b24e2bSVaishali Kulkarni /* 1488*14b24e2bSVaishali Kulkarni * Ustorm triggering VF zone 1489*14b24e2bSVaishali Kulkarni */ 1490*14b24e2bSVaishali Kulkarni struct ustorm_trigger_vf_zone 1491*14b24e2bSVaishali Kulkarni { 1492*14b24e2bSVaishali Kulkarni u8 vf_pf_msg_valid /* VF-PF message valid flag */; 1493*14b24e2bSVaishali Kulkarni u8 reserved[7]; 1494*14b24e2bSVaishali Kulkarni }; 1495*14b24e2bSVaishali Kulkarni 1496*14b24e2bSVaishali Kulkarni 1497*14b24e2bSVaishali Kulkarni /* 1498*14b24e2bSVaishali Kulkarni * Ustorm VF zone 1499*14b24e2bSVaishali Kulkarni */ 1500*14b24e2bSVaishali Kulkarni struct ustorm_vf_zone 1501*14b24e2bSVaishali Kulkarni { 1502*14b24e2bSVaishali Kulkarni struct ustorm_non_trigger_vf_zone non_trigger /* non-interrupt-triggering zone */; 1503*14b24e2bSVaishali Kulkarni struct ustorm_trigger_vf_zone trigger /* interrupt triggering zone */; 1504*14b24e2bSVaishali Kulkarni }; 1505*14b24e2bSVaishali Kulkarni 1506*14b24e2bSVaishali Kulkarni 1507*14b24e2bSVaishali Kulkarni /* 1508*14b24e2bSVaishali Kulkarni * VF-PF channel data 1509*14b24e2bSVaishali Kulkarni */ 1510*14b24e2bSVaishali Kulkarni struct vf_pf_channel_data 1511*14b24e2bSVaishali Kulkarni { 1512*14b24e2bSVaishali Kulkarni __le32 ready /* 0: VF-PF Channel NOT ready. Waiting for ack from PF driver. 1: VF-PF Channel is ready for a new transaction. */; 1513*14b24e2bSVaishali Kulkarni u8 valid /* 0: VF-PF Channel is invalid because of malicious VF. 1: VF-PF Channel is valid. */; 1514*14b24e2bSVaishali Kulkarni u8 reserved0; 1515*14b24e2bSVaishali Kulkarni __le16 reserved1; 1516*14b24e2bSVaishali Kulkarni }; 1517*14b24e2bSVaishali Kulkarni 1518*14b24e2bSVaishali Kulkarni 1519*14b24e2bSVaishali Kulkarni /* 1520*14b24e2bSVaishali Kulkarni * Ramrod data for VF start ramrod 1521*14b24e2bSVaishali Kulkarni */ 1522*14b24e2bSVaishali Kulkarni struct vf_start_ramrod_data 1523*14b24e2bSVaishali Kulkarni { 1524*14b24e2bSVaishali Kulkarni u8 vf_id /* VF ID */; 1525*14b24e2bSVaishali Kulkarni u8 enable_flr_ack /* If set, initial cleanup ack will be sent to parent PF SP event queue */; 1526*14b24e2bSVaishali Kulkarni __le16 opaque_fid /* VF opaque FID */; 1527*14b24e2bSVaishali Kulkarni u8 personality /* define what type of personality is new VF */; 1528*14b24e2bSVaishali Kulkarni u8 reserved[7]; 1529*14b24e2bSVaishali Kulkarni struct hsi_fp_ver_struct hsi_fp_ver /* FP HSI version to be used by FW */; 1530*14b24e2bSVaishali Kulkarni }; 1531*14b24e2bSVaishali Kulkarni 1532*14b24e2bSVaishali Kulkarni 1533*14b24e2bSVaishali Kulkarni /* 1534*14b24e2bSVaishali Kulkarni * Ramrod data for VF start ramrod 1535*14b24e2bSVaishali Kulkarni */ 1536*14b24e2bSVaishali Kulkarni struct vf_stop_ramrod_data 1537*14b24e2bSVaishali Kulkarni { 1538*14b24e2bSVaishali Kulkarni u8 vf_id /* VF ID */; 1539*14b24e2bSVaishali Kulkarni u8 reserved0; 1540*14b24e2bSVaishali Kulkarni __le16 reserved1; 1541*14b24e2bSVaishali Kulkarni __le32 reserved2; 1542*14b24e2bSVaishali Kulkarni }; 1543*14b24e2bSVaishali Kulkarni 1544*14b24e2bSVaishali Kulkarni 1545*14b24e2bSVaishali Kulkarni /* 1546*14b24e2bSVaishali Kulkarni * VF zone size mode. 1547*14b24e2bSVaishali Kulkarni */ 1548*14b24e2bSVaishali Kulkarni enum vf_zone_size_mode 1549*14b24e2bSVaishali Kulkarni { 1550*14b24e2bSVaishali Kulkarni VF_ZONE_SIZE_MODE_DEFAULT /* Default VF zone size. Up to 192 VF supported. */, 1551*14b24e2bSVaishali Kulkarni VF_ZONE_SIZE_MODE_DOUBLE /* Doubled VF zone size. Up to 96 VF supported. */, 1552*14b24e2bSVaishali Kulkarni VF_ZONE_SIZE_MODE_QUAD /* Quad VF zone size. Up to 48 VF supported. */, 1553*14b24e2bSVaishali Kulkarni MAX_VF_ZONE_SIZE_MODE 1554*14b24e2bSVaishali Kulkarni }; 1555*14b24e2bSVaishali Kulkarni 1556*14b24e2bSVaishali Kulkarni 1557*14b24e2bSVaishali Kulkarni 1558*14b24e2bSVaishali Kulkarni 1559*14b24e2bSVaishali Kulkarni /* 1560*14b24e2bSVaishali Kulkarni * Attentions status block 1561*14b24e2bSVaishali Kulkarni */ 1562*14b24e2bSVaishali Kulkarni struct atten_status_block 1563*14b24e2bSVaishali Kulkarni { 1564*14b24e2bSVaishali Kulkarni __le32 atten_bits; 1565*14b24e2bSVaishali Kulkarni __le32 atten_ack; 1566*14b24e2bSVaishali Kulkarni __le16 reserved0; 1567*14b24e2bSVaishali Kulkarni __le16 sb_index /* status block running index */; 1568*14b24e2bSVaishali Kulkarni __le32 reserved1; 1569*14b24e2bSVaishali Kulkarni }; 1570*14b24e2bSVaishali Kulkarni 1571*14b24e2bSVaishali Kulkarni 1572*14b24e2bSVaishali Kulkarni /* 1573*14b24e2bSVaishali Kulkarni * Igu cleanup bit values to distinguish between clean or producer consumer update. 1574*14b24e2bSVaishali Kulkarni */ 1575*14b24e2bSVaishali Kulkarni enum command_type_bit 1576*14b24e2bSVaishali Kulkarni { 1577*14b24e2bSVaishali Kulkarni IGU_COMMAND_TYPE_NOP=0, 1578*14b24e2bSVaishali Kulkarni IGU_COMMAND_TYPE_SET=1, 1579*14b24e2bSVaishali Kulkarni MAX_COMMAND_TYPE_BIT 1580*14b24e2bSVaishali Kulkarni }; 1581*14b24e2bSVaishali Kulkarni 1582*14b24e2bSVaishali Kulkarni 1583*14b24e2bSVaishali Kulkarni /* 1584*14b24e2bSVaishali Kulkarni * DMAE command 1585*14b24e2bSVaishali Kulkarni */ 1586*14b24e2bSVaishali Kulkarni struct dmae_cmd 1587*14b24e2bSVaishali Kulkarni { 1588*14b24e2bSVaishali Kulkarni __le32 opcode; 1589*14b24e2bSVaishali Kulkarni #define DMAE_CMD_SRC_MASK 0x1 /* DMA Source. 0 - PCIe, 1 - GRC (use enum dmae_cmd_src_enum) */ 1590*14b24e2bSVaishali Kulkarni #define DMAE_CMD_SRC_SHIFT 0 1591*14b24e2bSVaishali Kulkarni #define DMAE_CMD_DST_MASK 0x3 /* DMA destination. 0 - None, 1 - PCIe, 2 - GRC, 3 - None (use enum dmae_cmd_dst_enum) */ 1592*14b24e2bSVaishali Kulkarni #define DMAE_CMD_DST_SHIFT 1 1593*14b24e2bSVaishali Kulkarni #define DMAE_CMD_C_DST_MASK 0x1 /* Completion destination. 0 - PCie, 1 - GRC (use enum dmae_cmd_c_dst_enum) */ 1594*14b24e2bSVaishali Kulkarni #define DMAE_CMD_C_DST_SHIFT 3 1595*14b24e2bSVaishali Kulkarni #define DMAE_CMD_CRC_RESET_MASK 0x1 /* Reset the CRC result (do not use the previous result as the seed) */ 1596*14b24e2bSVaishali Kulkarni #define DMAE_CMD_CRC_RESET_SHIFT 4 1597*14b24e2bSVaishali Kulkarni #define DMAE_CMD_SRC_ADDR_RESET_MASK 0x1 /* Reset the source address in the next go to the same source address of the previous go */ 1598*14b24e2bSVaishali Kulkarni #define DMAE_CMD_SRC_ADDR_RESET_SHIFT 5 1599*14b24e2bSVaishali Kulkarni #define DMAE_CMD_DST_ADDR_RESET_MASK 0x1 /* Reset the destination address in the next go to the same destination address of the previous go */ 1600*14b24e2bSVaishali Kulkarni #define DMAE_CMD_DST_ADDR_RESET_SHIFT 6 1601*14b24e2bSVaishali Kulkarni #define DMAE_CMD_COMP_FUNC_MASK 0x1 /* 0 completion function is the same as src function, 1 - 0 completion function is the same as dst function (use enum dmae_cmd_comp_func_enum) */ 1602*14b24e2bSVaishali Kulkarni #define DMAE_CMD_COMP_FUNC_SHIFT 7 1603*14b24e2bSVaishali Kulkarni #define DMAE_CMD_COMP_WORD_EN_MASK 0x1 /* 0 - Do not write a completion word, 1 - Write a completion word (use enum dmae_cmd_comp_word_en_enum) */ 1604*14b24e2bSVaishali Kulkarni #define DMAE_CMD_COMP_WORD_EN_SHIFT 8 1605*14b24e2bSVaishali Kulkarni #define DMAE_CMD_COMP_CRC_EN_MASK 0x1 /* 0 - Do not write a CRC word, 1 - Write a CRC word (use enum dmae_cmd_comp_crc_en_enum) */ 1606*14b24e2bSVaishali Kulkarni #define DMAE_CMD_COMP_CRC_EN_SHIFT 9 1607*14b24e2bSVaishali Kulkarni #define DMAE_CMD_COMP_CRC_OFFSET_MASK 0x7 /* The CRC word should be taken from the DMAE address space from address 9+X, where X is the value in these bits. */ 1608*14b24e2bSVaishali Kulkarni #define DMAE_CMD_COMP_CRC_OFFSET_SHIFT 10 1609*14b24e2bSVaishali Kulkarni #define DMAE_CMD_RESERVED1_MASK 0x1 1610*14b24e2bSVaishali Kulkarni #define DMAE_CMD_RESERVED1_SHIFT 13 1611*14b24e2bSVaishali Kulkarni #define DMAE_CMD_ENDIANITY_MODE_MASK 0x3 1612*14b24e2bSVaishali Kulkarni #define DMAE_CMD_ENDIANITY_MODE_SHIFT 14 1613*14b24e2bSVaishali Kulkarni #define DMAE_CMD_ERR_HANDLING_MASK 0x3 /* The field specifies how the completion word is affected by PCIe read error. 0 Send a regular completion, 1 - Send a completion with an error indication, 2 do not send a completion (use enum dmae_cmd_error_handling_enum) */ 1614*14b24e2bSVaishali Kulkarni #define DMAE_CMD_ERR_HANDLING_SHIFT 16 1615*14b24e2bSVaishali Kulkarni #define DMAE_CMD_PORT_ID_MASK 0x3 /* The port ID to be placed on the RF FID field of the GRC bus. this field is used both when GRC is the destination and when it is the source of the DMAE transaction. */ 1616*14b24e2bSVaishali Kulkarni #define DMAE_CMD_PORT_ID_SHIFT 18 1617*14b24e2bSVaishali Kulkarni #define DMAE_CMD_SRC_PF_ID_MASK 0xF /* Source PCI function number [3:0] */ 1618*14b24e2bSVaishali Kulkarni #define DMAE_CMD_SRC_PF_ID_SHIFT 20 1619*14b24e2bSVaishali Kulkarni #define DMAE_CMD_DST_PF_ID_MASK 0xF /* Destination PCI function number [3:0] */ 1620*14b24e2bSVaishali Kulkarni #define DMAE_CMD_DST_PF_ID_SHIFT 24 1621*14b24e2bSVaishali Kulkarni #define DMAE_CMD_SRC_VF_ID_VALID_MASK 0x1 /* Source VFID valid */ 1622*14b24e2bSVaishali Kulkarni #define DMAE_CMD_SRC_VF_ID_VALID_SHIFT 28 1623*14b24e2bSVaishali Kulkarni #define DMAE_CMD_DST_VF_ID_VALID_MASK 0x1 /* Destination VFID valid */ 1624*14b24e2bSVaishali Kulkarni #define DMAE_CMD_DST_VF_ID_VALID_SHIFT 29 1625*14b24e2bSVaishali Kulkarni #define DMAE_CMD_RESERVED2_MASK 0x3 1626*14b24e2bSVaishali Kulkarni #define DMAE_CMD_RESERVED2_SHIFT 30 1627*14b24e2bSVaishali Kulkarni __le32 src_addr_lo /* PCIe source address low in bytes or GRC source address in DW */; 1628*14b24e2bSVaishali Kulkarni __le32 src_addr_hi /* PCIe source address high in bytes or reserved (if source is GRC) */; 1629*14b24e2bSVaishali Kulkarni __le32 dst_addr_lo /* PCIe destination address low in bytes or GRC destination address in DW */; 1630*14b24e2bSVaishali Kulkarni __le32 dst_addr_hi /* PCIe destination address high in bytes or reserved (if destination is GRC) */; 1631*14b24e2bSVaishali Kulkarni __le16 length_dw /* Length in DW */; 1632*14b24e2bSVaishali Kulkarni __le16 opcode_b; 1633*14b24e2bSVaishali Kulkarni #define DMAE_CMD_SRC_VF_ID_MASK 0xFF /* Source VF id */ 1634*14b24e2bSVaishali Kulkarni #define DMAE_CMD_SRC_VF_ID_SHIFT 0 1635*14b24e2bSVaishali Kulkarni #define DMAE_CMD_DST_VF_ID_MASK 0xFF /* Destination VF id */ 1636*14b24e2bSVaishali Kulkarni #define DMAE_CMD_DST_VF_ID_SHIFT 8 1637*14b24e2bSVaishali Kulkarni __le32 comp_addr_lo /* PCIe completion address low in bytes or GRC completion address in DW */; 1638*14b24e2bSVaishali Kulkarni __le32 comp_addr_hi /* PCIe completion address high in bytes or reserved (if completion address is GRC) */; 1639*14b24e2bSVaishali Kulkarni __le32 comp_val /* Value to write to completion address */; 1640*14b24e2bSVaishali Kulkarni __le32 crc32 /* crc16 result */; 1641*14b24e2bSVaishali Kulkarni __le32 crc_32_c /* crc32_c result */; 1642*14b24e2bSVaishali Kulkarni __le16 crc16 /* crc16 result */; 1643*14b24e2bSVaishali Kulkarni __le16 crc16_c /* crc16_c result */; 1644*14b24e2bSVaishali Kulkarni __le16 crc10 /* crc_t10 result */; 1645*14b24e2bSVaishali Kulkarni __le16 reserved; 1646*14b24e2bSVaishali Kulkarni __le16 xsum16 /* checksum16 result */; 1647*14b24e2bSVaishali Kulkarni __le16 xsum8 /* checksum8 result */; 1648*14b24e2bSVaishali Kulkarni }; 1649*14b24e2bSVaishali Kulkarni 1650*14b24e2bSVaishali Kulkarni 1651*14b24e2bSVaishali Kulkarni enum dmae_cmd_comp_crc_en_enum 1652*14b24e2bSVaishali Kulkarni { 1653*14b24e2bSVaishali Kulkarni dmae_cmd_comp_crc_disabled /* Do not write a CRC word */, 1654*14b24e2bSVaishali Kulkarni dmae_cmd_comp_crc_enabled /* Write a CRC word */, 1655*14b24e2bSVaishali Kulkarni MAX_DMAE_CMD_COMP_CRC_EN_ENUM 1656*14b24e2bSVaishali Kulkarni }; 1657*14b24e2bSVaishali Kulkarni 1658*14b24e2bSVaishali Kulkarni 1659*14b24e2bSVaishali Kulkarni enum dmae_cmd_comp_func_enum 1660*14b24e2bSVaishali Kulkarni { 1661*14b24e2bSVaishali Kulkarni dmae_cmd_comp_func_to_src /* completion word and/or CRC will be sent to SRC-PCI function/SRC VFID */, 1662*14b24e2bSVaishali Kulkarni dmae_cmd_comp_func_to_dst /* completion word and/or CRC will be sent to DST-PCI function/DST VFID */, 1663*14b24e2bSVaishali Kulkarni MAX_DMAE_CMD_COMP_FUNC_ENUM 1664*14b24e2bSVaishali Kulkarni }; 1665*14b24e2bSVaishali Kulkarni 1666*14b24e2bSVaishali Kulkarni 1667*14b24e2bSVaishali Kulkarni enum dmae_cmd_comp_word_en_enum 1668*14b24e2bSVaishali Kulkarni { 1669*14b24e2bSVaishali Kulkarni dmae_cmd_comp_word_disabled /* Do not write a completion word */, 1670*14b24e2bSVaishali Kulkarni dmae_cmd_comp_word_enabled /* Write the completion word */, 1671*14b24e2bSVaishali Kulkarni MAX_DMAE_CMD_COMP_WORD_EN_ENUM 1672*14b24e2bSVaishali Kulkarni }; 1673*14b24e2bSVaishali Kulkarni 1674*14b24e2bSVaishali Kulkarni 1675*14b24e2bSVaishali Kulkarni enum dmae_cmd_c_dst_enum 1676*14b24e2bSVaishali Kulkarni { 1677*14b24e2bSVaishali Kulkarni dmae_cmd_c_dst_pcie, 1678*14b24e2bSVaishali Kulkarni dmae_cmd_c_dst_grc, 1679*14b24e2bSVaishali Kulkarni MAX_DMAE_CMD_C_DST_ENUM 1680*14b24e2bSVaishali Kulkarni }; 1681*14b24e2bSVaishali Kulkarni 1682*14b24e2bSVaishali Kulkarni 1683*14b24e2bSVaishali Kulkarni enum dmae_cmd_dst_enum 1684*14b24e2bSVaishali Kulkarni { 1685*14b24e2bSVaishali Kulkarni dmae_cmd_dst_none_0, 1686*14b24e2bSVaishali Kulkarni dmae_cmd_dst_pcie, 1687*14b24e2bSVaishali Kulkarni dmae_cmd_dst_grc, 1688*14b24e2bSVaishali Kulkarni dmae_cmd_dst_none_3, 1689*14b24e2bSVaishali Kulkarni MAX_DMAE_CMD_DST_ENUM 1690*14b24e2bSVaishali Kulkarni }; 1691*14b24e2bSVaishali Kulkarni 1692*14b24e2bSVaishali Kulkarni 1693*14b24e2bSVaishali Kulkarni enum dmae_cmd_error_handling_enum 1694*14b24e2bSVaishali Kulkarni { 1695*14b24e2bSVaishali Kulkarni dmae_cmd_error_handling_send_regular_comp /* Send a regular completion (with no error indication) */, 1696*14b24e2bSVaishali Kulkarni dmae_cmd_error_handling_send_comp_with_err /* Send a completion with an error indication (i.e. set bit 31 of the completion word) */, 1697*14b24e2bSVaishali Kulkarni dmae_cmd_error_handling_dont_send_comp /* Do not send a completion */, 1698*14b24e2bSVaishali Kulkarni MAX_DMAE_CMD_ERROR_HANDLING_ENUM 1699*14b24e2bSVaishali Kulkarni }; 1700*14b24e2bSVaishali Kulkarni 1701*14b24e2bSVaishali Kulkarni 1702*14b24e2bSVaishali Kulkarni enum dmae_cmd_src_enum 1703*14b24e2bSVaishali Kulkarni { 1704*14b24e2bSVaishali Kulkarni dmae_cmd_src_pcie /* The source is the PCIe */, 1705*14b24e2bSVaishali Kulkarni dmae_cmd_src_grc /* The source is the GRC */, 1706*14b24e2bSVaishali Kulkarni MAX_DMAE_CMD_SRC_ENUM 1707*14b24e2bSVaishali Kulkarni }; 1708*14b24e2bSVaishali Kulkarni 1709*14b24e2bSVaishali Kulkarni 1710*14b24e2bSVaishali Kulkarni struct e4_mstorm_core_conn_ag_ctx 1711*14b24e2bSVaishali Kulkarni { 1712*14b24e2bSVaishali Kulkarni u8 byte0 /* cdu_validation */; 1713*14b24e2bSVaishali Kulkarni u8 byte1 /* state */; 1714*14b24e2bSVaishali Kulkarni u8 flags0; 1715*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1 /* exist_in_qm0 */ 1716*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0 1717*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 1718*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1 1719*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3 /* cf0 */ 1720*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2 1721*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3 /* cf1 */ 1722*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4 1723*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3 /* cf2 */ 1724*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6 1725*14b24e2bSVaishali Kulkarni u8 flags1; 1726*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 1727*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0 1728*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 1729*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1 1730*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 1731*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2 1732*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 1733*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 3 1734*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */ 1735*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 4 1736*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 1737*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 5 1738*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 1739*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 6 1740*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 1741*14b24e2bSVaishali Kulkarni #define E4_MSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 7 1742*14b24e2bSVaishali Kulkarni __le16 word0 /* word0 */; 1743*14b24e2bSVaishali Kulkarni __le16 word1 /* word1 */; 1744*14b24e2bSVaishali Kulkarni __le32 reg0 /* reg0 */; 1745*14b24e2bSVaishali Kulkarni __le32 reg1 /* reg1 */; 1746*14b24e2bSVaishali Kulkarni }; 1747*14b24e2bSVaishali Kulkarni 1748*14b24e2bSVaishali Kulkarni 1749*14b24e2bSVaishali Kulkarni 1750*14b24e2bSVaishali Kulkarni 1751*14b24e2bSVaishali Kulkarni 1752*14b24e2bSVaishali Kulkarni struct e4_ystorm_core_conn_ag_ctx 1753*14b24e2bSVaishali Kulkarni { 1754*14b24e2bSVaishali Kulkarni u8 byte0 /* cdu_validation */; 1755*14b24e2bSVaishali Kulkarni u8 byte1 /* state */; 1756*14b24e2bSVaishali Kulkarni u8 flags0; 1757*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1 /* exist_in_qm0 */ 1758*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0 1759*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 1760*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1 1761*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3 /* cf0 */ 1762*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2 1763*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3 /* cf1 */ 1764*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4 1765*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3 /* cf2 */ 1766*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6 1767*14b24e2bSVaishali Kulkarni u8 flags1; 1768*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 1769*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0 1770*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 1771*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1 1772*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 1773*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2 1774*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 1775*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 3 1776*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */ 1777*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 4 1778*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 1779*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 5 1780*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 1781*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 6 1782*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 1783*14b24e2bSVaishali Kulkarni #define E4_YSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 7 1784*14b24e2bSVaishali Kulkarni u8 byte2 /* byte2 */; 1785*14b24e2bSVaishali Kulkarni u8 byte3 /* byte3 */; 1786*14b24e2bSVaishali Kulkarni __le16 word0 /* word0 */; 1787*14b24e2bSVaishali Kulkarni __le32 reg0 /* reg0 */; 1788*14b24e2bSVaishali Kulkarni __le32 reg1 /* reg1 */; 1789*14b24e2bSVaishali Kulkarni __le16 word1 /* word1 */; 1790*14b24e2bSVaishali Kulkarni __le16 word2 /* word2 */; 1791*14b24e2bSVaishali Kulkarni __le16 word3 /* word3 */; 1792*14b24e2bSVaishali Kulkarni __le16 word4 /* word4 */; 1793*14b24e2bSVaishali Kulkarni __le32 reg2 /* reg2 */; 1794*14b24e2bSVaishali Kulkarni __le32 reg3 /* reg3 */; 1795*14b24e2bSVaishali Kulkarni }; 1796*14b24e2bSVaishali Kulkarni 1797*14b24e2bSVaishali Kulkarni 1798*14b24e2bSVaishali Kulkarni struct e5_mstorm_core_conn_ag_ctx 1799*14b24e2bSVaishali Kulkarni { 1800*14b24e2bSVaishali Kulkarni u8 byte0 /* cdu_validation */; 1801*14b24e2bSVaishali Kulkarni u8 byte1 /* state_and_core_id */; 1802*14b24e2bSVaishali Kulkarni u8 flags0; 1803*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1 /* exist_in_qm0 */ 1804*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0 1805*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 1806*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1 1807*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3 /* cf0 */ 1808*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2 1809*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3 /* cf1 */ 1810*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4 1811*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3 /* cf2 */ 1812*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6 1813*14b24e2bSVaishali Kulkarni u8 flags1; 1814*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 1815*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0 1816*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 1817*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1 1818*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 1819*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2 1820*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 1821*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 3 1822*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */ 1823*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 4 1824*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 1825*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 5 1826*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 1827*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 6 1828*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 1829*14b24e2bSVaishali Kulkarni #define E5_MSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 7 1830*14b24e2bSVaishali Kulkarni __le16 word0 /* word0 */; 1831*14b24e2bSVaishali Kulkarni __le16 word1 /* word1 */; 1832*14b24e2bSVaishali Kulkarni __le32 reg0 /* reg0 */; 1833*14b24e2bSVaishali Kulkarni __le32 reg1 /* reg1 */; 1834*14b24e2bSVaishali Kulkarni }; 1835*14b24e2bSVaishali Kulkarni 1836*14b24e2bSVaishali Kulkarni 1837*14b24e2bSVaishali Kulkarni struct e5_tstorm_core_conn_ag_ctx 1838*14b24e2bSVaishali Kulkarni { 1839*14b24e2bSVaishali Kulkarni u8 byte0 /* cdu_validation */; 1840*14b24e2bSVaishali Kulkarni u8 byte1 /* state_and_core_id */; 1841*14b24e2bSVaishali Kulkarni u8 flags0; 1842*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1 /* exist_in_qm0 */ 1843*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0 1844*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 1845*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1 1846*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_BIT2_MASK 0x1 /* bit2 */ 1847*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_BIT2_SHIFT 2 1848*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_BIT3_MASK 0x1 /* bit3 */ 1849*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_BIT3_SHIFT 3 1850*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_BIT4_MASK 0x1 /* bit4 */ 1851*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_BIT4_SHIFT 4 1852*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_BIT5_MASK 0x1 /* bit5 */ 1853*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_BIT5_SHIFT 5 1854*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */ 1855*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 6 1856*14b24e2bSVaishali Kulkarni u8 flags1; 1857*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3 /* timer1cf */ 1858*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 0 1859*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */ 1860*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 2 1861*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3 /* timer_stop_all */ 1862*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF3_SHIFT 4 1863*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */ 1864*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF4_SHIFT 6 1865*14b24e2bSVaishali Kulkarni u8 flags2; 1866*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */ 1867*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF5_SHIFT 0 1868*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */ 1869*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF6_SHIFT 2 1870*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF7_MASK 0x3 /* cf7 */ 1871*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF7_SHIFT 4 1872*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF8_MASK 0x3 /* cf8 */ 1873*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF8_SHIFT 6 1874*14b24e2bSVaishali Kulkarni u8 flags3; 1875*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF9_MASK 0x3 /* cf9 */ 1876*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF9_SHIFT 0 1877*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF10_MASK 0x3 /* cf10 */ 1878*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF10_SHIFT 2 1879*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 1880*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 4 1881*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 1882*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 5 1883*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 1884*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 6 1885*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */ 1886*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 7 1887*14b24e2bSVaishali Kulkarni u8 flags4; 1888*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */ 1889*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 0 1890*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */ 1891*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 1 1892*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */ 1893*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 2 1894*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF7EN_MASK 0x1 /* cf7en */ 1895*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF7EN_SHIFT 3 1896*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF8EN_MASK 0x1 /* cf8en */ 1897*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF8EN_SHIFT 4 1898*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF9EN_MASK 0x1 /* cf9en */ 1899*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF9EN_SHIFT 5 1900*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF10EN_MASK 0x1 /* cf10en */ 1901*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_CF10EN_SHIFT 6 1902*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 1903*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 7 1904*14b24e2bSVaishali Kulkarni u8 flags5; 1905*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */ 1906*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 0 1907*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 1908*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 1 1909*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 1910*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 2 1911*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 1912*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 3 1913*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */ 1914*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 4 1915*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */ 1916*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 5 1917*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */ 1918*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 6 1919*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_RULE8EN_MASK 0x1 /* rule8en */ 1920*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_RULE8EN_SHIFT 7 1921*14b24e2bSVaishali Kulkarni u8 flags6; 1922*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_E4_RESERVED1_MASK 0x1 /* bit6 */ 1923*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_E4_RESERVED1_SHIFT 0 1924*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_E4_RESERVED2_MASK 0x1 /* bit7 */ 1925*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_E4_RESERVED2_SHIFT 1 1926*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_E4_RESERVED3_MASK 0x1 /* bit8 */ 1927*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_E4_RESERVED3_SHIFT 2 1928*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_E4_RESERVED4_MASK 0x3 /* cf11 */ 1929*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_E4_RESERVED4_SHIFT 3 1930*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_E4_RESERVED5_MASK 0x1 /* cf11en */ 1931*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_E4_RESERVED5_SHIFT 5 1932*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_E4_RESERVED6_MASK 0x1 /* rule9en */ 1933*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_E4_RESERVED6_SHIFT 6 1934*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_E4_RESERVED7_MASK 0x1 /* rule10en */ 1935*14b24e2bSVaishali Kulkarni #define E5_TSTORM_CORE_CONN_AG_CTX_E4_RESERVED7_SHIFT 7 1936*14b24e2bSVaishali Kulkarni u8 byte2 /* byte2 */; 1937*14b24e2bSVaishali Kulkarni __le16 word0 /* word0 */; 1938*14b24e2bSVaishali Kulkarni __le32 reg0 /* reg0 */; 1939*14b24e2bSVaishali Kulkarni __le32 reg1 /* reg1 */; 1940*14b24e2bSVaishali Kulkarni __le32 reg2 /* reg2 */; 1941*14b24e2bSVaishali Kulkarni __le32 reg3 /* reg3 */; 1942*14b24e2bSVaishali Kulkarni __le32 reg4 /* reg4 */; 1943*14b24e2bSVaishali Kulkarni __le32 reg5 /* reg5 */; 1944*14b24e2bSVaishali Kulkarni __le32 reg6 /* reg6 */; 1945*14b24e2bSVaishali Kulkarni __le32 reg7 /* reg7 */; 1946*14b24e2bSVaishali Kulkarni __le32 reg8 /* reg8 */; 1947*14b24e2bSVaishali Kulkarni u8 byte3 /* byte3 */; 1948*14b24e2bSVaishali Kulkarni u8 byte4 /* byte4 */; 1949*14b24e2bSVaishali Kulkarni u8 byte5 /* byte5 */; 1950*14b24e2bSVaishali Kulkarni u8 e4_reserved8 /* byte6 */; 1951*14b24e2bSVaishali Kulkarni __le16 word1 /* word1 */; 1952*14b24e2bSVaishali Kulkarni __le16 word2 /* conn_dpi */; 1953*14b24e2bSVaishali Kulkarni __le32 reg9 /* reg9 */; 1954*14b24e2bSVaishali Kulkarni __le16 word3 /* word3 */; 1955*14b24e2bSVaishali Kulkarni __le16 e4_reserved9 /* word4 */; 1956*14b24e2bSVaishali Kulkarni }; 1957*14b24e2bSVaishali Kulkarni 1958*14b24e2bSVaishali Kulkarni 1959*14b24e2bSVaishali Kulkarni struct e5_ustorm_core_conn_ag_ctx 1960*14b24e2bSVaishali Kulkarni { 1961*14b24e2bSVaishali Kulkarni u8 reserved /* cdu_validation */; 1962*14b24e2bSVaishali Kulkarni u8 byte1 /* state_and_core_id */; 1963*14b24e2bSVaishali Kulkarni u8 flags0; 1964*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1 /* exist_in_qm0 */ 1965*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0 1966*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 1967*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1 1968*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */ 1969*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2 1970*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3 /* timer1cf */ 1971*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4 1972*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */ 1973*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6 1974*14b24e2bSVaishali Kulkarni u8 flags1; 1975*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3 /* timer_stop_all */ 1976*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF3_SHIFT 0 1977*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */ 1978*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF4_SHIFT 2 1979*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */ 1980*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF5_SHIFT 4 1981*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */ 1982*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF6_SHIFT 6 1983*14b24e2bSVaishali Kulkarni u8 flags2; 1984*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 1985*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0 1986*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 1987*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1 1988*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 1989*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2 1990*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */ 1991*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 3 1992*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */ 1993*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 4 1994*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */ 1995*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 5 1996*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */ 1997*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 6 1998*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 1999*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 7 2000*14b24e2bSVaishali Kulkarni u8 flags3; 2001*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */ 2002*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 0 2003*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 2004*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 1 2005*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 2006*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 2 2007*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 2008*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 3 2009*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */ 2010*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 4 2011*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */ 2012*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 5 2013*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */ 2014*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 6 2015*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_RULE8EN_MASK 0x1 /* rule8en */ 2016*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_RULE8EN_SHIFT 7 2017*14b24e2bSVaishali Kulkarni u8 flags4; 2018*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_E4_RESERVED1_MASK 0x1 /* bit2 */ 2019*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_E4_RESERVED1_SHIFT 0 2020*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_E4_RESERVED2_MASK 0x1 /* bit3 */ 2021*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_E4_RESERVED2_SHIFT 1 2022*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_E4_RESERVED3_MASK 0x3 /* cf7 */ 2023*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_E4_RESERVED3_SHIFT 2 2024*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_E4_RESERVED4_MASK 0x3 /* cf8 */ 2025*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_E4_RESERVED4_SHIFT 4 2026*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_E4_RESERVED5_MASK 0x1 /* cf7en */ 2027*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_E4_RESERVED5_SHIFT 6 2028*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_E4_RESERVED6_MASK 0x1 /* cf8en */ 2029*14b24e2bSVaishali Kulkarni #define E5_USTORM_CORE_CONN_AG_CTX_E4_RESERVED6_SHIFT 7 2030*14b24e2bSVaishali Kulkarni u8 byte2 /* byte2 */; 2031*14b24e2bSVaishali Kulkarni __le16 word0 /* conn_dpi */; 2032*14b24e2bSVaishali Kulkarni __le16 word1 /* word1 */; 2033*14b24e2bSVaishali Kulkarni __le32 rx_producers /* reg0 */; 2034*14b24e2bSVaishali Kulkarni __le32 reg1 /* reg1 */; 2035*14b24e2bSVaishali Kulkarni __le32 reg2 /* reg2 */; 2036*14b24e2bSVaishali Kulkarni __le32 reg3 /* reg3 */; 2037*14b24e2bSVaishali Kulkarni __le16 word2 /* word2 */; 2038*14b24e2bSVaishali Kulkarni __le16 word3 /* word3 */; 2039*14b24e2bSVaishali Kulkarni }; 2040*14b24e2bSVaishali Kulkarni 2041*14b24e2bSVaishali Kulkarni 2042*14b24e2bSVaishali Kulkarni struct e5_xstorm_core_conn_ag_ctx 2043*14b24e2bSVaishali Kulkarni { 2044*14b24e2bSVaishali Kulkarni u8 reserved0 /* cdu_validation */; 2045*14b24e2bSVaishali Kulkarni u8 state_and_core_id /* state_and_core_id */; 2046*14b24e2bSVaishali Kulkarni u8 flags0; 2047*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */ 2048*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 2049*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED1_MASK 0x1 /* exist_in_qm1 */ 2050*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED1_SHIFT 1 2051*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED2_MASK 0x1 /* exist_in_qm2 */ 2052*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED2_SHIFT 2 2053*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1 /* exist_in_qm3 */ 2054*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3 2055*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED3_MASK 0x1 /* bit4 */ 2056*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED3_SHIFT 4 2057*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED4_MASK 0x1 /* cf_array_active */ 2058*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED4_SHIFT 5 2059*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED5_MASK 0x1 /* bit6 */ 2060*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED5_SHIFT 6 2061*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED6_MASK 0x1 /* bit7 */ 2062*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED6_SHIFT 7 2063*14b24e2bSVaishali Kulkarni u8 flags1; 2064*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED7_MASK 0x1 /* bit8 */ 2065*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED7_SHIFT 0 2066*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED8_MASK 0x1 /* bit9 */ 2067*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED8_SHIFT 1 2068*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED9_MASK 0x1 /* bit10 */ 2069*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED9_SHIFT 2 2070*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_BIT11_MASK 0x1 /* bit11 */ 2071*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_BIT11_SHIFT 3 2072*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_BIT12_MASK 0x1 /* bit12 */ 2073*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_BIT12_SHIFT 4 2074*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_BIT13_MASK 0x1 /* bit13 */ 2075*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_BIT13_SHIFT 5 2076*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_TX_RULE_ACTIVE_MASK 0x1 /* bit14 */ 2077*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_TX_RULE_ACTIVE_SHIFT 6 2078*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_DQ_CF_ACTIVE_MASK 0x1 /* bit15 */ 2079*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_DQ_CF_ACTIVE_SHIFT 7 2080*14b24e2bSVaishali Kulkarni u8 flags2; 2081*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */ 2082*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 0 2083*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3 /* timer1cf */ 2084*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 2 2085*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */ 2086*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 4 2087*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3 /* timer_stop_all */ 2088*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF3_SHIFT 6 2089*14b24e2bSVaishali Kulkarni u8 flags3; 2090*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */ 2091*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF4_SHIFT 0 2092*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */ 2093*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF5_SHIFT 2 2094*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */ 2095*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF6_SHIFT 4 2096*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF7_MASK 0x3 /* cf7 */ 2097*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF7_SHIFT 6 2098*14b24e2bSVaishali Kulkarni u8 flags4; 2099*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF8_MASK 0x3 /* cf8 */ 2100*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF8_SHIFT 0 2101*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF9_MASK 0x3 /* cf9 */ 2102*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF9_SHIFT 2 2103*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF10_MASK 0x3 /* cf10 */ 2104*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF10_SHIFT 4 2105*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF11_MASK 0x3 /* cf11 */ 2106*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF11_SHIFT 6 2107*14b24e2bSVaishali Kulkarni u8 flags5; 2108*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF12_MASK 0x3 /* cf12 */ 2109*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF12_SHIFT 0 2110*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF13_MASK 0x3 /* cf13 */ 2111*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF13_SHIFT 2 2112*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF14_MASK 0x3 /* cf14 */ 2113*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF14_SHIFT 4 2114*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF15_MASK 0x3 /* cf15 */ 2115*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF15_SHIFT 6 2116*14b24e2bSVaishali Kulkarni u8 flags6; 2117*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_MASK 0x3 /* cf16 */ 2118*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_SHIFT 0 2119*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF17_MASK 0x3 /* cf_array_cf */ 2120*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF17_SHIFT 2 2121*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_DQ_CF_MASK 0x3 /* cf18 */ 2122*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_DQ_CF_SHIFT 4 2123*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_MASK 0x3 /* cf19 */ 2124*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_SHIFT 6 2125*14b24e2bSVaishali Kulkarni u8 flags7; 2126*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_MASK 0x3 /* cf20 */ 2127*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_SHIFT 0 2128*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED10_MASK 0x3 /* cf21 */ 2129*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED10_SHIFT 2 2130*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_MASK 0x3 /* cf22 */ 2131*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_SHIFT 4 2132*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 2133*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 6 2134*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 2135*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 7 2136*14b24e2bSVaishali Kulkarni u8 flags8; 2137*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 2138*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 0 2139*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */ 2140*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 1 2141*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */ 2142*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 2 2143*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */ 2144*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 3 2145*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */ 2146*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 4 2147*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF7EN_MASK 0x1 /* cf7en */ 2148*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF7EN_SHIFT 5 2149*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF8EN_MASK 0x1 /* cf8en */ 2150*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF8EN_SHIFT 6 2151*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF9EN_MASK 0x1 /* cf9en */ 2152*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF9EN_SHIFT 7 2153*14b24e2bSVaishali Kulkarni u8 flags9; 2154*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF10EN_MASK 0x1 /* cf10en */ 2155*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF10EN_SHIFT 0 2156*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF11EN_MASK 0x1 /* cf11en */ 2157*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF11EN_SHIFT 1 2158*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF12EN_MASK 0x1 /* cf12en */ 2159*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF12EN_SHIFT 2 2160*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF13EN_MASK 0x1 /* cf13en */ 2161*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF13EN_SHIFT 3 2162*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF14EN_MASK 0x1 /* cf14en */ 2163*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF14EN_SHIFT 4 2164*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF15EN_MASK 0x1 /* cf15en */ 2165*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF15EN_SHIFT 5 2166*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_EN_MASK 0x1 /* cf16en */ 2167*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_EN_SHIFT 6 2168*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF17EN_MASK 0x1 /* cf_array_cf_en */ 2169*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF17EN_SHIFT 7 2170*14b24e2bSVaishali Kulkarni u8 flags10; 2171*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_DQ_CF_EN_MASK 0x1 /* cf18en */ 2172*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_DQ_CF_EN_SHIFT 0 2173*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_EN_MASK 0x1 /* cf19en */ 2174*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_EN_SHIFT 1 2175*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1 /* cf20en */ 2176*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2 2177*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED11_MASK 0x1 /* cf21en */ 2178*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED11_SHIFT 3 2179*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1 /* cf22en */ 2180*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4 2181*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF23EN_MASK 0x1 /* cf23en */ 2182*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF23EN_SHIFT 5 2183*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED12_MASK 0x1 /* rule0en */ 2184*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED12_SHIFT 6 2185*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED13_MASK 0x1 /* rule1en */ 2186*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED13_SHIFT 7 2187*14b24e2bSVaishali Kulkarni u8 flags11; 2188*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED14_MASK 0x1 /* rule2en */ 2189*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED14_SHIFT 0 2190*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED15_MASK 0x1 /* rule3en */ 2191*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RESERVED15_SHIFT 1 2192*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_TX_DEC_RULE_EN_MASK 0x1 /* rule4en */ 2193*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_TX_DEC_RULE_EN_SHIFT 2 2194*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */ 2195*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 3 2196*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */ 2197*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 4 2198*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */ 2199*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 5 2200*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED1_MASK 0x1 /* rule8en */ 2201*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED1_SHIFT 6 2202*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE9EN_MASK 0x1 /* rule9en */ 2203*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE9EN_SHIFT 7 2204*14b24e2bSVaishali Kulkarni u8 flags12; 2205*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE10EN_MASK 0x1 /* rule10en */ 2206*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE10EN_SHIFT 0 2207*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE11EN_MASK 0x1 /* rule11en */ 2208*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE11EN_SHIFT 1 2209*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED2_MASK 0x1 /* rule12en */ 2210*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED2_SHIFT 2 2211*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED3_MASK 0x1 /* rule13en */ 2212*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED3_SHIFT 3 2213*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE14EN_MASK 0x1 /* rule14en */ 2214*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE14EN_SHIFT 4 2215*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE15EN_MASK 0x1 /* rule15en */ 2216*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE15EN_SHIFT 5 2217*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE16EN_MASK 0x1 /* rule16en */ 2218*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE16EN_SHIFT 6 2219*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE17EN_MASK 0x1 /* rule17en */ 2220*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE17EN_SHIFT 7 2221*14b24e2bSVaishali Kulkarni u8 flags13; 2222*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE18EN_MASK 0x1 /* rule18en */ 2223*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE18EN_SHIFT 0 2224*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE19EN_MASK 0x1 /* rule19en */ 2225*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_RULE19EN_SHIFT 1 2226*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED4_MASK 0x1 /* rule20en */ 2227*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED4_SHIFT 2 2228*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED5_MASK 0x1 /* rule21en */ 2229*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED5_SHIFT 3 2230*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED6_MASK 0x1 /* rule22en */ 2231*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED6_SHIFT 4 2232*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED7_MASK 0x1 /* rule23en */ 2233*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED7_SHIFT 5 2234*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED8_MASK 0x1 /* rule24en */ 2235*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED8_SHIFT 6 2236*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED9_MASK 0x1 /* rule25en */ 2237*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_A0_RESERVED9_SHIFT 7 2238*14b24e2bSVaishali Kulkarni u8 flags14; 2239*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_BIT16_MASK 0x1 /* bit16 */ 2240*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_BIT16_SHIFT 0 2241*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_BIT17_MASK 0x1 /* bit17 */ 2242*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_BIT17_SHIFT 1 2243*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_BIT18_MASK 0x1 /* bit18 */ 2244*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_BIT18_SHIFT 2 2245*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_BIT19_MASK 0x1 /* bit19 */ 2246*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_BIT19_SHIFT 3 2247*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_BIT20_MASK 0x1 /* bit20 */ 2248*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_BIT20_SHIFT 4 2249*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_BIT21_MASK 0x1 /* bit21 */ 2250*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_BIT21_SHIFT 5 2251*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF23_MASK 0x3 /* cf23 */ 2252*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_CF23_SHIFT 6 2253*14b24e2bSVaishali Kulkarni u8 byte2 /* byte2 */; 2254*14b24e2bSVaishali Kulkarni __le16 physical_q0 /* physical_q0 */; 2255*14b24e2bSVaishali Kulkarni __le16 consolid_prod /* physical_q1 */; 2256*14b24e2bSVaishali Kulkarni __le16 reserved16 /* physical_q2 */; 2257*14b24e2bSVaishali Kulkarni __le16 tx_bd_cons /* word3 */; 2258*14b24e2bSVaishali Kulkarni __le16 tx_bd_or_spq_prod /* word4 */; 2259*14b24e2bSVaishali Kulkarni __le16 word5 /* word5 */; 2260*14b24e2bSVaishali Kulkarni __le16 conn_dpi /* conn_dpi */; 2261*14b24e2bSVaishali Kulkarni u8 byte3 /* byte3 */; 2262*14b24e2bSVaishali Kulkarni u8 byte4 /* byte4 */; 2263*14b24e2bSVaishali Kulkarni u8 byte5 /* byte5 */; 2264*14b24e2bSVaishali Kulkarni u8 byte6 /* byte6 */; 2265*14b24e2bSVaishali Kulkarni __le32 reg0 /* reg0 */; 2266*14b24e2bSVaishali Kulkarni __le32 reg1 /* reg1 */; 2267*14b24e2bSVaishali Kulkarni __le32 reg2 /* reg2 */; 2268*14b24e2bSVaishali Kulkarni __le32 reg3 /* reg3 */; 2269*14b24e2bSVaishali Kulkarni __le32 reg4 /* reg4 */; 2270*14b24e2bSVaishali Kulkarni __le32 reg5 /* cf_array0 */; 2271*14b24e2bSVaishali Kulkarni __le32 reg6 /* cf_array1 */; 2272*14b24e2bSVaishali Kulkarni u8 flags15; 2273*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_E4_RESERVED1_MASK 0x1 /* bit22 */ 2274*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_E4_RESERVED1_SHIFT 0 2275*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_E4_RESERVED2_MASK 0x1 /* bit23 */ 2276*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_E4_RESERVED2_SHIFT 1 2277*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_E4_RESERVED3_MASK 0x1 /* bit24 */ 2278*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_E4_RESERVED3_SHIFT 2 2279*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_E4_RESERVED4_MASK 0x3 /* cf24 */ 2280*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_E4_RESERVED4_SHIFT 3 2281*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_E4_RESERVED5_MASK 0x1 /* cf24en */ 2282*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_E4_RESERVED5_SHIFT 5 2283*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_E4_RESERVED6_MASK 0x1 /* rule26en */ 2284*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_E4_RESERVED6_SHIFT 6 2285*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_E4_RESERVED7_MASK 0x1 /* rule27en */ 2286*14b24e2bSVaishali Kulkarni #define E5_XSTORM_CORE_CONN_AG_CTX_E4_RESERVED7_SHIFT 7 2287*14b24e2bSVaishali Kulkarni u8 byte7 /* byte7 */; 2288*14b24e2bSVaishali Kulkarni __le16 word7 /* word7 */; 2289*14b24e2bSVaishali Kulkarni __le16 word8 /* word8 */; 2290*14b24e2bSVaishali Kulkarni __le16 word9 /* word9 */; 2291*14b24e2bSVaishali Kulkarni __le16 word10 /* word10 */; 2292*14b24e2bSVaishali Kulkarni __le16 word11 /* word11 */; 2293*14b24e2bSVaishali Kulkarni __le32 reg7 /* reg7 */; 2294*14b24e2bSVaishali Kulkarni __le32 reg8 /* reg8 */; 2295*14b24e2bSVaishali Kulkarni __le32 reg9 /* reg9 */; 2296*14b24e2bSVaishali Kulkarni u8 byte8 /* byte8 */; 2297*14b24e2bSVaishali Kulkarni u8 byte9 /* byte9 */; 2298*14b24e2bSVaishali Kulkarni u8 byte10 /* byte10 */; 2299*14b24e2bSVaishali Kulkarni u8 byte11 /* byte11 */; 2300*14b24e2bSVaishali Kulkarni u8 byte12 /* byte12 */; 2301*14b24e2bSVaishali Kulkarni u8 byte13 /* byte13 */; 2302*14b24e2bSVaishali Kulkarni u8 byte14 /* byte14 */; 2303*14b24e2bSVaishali Kulkarni u8 byte15 /* byte15 */; 2304*14b24e2bSVaishali Kulkarni __le32 reg10 /* reg10 */; 2305*14b24e2bSVaishali Kulkarni __le32 reg11 /* reg11 */; 2306*14b24e2bSVaishali Kulkarni __le32 reg12 /* reg12 */; 2307*14b24e2bSVaishali Kulkarni __le32 reg13 /* reg13 */; 2308*14b24e2bSVaishali Kulkarni __le32 reg14 /* reg14 */; 2309*14b24e2bSVaishali Kulkarni __le32 reg15 /* reg15 */; 2310*14b24e2bSVaishali Kulkarni __le32 reg16 /* reg16 */; 2311*14b24e2bSVaishali Kulkarni __le32 reg17 /* reg17 */; 2312*14b24e2bSVaishali Kulkarni __le32 reg18 /* reg18 */; 2313*14b24e2bSVaishali Kulkarni __le32 reg19 /* reg19 */; 2314*14b24e2bSVaishali Kulkarni __le16 word12 /* word12 */; 2315*14b24e2bSVaishali Kulkarni __le16 word13 /* word13 */; 2316*14b24e2bSVaishali Kulkarni __le16 word14 /* word14 */; 2317*14b24e2bSVaishali Kulkarni __le16 word15 /* word15 */; 2318*14b24e2bSVaishali Kulkarni }; 2319*14b24e2bSVaishali Kulkarni 2320*14b24e2bSVaishali Kulkarni 2321*14b24e2bSVaishali Kulkarni struct e5_ystorm_core_conn_ag_ctx 2322*14b24e2bSVaishali Kulkarni { 2323*14b24e2bSVaishali Kulkarni u8 byte0 /* cdu_validation */; 2324*14b24e2bSVaishali Kulkarni u8 byte1 /* state_and_core_id */; 2325*14b24e2bSVaishali Kulkarni u8 flags0; 2326*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1 /* exist_in_qm0 */ 2327*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0 2328*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 2329*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1 2330*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3 /* cf0 */ 2331*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2 2332*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3 /* cf1 */ 2333*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4 2334*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3 /* cf2 */ 2335*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6 2336*14b24e2bSVaishali Kulkarni u8 flags1; 2337*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 2338*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0 2339*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 2340*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1 2341*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 2342*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2 2343*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 2344*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 3 2345*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */ 2346*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 4 2347*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 2348*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 5 2349*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 2350*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 6 2351*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 2352*14b24e2bSVaishali Kulkarni #define E5_YSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 7 2353*14b24e2bSVaishali Kulkarni u8 byte2 /* byte2 */; 2354*14b24e2bSVaishali Kulkarni u8 byte3 /* byte3 */; 2355*14b24e2bSVaishali Kulkarni __le16 word0 /* word0 */; 2356*14b24e2bSVaishali Kulkarni __le32 reg0 /* reg0 */; 2357*14b24e2bSVaishali Kulkarni __le32 reg1 /* reg1 */; 2358*14b24e2bSVaishali Kulkarni __le16 word1 /* word1 */; 2359*14b24e2bSVaishali Kulkarni __le16 word2 /* word2 */; 2360*14b24e2bSVaishali Kulkarni __le16 word3 /* word3 */; 2361*14b24e2bSVaishali Kulkarni __le16 word4 /* word4 */; 2362*14b24e2bSVaishali Kulkarni __le32 reg2 /* reg2 */; 2363*14b24e2bSVaishali Kulkarni __le32 reg3 /* reg3 */; 2364*14b24e2bSVaishali Kulkarni }; 2365*14b24e2bSVaishali Kulkarni 2366*14b24e2bSVaishali Kulkarni 2367*14b24e2bSVaishali Kulkarni /* 2368*14b24e2bSVaishali Kulkarni * IGU cleanup command 2369*14b24e2bSVaishali Kulkarni */ 2370*14b24e2bSVaishali Kulkarni struct igu_cleanup 2371*14b24e2bSVaishali Kulkarni { 2372*14b24e2bSVaishali Kulkarni __le32 sb_id_and_flags; 2373*14b24e2bSVaishali Kulkarni #define IGU_CLEANUP_RESERVED0_MASK 0x7FFFFFF 2374*14b24e2bSVaishali Kulkarni #define IGU_CLEANUP_RESERVED0_SHIFT 0 2375*14b24e2bSVaishali Kulkarni #define IGU_CLEANUP_CLEANUP_SET_MASK 0x1 /* cleanup clear - 0, set - 1 */ 2376*14b24e2bSVaishali Kulkarni #define IGU_CLEANUP_CLEANUP_SET_SHIFT 27 2377*14b24e2bSVaishali Kulkarni #define IGU_CLEANUP_CLEANUP_TYPE_MASK 0x7 2378*14b24e2bSVaishali Kulkarni #define IGU_CLEANUP_CLEANUP_TYPE_SHIFT 28 2379*14b24e2bSVaishali Kulkarni #define IGU_CLEANUP_COMMAND_TYPE_MASK 0x1 /* must always be set (use enum command_type_bit) */ 2380*14b24e2bSVaishali Kulkarni #define IGU_CLEANUP_COMMAND_TYPE_SHIFT 31 2381*14b24e2bSVaishali Kulkarni __le32 reserved1; 2382*14b24e2bSVaishali Kulkarni }; 2383*14b24e2bSVaishali Kulkarni 2384*14b24e2bSVaishali Kulkarni 2385*14b24e2bSVaishali Kulkarni /* 2386*14b24e2bSVaishali Kulkarni * IGU firmware driver command 2387*14b24e2bSVaishali Kulkarni */ 2388*14b24e2bSVaishali Kulkarni union igu_command 2389*14b24e2bSVaishali Kulkarni { 2390*14b24e2bSVaishali Kulkarni struct igu_prod_cons_update prod_cons_update; 2391*14b24e2bSVaishali Kulkarni struct igu_cleanup cleanup; 2392*14b24e2bSVaishali Kulkarni }; 2393*14b24e2bSVaishali Kulkarni 2394*14b24e2bSVaishali Kulkarni 2395*14b24e2bSVaishali Kulkarni /* 2396*14b24e2bSVaishali Kulkarni * IGU firmware driver command 2397*14b24e2bSVaishali Kulkarni */ 2398*14b24e2bSVaishali Kulkarni struct igu_command_reg_ctrl 2399*14b24e2bSVaishali Kulkarni { 2400*14b24e2bSVaishali Kulkarni __le16 opaque_fid; 2401*14b24e2bSVaishali Kulkarni __le16 igu_command_reg_ctrl_fields; 2402*14b24e2bSVaishali Kulkarni #define IGU_COMMAND_REG_CTRL_PXP_BAR_ADDR_MASK 0xFFF 2403*14b24e2bSVaishali Kulkarni #define IGU_COMMAND_REG_CTRL_PXP_BAR_ADDR_SHIFT 0 2404*14b24e2bSVaishali Kulkarni #define IGU_COMMAND_REG_CTRL_RESERVED_MASK 0x7 2405*14b24e2bSVaishali Kulkarni #define IGU_COMMAND_REG_CTRL_RESERVED_SHIFT 12 2406*14b24e2bSVaishali Kulkarni #define IGU_COMMAND_REG_CTRL_COMMAND_TYPE_MASK 0x1 /* command typ: 0 - read, 1 - write */ 2407*14b24e2bSVaishali Kulkarni #define IGU_COMMAND_REG_CTRL_COMMAND_TYPE_SHIFT 15 2408*14b24e2bSVaishali Kulkarni }; 2409*14b24e2bSVaishali Kulkarni 2410*14b24e2bSVaishali Kulkarni 2411*14b24e2bSVaishali Kulkarni /* 2412*14b24e2bSVaishali Kulkarni * IGU mapping line structure 2413*14b24e2bSVaishali Kulkarni */ 2414*14b24e2bSVaishali Kulkarni struct igu_mapping_line 2415*14b24e2bSVaishali Kulkarni { 2416*14b24e2bSVaishali Kulkarni __le32 igu_mapping_line_fields; 2417*14b24e2bSVaishali Kulkarni #define IGU_MAPPING_LINE_VALID_MASK 0x1 2418*14b24e2bSVaishali Kulkarni #define IGU_MAPPING_LINE_VALID_SHIFT 0 2419*14b24e2bSVaishali Kulkarni #define IGU_MAPPING_LINE_VECTOR_NUMBER_MASK 0xFF 2420*14b24e2bSVaishali Kulkarni #define IGU_MAPPING_LINE_VECTOR_NUMBER_SHIFT 1 2421*14b24e2bSVaishali Kulkarni #define IGU_MAPPING_LINE_FUNCTION_NUMBER_MASK 0xFF /* In BB: VF-0-120, PF-0-7; In K2: VF-0-191, PF-0-15 */ 2422*14b24e2bSVaishali Kulkarni #define IGU_MAPPING_LINE_FUNCTION_NUMBER_SHIFT 9 2423*14b24e2bSVaishali Kulkarni #define IGU_MAPPING_LINE_PF_VALID_MASK 0x1 /* PF-1, VF-0 */ 2424*14b24e2bSVaishali Kulkarni #define IGU_MAPPING_LINE_PF_VALID_SHIFT 17 2425*14b24e2bSVaishali Kulkarni #define IGU_MAPPING_LINE_IPS_GROUP_MASK 0x3F 2426*14b24e2bSVaishali Kulkarni #define IGU_MAPPING_LINE_IPS_GROUP_SHIFT 18 2427*14b24e2bSVaishali Kulkarni #define IGU_MAPPING_LINE_RESERVED_MASK 0xFF 2428*14b24e2bSVaishali Kulkarni #define IGU_MAPPING_LINE_RESERVED_SHIFT 24 2429*14b24e2bSVaishali Kulkarni }; 2430*14b24e2bSVaishali Kulkarni 2431*14b24e2bSVaishali Kulkarni 2432*14b24e2bSVaishali Kulkarni /* 2433*14b24e2bSVaishali Kulkarni * IGU MSIX line structure 2434*14b24e2bSVaishali Kulkarni */ 2435*14b24e2bSVaishali Kulkarni struct igu_msix_vector 2436*14b24e2bSVaishali Kulkarni { 2437*14b24e2bSVaishali Kulkarni struct regpair address; 2438*14b24e2bSVaishali Kulkarni __le32 data; 2439*14b24e2bSVaishali Kulkarni __le32 msix_vector_fields; 2440*14b24e2bSVaishali Kulkarni #define IGU_MSIX_VECTOR_MASK_BIT_MASK 0x1 2441*14b24e2bSVaishali Kulkarni #define IGU_MSIX_VECTOR_MASK_BIT_SHIFT 0 2442*14b24e2bSVaishali Kulkarni #define IGU_MSIX_VECTOR_RESERVED0_MASK 0x7FFF 2443*14b24e2bSVaishali Kulkarni #define IGU_MSIX_VECTOR_RESERVED0_SHIFT 1 2444*14b24e2bSVaishali Kulkarni #define IGU_MSIX_VECTOR_STEERING_TAG_MASK 0xFF 2445*14b24e2bSVaishali Kulkarni #define IGU_MSIX_VECTOR_STEERING_TAG_SHIFT 16 2446*14b24e2bSVaishali Kulkarni #define IGU_MSIX_VECTOR_RESERVED1_MASK 0xFF 2447*14b24e2bSVaishali Kulkarni #define IGU_MSIX_VECTOR_RESERVED1_SHIFT 24 2448*14b24e2bSVaishali Kulkarni }; 2449*14b24e2bSVaishali Kulkarni 2450*14b24e2bSVaishali Kulkarni 2451*14b24e2bSVaishali Kulkarni /* 2452*14b24e2bSVaishali Kulkarni * per encapsulation type enabling flags 2453*14b24e2bSVaishali Kulkarni */ 2454*14b24e2bSVaishali Kulkarni struct prs_reg_encapsulation_type_en 2455*14b24e2bSVaishali Kulkarni { 2456*14b24e2bSVaishali Kulkarni u8 flags; 2457*14b24e2bSVaishali Kulkarni #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GRE_ENABLE_MASK 0x1 /* Enable bit for Ethernet-over-GRE (L2 GRE) encapsulation. */ 2458*14b24e2bSVaishali Kulkarni #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GRE_ENABLE_SHIFT 0 2459*14b24e2bSVaishali Kulkarni #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GRE_ENABLE_MASK 0x1 /* Enable bit for IP-over-GRE (IP GRE) encapsulation. */ 2460*14b24e2bSVaishali Kulkarni #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GRE_ENABLE_SHIFT 1 2461*14b24e2bSVaishali Kulkarni #define PRS_REG_ENCAPSULATION_TYPE_EN_VXLAN_ENABLE_MASK 0x1 /* Enable bit for VXLAN encapsulation. */ 2462*14b24e2bSVaishali Kulkarni #define PRS_REG_ENCAPSULATION_TYPE_EN_VXLAN_ENABLE_SHIFT 2 2463*14b24e2bSVaishali Kulkarni #define PRS_REG_ENCAPSULATION_TYPE_EN_T_TAG_ENABLE_MASK 0x1 /* Enable bit for T-Tag encapsulation. */ 2464*14b24e2bSVaishali Kulkarni #define PRS_REG_ENCAPSULATION_TYPE_EN_T_TAG_ENABLE_SHIFT 3 2465*14b24e2bSVaishali Kulkarni #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GENEVE_ENABLE_MASK 0x1 /* Enable bit for Ethernet-over-GENEVE (L2 GENEVE) encapsulation. */ 2466*14b24e2bSVaishali Kulkarni #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GENEVE_ENABLE_SHIFT 4 2467*14b24e2bSVaishali Kulkarni #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GENEVE_ENABLE_MASK 0x1 /* Enable bit for IP-over-GENEVE (IP GENEVE) encapsulation. */ 2468*14b24e2bSVaishali Kulkarni #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GENEVE_ENABLE_SHIFT 5 2469*14b24e2bSVaishali Kulkarni #define PRS_REG_ENCAPSULATION_TYPE_EN_RESERVED_MASK 0x3 2470*14b24e2bSVaishali Kulkarni #define PRS_REG_ENCAPSULATION_TYPE_EN_RESERVED_SHIFT 6 2471*14b24e2bSVaishali Kulkarni }; 2472*14b24e2bSVaishali Kulkarni 2473*14b24e2bSVaishali Kulkarni 2474*14b24e2bSVaishali Kulkarni enum pxp_tph_st_hint 2475*14b24e2bSVaishali Kulkarni { 2476*14b24e2bSVaishali Kulkarni TPH_ST_HINT_BIDIR /* Read/Write access by Host and Device */, 2477*14b24e2bSVaishali Kulkarni TPH_ST_HINT_REQUESTER /* Read/Write access by Device */, 2478*14b24e2bSVaishali Kulkarni TPH_ST_HINT_TARGET /* Device Write and Host Read, or Host Write and Device Read */, 2479*14b24e2bSVaishali Kulkarni TPH_ST_HINT_TARGET_PRIO /* Device Write and Host Read, or Host Write and Device Read - with temporal reuse */, 2480*14b24e2bSVaishali Kulkarni MAX_PXP_TPH_ST_HINT 2481*14b24e2bSVaishali Kulkarni }; 2482*14b24e2bSVaishali Kulkarni 2483*14b24e2bSVaishali Kulkarni 2484*14b24e2bSVaishali Kulkarni /* 2485*14b24e2bSVaishali Kulkarni * QM hardware structure of enable bypass credit mask 2486*14b24e2bSVaishali Kulkarni */ 2487*14b24e2bSVaishali Kulkarni struct qm_rf_bypass_mask 2488*14b24e2bSVaishali Kulkarni { 2489*14b24e2bSVaishali Kulkarni u8 flags; 2490*14b24e2bSVaishali Kulkarni #define QM_RF_BYPASS_MASK_LINEVOQ_MASK 0x1 2491*14b24e2bSVaishali Kulkarni #define QM_RF_BYPASS_MASK_LINEVOQ_SHIFT 0 2492*14b24e2bSVaishali Kulkarni #define QM_RF_BYPASS_MASK_RESERVED0_MASK 0x1 2493*14b24e2bSVaishali Kulkarni #define QM_RF_BYPASS_MASK_RESERVED0_SHIFT 1 2494*14b24e2bSVaishali Kulkarni #define QM_RF_BYPASS_MASK_PFWFQ_MASK 0x1 2495*14b24e2bSVaishali Kulkarni #define QM_RF_BYPASS_MASK_PFWFQ_SHIFT 2 2496*14b24e2bSVaishali Kulkarni #define QM_RF_BYPASS_MASK_VPWFQ_MASK 0x1 2497*14b24e2bSVaishali Kulkarni #define QM_RF_BYPASS_MASK_VPWFQ_SHIFT 3 2498*14b24e2bSVaishali Kulkarni #define QM_RF_BYPASS_MASK_PFRL_MASK 0x1 2499*14b24e2bSVaishali Kulkarni #define QM_RF_BYPASS_MASK_PFRL_SHIFT 4 2500*14b24e2bSVaishali Kulkarni #define QM_RF_BYPASS_MASK_VPQCNRL_MASK 0x1 2501*14b24e2bSVaishali Kulkarni #define QM_RF_BYPASS_MASK_VPQCNRL_SHIFT 5 2502*14b24e2bSVaishali Kulkarni #define QM_RF_BYPASS_MASK_FWPAUSE_MASK 0x1 2503*14b24e2bSVaishali Kulkarni #define QM_RF_BYPASS_MASK_FWPAUSE_SHIFT 6 2504*14b24e2bSVaishali Kulkarni #define QM_RF_BYPASS_MASK_RESERVED1_MASK 0x1 2505*14b24e2bSVaishali Kulkarni #define QM_RF_BYPASS_MASK_RESERVED1_SHIFT 7 2506*14b24e2bSVaishali Kulkarni }; 2507*14b24e2bSVaishali Kulkarni 2508*14b24e2bSVaishali Kulkarni 2509*14b24e2bSVaishali Kulkarni /* 2510*14b24e2bSVaishali Kulkarni * QM hardware structure of opportunistic credit mask 2511*14b24e2bSVaishali Kulkarni */ 2512*14b24e2bSVaishali Kulkarni struct qm_rf_opportunistic_mask 2513*14b24e2bSVaishali Kulkarni { 2514*14b24e2bSVaishali Kulkarni __le16 flags; 2515*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_LINEVOQ_MASK 0x1 2516*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_LINEVOQ_SHIFT 0 2517*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_BYTEVOQ_MASK 0x1 2518*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_BYTEVOQ_SHIFT 1 2519*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_PFWFQ_MASK 0x1 2520*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_PFWFQ_SHIFT 2 2521*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_VPWFQ_MASK 0x1 2522*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_VPWFQ_SHIFT 3 2523*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_PFRL_MASK 0x1 2524*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_PFRL_SHIFT 4 2525*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_VPQCNRL_MASK 0x1 2526*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_VPQCNRL_SHIFT 5 2527*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_FWPAUSE_MASK 0x1 2528*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_FWPAUSE_SHIFT 6 2529*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_RESERVED0_MASK 0x1 2530*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_RESERVED0_SHIFT 7 2531*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_QUEUEEMPTY_MASK 0x1 2532*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_QUEUEEMPTY_SHIFT 8 2533*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_RESERVED1_MASK 0x7F 2534*14b24e2bSVaishali Kulkarni #define QM_RF_OPPORTUNISTIC_MASK_RESERVED1_SHIFT 9 2535*14b24e2bSVaishali Kulkarni }; 2536*14b24e2bSVaishali Kulkarni 2537*14b24e2bSVaishali Kulkarni 2538*14b24e2bSVaishali Kulkarni /* 2539*14b24e2bSVaishali Kulkarni * QM hardware structure of QM map memory 2540*14b24e2bSVaishali Kulkarni */ 2541*14b24e2bSVaishali Kulkarni struct qm_rf_pq_map 2542*14b24e2bSVaishali Kulkarni { 2543*14b24e2bSVaishali Kulkarni __le32 reg; 2544*14b24e2bSVaishali Kulkarni #define QM_RF_PQ_MAP_PQ_VALID_MASK 0x1 /* PQ active */ 2545*14b24e2bSVaishali Kulkarni #define QM_RF_PQ_MAP_PQ_VALID_SHIFT 0 2546*14b24e2bSVaishali Kulkarni #define QM_RF_PQ_MAP_RL_ID_MASK 0xFF /* RL ID */ 2547*14b24e2bSVaishali Kulkarni #define QM_RF_PQ_MAP_RL_ID_SHIFT 1 2548*14b24e2bSVaishali Kulkarni #define QM_RF_PQ_MAP_VP_PQ_ID_MASK 0x1FF /* the first PQ associated with the VPORT and VOQ of this PQ */ 2549*14b24e2bSVaishali Kulkarni #define QM_RF_PQ_MAP_VP_PQ_ID_SHIFT 9 2550*14b24e2bSVaishali Kulkarni #define QM_RF_PQ_MAP_VOQ_MASK 0x1F /* VOQ */ 2551*14b24e2bSVaishali Kulkarni #define QM_RF_PQ_MAP_VOQ_SHIFT 18 2552*14b24e2bSVaishali Kulkarni #define QM_RF_PQ_MAP_WRR_WEIGHT_GROUP_MASK 0x3 /* WRR weight */ 2553*14b24e2bSVaishali Kulkarni #define QM_RF_PQ_MAP_WRR_WEIGHT_GROUP_SHIFT 23 2554*14b24e2bSVaishali Kulkarni #define QM_RF_PQ_MAP_RL_VALID_MASK 0x1 /* RL active */ 2555*14b24e2bSVaishali Kulkarni #define QM_RF_PQ_MAP_RL_VALID_SHIFT 25 2556*14b24e2bSVaishali Kulkarni #define QM_RF_PQ_MAP_RESERVED_MASK 0x3F 2557*14b24e2bSVaishali Kulkarni #define QM_RF_PQ_MAP_RESERVED_SHIFT 26 2558*14b24e2bSVaishali Kulkarni }; 2559*14b24e2bSVaishali Kulkarni 2560*14b24e2bSVaishali Kulkarni 2561*14b24e2bSVaishali Kulkarni /* 2562*14b24e2bSVaishali Kulkarni * Completion params for aggregated interrupt completion 2563*14b24e2bSVaishali Kulkarni */ 2564*14b24e2bSVaishali Kulkarni struct sdm_agg_int_comp_params 2565*14b24e2bSVaishali Kulkarni { 2566*14b24e2bSVaishali Kulkarni __le16 params; 2567*14b24e2bSVaishali Kulkarni #define SDM_AGG_INT_COMP_PARAMS_AGG_INT_INDEX_MASK 0x3F /* the number of aggregated interrupt, 0-31 */ 2568*14b24e2bSVaishali Kulkarni #define SDM_AGG_INT_COMP_PARAMS_AGG_INT_INDEX_SHIFT 0 2569*14b24e2bSVaishali Kulkarni #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_ENABLE_MASK 0x1 /* 1 - set a bit in aggregated vector, 0 - dont set */ 2570*14b24e2bSVaishali Kulkarni #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_ENABLE_SHIFT 6 2571*14b24e2bSVaishali Kulkarni #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_BIT_MASK 0x1FF /* Number of bit in the aggregated vector, 0-279 (TBD) */ 2572*14b24e2bSVaishali Kulkarni #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_BIT_SHIFT 7 2573*14b24e2bSVaishali Kulkarni }; 2574*14b24e2bSVaishali Kulkarni 2575*14b24e2bSVaishali Kulkarni 2576*14b24e2bSVaishali Kulkarni /* 2577*14b24e2bSVaishali Kulkarni * SDM operation gen command (generate aggregative interrupt) 2578*14b24e2bSVaishali Kulkarni */ 2579*14b24e2bSVaishali Kulkarni struct sdm_op_gen 2580*14b24e2bSVaishali Kulkarni { 2581*14b24e2bSVaishali Kulkarni __le32 command; 2582*14b24e2bSVaishali Kulkarni #define SDM_OP_GEN_COMP_PARAM_MASK 0xFFFF /* completion parameters 0-15 */ 2583*14b24e2bSVaishali Kulkarni #define SDM_OP_GEN_COMP_PARAM_SHIFT 0 2584*14b24e2bSVaishali Kulkarni #define SDM_OP_GEN_COMP_TYPE_MASK 0xF /* completion type 16-19 */ 2585*14b24e2bSVaishali Kulkarni #define SDM_OP_GEN_COMP_TYPE_SHIFT 16 2586*14b24e2bSVaishali Kulkarni #define SDM_OP_GEN_RESERVED_MASK 0xFFF /* reserved 20-31 */ 2587*14b24e2bSVaishali Kulkarni #define SDM_OP_GEN_RESERVED_SHIFT 20 2588*14b24e2bSVaishali Kulkarni }; 2589*14b24e2bSVaishali Kulkarni 2590*14b24e2bSVaishali Kulkarni #endif /* __ECORE_HSI_COMMON__ */ 2591