xref: /openbmc/linux/drivers/net/ethernet/chelsio/cxgb4/cudbg_entity.h (revision d0034a7a4ac7fae708146ac0059b9c47a1543f0d)
14fa9c49fSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
2b33af022SRahul Lakkireddy /*
3b33af022SRahul Lakkireddy  *  Copyright (C) 2017 Chelsio Communications.  All rights reserved.
4b33af022SRahul Lakkireddy  */
5b33af022SRahul Lakkireddy 
6b33af022SRahul Lakkireddy #ifndef __CUDBG_ENTITY_H__
7b33af022SRahul Lakkireddy #define __CUDBG_ENTITY_H__
8b33af022SRahul Lakkireddy 
9a1c69520SRahul Lakkireddy #define EDC0_FLAG 0
10a1c69520SRahul Lakkireddy #define EDC1_FLAG 1
11a1c69520SRahul Lakkireddy #define MC_FLAG 2
12a1c69520SRahul Lakkireddy #define MC0_FLAG 3
13a1c69520SRahul Lakkireddy #define MC1_FLAG 4
144db0401fSRahul Lakkireddy #define HMA_FLAG 5
15b33af022SRahul Lakkireddy 
169030e498SRahul Lakkireddy #define CUDBG_ENTITY_SIGNATURE 0xCCEDB001
179030e498SRahul Lakkireddy 
18844d1b6fSRahul Lakkireddy struct cudbg_mbox_log {
19844d1b6fSRahul Lakkireddy 	struct mbox_cmd entry;
20844d1b6fSRahul Lakkireddy 	u32 hi[MBOX_LEN / 8];
21844d1b6fSRahul Lakkireddy 	u32 lo[MBOX_LEN / 8];
22844d1b6fSRahul Lakkireddy };
234359cf33SRahul Lakkireddy 
243044d0fbSRahul Lakkireddy struct cudbg_cim_qcfg {
253044d0fbSRahul Lakkireddy 	u8 chip;
263044d0fbSRahul Lakkireddy 	u16 base[CIM_NUM_IBQ + CIM_NUM_OBQ_T5];
273044d0fbSRahul Lakkireddy 	u16 size[CIM_NUM_IBQ + CIM_NUM_OBQ_T5];
283044d0fbSRahul Lakkireddy 	u16 thres[CIM_NUM_IBQ];
293044d0fbSRahul Lakkireddy 	u32 obq_wr[2 * CIM_NUM_OBQ_T5];
303044d0fbSRahul Lakkireddy 	u32 stat[4 * (CIM_NUM_IBQ + CIM_NUM_OBQ_T5)];
313044d0fbSRahul Lakkireddy };
323044d0fbSRahul Lakkireddy 
3328b44556SRahul Lakkireddy struct cudbg_rss_vf_conf {
3428b44556SRahul Lakkireddy 	u32 rss_vf_vfl;
3528b44556SRahul Lakkireddy 	u32 rss_vf_vfh;
3628b44556SRahul Lakkireddy };
3728b44556SRahul Lakkireddy 
386f92a654SRahul Lakkireddy struct cudbg_pm_stats {
396f92a654SRahul Lakkireddy 	u32 tx_cnt[T6_PM_NSTATS];
406f92a654SRahul Lakkireddy 	u32 rx_cnt[T6_PM_NSTATS];
416f92a654SRahul Lakkireddy 	u64 tx_cyc[T6_PM_NSTATS];
426f92a654SRahul Lakkireddy 	u64 rx_cyc[T6_PM_NSTATS];
436f92a654SRahul Lakkireddy };
446f92a654SRahul Lakkireddy 
4508c4901bSRahul Lakkireddy struct cudbg_hw_sched {
4608c4901bSRahul Lakkireddy 	u32 kbps[NTX_SCHED];
4708c4901bSRahul Lakkireddy 	u32 ipg[NTX_SCHED];
4808c4901bSRahul Lakkireddy 	u32 pace_tab[NTX_SCHED];
4908c4901bSRahul Lakkireddy 	u32 mode;
5008c4901bSRahul Lakkireddy 	u32 map;
5108c4901bSRahul Lakkireddy };
5208c4901bSRahul Lakkireddy 
5380a95a80SRahul Lakkireddy #define SGE_QBASE_DATA_REG_NUM 4
5480a95a80SRahul Lakkireddy 
5580a95a80SRahul Lakkireddy struct sge_qbase_reg_field {
5680a95a80SRahul Lakkireddy 	u32 reg_addr;
5780a95a80SRahul Lakkireddy 	u32 reg_data[SGE_QBASE_DATA_REG_NUM];
5880a95a80SRahul Lakkireddy 	/* Max supported PFs */
5980a95a80SRahul Lakkireddy 	u32 pf_data_value[PCIE_FW_MASTER_M + 1][SGE_QBASE_DATA_REG_NUM];
6080a95a80SRahul Lakkireddy 	/* Max supported VFs */
6180a95a80SRahul Lakkireddy 	u32 vf_data_value[T6_VF_M + 1][SGE_QBASE_DATA_REG_NUM];
6280a95a80SRahul Lakkireddy 	u32 vfcount; /* Actual number of max vfs in current configuration */
6380a95a80SRahul Lakkireddy };
6480a95a80SRahul Lakkireddy 
654359cf33SRahul Lakkireddy struct ireg_field {
664359cf33SRahul Lakkireddy 	u32 ireg_addr;
674359cf33SRahul Lakkireddy 	u32 ireg_data;
684359cf33SRahul Lakkireddy 	u32 ireg_local_offset;
694359cf33SRahul Lakkireddy 	u32 ireg_offset_range;
704359cf33SRahul Lakkireddy };
714359cf33SRahul Lakkireddy 
724359cf33SRahul Lakkireddy struct ireg_buf {
734359cf33SRahul Lakkireddy 	struct ireg_field tp_pio;
744359cf33SRahul Lakkireddy 	u32 outbuf[32];
754359cf33SRahul Lakkireddy };
764359cf33SRahul Lakkireddy 
7727887bc7SRahul Lakkireddy struct cudbg_ulprx_la {
7827887bc7SRahul Lakkireddy 	u32 data[ULPRX_LA_SIZE * 8];
7927887bc7SRahul Lakkireddy 	u32 size;
8027887bc7SRahul Lakkireddy };
8127887bc7SRahul Lakkireddy 
8227887bc7SRahul Lakkireddy struct cudbg_tp_la {
8327887bc7SRahul Lakkireddy 	u32 size;
8427887bc7SRahul Lakkireddy 	u32 mode;
85*65dc2f1aSGustavo A. R. Silva 	u8 data[];
8627887bc7SRahul Lakkireddy };
8727887bc7SRahul Lakkireddy 
88123e25c4SRahul Lakkireddy static const char * const cudbg_region[] = {
89123e25c4SRahul Lakkireddy 	"DBQ contexts:", "IMSG contexts:", "FLM cache:", "TCBs:",
90123e25c4SRahul Lakkireddy 	"Pstructs:", "Timers:", "Rx FL:", "Tx FL:", "Pstruct FL:",
91123e25c4SRahul Lakkireddy 	"Tx payload:", "Rx payload:", "LE hash:", "iSCSI region:",
92123e25c4SRahul Lakkireddy 	"TDDP region:", "TPT region:", "STAG region:", "RQ region:",
93123e25c4SRahul Lakkireddy 	"RQUDP region:", "PBL region:", "TXPBL region:",
94123e25c4SRahul Lakkireddy 	"DBVFIFO region:", "ULPRX state:", "ULPTX state:",
95123e25c4SRahul Lakkireddy 	"On-chip queues:"
96123e25c4SRahul Lakkireddy };
97123e25c4SRahul Lakkireddy 
98c1219653SRahul Lakkireddy /* Memory region info relative to current memory (i.e. wrt 0). */
99c1219653SRahul Lakkireddy struct cudbg_region_info {
100c1219653SRahul Lakkireddy 	bool exist; /* Does region exists in current memory? */
101c1219653SRahul Lakkireddy 	u32 start;  /* Start wrt 0 */
102c1219653SRahul Lakkireddy 	u32 end;    /* End wrt 0 */
103c1219653SRahul Lakkireddy };
104c1219653SRahul Lakkireddy 
105123e25c4SRahul Lakkireddy struct cudbg_mem_desc {
106123e25c4SRahul Lakkireddy 	u32 base;
107123e25c4SRahul Lakkireddy 	u32 limit;
108123e25c4SRahul Lakkireddy 	u32 idx;
109123e25c4SRahul Lakkireddy };
110123e25c4SRahul Lakkireddy 
1119d0f180cSRahul Lakkireddy #define CUDBG_MEMINFO_REV 1
1129d0f180cSRahul Lakkireddy 
113123e25c4SRahul Lakkireddy struct cudbg_meminfo {
114123e25c4SRahul Lakkireddy 	struct cudbg_mem_desc avail[4];
115123e25c4SRahul Lakkireddy 	struct cudbg_mem_desc mem[ARRAY_SIZE(cudbg_region) + 3];
116123e25c4SRahul Lakkireddy 	u32 avail_c;
117123e25c4SRahul Lakkireddy 	u32 mem_c;
118123e25c4SRahul Lakkireddy 	u32 up_ram_lo;
119123e25c4SRahul Lakkireddy 	u32 up_ram_hi;
120123e25c4SRahul Lakkireddy 	u32 up_extmem2_lo;
121123e25c4SRahul Lakkireddy 	u32 up_extmem2_hi;
122123e25c4SRahul Lakkireddy 	u32 rx_pages_data[3];
123123e25c4SRahul Lakkireddy 	u32 tx_pages_data[4];
124123e25c4SRahul Lakkireddy 	u32 p_structs;
125123e25c4SRahul Lakkireddy 	u32 reserved[12];
126123e25c4SRahul Lakkireddy 	u32 port_used[4];
127123e25c4SRahul Lakkireddy 	u32 port_alloc[4];
128123e25c4SRahul Lakkireddy 	u32 loopback_used[NCHAN];
129123e25c4SRahul Lakkireddy 	u32 loopback_alloc[NCHAN];
1309d0f180cSRahul Lakkireddy 	u32 p_structs_free_cnt;
131ae2a922fSRahul Lakkireddy 	u32 free_rx_cnt;
132ae2a922fSRahul Lakkireddy 	u32 free_tx_cnt;
133123e25c4SRahul Lakkireddy };
134123e25c4SRahul Lakkireddy 
13527887bc7SRahul Lakkireddy struct cudbg_cim_pif_la {
13627887bc7SRahul Lakkireddy 	int size;
137*65dc2f1aSGustavo A. R. Silva 	u8 data[];
13827887bc7SRahul Lakkireddy };
13927887bc7SRahul Lakkireddy 
1406f92a654SRahul Lakkireddy struct cudbg_clk_info {
1416f92a654SRahul Lakkireddy 	u64 retransmit_min;
1426f92a654SRahul Lakkireddy 	u64 retransmit_max;
1436f92a654SRahul Lakkireddy 	u64 persist_timer_min;
1446f92a654SRahul Lakkireddy 	u64 persist_timer_max;
1456f92a654SRahul Lakkireddy 	u64 keepalive_idle_timer;
1466f92a654SRahul Lakkireddy 	u64 keepalive_interval;
1476f92a654SRahul Lakkireddy 	u64 initial_srtt;
1486f92a654SRahul Lakkireddy 	u64 finwait2_timer;
1496f92a654SRahul Lakkireddy 	u32 dack_timer;
1506f92a654SRahul Lakkireddy 	u32 res;
1516f92a654SRahul Lakkireddy 	u32 cclk_ps;
1526f92a654SRahul Lakkireddy 	u32 tre;
1536f92a654SRahul Lakkireddy 	u32 dack_re;
1546f92a654SRahul Lakkireddy };
1556f92a654SRahul Lakkireddy 
1569030e498SRahul Lakkireddy struct cudbg_tid_info_region {
1579030e498SRahul Lakkireddy 	u32 ntids;
1589030e498SRahul Lakkireddy 	u32 nstids;
1599030e498SRahul Lakkireddy 	u32 stid_base;
1609030e498SRahul Lakkireddy 	u32 hash_base;
1619030e498SRahul Lakkireddy 
1629030e498SRahul Lakkireddy 	u32 natids;
1639030e498SRahul Lakkireddy 	u32 nftids;
1649030e498SRahul Lakkireddy 	u32 ftid_base;
1659030e498SRahul Lakkireddy 	u32 aftid_base;
1669030e498SRahul Lakkireddy 	u32 aftid_end;
1679030e498SRahul Lakkireddy 
1689030e498SRahul Lakkireddy 	u32 sftid_base;
1699030e498SRahul Lakkireddy 	u32 nsftids;
1709030e498SRahul Lakkireddy 
1719030e498SRahul Lakkireddy 	u32 uotid_base;
1729030e498SRahul Lakkireddy 	u32 nuotids;
1739030e498SRahul Lakkireddy 
1749030e498SRahul Lakkireddy 	u32 sb;
1759030e498SRahul Lakkireddy 	u32 flags;
1769030e498SRahul Lakkireddy 	u32 le_db_conf;
1779030e498SRahul Lakkireddy 	u32 ip_users;
1789030e498SRahul Lakkireddy 	u32 ipv6_users;
1799030e498SRahul Lakkireddy 
1809030e498SRahul Lakkireddy 	u32 hpftid_base;
1819030e498SRahul Lakkireddy 	u32 nhpftids;
1829030e498SRahul Lakkireddy };
1839030e498SRahul Lakkireddy 
1849030e498SRahul Lakkireddy #define CUDBG_TID_INFO_REV 1
1859030e498SRahul Lakkireddy 
1869030e498SRahul Lakkireddy struct cudbg_tid_info_region_rev1 {
1879030e498SRahul Lakkireddy 	struct cudbg_ver_hdr ver_hdr;
1889030e498SRahul Lakkireddy 	struct cudbg_tid_info_region tid;
1899030e498SRahul Lakkireddy 	u32 tid_start;
1909030e498SRahul Lakkireddy 	u32 reserved[16];
1919030e498SRahul Lakkireddy };
1929030e498SRahul Lakkireddy 
193736c3b94SRahul Lakkireddy #define CUDBG_LOWMEM_MAX_CTXT_QIDS 256
1949e5c598cSRahul Lakkireddy #define CUDBG_MAX_FL_QIDS 1024
1959e5c598cSRahul Lakkireddy 
1969e5c598cSRahul Lakkireddy struct cudbg_ch_cntxt {
1979e5c598cSRahul Lakkireddy 	u32 cntxt_type;
1989e5c598cSRahul Lakkireddy 	u32 cntxt_id;
1999e5c598cSRahul Lakkireddy 	u32 data[SGE_CTXT_SIZE / 4];
2009e5c598cSRahul Lakkireddy };
2019e5c598cSRahul Lakkireddy 
202b289593eSRahul Lakkireddy #define CUDBG_MAX_RPLC_SIZE 128
203b289593eSRahul Lakkireddy 
204b289593eSRahul Lakkireddy struct cudbg_mps_tcam {
205b289593eSRahul Lakkireddy 	u64 mask;
206b289593eSRahul Lakkireddy 	u32 rplc[8];
207b289593eSRahul Lakkireddy 	u32 idx;
208b289593eSRahul Lakkireddy 	u32 cls_lo;
209b289593eSRahul Lakkireddy 	u32 cls_hi;
210b289593eSRahul Lakkireddy 	u32 rplc_size;
211b289593eSRahul Lakkireddy 	u32 vniy;
212b289593eSRahul Lakkireddy 	u32 vnix;
213b289593eSRahul Lakkireddy 	u32 dip_hit;
214b289593eSRahul Lakkireddy 	u32 vlan_vld;
215b289593eSRahul Lakkireddy 	u32 repli;
216b289593eSRahul Lakkireddy 	u16 ivlan;
217b289593eSRahul Lakkireddy 	u8 addr[ETH_ALEN];
218b289593eSRahul Lakkireddy 	u8 lookup_type;
219b289593eSRahul Lakkireddy 	u8 port_num;
220b289593eSRahul Lakkireddy 	u8 reserved[2];
221b289593eSRahul Lakkireddy };
222b289593eSRahul Lakkireddy 
223940c9c45SRahul Lakkireddy #define CUDBG_VPD_VER_ADDR 0x18c7
224940c9c45SRahul Lakkireddy #define CUDBG_VPD_VER_LEN 2
225940c9c45SRahul Lakkireddy 
2266f92a654SRahul Lakkireddy struct cudbg_vpd_data {
2276f92a654SRahul Lakkireddy 	u8 sn[SERNUM_LEN + 1];
2286f92a654SRahul Lakkireddy 	u8 bn[PN_LEN + 1];
2296f92a654SRahul Lakkireddy 	u8 na[MACADDR_LEN + 1];
2306f92a654SRahul Lakkireddy 	u8 mn[ID_LEN + 1];
2316f92a654SRahul Lakkireddy 	u16 fw_major;
2326f92a654SRahul Lakkireddy 	u16 fw_minor;
2336f92a654SRahul Lakkireddy 	u16 fw_micro;
2346f92a654SRahul Lakkireddy 	u16 fw_build;
2356f92a654SRahul Lakkireddy 	u32 scfg_vers;
2366f92a654SRahul Lakkireddy 	u32 vpd_vers;
2376f92a654SRahul Lakkireddy };
2386f92a654SRahul Lakkireddy 
23903e98b91SRahul Lakkireddy #define CUDBG_MAX_TCAM_TID 0x800
2408e725f7cSRahul Lakkireddy #define CUDBG_T6_CLIP 1536
2418e725f7cSRahul Lakkireddy #define CUDBG_MAX_TID_COMP_EN 6144
2428e725f7cSRahul Lakkireddy #define CUDBG_MAX_TID_COMP_DIS 3072
24303e98b91SRahul Lakkireddy 
24403e98b91SRahul Lakkireddy enum cudbg_le_entry_types {
24503e98b91SRahul Lakkireddy 	LE_ET_UNKNOWN = 0,
24603e98b91SRahul Lakkireddy 	LE_ET_TCAM_CON = 1,
24703e98b91SRahul Lakkireddy 	LE_ET_TCAM_SERVER = 2,
24803e98b91SRahul Lakkireddy 	LE_ET_TCAM_FILTER = 3,
24903e98b91SRahul Lakkireddy 	LE_ET_TCAM_CLIP = 4,
25003e98b91SRahul Lakkireddy 	LE_ET_TCAM_ROUTING = 5,
25103e98b91SRahul Lakkireddy 	LE_ET_HASH_CON = 6,
25203e98b91SRahul Lakkireddy 	LE_ET_INVALID_TID = 8,
25303e98b91SRahul Lakkireddy };
25403e98b91SRahul Lakkireddy 
25503e98b91SRahul Lakkireddy struct cudbg_tcam {
25603e98b91SRahul Lakkireddy 	u32 filter_start;
25703e98b91SRahul Lakkireddy 	u32 server_start;
25803e98b91SRahul Lakkireddy 	u32 clip_start;
25903e98b91SRahul Lakkireddy 	u32 routing_start;
26003e98b91SRahul Lakkireddy 	u32 tid_hash_base;
26103e98b91SRahul Lakkireddy 	u32 max_tid;
26203e98b91SRahul Lakkireddy };
26303e98b91SRahul Lakkireddy 
26403e98b91SRahul Lakkireddy struct cudbg_tid_data {
26503e98b91SRahul Lakkireddy 	u32 tid;
26603e98b91SRahul Lakkireddy 	u32 dbig_cmd;
26703e98b91SRahul Lakkireddy 	u32 dbig_conf;
26803e98b91SRahul Lakkireddy 	u32 dbig_rsp_stat;
26903e98b91SRahul Lakkireddy 	u32 data[NUM_LE_DB_DBGI_RSP_DATA_INSTANCES];
27003e98b91SRahul Lakkireddy };
27103e98b91SRahul Lakkireddy 
27227887bc7SRahul Lakkireddy #define CUDBG_NUM_ULPTX 11
27327887bc7SRahul Lakkireddy #define CUDBG_NUM_ULPTX_READ 512
2741eb94d44SSurendra Mobiya #define CUDBG_NUM_ULPTX_ASIC 6
2751eb94d44SSurendra Mobiya #define CUDBG_NUM_ULPTX_ASIC_READ 128
2761eb94d44SSurendra Mobiya 
2771eb94d44SSurendra Mobiya #define CUDBG_ULPTX_LA_REV 1
27827887bc7SRahul Lakkireddy 
27927887bc7SRahul Lakkireddy struct cudbg_ulptx_la {
28027887bc7SRahul Lakkireddy 	u32 rdptr[CUDBG_NUM_ULPTX];
28127887bc7SRahul Lakkireddy 	u32 wrptr[CUDBG_NUM_ULPTX];
28227887bc7SRahul Lakkireddy 	u32 rddata[CUDBG_NUM_ULPTX];
28327887bc7SRahul Lakkireddy 	u32 rd_data[CUDBG_NUM_ULPTX][CUDBG_NUM_ULPTX_READ];
2841eb94d44SSurendra Mobiya 	u32 rdptr_asic[CUDBG_NUM_ULPTX_ASIC_READ];
2851eb94d44SSurendra Mobiya 	u32 rddata_asic[CUDBG_NUM_ULPTX_ASIC_READ][CUDBG_NUM_ULPTX_ASIC];
28627887bc7SRahul Lakkireddy };
28727887bc7SRahul Lakkireddy 
288db8cd7ceSRahul Lakkireddy #define CUDBG_CHAC_PBT_ADDR 0x2800
289db8cd7ceSRahul Lakkireddy #define CUDBG_CHAC_PBT_LRF  0x3000
290db8cd7ceSRahul Lakkireddy #define CUDBG_CHAC_PBT_DATA 0x3800
291db8cd7ceSRahul Lakkireddy #define CUDBG_PBT_DYNAMIC_ENTRIES 8
292db8cd7ceSRahul Lakkireddy #define CUDBG_PBT_STATIC_ENTRIES 16
293db8cd7ceSRahul Lakkireddy #define CUDBG_LRF_ENTRIES 8
294db8cd7ceSRahul Lakkireddy #define CUDBG_PBT_DATA_ENTRIES 512
295db8cd7ceSRahul Lakkireddy 
296db8cd7ceSRahul Lakkireddy struct cudbg_pbt_tables {
297db8cd7ceSRahul Lakkireddy 	u32 pbt_dynamic[CUDBG_PBT_DYNAMIC_ENTRIES];
298db8cd7ceSRahul Lakkireddy 	u32 pbt_static[CUDBG_PBT_STATIC_ENTRIES];
299db8cd7ceSRahul Lakkireddy 	u32 lrf_table[CUDBG_LRF_ENTRIES];
300db8cd7ceSRahul Lakkireddy 	u32 pbt_data[CUDBG_PBT_DATA_ENTRIES];
301db8cd7ceSRahul Lakkireddy };
302db8cd7ceSRahul Lakkireddy 
30368ddc82aSRahul Lakkireddy enum cudbg_qdesc_qtype {
30468ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_UNKNOWN = 0,
30568ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_NIC_TXQ,
30668ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_NIC_RXQ,
30768ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_NIC_FLQ,
30868ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_CTRLQ,
30968ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_FWEVTQ,
31068ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_INTRQ,
31168ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_PTP_TXQ,
31268ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_OFLD_TXQ,
31368ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_RDMA_RXQ,
31468ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_RDMA_FLQ,
31568ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_RDMA_CIQ,
31668ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_ISCSI_RXQ,
31768ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_ISCSI_FLQ,
31868ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_ISCSIT_RXQ,
31968ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_ISCSIT_FLQ,
32068ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_CRYPTO_TXQ,
32168ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_CRYPTO_RXQ,
32268ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_CRYPTO_FLQ,
32368ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_TLS_RXQ,
32468ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_TLS_FLQ,
3252d0cb84dSRahul Lakkireddy 	CUDBG_QTYPE_ETHOFLD_TXQ,
3262d0cb84dSRahul Lakkireddy 	CUDBG_QTYPE_ETHOFLD_RXQ,
3272d0cb84dSRahul Lakkireddy 	CUDBG_QTYPE_ETHOFLD_FLQ,
32868ddc82aSRahul Lakkireddy 	CUDBG_QTYPE_MAX,
32968ddc82aSRahul Lakkireddy };
33068ddc82aSRahul Lakkireddy 
33168ddc82aSRahul Lakkireddy #define CUDBG_QDESC_REV 1
33268ddc82aSRahul Lakkireddy 
33368ddc82aSRahul Lakkireddy struct cudbg_qdesc_entry {
33468ddc82aSRahul Lakkireddy 	u32 data_size;
33568ddc82aSRahul Lakkireddy 	u32 qtype;
33668ddc82aSRahul Lakkireddy 	u32 qid;
33768ddc82aSRahul Lakkireddy 	u32 desc_size;
33868ddc82aSRahul Lakkireddy 	u32 num_desc;
339*65dc2f1aSGustavo A. R. Silva 	u8 data[]; /* Must be last */
34068ddc82aSRahul Lakkireddy };
34168ddc82aSRahul Lakkireddy 
34268ddc82aSRahul Lakkireddy struct cudbg_qdesc_info {
34368ddc82aSRahul Lakkireddy 	u32 qdesc_entry_size;
34468ddc82aSRahul Lakkireddy 	u32 num_queues;
345*65dc2f1aSGustavo A. R. Silva 	u8 data[]; /* Must be last */
34668ddc82aSRahul Lakkireddy };
34768ddc82aSRahul Lakkireddy 
3484359cf33SRahul Lakkireddy #define IREG_NUM_ELEM 4
3494359cf33SRahul Lakkireddy 
3506078ab19SRahul Lakkireddy #define CUDBG_NUM_PCIE_CONFIG_REGS 0x61
3516078ab19SRahul Lakkireddy 
352b33af022SRahul Lakkireddy #endif /* __CUDBG_ENTITY_H__ */
353