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