1*f856f099SNavdeep Parhar /*- 2*f856f099SNavdeep Parhar * Copyright (c) 2017 Chelsio Communications, Inc. 3*f856f099SNavdeep Parhar * All rights reserved. 4*f856f099SNavdeep Parhar * 5*f856f099SNavdeep Parhar * Redistribution and use in source and binary forms, with or without 6*f856f099SNavdeep Parhar * modification, are permitted provided that the following conditions 7*f856f099SNavdeep Parhar * are met: 8*f856f099SNavdeep Parhar * 1. Redistributions of source code must retain the above copyright 9*f856f099SNavdeep Parhar * notice, this list of conditions and the following disclaimer. 10*f856f099SNavdeep Parhar * 2. Redistributions in binary form must reproduce the above copyright 11*f856f099SNavdeep Parhar * notice, this list of conditions and the following disclaimer in the 12*f856f099SNavdeep Parhar * documentation and/or other materials provided with the distribution. 13*f856f099SNavdeep Parhar * 14*f856f099SNavdeep Parhar * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15*f856f099SNavdeep Parhar * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16*f856f099SNavdeep Parhar * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17*f856f099SNavdeep Parhar * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18*f856f099SNavdeep Parhar * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19*f856f099SNavdeep Parhar * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20*f856f099SNavdeep Parhar * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21*f856f099SNavdeep Parhar * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22*f856f099SNavdeep Parhar * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23*f856f099SNavdeep Parhar * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24*f856f099SNavdeep Parhar * SUCH DAMAGE. 25*f856f099SNavdeep Parhar * 26*f856f099SNavdeep Parhar */ 27*f856f099SNavdeep Parhar 28*f856f099SNavdeep Parhar #ifndef __CUDBG_ENTITY_H__ 29*f856f099SNavdeep Parhar #define __CUDBG_ENTITY_H__ 30*f856f099SNavdeep Parhar 31*f856f099SNavdeep Parhar #ifdef __GNUC__ 32*f856f099SNavdeep Parhar #define ATTRIBUTE_UNUSED __attribute__ ((unused)) 33*f856f099SNavdeep Parhar #else 34*f856f099SNavdeep Parhar #define ATTRIBUTE_UNUSED 35*f856f099SNavdeep Parhar #endif 36*f856f099SNavdeep Parhar 37*f856f099SNavdeep Parhar #define MC0_FLAG 1 38*f856f099SNavdeep Parhar #define MC1_FLAG 2 39*f856f099SNavdeep Parhar #define EDC0_FLAG 3 40*f856f099SNavdeep Parhar #define EDC1_FLAG 4 41*f856f099SNavdeep Parhar 42*f856f099SNavdeep Parhar #define NUM_PCIE_CONFIG_REGS 0x61 43*f856f099SNavdeep Parhar #define CUDBG_CTXT_SIZE_BYTES 24 44*f856f099SNavdeep Parhar #define CUDBG_MAX_INGRESS_QIDS 65536 45*f856f099SNavdeep Parhar #define CUDBG_MAX_FL_QIDS 2048 46*f856f099SNavdeep Parhar #define CUDBG_MAX_CNM_QIDS 1024 47*f856f099SNavdeep Parhar #define CUDBG_LOWMEM_MAX_CTXT_QIDS 256 48*f856f099SNavdeep Parhar #define ETH_ALEN 6 49*f856f099SNavdeep Parhar #define CUDBG_MAX_RPLC_SIZE 128 50*f856f099SNavdeep Parhar #define CUDBG_NUM_REQ_REGS 17 51*f856f099SNavdeep Parhar #define CUDBG_MAX_TCAM_TID 0x800 52*f856f099SNavdeep Parhar #define CUDBG_NUM_ULPTX 11 53*f856f099SNavdeep Parhar #define CUDBG_NUM_ULPTX_READ 512 54*f856f099SNavdeep Parhar 55*f856f099SNavdeep Parhar #define SN_REG_ADDR 0x183f 56*f856f099SNavdeep Parhar #define BN_REG_ADDR 0x1819 57*f856f099SNavdeep Parhar #define NA_REG_ADDR 0x185a 58*f856f099SNavdeep Parhar #define MN_REG_ADDR 0x1803 59*f856f099SNavdeep Parhar 60*f856f099SNavdeep Parhar #define A_MPS_VF_RPLCT_MAP0 0x1111c 61*f856f099SNavdeep Parhar #define A_MPS_VF_RPLCT_MAP1 0x11120 62*f856f099SNavdeep Parhar #define A_MPS_VF_RPLCT_MAP2 0x11124 63*f856f099SNavdeep Parhar #define A_MPS_VF_RPLCT_MAP3 0x11128 64*f856f099SNavdeep Parhar #define A_MPS_VF_RPLCT_MAP4 0x11300 65*f856f099SNavdeep Parhar #define A_MPS_VF_RPLCT_MAP5 0x11304 66*f856f099SNavdeep Parhar #define A_MPS_VF_RPLCT_MAP6 0x11308 67*f856f099SNavdeep Parhar #define A_MPS_VF_RPLCT_MAP7 0x1130c 68*f856f099SNavdeep Parhar 69*f856f099SNavdeep Parhar #define PORT_TYPE_ADDR 0x1869 70*f856f099SNavdeep Parhar #define PORT_TYPE_LEN 8 71*f856f099SNavdeep Parhar 72*f856f099SNavdeep Parhar /* For T6 */ 73*f856f099SNavdeep Parhar #define SN_T6_ADDR 0x83f 74*f856f099SNavdeep Parhar #define BN_T6_ADDR 0x819 75*f856f099SNavdeep Parhar #define NA_T6_ADDR 0x85a 76*f856f099SNavdeep Parhar #define MN_T6_ADDR 0x803 77*f856f099SNavdeep Parhar 78*f856f099SNavdeep Parhar #define SN_MAX_LEN 24 79*f856f099SNavdeep Parhar #define BN_MAX_LEN 16 80*f856f099SNavdeep Parhar #define NA_MAX_LEN 12 81*f856f099SNavdeep Parhar #define MN_MAX_LEN 16 82*f856f099SNavdeep Parhar #define MAX_VPD_DATA_LEN 32 83*f856f099SNavdeep Parhar 84*f856f099SNavdeep Parhar #define VPD_VER_ADDR 0x18c7 85*f856f099SNavdeep Parhar #define VPD_VER_LEN 2 86*f856f099SNavdeep Parhar #define SCFG_VER_ADDR 0x06 87*f856f099SNavdeep Parhar #define SCFG_VER_LEN 4 88*f856f099SNavdeep Parhar 89*f856f099SNavdeep Parhar #define CUDBG_CIM_BUSY_BIT (1 << 17) 90*f856f099SNavdeep Parhar 91*f856f099SNavdeep Parhar #define CUDBG_CHAC_PBT_ADDR 0x2800 92*f856f099SNavdeep Parhar #define CUDBG_CHAC_PBT_LRF 0x3000 93*f856f099SNavdeep Parhar #define CUDBG_CHAC_PBT_DATA 0x3800 94*f856f099SNavdeep Parhar #define CUDBG_PBT_DYNAMIC_ENTRIES 8 95*f856f099SNavdeep Parhar #define CUDBG_PBT_STATIC_ENTRIES 16 96*f856f099SNavdeep Parhar #define CUDBG_LRF_ENTRIES 8 97*f856f099SNavdeep Parhar #define CUDBG_PBT_DATA_ENTRIES 512 98*f856f099SNavdeep Parhar 99*f856f099SNavdeep Parhar #define CUDBG_ENTITY_SIGNATURE 0xCCEDB001 100*f856f099SNavdeep Parhar #define CUDBG_TID_INFO_REV 1 101*f856f099SNavdeep Parhar #define CUDBG_MAC_STATS_REV 1 102*f856f099SNavdeep Parhar 103*f856f099SNavdeep Parhar #ifndef ARRAY_SIZE 104*f856f099SNavdeep Parhar #define ARRAY_SIZE(_a) (sizeof((_a)) / sizeof((_a)[0])) 105*f856f099SNavdeep Parhar #endif 106*f856f099SNavdeep Parhar 107*f856f099SNavdeep Parhar struct cudbg_pbt_tables { 108*f856f099SNavdeep Parhar u32 pbt_dynamic[CUDBG_PBT_DYNAMIC_ENTRIES]; 109*f856f099SNavdeep Parhar u32 pbt_static[CUDBG_PBT_STATIC_ENTRIES]; 110*f856f099SNavdeep Parhar u32 lrf_table[CUDBG_LRF_ENTRIES]; 111*f856f099SNavdeep Parhar u32 pbt_data[CUDBG_PBT_DATA_ENTRIES]; 112*f856f099SNavdeep Parhar }; 113*f856f099SNavdeep Parhar 114*f856f099SNavdeep Parhar struct card_mem { 115*f856f099SNavdeep Parhar u16 size_mc0; 116*f856f099SNavdeep Parhar u16 size_mc1; 117*f856f099SNavdeep Parhar u16 size_edc0; 118*f856f099SNavdeep Parhar u16 size_edc1; 119*f856f099SNavdeep Parhar u16 mem_flag; 120*f856f099SNavdeep Parhar u16 res; 121*f856f099SNavdeep Parhar }; 122*f856f099SNavdeep Parhar 123*f856f099SNavdeep Parhar struct rss_pf_conf { 124*f856f099SNavdeep Parhar u32 rss_pf_map; 125*f856f099SNavdeep Parhar u32 rss_pf_mask; 126*f856f099SNavdeep Parhar u32 rss_pf_config; 127*f856f099SNavdeep Parhar }; 128*f856f099SNavdeep Parhar 129*f856f099SNavdeep Parhar struct cudbg_ch_cntxt { 130*f856f099SNavdeep Parhar uint32_t cntxt_type; 131*f856f099SNavdeep Parhar uint32_t cntxt_id; 132*f856f099SNavdeep Parhar uint32_t data[SGE_CTXT_SIZE / 4]; 133*f856f099SNavdeep Parhar }; 134*f856f099SNavdeep Parhar 135*f856f099SNavdeep Parhar struct cudbg_tcam { 136*f856f099SNavdeep Parhar u32 filter_start; 137*f856f099SNavdeep Parhar u32 server_start; 138*f856f099SNavdeep Parhar u32 clip_start; 139*f856f099SNavdeep Parhar u32 routing_start; 140*f856f099SNavdeep Parhar u32 tid_hash_base; 141*f856f099SNavdeep Parhar u32 max_tid; 142*f856f099SNavdeep Parhar }; 143*f856f099SNavdeep Parhar 144*f856f099SNavdeep Parhar #if 0 145*f856f099SNavdeep Parhar struct cudbg_mbox_log { 146*f856f099SNavdeep Parhar struct mbox_cmd entry; 147*f856f099SNavdeep Parhar u32 hi[MBOX_LEN / 8]; 148*f856f099SNavdeep Parhar u32 lo[MBOX_LEN / 8]; 149*f856f099SNavdeep Parhar }; 150*f856f099SNavdeep Parhar #endif 151*f856f099SNavdeep Parhar 152*f856f099SNavdeep Parhar struct cudbg_tid_data { 153*f856f099SNavdeep Parhar u32 tid; 154*f856f099SNavdeep Parhar u32 dbig_cmd; 155*f856f099SNavdeep Parhar u32 dbig_conf; 156*f856f099SNavdeep Parhar u32 dbig_rsp_stat; 157*f856f099SNavdeep Parhar u32 data[CUDBG_NUM_REQ_REGS]; 158*f856f099SNavdeep Parhar }; 159*f856f099SNavdeep Parhar 160*f856f099SNavdeep Parhar struct cudbg_cntxt_field { 161*f856f099SNavdeep Parhar char *name; 162*f856f099SNavdeep Parhar u32 start_bit; 163*f856f099SNavdeep Parhar u32 end_bit; 164*f856f099SNavdeep Parhar u32 shift; 165*f856f099SNavdeep Parhar u32 islog2; 166*f856f099SNavdeep Parhar }; 167*f856f099SNavdeep Parhar 168*f856f099SNavdeep Parhar struct cudbg_mps_tcam { 169*f856f099SNavdeep Parhar u64 mask; 170*f856f099SNavdeep Parhar u32 rplc[8]; 171*f856f099SNavdeep Parhar u32 idx; 172*f856f099SNavdeep Parhar u32 cls_lo; 173*f856f099SNavdeep Parhar u32 cls_hi; 174*f856f099SNavdeep Parhar u32 rplc_size; 175*f856f099SNavdeep Parhar u32 vniy; 176*f856f099SNavdeep Parhar u32 vnix; 177*f856f099SNavdeep Parhar u32 dip_hit; 178*f856f099SNavdeep Parhar u32 vlan_vld; 179*f856f099SNavdeep Parhar u32 repli; 180*f856f099SNavdeep Parhar u16 ivlan; 181*f856f099SNavdeep Parhar u8 addr[ETH_ALEN]; 182*f856f099SNavdeep Parhar u8 lookup_type; 183*f856f099SNavdeep Parhar u8 port_num; 184*f856f099SNavdeep Parhar u8 reserved[2]; 185*f856f099SNavdeep Parhar }; 186*f856f099SNavdeep Parhar 187*f856f099SNavdeep Parhar struct rss_vf_conf { 188*f856f099SNavdeep Parhar u32 rss_vf_vfl; 189*f856f099SNavdeep Parhar u32 rss_vf_vfh; 190*f856f099SNavdeep Parhar }; 191*f856f099SNavdeep Parhar 192*f856f099SNavdeep Parhar struct rss_config { 193*f856f099SNavdeep Parhar u32 tp_rssconf; /* A_TP_RSS_CONFIG */ 194*f856f099SNavdeep Parhar u32 tp_rssconf_tnl; /* A_TP_RSS_CONFIG_TNL */ 195*f856f099SNavdeep Parhar u32 tp_rssconf_ofd; /* A_TP_RSS_CONFIG_OFD */ 196*f856f099SNavdeep Parhar u32 tp_rssconf_syn; /* A_TP_RSS_CONFIG_SYN */ 197*f856f099SNavdeep Parhar u32 tp_rssconf_vrt; /* A_TP_RSS_CONFIG_VRT */ 198*f856f099SNavdeep Parhar u32 tp_rssconf_cng; /* A_TP_RSS_CONFIG_CNG */ 199*f856f099SNavdeep Parhar u32 chip; 200*f856f099SNavdeep Parhar }; 201*f856f099SNavdeep Parhar 202*f856f099SNavdeep Parhar struct struct_pm_stats { 203*f856f099SNavdeep Parhar u32 tx_cnt[T6_PM_NSTATS]; 204*f856f099SNavdeep Parhar u32 rx_cnt[T6_PM_NSTATS]; 205*f856f099SNavdeep Parhar u64 tx_cyc[T6_PM_NSTATS]; 206*f856f099SNavdeep Parhar u64 rx_cyc[T6_PM_NSTATS]; 207*f856f099SNavdeep Parhar }; 208*f856f099SNavdeep Parhar 209*f856f099SNavdeep Parhar struct struct_hw_sched { 210*f856f099SNavdeep Parhar u32 kbps[NTX_SCHED]; 211*f856f099SNavdeep Parhar u32 ipg[NTX_SCHED]; 212*f856f099SNavdeep Parhar u32 pace_tab[NTX_SCHED]; 213*f856f099SNavdeep Parhar u32 mode; 214*f856f099SNavdeep Parhar u32 map; 215*f856f099SNavdeep Parhar }; 216*f856f099SNavdeep Parhar 217*f856f099SNavdeep Parhar struct struct_tcp_stats { 218*f856f099SNavdeep Parhar struct tp_tcp_stats v4, v6; 219*f856f099SNavdeep Parhar }; 220*f856f099SNavdeep Parhar 221*f856f099SNavdeep Parhar struct struct_tp_err_stats { 222*f856f099SNavdeep Parhar struct tp_err_stats stats; 223*f856f099SNavdeep Parhar u32 nchan; 224*f856f099SNavdeep Parhar }; 225*f856f099SNavdeep Parhar 226*f856f099SNavdeep Parhar struct struct_tp_fcoe_stats { 227*f856f099SNavdeep Parhar struct tp_fcoe_stats stats[4]; 228*f856f099SNavdeep Parhar u32 nchan; 229*f856f099SNavdeep Parhar }; 230*f856f099SNavdeep Parhar 231*f856f099SNavdeep Parhar struct struct_mac_stats { 232*f856f099SNavdeep Parhar u32 port_count; 233*f856f099SNavdeep Parhar struct port_stats stats[4]; 234*f856f099SNavdeep Parhar }; 235*f856f099SNavdeep Parhar 236*f856f099SNavdeep Parhar struct struct_mac_stats_rev1 { 237*f856f099SNavdeep Parhar struct cudbg_ver_hdr ver_hdr; 238*f856f099SNavdeep Parhar u32 port_count; 239*f856f099SNavdeep Parhar u32 reserved; 240*f856f099SNavdeep Parhar struct port_stats stats[4]; 241*f856f099SNavdeep Parhar }; 242*f856f099SNavdeep Parhar 243*f856f099SNavdeep Parhar struct struct_tp_cpl_stats { 244*f856f099SNavdeep Parhar struct tp_cpl_stats stats; 245*f856f099SNavdeep Parhar u32 nchan; 246*f856f099SNavdeep Parhar }; 247*f856f099SNavdeep Parhar 248*f856f099SNavdeep Parhar struct struct_wc_stats { 249*f856f099SNavdeep Parhar u32 wr_cl_success; 250*f856f099SNavdeep Parhar u32 wr_cl_fail; 251*f856f099SNavdeep Parhar }; 252*f856f099SNavdeep Parhar 253*f856f099SNavdeep Parhar struct struct_ulptx_la { 254*f856f099SNavdeep Parhar u32 rdptr[CUDBG_NUM_ULPTX]; 255*f856f099SNavdeep Parhar u32 wrptr[CUDBG_NUM_ULPTX]; 256*f856f099SNavdeep Parhar u32 rddata[CUDBG_NUM_ULPTX]; 257*f856f099SNavdeep Parhar u32 rd_data[CUDBG_NUM_ULPTX][CUDBG_NUM_ULPTX_READ]; 258*f856f099SNavdeep Parhar }; 259*f856f099SNavdeep Parhar 260*f856f099SNavdeep Parhar struct struct_ulprx_la { 261*f856f099SNavdeep Parhar u32 data[ULPRX_LA_SIZE * 8]; 262*f856f099SNavdeep Parhar u32 size; 263*f856f099SNavdeep Parhar }; 264*f856f099SNavdeep Parhar 265*f856f099SNavdeep Parhar struct struct_cim_qcfg { 266*f856f099SNavdeep Parhar u8 chip; 267*f856f099SNavdeep Parhar u16 base[CIM_NUM_IBQ + CIM_NUM_OBQ_T5]; 268*f856f099SNavdeep Parhar u16 size[CIM_NUM_IBQ + CIM_NUM_OBQ_T5]; 269*f856f099SNavdeep Parhar u16 thres[CIM_NUM_IBQ]; 270*f856f099SNavdeep Parhar u32 obq_wr[2 * CIM_NUM_OBQ_T5]; 271*f856f099SNavdeep Parhar u32 stat[4 * (CIM_NUM_IBQ + CIM_NUM_OBQ_T5)]; 272*f856f099SNavdeep Parhar }; 273*f856f099SNavdeep Parhar 274*f856f099SNavdeep Parhar enum region_index { 275*f856f099SNavdeep Parhar REGN_DBQ_CONTEXS_IDX, 276*f856f099SNavdeep Parhar REGN_IMSG_CONTEXTS_IDX, 277*f856f099SNavdeep Parhar REGN_FLM_CACHE_IDX, 278*f856f099SNavdeep Parhar REGN_TCBS_IDX, 279*f856f099SNavdeep Parhar REGN_PSTRUCT_IDX, 280*f856f099SNavdeep Parhar REGN_TIMERS_IDX, 281*f856f099SNavdeep Parhar REGN_RX_FL_IDX, 282*f856f099SNavdeep Parhar REGN_TX_FL_IDX, 283*f856f099SNavdeep Parhar REGN_PSTRUCT_FL_IDX, 284*f856f099SNavdeep Parhar REGN_TX_PAYLOAD_IDX, 285*f856f099SNavdeep Parhar REGN_RX_PAYLOAD_IDX, 286*f856f099SNavdeep Parhar REGN_LE_HASH_IDX, 287*f856f099SNavdeep Parhar REGN_ISCSI_IDX, 288*f856f099SNavdeep Parhar REGN_TDDP_IDX, 289*f856f099SNavdeep Parhar REGN_TPT_IDX, 290*f856f099SNavdeep Parhar REGN_STAG_IDX, 291*f856f099SNavdeep Parhar REGN_RQ_IDX, 292*f856f099SNavdeep Parhar REGN_RQUDP_IDX, 293*f856f099SNavdeep Parhar REGN_PBL_IDX, 294*f856f099SNavdeep Parhar REGN_TXPBL_IDX, 295*f856f099SNavdeep Parhar REGN_DBVFIFO_IDX, 296*f856f099SNavdeep Parhar REGN_ULPRX_STATE_IDX, 297*f856f099SNavdeep Parhar REGN_ULPTX_STATE_IDX, 298*f856f099SNavdeep Parhar #ifndef __NO_DRIVER_OCQ_SUPPORT__ 299*f856f099SNavdeep Parhar REGN_ON_CHIP_Q_IDX, 300*f856f099SNavdeep Parhar #endif 301*f856f099SNavdeep Parhar }; 302*f856f099SNavdeep Parhar 303*f856f099SNavdeep Parhar static const char * const region[] = { 304*f856f099SNavdeep Parhar "DBQ contexts:", "IMSG contexts:", "FLM cache:", "TCBs:", 305*f856f099SNavdeep Parhar "Pstructs:", "Timers:", "Rx FL:", "Tx FL:", "Pstruct FL:", 306*f856f099SNavdeep Parhar "Tx payload:", "Rx payload:", "LE hash:", "iSCSI region:", 307*f856f099SNavdeep Parhar "TDDP region:", "TPT region:", "STAG region:", "RQ region:", 308*f856f099SNavdeep Parhar "RQUDP region:", "PBL region:", "TXPBL region:", 309*f856f099SNavdeep Parhar "DBVFIFO region:", "ULPRX state:", "ULPTX state:", 310*f856f099SNavdeep Parhar #ifndef __NO_DRIVER_OCQ_SUPPORT__ 311*f856f099SNavdeep Parhar "On-chip queues:" 312*f856f099SNavdeep Parhar #endif 313*f856f099SNavdeep Parhar }; 314*f856f099SNavdeep Parhar 315*f856f099SNavdeep Parhar /* Info relative to memory region (i.e. wrt 0). */ 316*f856f099SNavdeep Parhar struct struct_region_info { 317*f856f099SNavdeep Parhar bool exist; /* Does region exists in current memory region? */ 318*f856f099SNavdeep Parhar u32 start; /* Start wrt 0 */ 319*f856f099SNavdeep Parhar u32 end; /* End wrt 0 */ 320*f856f099SNavdeep Parhar }; 321*f856f099SNavdeep Parhar 322*f856f099SNavdeep Parhar struct struct_port_usage { 323*f856f099SNavdeep Parhar u32 id; 324*f856f099SNavdeep Parhar u32 used; 325*f856f099SNavdeep Parhar u32 alloc; 326*f856f099SNavdeep Parhar }; 327*f856f099SNavdeep Parhar 328*f856f099SNavdeep Parhar struct struct_lpbk_usage { 329*f856f099SNavdeep Parhar u32 id; 330*f856f099SNavdeep Parhar u32 used; 331*f856f099SNavdeep Parhar u32 alloc; 332*f856f099SNavdeep Parhar }; 333*f856f099SNavdeep Parhar 334*f856f099SNavdeep Parhar struct struct_mem_desc { 335*f856f099SNavdeep Parhar u32 base; 336*f856f099SNavdeep Parhar u32 limit; 337*f856f099SNavdeep Parhar u32 idx; 338*f856f099SNavdeep Parhar }; 339*f856f099SNavdeep Parhar 340*f856f099SNavdeep Parhar enum string_size_units { 341*f856f099SNavdeep Parhar STRING_UNITS_10, /* use powers of 10^3 (standard SI) */ 342*f856f099SNavdeep Parhar STRING_UNITS_2, /* use binary powers of 2^10 */ 343*f856f099SNavdeep Parhar }; 344*f856f099SNavdeep Parhar 345*f856f099SNavdeep Parhar struct struct_meminfo { 346*f856f099SNavdeep Parhar struct struct_mem_desc avail[4]; 347*f856f099SNavdeep Parhar struct struct_mem_desc mem[ARRAY_SIZE(region) + 3]; 348*f856f099SNavdeep Parhar u32 avail_c; 349*f856f099SNavdeep Parhar u32 mem_c; 350*f856f099SNavdeep Parhar u32 up_ram_lo; 351*f856f099SNavdeep Parhar u32 up_ram_hi; 352*f856f099SNavdeep Parhar u32 up_extmem2_lo; 353*f856f099SNavdeep Parhar u32 up_extmem2_hi; 354*f856f099SNavdeep Parhar u32 rx_pages_data[3]; 355*f856f099SNavdeep Parhar u32 tx_pages_data[4]; 356*f856f099SNavdeep Parhar u32 p_structs; 357*f856f099SNavdeep Parhar struct struct_port_usage port_data[4]; 358*f856f099SNavdeep Parhar u32 port_used[4]; 359*f856f099SNavdeep Parhar u32 port_alloc[4]; 360*f856f099SNavdeep Parhar u32 loopback_used[NCHAN]; 361*f856f099SNavdeep Parhar u32 loopback_alloc[NCHAN]; 362*f856f099SNavdeep Parhar }; 363*f856f099SNavdeep Parhar 364*f856f099SNavdeep Parhar #ifndef __GNUC__ 365*f856f099SNavdeep Parhar #pragma warning(disable : 4200) 366*f856f099SNavdeep Parhar #endif 367*f856f099SNavdeep Parhar 368*f856f099SNavdeep Parhar struct struct_lb_stats { 369*f856f099SNavdeep Parhar int nchan; 370*f856f099SNavdeep Parhar struct lb_port_stats s[0]; 371*f856f099SNavdeep Parhar }; 372*f856f099SNavdeep Parhar 373*f856f099SNavdeep Parhar struct struct_clk_info { 374*f856f099SNavdeep Parhar u64 retransmit_min; 375*f856f099SNavdeep Parhar u64 retransmit_max; 376*f856f099SNavdeep Parhar u64 persist_timer_min; 377*f856f099SNavdeep Parhar u64 persist_timer_max; 378*f856f099SNavdeep Parhar u64 keepalive_idle_timer; 379*f856f099SNavdeep Parhar u64 keepalive_interval; 380*f856f099SNavdeep Parhar u64 initial_srtt; 381*f856f099SNavdeep Parhar u64 finwait2_timer; 382*f856f099SNavdeep Parhar u32 dack_timer; 383*f856f099SNavdeep Parhar u32 res; 384*f856f099SNavdeep Parhar u32 cclk_ps; 385*f856f099SNavdeep Parhar u32 tre; 386*f856f099SNavdeep Parhar u32 dack_re; 387*f856f099SNavdeep Parhar char core_clk_period[32]; 388*f856f099SNavdeep Parhar char tp_timer_tick[32]; 389*f856f099SNavdeep Parhar char tcp_tstamp_tick[32]; 390*f856f099SNavdeep Parhar char dack_tick[32]; 391*f856f099SNavdeep Parhar }; 392*f856f099SNavdeep Parhar 393*f856f099SNavdeep Parhar struct cim_pif_la { 394*f856f099SNavdeep Parhar int size; 395*f856f099SNavdeep Parhar u8 data[0]; 396*f856f099SNavdeep Parhar }; 397*f856f099SNavdeep Parhar 398*f856f099SNavdeep Parhar struct struct_tp_la { 399*f856f099SNavdeep Parhar u32 size; 400*f856f099SNavdeep Parhar u32 mode; 401*f856f099SNavdeep Parhar u8 data[0]; 402*f856f099SNavdeep Parhar }; 403*f856f099SNavdeep Parhar 404*f856f099SNavdeep Parhar struct field_desc { 405*f856f099SNavdeep Parhar const char *name; 406*f856f099SNavdeep Parhar u32 start; 407*f856f099SNavdeep Parhar u32 width; 408*f856f099SNavdeep Parhar }; 409*f856f099SNavdeep Parhar 410*f856f099SNavdeep Parhar struct tp_mib_type { 411*f856f099SNavdeep Parhar char *key; 412*f856f099SNavdeep Parhar u32 addr; 413*f856f099SNavdeep Parhar u32 value; 414*f856f099SNavdeep Parhar }; 415*f856f099SNavdeep Parhar 416*f856f099SNavdeep Parhar struct wtp_type_0 { 417*f856f099SNavdeep Parhar u32 sop; 418*f856f099SNavdeep Parhar u32 eop; 419*f856f099SNavdeep Parhar }; 420*f856f099SNavdeep Parhar 421*f856f099SNavdeep Parhar struct wtp_type_1 { 422*f856f099SNavdeep Parhar u32 sop[2]; 423*f856f099SNavdeep Parhar u32 eop[2]; 424*f856f099SNavdeep Parhar }; 425*f856f099SNavdeep Parhar 426*f856f099SNavdeep Parhar struct wtp_type_2 { 427*f856f099SNavdeep Parhar u32 sop[4]; 428*f856f099SNavdeep Parhar u32 eop[4]; 429*f856f099SNavdeep Parhar }; 430*f856f099SNavdeep Parhar 431*f856f099SNavdeep Parhar struct wtp_type_3 { 432*f856f099SNavdeep Parhar u32 sop[4]; 433*f856f099SNavdeep Parhar u32 eop[4]; 434*f856f099SNavdeep Parhar u32 drops; 435*f856f099SNavdeep Parhar }; 436*f856f099SNavdeep Parhar 437*f856f099SNavdeep Parhar struct wtp_data { 438*f856f099SNavdeep Parhar /*TX path, Request Work request sub-path:*/ 439*f856f099SNavdeep Parhar 440*f856f099SNavdeep Parhar struct wtp_type_1 sge_pcie_cmd_req; /*SGE_DEBUG PC_Req_xOPn*/ 441*f856f099SNavdeep Parhar struct wtp_type_1 pcie_core_cmd_req; /*PCIE_CMDR_REQ_CNT*/ 442*f856f099SNavdeep Parhar 443*f856f099SNavdeep Parhar 444*f856f099SNavdeep Parhar /*TX path, Work request to uP sub-path*/ 445*f856f099SNavdeep Parhar struct wtp_type_1 core_pcie_cmd_rsp; /*PCIE_CMDR_RSP_CNT*/ 446*f856f099SNavdeep Parhar struct wtp_type_1 pcie_sge_cmd_rsp; /*SGE_DEBUG PC_Rsp_xOPn*/ 447*f856f099SNavdeep Parhar struct wtp_type_1 sge_cim; /*SGE_DEBUG CIM_xOPn*/ 448*f856f099SNavdeep Parhar 449*f856f099SNavdeep Parhar /*TX path, Data request path from ULP_TX to core*/ 450*f856f099SNavdeep Parhar struct wtp_type_2 utx_sge_dma_req; /*SGE UD_Rx_xOPn*/ 451*f856f099SNavdeep Parhar struct wtp_type_2 sge_pcie_dma_req; /*SGE PD_Req_Rdn (no eops)*/ 452*f856f099SNavdeep Parhar struct wtp_type_2 pcie_core_dma_req; /*PCIE_DMAR_REQ_CNT (no eops)*/ 453*f856f099SNavdeep Parhar 454*f856f099SNavdeep Parhar /*Main TX path, from core to wire*/ 455*f856f099SNavdeep Parhar struct wtp_type_2 core_pcie_dma_rsp; /*PCIE_DMAR_RSP_SOP_CNT/ 456*f856f099SNavdeep Parhar PCIE_DMAR_EOP_CNT*/ 457*f856f099SNavdeep Parhar struct wtp_type_2 pcie_sge_dma_rsp; /*SGE_DEBUG PD_Rsp_xOPn*/ 458*f856f099SNavdeep Parhar struct wtp_type_2 sge_utx; /*SGE_DEBUG U_Tx_xOPn*/ 459*f856f099SNavdeep Parhar struct wtp_type_2 utx_tp; /*ULP_TX_SE_CNT_CHn[xOP_CNT_ULP2TP]*/ 460*f856f099SNavdeep Parhar struct wtp_type_2 utx_tpcside; /*TP_DBG_CSIDE_RXn[RxXoPCnt]*/ 461*f856f099SNavdeep Parhar 462*f856f099SNavdeep Parhar struct wtp_type_2 tpcside_rxpld; 463*f856f099SNavdeep Parhar struct wtp_type_2 tpcside_rxarb; /*TP_DBG_CSIDE_RXn[RxArbXopCnt]*/ 464*f856f099SNavdeep Parhar struct wtp_type_2 tpcside_rxcpl; 465*f856f099SNavdeep Parhar 466*f856f099SNavdeep Parhar struct wtp_type_2 tpeside_mps; /*TP_DBG_ESDIE_PKT0[TxXoPCnt]*/ 467*f856f099SNavdeep Parhar struct wtp_type_2 tpeside_pm; 468*f856f099SNavdeep Parhar struct wtp_type_2 tpeside_pld; 469*f856f099SNavdeep Parhar 470*f856f099SNavdeep Parhar /*Tx path, PCIE t5 DMA stat*/ 471*f856f099SNavdeep Parhar struct wtp_type_2 pcie_t5_dma_stat3; 472*f856f099SNavdeep Parhar 473*f856f099SNavdeep Parhar /*Tx path, SGE debug data high index 6*/ 474*f856f099SNavdeep Parhar struct wtp_type_2 sge_debug_data_high_index_6; 475*f856f099SNavdeep Parhar 476*f856f099SNavdeep Parhar /*Tx path, SGE debug data high index 3*/ 477*f856f099SNavdeep Parhar struct wtp_type_2 sge_debug_data_high_index_3; 478*f856f099SNavdeep Parhar 479*f856f099SNavdeep Parhar /*Tx path, ULP SE CNT CHx*/ 480*f856f099SNavdeep Parhar struct wtp_type_2 ulp_se_cnt_chx; 481*f856f099SNavdeep Parhar 482*f856f099SNavdeep Parhar /*pcie cmd stat 2*/ 483*f856f099SNavdeep Parhar struct wtp_type_2 pcie_cmd_stat2; 484*f856f099SNavdeep Parhar 485*f856f099SNavdeep Parhar /*pcie cmd stat 3*/ 486*f856f099SNavdeep Parhar struct wtp_type_2 pcie_cmd_stat3; 487*f856f099SNavdeep Parhar 488*f856f099SNavdeep Parhar struct wtp_type_2 pcie_dma1_stat2_core; 489*f856f099SNavdeep Parhar 490*f856f099SNavdeep Parhar struct wtp_type_1 sge_work_req_pkt; 491*f856f099SNavdeep Parhar 492*f856f099SNavdeep Parhar struct wtp_type_2 sge_debug_data_high_indx5; 493*f856f099SNavdeep Parhar 494*f856f099SNavdeep Parhar /*Tx path, mac portx pkt count*/ 495*f856f099SNavdeep Parhar struct wtp_type_2 mac_portx_pkt_count; 496*f856f099SNavdeep Parhar 497*f856f099SNavdeep Parhar /*Rx path, mac porrx pkt count*/ 498*f856f099SNavdeep Parhar struct wtp_type_2 mac_porrx_pkt_count; 499*f856f099SNavdeep Parhar 500*f856f099SNavdeep Parhar /*Rx path, PCIE T5 dma1 stat 2*/ 501*f856f099SNavdeep Parhar struct wtp_type_2 pcie_dma1_stat2; 502*f856f099SNavdeep Parhar 503*f856f099SNavdeep Parhar /*Rx path, sge debug data high index 7*/ 504*f856f099SNavdeep Parhar struct wtp_type_2 sge_debug_data_high_indx7; 505*f856f099SNavdeep Parhar 506*f856f099SNavdeep Parhar /*Rx path, sge debug data high index 1*/ 507*f856f099SNavdeep Parhar struct wtp_type_1 sge_debug_data_high_indx1; 508*f856f099SNavdeep Parhar 509*f856f099SNavdeep Parhar /*Rx path, TP debug CSIDE Tx register*/ 510*f856f099SNavdeep Parhar struct wtp_type_1 utx_tpcside_tx; 511*f856f099SNavdeep Parhar 512*f856f099SNavdeep Parhar /*Rx path, LE DB response count*/ 513*f856f099SNavdeep Parhar struct wtp_type_0 le_db_rsp_cnt; 514*f856f099SNavdeep Parhar 515*f856f099SNavdeep Parhar /*Rx path, TP debug Eside PKTx*/ 516*f856f099SNavdeep Parhar struct wtp_type_2 tp_dbg_eside_pktx; 517*f856f099SNavdeep Parhar 518*f856f099SNavdeep Parhar /*Rx path, sge debug data high index 9*/ 519*f856f099SNavdeep Parhar struct wtp_type_1 sge_debug_data_high_indx9; 520*f856f099SNavdeep Parhar 521*f856f099SNavdeep Parhar /*Tx path, mac portx aFramesTransmittesok*/ 522*f856f099SNavdeep Parhar struct wtp_type_2 mac_portx_aframestra_ok; 523*f856f099SNavdeep Parhar 524*f856f099SNavdeep Parhar /*Rx path, mac portx aFramesTransmittesok*/ 525*f856f099SNavdeep Parhar struct wtp_type_2 mac_porrx_aframestra_ok; 526*f856f099SNavdeep Parhar 527*f856f099SNavdeep Parhar /*Tx path, MAC_PORT_MTIP_1G10G_RX_etherStatsPkts*/ 528*f856f099SNavdeep Parhar struct wtp_type_1 mac_portx_etherstatspkts; 529*f856f099SNavdeep Parhar 530*f856f099SNavdeep Parhar /*Rx path, MAC_PORT_MTIP_1G10G_RX_etherStatsPkts*/ 531*f856f099SNavdeep Parhar struct wtp_type_1 mac_porrx_etherstatspkts; 532*f856f099SNavdeep Parhar 533*f856f099SNavdeep Parhar struct wtp_type_3 tp_mps; /*MPS_TX_SE_CNT_TP01 and 534*f856f099SNavdeep Parhar MPS_TX_SE_CNT_TP34*/ 535*f856f099SNavdeep Parhar struct wtp_type_3 mps_xgm; /*MPS_TX_SE_CNT_MAC01 and 536*f856f099SNavdeep Parhar MPS_TX_SE_CNT_MAC34*/ 537*f856f099SNavdeep Parhar struct wtp_type_2 tx_xgm_xgm; /*XGMAC_PORT_PKT_CNT_PORT_n*/ 538*f856f099SNavdeep Parhar struct wtp_type_2 xgm_wire; /*XGMAC_PORT_XGM_STAT_TX_FRAME_LOW_PORT_N 539*f856f099SNavdeep Parhar (clear on read)*/ 540*f856f099SNavdeep Parhar 541*f856f099SNavdeep Parhar /*RX path, from wire to core.*/ 542*f856f099SNavdeep Parhar struct wtp_type_2 wire_xgm; /*XGMAC_PORT_XGM_STAT_RX_FRAMES_LOW_PORT_N 543*f856f099SNavdeep Parhar (clear on read)*/ 544*f856f099SNavdeep Parhar struct wtp_type_2 rx_xgm_xgm; /*XGMAC_PORT_PKT_CNT_PORT_n*/ 545*f856f099SNavdeep Parhar struct _xgm_mps { /*MPS_RX_SE_CNT_INn*/ 546*f856f099SNavdeep Parhar u32 sop[8]; /* => undef,*/ 547*f856f099SNavdeep Parhar u32 eop[8]; /* => undef,*/ 548*f856f099SNavdeep Parhar u32 drop; /* => undef,*/ 549*f856f099SNavdeep Parhar u32 cls_drop; /* => undef,*/ 550*f856f099SNavdeep Parhar u32 err; /* => undef,*/ 551*f856f099SNavdeep Parhar u32 bp; /* => undef,*/ 552*f856f099SNavdeep Parhar } xgm_mps; 553*f856f099SNavdeep Parhar 554*f856f099SNavdeep Parhar struct wtp_type_3 mps_tp; /*MPS_RX_SE_CNT_OUT01 and 555*f856f099SNavdeep Parhar MPS_RX_SE_CNT_OUT23*/ 556*f856f099SNavdeep Parhar struct wtp_type_2 mps_tpeside; /*TP_DBG_ESIDE_PKTn*/ 557*f856f099SNavdeep Parhar struct wtp_type_1 tpeside_pmrx; /*???*/ 558*f856f099SNavdeep Parhar struct wtp_type_2 pmrx_ulprx; /*ULP_RX_SE_CNT_CHn[xOP_CNT_INn]*/ 559*f856f099SNavdeep Parhar struct wtp_type_2 ulprx_tpcside; /*ULP_RX_SE_CNT_CHn[xOP_CNT_OUTn]*/ 560*f856f099SNavdeep Parhar struct wtp_type_2 tpcside_csw; /*TP_DBG_CSIDE_TXn[TxSopCnt]*/ 561*f856f099SNavdeep Parhar struct wtp_type_2 tpcside_pm; 562*f856f099SNavdeep Parhar struct wtp_type_2 tpcside_uturn; 563*f856f099SNavdeep Parhar struct wtp_type_2 tpcside_txcpl; 564*f856f099SNavdeep Parhar struct wtp_type_1 tp_csw; /*SGE_DEBUG CPLSW_TP_Rx_xOPn*/ 565*f856f099SNavdeep Parhar struct wtp_type_1 csw_sge; /*SGE_DEBUG T_Rx_xOPn*/ 566*f856f099SNavdeep Parhar struct wtp_type_2 sge_pcie; /*SGE_DEBUG PD_Req_SopN - 567*f856f099SNavdeep Parhar PD_Req_RdN - PD_ReqIntN*/ 568*f856f099SNavdeep Parhar struct wtp_type_2 sge_pcie_ints; /*SGE_DEBUG PD_Req_IntN*/ 569*f856f099SNavdeep Parhar struct wtp_type_2 pcie_core_dmaw; /*PCIE_DMAW_SOP_CNT and 570*f856f099SNavdeep Parhar PCIE_DMAW_EOP_CNT*/ 571*f856f099SNavdeep Parhar struct wtp_type_2 pcie_core_dmai; /*PCIE_DMAI_CNT*/ 572*f856f099SNavdeep Parhar 573*f856f099SNavdeep Parhar }; 574*f856f099SNavdeep Parhar 575*f856f099SNavdeep Parhar struct tp_mib_data { 576*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_MAC_IN_ERR_0; 577*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_MAC_IN_ERR_1; 578*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_MAC_IN_ERR_2; 579*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_MAC_IN_ERR_3; 580*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_HDR_IN_ERR_0; 581*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_HDR_IN_ERR_1; 582*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_HDR_IN_ERR_2; 583*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_HDR_IN_ERR_3; 584*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_IN_ERR_0; 585*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_IN_ERR_1; 586*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_IN_ERR_2; 587*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_IN_ERR_3; 588*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_OUT_RST; 589*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_IN_SEG_HI; 590*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_IN_SEG_LO; 591*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_OUT_SEG_HI; 592*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_OUT_SEG_LO; 593*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_RXT_SEG_HI; 594*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_RXT_SEG_LO; 595*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_CNG_DROP_0; 596*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_CNG_DROP_1; 597*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_CNG_DROP_2; 598*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_CNG_DROP_3; 599*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_OFD_CHN_DROP_0; 600*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_OFD_CHN_DROP_1; 601*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_OFD_CHN_DROP_2; 602*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_OFD_CHN_DROP_3; 603*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_OUT_PKT_0; 604*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_OUT_PKT_1; 605*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_OUT_PKT_2; 606*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_OUT_PKT_3; 607*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_IN_PKT_0; 608*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_IN_PKT_1; 609*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_IN_PKT_2; 610*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_IN_PKT_3; 611*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_V6IN_ERR_0; 612*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_V6IN_ERR_1; 613*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_V6IN_ERR_2; 614*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_V6IN_ERR_3; 615*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_V6OUT_RST; 616*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_V6IN_SEG_HI; 617*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_V6IN_SEG_LO; 618*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_V6OUT_SEG_HI; 619*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_V6OUT_SEG_LO; 620*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_V6RXT_SEG_HI; 621*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TCP_V6RXT_SEG_LO; 622*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_OFD_ARP_DROP; 623*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_OFD_DFR_DROP; 624*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_CPL_IN_REQ_0; 625*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_CPL_IN_REQ_1; 626*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_CPL_IN_REQ_2; 627*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_CPL_IN_REQ_3; 628*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_CPL_OUT_RSP_0; 629*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_CPL_OUT_RSP_1; 630*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_CPL_OUT_RSP_2; 631*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_CPL_OUT_RSP_3; 632*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_LPBK_0; 633*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_LPBK_1; 634*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_LPBK_2; 635*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_LPBK_3; 636*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_DROP_0; 637*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_DROP_1; 638*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_DROP_2; 639*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TNL_DROP_3; 640*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_FCOE_DDP_0; 641*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_FCOE_DDP_1; 642*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_FCOE_DDP_2; 643*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_FCOE_DDP_3; 644*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_FCOE_DROP_0; 645*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_FCOE_DROP_1; 646*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_FCOE_DROP_2; 647*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_FCOE_DROP_3; 648*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_FCOE_BYTE_0_HI; 649*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_FCOE_BYTE_0_LO; 650*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_FCOE_BYTE_1_HI; 651*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_FCOE_BYTE_1_LO; 652*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_FCOE_BYTE_2_HI; 653*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_FCOE_BYTE_2_LO; 654*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_FCOE_BYTE_3_HI; 655*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_FCOE_BYTE_3_LO; 656*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_OFD_VLN_DROP_0; 657*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_OFD_VLN_DROP_1; 658*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_OFD_VLN_DROP_2; 659*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_OFD_VLN_DROP_3; 660*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_USM_PKTS; 661*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_USM_DROP; 662*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_USM_BYTES_HI; 663*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_USM_BYTES_LO; 664*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TID_DEL; 665*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TID_INV; 666*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TID_ACT; 667*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_TID_PAS; 668*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_RQE_DFR_MOD; 669*f856f099SNavdeep Parhar struct tp_mib_type TP_MIB_RQE_DFR_PKT; 670*f856f099SNavdeep Parhar }; 671*f856f099SNavdeep Parhar 672*f856f099SNavdeep Parhar struct cudbg_reg_info { 673*f856f099SNavdeep Parhar const char *name; 674*f856f099SNavdeep Parhar unsigned int addr; 675*f856f099SNavdeep Parhar unsigned int len; 676*f856f099SNavdeep Parhar }; 677*f856f099SNavdeep Parhar 678*f856f099SNavdeep Parhar struct tp1_reg_info { 679*f856f099SNavdeep Parhar char addr[10]; 680*f856f099SNavdeep Parhar char name[40]; 681*f856f099SNavdeep Parhar }; 682*f856f099SNavdeep Parhar 683*f856f099SNavdeep Parhar struct ireg_field { 684*f856f099SNavdeep Parhar u32 ireg_addr; 685*f856f099SNavdeep Parhar u32 ireg_data; 686*f856f099SNavdeep Parhar u32 ireg_local_offset; 687*f856f099SNavdeep Parhar u32 ireg_offset_range; 688*f856f099SNavdeep Parhar }; 689*f856f099SNavdeep Parhar 690*f856f099SNavdeep Parhar struct ireg_buf { 691*f856f099SNavdeep Parhar struct ireg_field tp_pio; 692*f856f099SNavdeep Parhar u32 outbuf[32]; 693*f856f099SNavdeep Parhar }; 694*f856f099SNavdeep Parhar 695*f856f099SNavdeep Parhar struct tx_rate { 696*f856f099SNavdeep Parhar u64 nrate[NCHAN]; 697*f856f099SNavdeep Parhar u64 orate[NCHAN]; 698*f856f099SNavdeep Parhar u32 nchan; 699*f856f099SNavdeep Parhar }; 700*f856f099SNavdeep Parhar 701*f856f099SNavdeep Parhar struct tid_info_region { 702*f856f099SNavdeep Parhar u32 ntids; 703*f856f099SNavdeep Parhar u32 nstids; 704*f856f099SNavdeep Parhar u32 stid_base; 705*f856f099SNavdeep Parhar u32 hash_base; 706*f856f099SNavdeep Parhar 707*f856f099SNavdeep Parhar u32 natids; 708*f856f099SNavdeep Parhar u32 nftids; 709*f856f099SNavdeep Parhar u32 ftid_base; 710*f856f099SNavdeep Parhar u32 aftid_base; 711*f856f099SNavdeep Parhar u32 aftid_end; 712*f856f099SNavdeep Parhar 713*f856f099SNavdeep Parhar /* Server filter region */ 714*f856f099SNavdeep Parhar u32 sftid_base; 715*f856f099SNavdeep Parhar u32 nsftids; 716*f856f099SNavdeep Parhar 717*f856f099SNavdeep Parhar /* UO context range */ 718*f856f099SNavdeep Parhar u32 uotid_base; 719*f856f099SNavdeep Parhar u32 nuotids; 720*f856f099SNavdeep Parhar 721*f856f099SNavdeep Parhar u32 sb; 722*f856f099SNavdeep Parhar u32 flags; 723*f856f099SNavdeep Parhar u32 le_db_conf; 724*f856f099SNavdeep Parhar u32 IP_users; 725*f856f099SNavdeep Parhar u32 IPv6_users; 726*f856f099SNavdeep Parhar 727*f856f099SNavdeep Parhar u32 hpftid_base; 728*f856f099SNavdeep Parhar u32 nhpftids; 729*f856f099SNavdeep Parhar }; 730*f856f099SNavdeep Parhar 731*f856f099SNavdeep Parhar struct tid_info_region_rev1 { 732*f856f099SNavdeep Parhar struct cudbg_ver_hdr ver_hdr; 733*f856f099SNavdeep Parhar struct tid_info_region tid; 734*f856f099SNavdeep Parhar u32 tid_start; 735*f856f099SNavdeep Parhar u32 reserved[16]; 736*f856f099SNavdeep Parhar }; 737*f856f099SNavdeep Parhar 738*f856f099SNavdeep Parhar struct struct_vpd_data { 739*f856f099SNavdeep Parhar u8 sn[SN_MAX_LEN + 1]; 740*f856f099SNavdeep Parhar u8 bn[BN_MAX_LEN + 1]; 741*f856f099SNavdeep Parhar u8 na[NA_MAX_LEN + 1]; 742*f856f099SNavdeep Parhar u8 mn[MN_MAX_LEN + 1]; 743*f856f099SNavdeep Parhar u16 fw_major; 744*f856f099SNavdeep Parhar u16 fw_minor; 745*f856f099SNavdeep Parhar u16 fw_micro; 746*f856f099SNavdeep Parhar u16 fw_build; 747*f856f099SNavdeep Parhar u32 scfg_vers; 748*f856f099SNavdeep Parhar u32 vpd_vers; 749*f856f099SNavdeep Parhar }; 750*f856f099SNavdeep Parhar 751*f856f099SNavdeep Parhar struct sw_state { 752*f856f099SNavdeep Parhar u32 fw_state; 753*f856f099SNavdeep Parhar u8 caller_string[100]; 754*f856f099SNavdeep Parhar u8 os_type; 755*f856f099SNavdeep Parhar u8 reserved[3]; 756*f856f099SNavdeep Parhar u32 reserved1[16]; 757*f856f099SNavdeep Parhar }; 758*f856f099SNavdeep Parhar 759*f856f099SNavdeep Parhar static u32 ATTRIBUTE_UNUSED t6_tp_pio_array[][4] = { 760*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x020, 28}, /* t6_tp_pio_regs_20_to_3b */ 761*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x040, 10}, /* t6_tp_pio_regs_40_to_49 */ 762*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x050, 10}, /* t6_tp_pio_regs_50_to_59 */ 763*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x060, 14}, /* t6_tp_pio_regs_60_to_6d */ 764*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x06F, 1}, /* t6_tp_pio_regs_6f */ 765*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x070, 6}, /* t6_tp_pio_regs_70_to_75 */ 766*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x130, 18}, /* t6_tp_pio_regs_130_to_141 */ 767*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x145, 19}, /* t6_tp_pio_regs_145_to_157 */ 768*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x160, 1}, /* t6_tp_pio_regs_160 */ 769*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x230, 25}, /* t6_tp_pio_regs_230_to_248 */ 770*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x24a, 3}, /* t6_tp_pio_regs_24c */ 771*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x8C0, 1} /* t6_tp_pio_regs_8c0 */ 772*f856f099SNavdeep Parhar }; 773*f856f099SNavdeep Parhar 774*f856f099SNavdeep Parhar static u32 ATTRIBUTE_UNUSED t5_tp_pio_array[][4] = { 775*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x020, 28}, /* t5_tp_pio_regs_20_to_3b */ 776*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x040, 19}, /* t5_tp_pio_regs_40_to_52 */ 777*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x054, 2}, /* t5_tp_pio_regs_54_to_55 */ 778*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x060, 13}, /* t5_tp_pio_regs_60_to_6c */ 779*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x06F, 1}, /* t5_tp_pio_regs_6f */ 780*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x120, 4}, /* t5_tp_pio_regs_120_to_123 */ 781*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x12b, 2}, /* t5_tp_pio_regs_12b_to_12c */ 782*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x12f, 21}, /* t5_tp_pio_regs_12f_to_143 */ 783*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x145, 19}, /* t5_tp_pio_regs_145_to_157 */ 784*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x230, 25}, /* t5_tp_pio_regs_230_to_248 */ 785*f856f099SNavdeep Parhar {0x7e40, 0x7e44, 0x8C0, 1} /* t5_tp_pio_regs_8c0 */ 786*f856f099SNavdeep Parhar }; 787*f856f099SNavdeep Parhar 788*f856f099SNavdeep Parhar static u32 ATTRIBUTE_UNUSED t6_ma_ireg_array[][4] = { 789*f856f099SNavdeep Parhar {0x78f8, 0x78fc, 0xa000, 23}, /* t6_ma_regs_a000_to_a016 */ 790*f856f099SNavdeep Parhar {0x78f8, 0x78fc, 0xa400, 30}, /* t6_ma_regs_a400_to_a41e */ 791*f856f099SNavdeep Parhar {0x78f8, 0x78fc, 0xa800, 20} /* t6_ma_regs_a800_to_a813 */ 792*f856f099SNavdeep Parhar }; 793*f856f099SNavdeep Parhar 794*f856f099SNavdeep Parhar static u32 ATTRIBUTE_UNUSED t6_ma_ireg_array2[][4] = { 795*f856f099SNavdeep Parhar {0x78f8, 0x78fc, 0xe400, 17}, /* t6_ma_regs_e400_to_e600 */ 796*f856f099SNavdeep Parhar {0x78f8, 0x78fc, 0xe640, 13} /* t6_ma_regs_e640_to_e7c0 */ 797*f856f099SNavdeep Parhar }; 798*f856f099SNavdeep Parhar 799*f856f099SNavdeep Parhar static u32 ATTRIBUTE_UNUSED t6_hma_ireg_array[][4] = { 800*f856f099SNavdeep Parhar {0x51320, 0x51324, 0xa000, 32} /* t6_hma_regs_a000_to_a01f */ 801*f856f099SNavdeep Parhar }; 802*f856f099SNavdeep Parhar static u32 ATTRIBUTE_UNUSED t5_pcie_pdbg_array[][4] = { 803*f856f099SNavdeep Parhar {0x5a04, 0x5a0c, 0x00, 0x20}, /* t5_pcie_pdbg_regs_00_to_20 */ 804*f856f099SNavdeep Parhar {0x5a04, 0x5a0c, 0x21, 0x20}, /* t5_pcie_pdbg_regs_21_to_40 */ 805*f856f099SNavdeep Parhar {0x5a04, 0x5a0c, 0x41, 0x10}, /* t5_pcie_pdbg_regs_41_to_50 */ 806*f856f099SNavdeep Parhar }; 807*f856f099SNavdeep Parhar 808*f856f099SNavdeep Parhar static u32 ATTRIBUTE_UNUSED t5_pcie_config_array[][2] = { 809*f856f099SNavdeep Parhar {0x0, 0x34}, 810*f856f099SNavdeep Parhar {0x3c, 0x40}, 811*f856f099SNavdeep Parhar {0x50, 0x64}, 812*f856f099SNavdeep Parhar {0x70, 0x80}, 813*f856f099SNavdeep Parhar {0x94, 0xa0}, 814*f856f099SNavdeep Parhar {0xb0, 0xb8}, 815*f856f099SNavdeep Parhar {0xd0, 0xd4}, 816*f856f099SNavdeep Parhar {0x100, 0x128}, 817*f856f099SNavdeep Parhar {0x140, 0x148}, 818*f856f099SNavdeep Parhar {0x150, 0x164}, 819*f856f099SNavdeep Parhar {0x170, 0x178}, 820*f856f099SNavdeep Parhar {0x180, 0x194}, 821*f856f099SNavdeep Parhar {0x1a0, 0x1b8}, 822*f856f099SNavdeep Parhar {0x1c0, 0x208}, 823*f856f099SNavdeep Parhar }; 824*f856f099SNavdeep Parhar 825*f856f099SNavdeep Parhar static u32 ATTRIBUTE_UNUSED t5_pcie_cdbg_array[][4] = { 826*f856f099SNavdeep Parhar {0x5a10, 0x5a18, 0x00, 0x20}, /* t5_pcie_cdbg_regs_00_to_20 */ 827*f856f099SNavdeep Parhar {0x5a10, 0x5a18, 0x21, 0x18}, /* t5_pcie_cdbg_regs_21_to_37 */ 828*f856f099SNavdeep Parhar }; 829*f856f099SNavdeep Parhar 830*f856f099SNavdeep Parhar static u32 ATTRIBUTE_UNUSED t6_tp_tm_pio_array[1][4] = { 831*f856f099SNavdeep Parhar {0x7e18, 0x7e1c, 0x0, 12} 832*f856f099SNavdeep Parhar }; 833*f856f099SNavdeep Parhar 834*f856f099SNavdeep Parhar static u32 ATTRIBUTE_UNUSED t5_tp_tm_pio_array[1][4] = { 835*f856f099SNavdeep Parhar {0x7e18, 0x7e1c, 0x0, 12} 836*f856f099SNavdeep Parhar }; 837*f856f099SNavdeep Parhar 838*f856f099SNavdeep Parhar static u32 ATTRIBUTE_UNUSED t5_pm_rx_array[][4] = { 839*f856f099SNavdeep Parhar {0x8FD0, 0x8FD4, 0x10000, 0x20}, /* t5_pm_rx_regs_10000_to_10020 */ 840*f856f099SNavdeep Parhar {0x8FD0, 0x8FD4, 0x10021, 0x0D}, /* t5_pm_rx_regs_10021_to_1002c */ 841*f856f099SNavdeep Parhar }; 842*f856f099SNavdeep Parhar 843*f856f099SNavdeep Parhar static u32 ATTRIBUTE_UNUSED t5_pm_tx_array[][4] = { 844*f856f099SNavdeep Parhar {0x8FF0, 0x8FF4, 0x10000, 0x20}, /* t5_pm_tx_regs_10000_to_10020 */ 845*f856f099SNavdeep Parhar {0x8FF0, 0x8FF4, 0x10021, 0x1D}, /* t5_pm_tx_regs_10021_to_1003c */ 846*f856f099SNavdeep Parhar }; 847*f856f099SNavdeep Parhar 848*f856f099SNavdeep Parhar static u32 ATTRIBUTE_UNUSED t6_tp_mib_index_array[6][4] = { 849*f856f099SNavdeep Parhar {0x7e50, 0x7e54, 0x0, 13}, 850*f856f099SNavdeep Parhar {0x7e50, 0x7e54, 0x10, 6}, 851*f856f099SNavdeep Parhar {0x7e50, 0x7e54, 0x18, 21}, 852*f856f099SNavdeep Parhar {0x7e50, 0x7e54, 0x30, 32}, 853*f856f099SNavdeep Parhar {0x7e50, 0x7e54, 0x50, 22}, 854*f856f099SNavdeep Parhar {0x7e50, 0x7e54, 0x68, 12} 855*f856f099SNavdeep Parhar }; 856*f856f099SNavdeep Parhar 857*f856f099SNavdeep Parhar static u32 ATTRIBUTE_UNUSED t5_tp_mib_index_array[9][4] = { 858*f856f099SNavdeep Parhar {0x7e50, 0x7e54, 0x0, 13}, 859*f856f099SNavdeep Parhar {0x7e50, 0x7e54, 0x10, 6}, 860*f856f099SNavdeep Parhar {0x7e50, 0x7e54, 0x18, 8}, 861*f856f099SNavdeep Parhar {0x7e50, 0x7e54, 0x20, 13}, 862*f856f099SNavdeep Parhar {0x7e50, 0x7e54, 0x30, 16}, 863*f856f099SNavdeep Parhar {0x7e50, 0x7e54, 0x40, 16}, 864*f856f099SNavdeep Parhar {0x7e50, 0x7e54, 0x50, 16}, 865*f856f099SNavdeep Parhar {0x7e50, 0x7e54, 0x60, 6}, 866*f856f099SNavdeep Parhar {0x7e50, 0x7e54, 0x68, 4} 867*f856f099SNavdeep Parhar }; 868*f856f099SNavdeep Parhar 869*f856f099SNavdeep Parhar static u32 ATTRIBUTE_UNUSED t5_sge_dbg_index_array[9][4] = { 870*f856f099SNavdeep Parhar {0x10cc, 0x10d0, 0x0, 16}, 871*f856f099SNavdeep Parhar {0x10cc, 0x10d4, 0x0, 16}, 872*f856f099SNavdeep Parhar }; 873*f856f099SNavdeep Parhar 874*f856f099SNavdeep Parhar static u32 ATTRIBUTE_UNUSED t6_up_cim_reg_array[][4] = { 875*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x2000, 0x20}, /* up_cim_2000_to_207c */ 876*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x2080, 0x1d}, /* up_cim_2080_to_20fc */ 877*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x00, 0x20}, /* up_cim_00_to_7c */ 878*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x80, 0x20}, /* up_cim_80_to_fc */ 879*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x100, 0x11}, /* up_cim_100_to_14c */ 880*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x200, 0x10}, /* up_cim_200_to_23c */ 881*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x240, 0x2}, /* up_cim_240_to_244 */ 882*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x250, 0x2}, /* up_cim_250_to_254 */ 883*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x260, 0x2}, /* up_cim_260_to_264 */ 884*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x270, 0x2}, /* up_cim_270_to_274 */ 885*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x280, 0x20}, /* up_cim_280_to_2fc */ 886*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x300, 0x20}, /* up_cim_300_to_37c */ 887*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x380, 0x14}, /* up_cim_380_to_3cc */ 888*f856f099SNavdeep Parhar 889*f856f099SNavdeep Parhar }; 890*f856f099SNavdeep Parhar 891*f856f099SNavdeep Parhar static u32 ATTRIBUTE_UNUSED t5_up_cim_reg_array[][4] = { 892*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x2000, 0x20}, /* up_cim_2000_to_207c */ 893*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x2080, 0x19}, /* up_cim_2080_to_20ec */ 894*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x00, 0x20}, /* up_cim_00_to_7c */ 895*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x80, 0x20}, /* up_cim_80_to_fc */ 896*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x100, 0x11}, /* up_cim_100_to_14c */ 897*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x200, 0x10}, /* up_cim_200_to_23c */ 898*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x240, 0x2}, /* up_cim_240_to_244 */ 899*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x250, 0x2}, /* up_cim_250_to_254 */ 900*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x260, 0x2}, /* up_cim_260_to_264 */ 901*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x270, 0x2}, /* up_cim_270_to_274 */ 902*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x280, 0x20}, /* up_cim_280_to_2fc */ 903*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x300, 0x20}, /* up_cim_300_to_37c */ 904*f856f099SNavdeep Parhar {0x7b50, 0x7b54, 0x380, 0x14}, /* up_cim_380_to_3cc */ 905*f856f099SNavdeep Parhar }; 906*f856f099SNavdeep Parhar 907*f856f099SNavdeep Parhar #endif 908