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