xref: /freebsd/sys/dev/cxgbe/cudbg/cudbg_entity.h (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
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