#ifndef __CUDBG_ENTITY_H__
#define __CUDBG_ENTITY_H__
#include "common.h"
#ifdef __GNUC__
#define ATTRIBUTE_UNUSED __attribute__ ((unused))
#else
#define ATTRIBUTE_UNUSED
#endif
#define MC0_FLAG 1
#define MC1_FLAG 2
#define EDC0_FLAG 3
#define EDC1_FLAG 4
#define NUM_PCIE_CONFIG_REGS 0x61
#define CUDBG_CTXT_SIZE_BYTES 24
#define CUDBG_MAX_INGRESS_QIDS 65536
#define CUDBG_MAX_FL_QIDS 2048
#define CUDBG_MAX_CNM_QIDS 1024
#define CUDBG_LOWMEM_MAX_CTXT_QIDS 256
#define ETH_ALEN 6
#define CUDBG_MAX_RPLC_SIZE 128
#define CUDBG_NUM_REQ_REGS 17
#define CUDBG_MAX_TCAM_TID 0x800
#define CUDBG_NUM_ULPTX 11
#define SN_REG_ADDR 0x183f
#define BN_REG_ADDR 0x1819
#define NA_REG_ADDR 0x185a
#define MN_REG_ADDR 0x1803
#define A_MPS_VF_RPLCT_MAP0 0x1111c
#define A_MPS_VF_RPLCT_MAP1 0x11120
#define A_MPS_VF_RPLCT_MAP2 0x11124
#define A_MPS_VF_RPLCT_MAP3 0x11128
#define A_MPS_VF_RPLCT_MAP4 0x11300
#define A_MPS_VF_RPLCT_MAP5 0x11304
#define A_MPS_VF_RPLCT_MAP6 0x11308
#define A_MPS_VF_RPLCT_MAP7 0x1130c
#define PORT_TYPE_ADDR 0x1869
#define PORT_TYPE_LEN 8
#define SN_T6_ADDR 0x83f
#define BN_T6_ADDR 0x819
#define NA_T6_ADDR 0x85a
#define MN_T6_ADDR 0x803
#define SN_MAX_LEN 24
#define BN_MAX_LEN 16
#define NA_MAX_LEN 12
#define MN_MAX_LEN 16
#define MAX_VPD_DATA_LEN 32
#define VPD_VER_ADDR 0x18c7
#define VPD_VER_LEN 2
#define SCFG_VER_ADDR 0x06
#define SCFG_VER_LEN 4
#define CUDBG_CIM_BUSY_BIT (1 << 17)
#define CUDBG_CHAC_PBT_ADDR 0x2800
#define CUDBG_CHAC_PBT_LRF 0x3000
#define CUDBG_CHAC_PBT_DATA 0x3800
#define CUDBG_PBT_DYNAMIC_ENTRIES 8
#define CUDBG_PBT_STATIC_ENTRIES 16
#define CUDBG_LRF_ENTRIES 8
#define CUDBG_PBT_DATA_ENTRIES 512
#define CUDBG_ENTITY_SIGNATURE 0xCCEDB001
#define CUDBG_TID_INFO_REV 1
#define CUDBG_MAC_STATS_REV 1
#define CUDBG_ULPTX_LA_REV 1
#define CUDBG_MEMINFO_REV 1
#define CUDBG_ULPTX_LA_REV 1
#define CUDBG_T6_CLIP 1536
#define CUDBG_MAX_TID_COMP_EN 6144
#define CUDBG_MAX_TID_COMP_DIS 3072
#define CUDBG_NUM_ULPTX_READ 512
#define CUDBG_NUM_ULPTX_ASIC 6
#define CUDBG_NUM_ULPTX_ASIC_READ 128
#ifndef ARRAY_SIZE
#define ARRAY_SIZE(_a) (sizeof((_a)) / sizeof((_a)[0]))
#endif
enum cudbg_qdesc_qtype {
CUDBG_QTYPE_UNKNOWN = 0,
CUDBG_QTYPE_NIC_TXQ,
CUDBG_QTYPE_NIC_RXQ,
CUDBG_QTYPE_NIC_FLQ,
CUDBG_QTYPE_CTRLQ,
CUDBG_QTYPE_FWEVTQ,
CUDBG_QTYPE_INTRQ,
CUDBG_QTYPE_PTP_TXQ,
CUDBG_QTYPE_OFLD_TXQ,
CUDBG_QTYPE_RDMA_RXQ,
CUDBG_QTYPE_RDMA_FLQ,
CUDBG_QTYPE_RDMA_CIQ,
CUDBG_QTYPE_ISCSI_RXQ,
CUDBG_QTYPE_ISCSI_FLQ,
CUDBG_QTYPE_ISCSIT_RXQ,
CUDBG_QTYPE_ISCSIT_FLQ,
CUDBG_QTYPE_CRYPTO_TXQ,
CUDBG_QTYPE_CRYPTO_RXQ,
CUDBG_QTYPE_CRYPTO_FLQ,
CUDBG_QTYPE_TLS_RXQ,
CUDBG_QTYPE_TLS_FLQ,
CUDBG_QTYPE_MAX,
};
struct cudbg_pbt_tables {
u32 pbt_dynamic[CUDBG_PBT_DYNAMIC_ENTRIES];
u32 pbt_static[CUDBG_PBT_STATIC_ENTRIES];
u32 lrf_table[CUDBG_LRF_ENTRIES];
u32 pbt_data[CUDBG_PBT_DATA_ENTRIES];
};
struct card_mem {
u16 size_mc0;
u16 size_mc1;
u16 size_edc0;
u16 size_edc1;
u16 mem_flag;
u16 res;
};
struct rss_pf_conf {
u32 rss_pf_map;
u32 rss_pf_mask;
u32 rss_pf_config;
};
struct cudbg_ch_cntxt {
uint32_t cntxt_type;
uint32_t cntxt_id;
uint32_t data[SGE_CTXT_SIZE / 4];
};
struct cudbg_tcam {
u32 filter_start;
u32 server_start;
u32 clip_start;
u32 routing_start;
u32 tid_hash_base;
u32 max_tid;
};
struct cudbg_mbox_log {
struct mbox_cmd entry;
u32 hi[MBOX_LEN / 8];
u32 lo[MBOX_LEN / 8];
};
struct cudbg_tid_data {
u32 tid;
u32 dbig_cmd;
u32 dbig_conf;
u32 dbig_rsp_stat;
u32 data[CUDBG_NUM_REQ_REGS];
};
struct cudbg_cntxt_field {
char *name;
u32 start_bit;
u32 end_bit;
u32 shift;
u32 islog2;
};
struct cudbg_mps_tcam {
u64 mask;
u32 rplc[8];
u32 idx;
u32 cls_lo;
u32 cls_hi;
u32 rplc_size;
u32 vniy;
u32 vnix;
u32 dip_hit;
u32 vlan_vld;
u32 repli;
u16 ivlan;
u8 addr[ETH_ALEN];
u8 lookup_type;
u8 port_num;
u8 reserved[2];
};
struct rss_vf_conf {
u32 rss_vf_vfl;
u32 rss_vf_vfh;
};
struct rss_config {
u32 tp_rssconf;
u32 tp_rssconf_tnl;
u32 tp_rssconf_ofd;
u32 tp_rssconf_syn;
u32 tp_rssconf_vrt;
u32 tp_rssconf_cng;
u32 chip;
};
struct struct_pm_stats {
u32 tx_cnt[T6_PM_NSTATS];
u32 rx_cnt[T6_PM_NSTATS];
u64 tx_cyc[T6_PM_NSTATS];
u64 rx_cyc[T6_PM_NSTATS];
};
struct struct_hw_sched {
u32 kbps[NTX_SCHED];
u32 ipg[NTX_SCHED];
u32 pace_tab[NTX_SCHED];
u32 mode;
u32 map;
};
struct struct_tcp_stats {
struct tp_tcp_stats v4, v6;
};
struct struct_tp_err_stats {
struct tp_err_stats stats;
u32 nchan;
};
struct struct_tp_fcoe_stats {
struct tp_fcoe_stats stats[4];
u32 nchan;
};
struct struct_mac_stats {
u32 port_count;
struct port_stats stats[4];
};
struct struct_mac_stats_rev1 {
struct cudbg_ver_hdr ver_hdr;
u32 port_count;
u32 reserved;
struct port_stats stats[4];
};
struct struct_tp_cpl_stats {
struct tp_cpl_stats stats;
u32 nchan;
};
struct struct_wc_stats {
u32 wr_cl_success;
u32 wr_cl_fail;
};
struct struct_ulptx_la {
u32 rdptr[CUDBG_NUM_ULPTX];
u32 wrptr[CUDBG_NUM_ULPTX];
u32 rddata[CUDBG_NUM_ULPTX];
u32 rd_data[CUDBG_NUM_ULPTX][CUDBG_NUM_ULPTX_READ];
u32 rdptr_asic[CUDBG_NUM_ULPTX_ASIC_READ];
u32 rddata_asic[CUDBG_NUM_ULPTX_ASIC_READ][CUDBG_NUM_ULPTX_ASIC];
};
struct struct_ulprx_la {
u32 data[ULPRX_LA_SIZE * 8];
u32 size;
};
struct struct_cim_qcfg {
u8 chip;
u16 base[CIM_NUM_IBQ + CIM_NUM_OBQ_T5];
u16 size[CIM_NUM_IBQ + CIM_NUM_OBQ_T5];
u16 thres[CIM_NUM_IBQ];
u32 obq_wr[2 * CIM_NUM_OBQ_T5];
u32 stat[4 * (CIM_NUM_IBQ + CIM_NUM_OBQ_T5)];
};
enum region_index {
REGN_DBQ_CONTEXS_IDX,
REGN_IMSG_CONTEXTS_IDX,
REGN_FLM_CACHE_IDX,
REGN_TCBS_IDX,
REGN_PSTRUCT_IDX,
REGN_TIMERS_IDX,
REGN_RX_FL_IDX,
REGN_TX_FL_IDX,
REGN_PSTRUCT_FL_IDX,
REGN_TX_PAYLOAD_IDX,
REGN_RX_PAYLOAD_IDX,
REGN_LE_HASH_IDX,
REGN_ISCSI_IDX,
REGN_TDDP_IDX,
REGN_TPT_IDX,
REGN_STAG_IDX,
REGN_RQ_IDX,
REGN_RQUDP_IDX,
REGN_PBL_IDX,
REGN_TXPBL_IDX,
REGN_DBVFIFO_IDX,
REGN_ULPRX_STATE_IDX,
REGN_ULPTX_STATE_IDX,
#ifndef __NO_DRIVER_OCQ_SUPPORT__
REGN_ON_CHIP_Q_IDX,
#endif
};
struct cudbg_qdesc_info {
u32 qdesc_entry_size;
u32 num_queues;
u8 data[0];
};
static const char * const region[] = {
"DBQ contexts:", "IMSG contexts:", "FLM cache:", "TCBs:",
"Pstructs:", "Timers:", "Rx FL:", "Tx FL:", "Pstruct FL:",
"Tx payload:", "Rx payload:", "LE hash:", "iSCSI region:",
"TDDP region:", "TPT region:", "STAG region:", "RQ region:",
"RQUDP region:", "PBL region:", "TXPBL region:",
"DBVFIFO region:", "ULPRX state:", "ULPTX state:",
#ifndef __NO_DRIVER_OCQ_SUPPORT__
"On-chip queues:"
#endif
};
struct struct_region_info {
bool exist;
u32 start;
u32 end;
};
struct struct_port_usage {
u32 id;
u32 used;
u32 alloc;
};
struct struct_lpbk_usage {
u32 id;
u32 used;
u32 alloc;
};
struct struct_mem_desc {
u32 base;
u32 limit;
u32 idx;
};
enum string_size_units {
STRING_UNITS_10,
STRING_UNITS_2,
};
struct struct_meminfo {
struct struct_mem_desc avail[4];
struct struct_mem_desc mem[ARRAY_SIZE(region) + 3];
u32 avail_c;
u32 mem_c;
u32 up_ram_lo;
u32 up_ram_hi;
u32 up_extmem2_lo;
u32 up_extmem2_hi;
u32 rx_pages_data[3];
u32 tx_pages_data[4];
u32 p_structs;
struct struct_port_usage port_data[4];
u32 port_used[4];
u32 port_alloc[4];
u32 loopback_used[NCHAN];
u32 loopback_alloc[NCHAN];
u32 pstructs_free_cnt;
u32 free_rx_cnt;
u32 free_tx_cnt;
};
#ifndef __GNUC__
#pragma warning(disable : 4200)
#endif
struct struct_lb_stats {
int nchan;
struct lb_port_stats s[0];
};
struct struct_clk_info {
u64 retransmit_min;
u64 retransmit_max;
u64 persist_timer_min;
u64 persist_timer_max;
u64 keepalive_idle_timer;
u64 keepalive_interval;
u64 initial_srtt;
u64 finwait2_timer;
u32 dack_timer;
u32 res;
u32 cclk_ps;
u32 tre;
u32 dack_re;
char core_clk_period[32];
char tp_timer_tick[32];
char tcp_tstamp_tick[32];
char dack_tick[32];
};
struct cim_pif_la {
int size;
u8 data[0];
};
struct struct_tp_la {
u32 size;
u32 mode;
u8 data[0];
};
struct field_desc {
const char *name;
u32 start;
u32 width;
};
struct tp_mib_type {
char *key;
u32 addr;
u32 value;
};
struct wtp_type_0 {
u32 sop;
u32 eop;
};
struct wtp_type_1 {
u32 sop[2];
u32 eop[2];
};
struct wtp_type_2 {
u32 sop[4];
u32 eop[4];
};
struct wtp_type_3 {
u32 sop[4];
u32 eop[4];
u32 drops;
};
struct wtp_data {
struct wtp_type_1 sge_pcie_cmd_req;
struct wtp_type_1 pcie_core_cmd_req;
struct wtp_type_1 core_pcie_cmd_rsp;
struct wtp_type_1 pcie_sge_cmd_rsp;
struct wtp_type_1 sge_cim;
struct wtp_type_2 utx_sge_dma_req;
struct wtp_type_2 sge_pcie_dma_req;
struct wtp_type_2 pcie_core_dma_req;
struct wtp_type_2 core_pcie_dma_rsp;
struct wtp_type_2 pcie_sge_dma_rsp;
struct wtp_type_2 sge_utx;
struct wtp_type_2 utx_tp;
struct wtp_type_2 utx_tpcside;
struct wtp_type_2 tpcside_rxpld;
struct wtp_type_2 tpcside_rxarb;
struct wtp_type_2 tpcside_rxcpl;
struct wtp_type_2 tpeside_mps;
struct wtp_type_2 tpeside_pm;
struct wtp_type_2 tpeside_pld;
struct wtp_type_2 pcie_t5_dma_stat3;
struct wtp_type_2 sge_debug_data_high_index_6;
struct wtp_type_2 sge_debug_data_high_index_3;
struct wtp_type_2 ulp_se_cnt_chx;
struct wtp_type_2 pcie_cmd_stat2;
struct wtp_type_2 pcie_cmd_stat3;
struct wtp_type_2 pcie_dma1_stat2_core;
struct wtp_type_1 sge_work_req_pkt;
struct wtp_type_2 sge_debug_data_high_indx5;
struct wtp_type_2 mac_portx_pkt_count;
struct wtp_type_2 mac_porrx_pkt_count;
struct wtp_type_2 pcie_dma1_stat2;
struct wtp_type_2 sge_debug_data_high_indx7;
struct wtp_type_1 sge_debug_data_high_indx1;
struct wtp_type_1 utx_tpcside_tx;
struct wtp_type_0 le_db_rsp_cnt;
struct wtp_type_2 tp_dbg_eside_pktx;
struct wtp_type_1 sge_debug_data_high_indx9;
struct wtp_type_2 mac_portx_aframestra_ok;
struct wtp_type_2 mac_porrx_aframestra_ok;
struct wtp_type_1 mac_portx_etherstatspkts;
struct wtp_type_1 mac_porrx_etherstatspkts;
struct wtp_type_3 tp_mps;
struct wtp_type_3 mps_xgm;
struct wtp_type_2 tx_xgm_xgm;
struct wtp_type_2 xgm_wire;
struct wtp_type_2 wire_xgm;
struct wtp_type_2 rx_xgm_xgm;
struct _xgm_mps {
u32 sop[8];
u32 eop[8];
u32 drop;
u32 cls_drop;
u32 err;
u32 bp;
} xgm_mps;
struct wtp_type_3 mps_tp;
struct wtp_type_2 mps_tpeside;
struct wtp_type_1 tpeside_pmrx;
struct wtp_type_2 pmrx_ulprx;
struct wtp_type_2 ulprx_tpcside;
struct wtp_type_2 tpcside_csw;
struct wtp_type_2 tpcside_pm;
struct wtp_type_2 tpcside_uturn;
struct wtp_type_2 tpcside_txcpl;
struct wtp_type_1 tp_csw;
struct wtp_type_1 csw_sge;
struct wtp_type_2 sge_pcie;
struct wtp_type_2 sge_pcie_ints;
struct wtp_type_2 pcie_core_dmaw;
struct wtp_type_2 pcie_core_dmai;
};
struct tp_mib_data {
struct tp_mib_type TP_MIB_MAC_IN_ERR_0;
struct tp_mib_type TP_MIB_MAC_IN_ERR_1;
struct tp_mib_type TP_MIB_MAC_IN_ERR_2;
struct tp_mib_type TP_MIB_MAC_IN_ERR_3;
struct tp_mib_type TP_MIB_HDR_IN_ERR_0;
struct tp_mib_type TP_MIB_HDR_IN_ERR_1;
struct tp_mib_type TP_MIB_HDR_IN_ERR_2;
struct tp_mib_type TP_MIB_HDR_IN_ERR_3;
struct tp_mib_type TP_MIB_TCP_IN_ERR_0;
struct tp_mib_type TP_MIB_TCP_IN_ERR_1;
struct tp_mib_type TP_MIB_TCP_IN_ERR_2;
struct tp_mib_type TP_MIB_TCP_IN_ERR_3;
struct tp_mib_type TP_MIB_TCP_OUT_RST;
struct tp_mib_type TP_MIB_TCP_IN_SEG_HI;
struct tp_mib_type TP_MIB_TCP_IN_SEG_LO;
struct tp_mib_type TP_MIB_TCP_OUT_SEG_HI;
struct tp_mib_type TP_MIB_TCP_OUT_SEG_LO;
struct tp_mib_type TP_MIB_TCP_RXT_SEG_HI;
struct tp_mib_type TP_MIB_TCP_RXT_SEG_LO;
struct tp_mib_type TP_MIB_TNL_CNG_DROP_0;
struct tp_mib_type TP_MIB_TNL_CNG_DROP_1;
struct tp_mib_type TP_MIB_TNL_CNG_DROP_2;
struct tp_mib_type TP_MIB_TNL_CNG_DROP_3;
struct tp_mib_type TP_MIB_OFD_CHN_DROP_0;
struct tp_mib_type TP_MIB_OFD_CHN_DROP_1;
struct tp_mib_type TP_MIB_OFD_CHN_DROP_2;
struct tp_mib_type TP_MIB_OFD_CHN_DROP_3;
struct tp_mib_type TP_MIB_TNL_OUT_PKT_0;
struct tp_mib_type TP_MIB_TNL_OUT_PKT_1;
struct tp_mib_type TP_MIB_TNL_OUT_PKT_2;
struct tp_mib_type TP_MIB_TNL_OUT_PKT_3;
struct tp_mib_type TP_MIB_TNL_IN_PKT_0;
struct tp_mib_type TP_MIB_TNL_IN_PKT_1;
struct tp_mib_type TP_MIB_TNL_IN_PKT_2;
struct tp_mib_type TP_MIB_TNL_IN_PKT_3;
struct tp_mib_type TP_MIB_TCP_V6IN_ERR_0;
struct tp_mib_type TP_MIB_TCP_V6IN_ERR_1;
struct tp_mib_type TP_MIB_TCP_V6IN_ERR_2;
struct tp_mib_type TP_MIB_TCP_V6IN_ERR_3;
struct tp_mib_type TP_MIB_TCP_V6OUT_RST;
struct tp_mib_type TP_MIB_TCP_V6IN_SEG_HI;
struct tp_mib_type TP_MIB_TCP_V6IN_SEG_LO;
struct tp_mib_type TP_MIB_TCP_V6OUT_SEG_HI;
struct tp_mib_type TP_MIB_TCP_V6OUT_SEG_LO;
struct tp_mib_type TP_MIB_TCP_V6RXT_SEG_HI;
struct tp_mib_type TP_MIB_TCP_V6RXT_SEG_LO;
struct tp_mib_type TP_MIB_OFD_ARP_DROP;
struct tp_mib_type TP_MIB_OFD_DFR_DROP;
struct tp_mib_type TP_MIB_CPL_IN_REQ_0;
struct tp_mib_type TP_MIB_CPL_IN_REQ_1;
struct tp_mib_type TP_MIB_CPL_IN_REQ_2;
struct tp_mib_type TP_MIB_CPL_IN_REQ_3;
struct tp_mib_type TP_MIB_CPL_OUT_RSP_0;
struct tp_mib_type TP_MIB_CPL_OUT_RSP_1;
struct tp_mib_type TP_MIB_CPL_OUT_RSP_2;
struct tp_mib_type TP_MIB_CPL_OUT_RSP_3;
struct tp_mib_type TP_MIB_TNL_LPBK_0;
struct tp_mib_type TP_MIB_TNL_LPBK_1;
struct tp_mib_type TP_MIB_TNL_LPBK_2;
struct tp_mib_type TP_MIB_TNL_LPBK_3;
struct tp_mib_type TP_MIB_TNL_DROP_0;
struct tp_mib_type TP_MIB_TNL_DROP_1;
struct tp_mib_type TP_MIB_TNL_DROP_2;
struct tp_mib_type TP_MIB_TNL_DROP_3;
struct tp_mib_type TP_MIB_FCOE_DDP_0;
struct tp_mib_type TP_MIB_FCOE_DDP_1;
struct tp_mib_type TP_MIB_FCOE_DDP_2;
struct tp_mib_type TP_MIB_FCOE_DDP_3;
struct tp_mib_type TP_MIB_FCOE_DROP_0;
struct tp_mib_type TP_MIB_FCOE_DROP_1;
struct tp_mib_type TP_MIB_FCOE_DROP_2;
struct tp_mib_type TP_MIB_FCOE_DROP_3;
struct tp_mib_type TP_MIB_FCOE_BYTE_0_HI;
struct tp_mib_type TP_MIB_FCOE_BYTE_0_LO;
struct tp_mib_type TP_MIB_FCOE_BYTE_1_HI;
struct tp_mib_type TP_MIB_FCOE_BYTE_1_LO;
struct tp_mib_type TP_MIB_FCOE_BYTE_2_HI;
struct tp_mib_type TP_MIB_FCOE_BYTE_2_LO;
struct tp_mib_type TP_MIB_FCOE_BYTE_3_HI;
struct tp_mib_type TP_MIB_FCOE_BYTE_3_LO;
struct tp_mib_type TP_MIB_OFD_VLN_DROP_0;
struct tp_mib_type TP_MIB_OFD_VLN_DROP_1;
struct tp_mib_type TP_MIB_OFD_VLN_DROP_2;
struct tp_mib_type TP_MIB_OFD_VLN_DROP_3;
struct tp_mib_type TP_MIB_USM_PKTS;
struct tp_mib_type TP_MIB_USM_DROP;
struct tp_mib_type TP_MIB_USM_BYTES_HI;
struct tp_mib_type TP_MIB_USM_BYTES_LO;
struct tp_mib_type TP_MIB_TID_DEL;
struct tp_mib_type TP_MIB_TID_INV;
struct tp_mib_type TP_MIB_TID_ACT;
struct tp_mib_type TP_MIB_TID_PAS;
struct tp_mib_type TP_MIB_RQE_DFR_MOD;
struct tp_mib_type TP_MIB_RQE_DFR_PKT;
};
struct cudbg_reg_info {
const char *name;
unsigned int addr;
unsigned int len;
};
struct tp1_reg_info {
char addr[10];
char name[40];
};
struct ireg_field {
u32 ireg_addr;
u32 ireg_data;
u32 ireg_local_offset;
u32 ireg_offset_range;
};
struct ireg_buf {
struct ireg_field tp_pio;
u32 outbuf[32];
};
struct tx_rate {
u64 nrate[NCHAN];
u64 orate[NCHAN];
u32 nchan;
};
struct tid_info_region {
u32 ntids;
u32 nstids;
u32 stid_base;
u32 hash_base;
u32 natids;
u32 nftids;
u32 ftid_base;
u32 aftid_base;
u32 aftid_end;
u32 sftid_base;
u32 nsftids;
u32 uotid_base;
u32 nuotids;
u32 sb;
u32 flags;
u32 le_db_conf;
u32 IP_users;
u32 IPv6_users;
u32 hpftid_base;
u32 nhpftids;
};
struct tid_info_region_rev1 {
struct cudbg_ver_hdr ver_hdr;
struct tid_info_region tid;
u32 tid_start;
u32 reserved[16];
};
struct struct_vpd_data {
u8 sn[SN_MAX_LEN + 1];
u8 bn[BN_MAX_LEN + 1];
u8 na[NA_MAX_LEN + 1];
u8 mn[MN_MAX_LEN + 1];
u16 fw_major;
u16 fw_minor;
u16 fw_micro;
u16 fw_build;
u32 scfg_vers;
u32 vpd_vers;
};
struct sw_state {
u32 fw_state;
u8 caller_string[100];
u8 os_type;
u8 reserved[3];
u32 reserved1[16];
};
struct sge_qbase_reg_field {
u32 reg_addr;
u32 reg_data[4];
u32 pf_data_value[8][4];
u32 vf_data_value[256][4];
u32 vfcount;
};
struct cudbg_qdesc_entry {
u32 data_size;
u32 qtype;
u32 qid;
u32 desc_size;
u32 num_desc;
u8 data[0];
};
static u32 ATTRIBUTE_UNUSED t6_tp_pio_array[][4] = {
{0x7e40, 0x7e44, 0x020, 28},
{0x7e40, 0x7e44, 0x040, 10},
{0x7e40, 0x7e44, 0x050, 10},
{0x7e40, 0x7e44, 0x060, 14},
{0x7e40, 0x7e44, 0x06F, 1},
{0x7e40, 0x7e44, 0x070, 6},
{0x7e40, 0x7e44, 0x130, 18},
{0x7e40, 0x7e44, 0x145, 19},
{0x7e40, 0x7e44, 0x160, 1},
{0x7e40, 0x7e44, 0x230, 25},
{0x7e40, 0x7e44, 0x24a, 3},
{0x7e40, 0x7e44, 0x8C0, 1}
};
static u32 ATTRIBUTE_UNUSED t5_tp_pio_array[][4] = {
{0x7e40, 0x7e44, 0x020, 28},
{0x7e40, 0x7e44, 0x040, 19},
{0x7e40, 0x7e44, 0x054, 2},
{0x7e40, 0x7e44, 0x060, 13},
{0x7e40, 0x7e44, 0x06F, 1},
{0x7e40, 0x7e44, 0x120, 4},
{0x7e40, 0x7e44, 0x12b, 2},
{0x7e40, 0x7e44, 0x12f, 21},
{0x7e40, 0x7e44, 0x145, 19},
{0x7e40, 0x7e44, 0x230, 25},
{0x7e40, 0x7e44, 0x8C0, 1}
};
static u32 ATTRIBUTE_UNUSED t6_ma_ireg_array[][4] = {
{0x78f8, 0x78fc, 0xa000, 23},
{0x78f8, 0x78fc, 0xa400, 30},
{0x78f8, 0x78fc, 0xa800, 20}
};
static u32 ATTRIBUTE_UNUSED t6_ma_ireg_array2[][4] = {
{0x78f8, 0x78fc, 0xe400, 17},
{0x78f8, 0x78fc, 0xe640, 13}
};
static u32 ATTRIBUTE_UNUSED t6_hma_ireg_array[][4] = {
{0x51320, 0x51324, 0xa000, 32}
};
static u32 ATTRIBUTE_UNUSED t5_pcie_pdbg_array[][4] = {
{0x5a04, 0x5a0c, 0x00, 0x20},
{0x5a04, 0x5a0c, 0x21, 0x20},
{0x5a04, 0x5a0c, 0x41, 0x10},
};
static u32 ATTRIBUTE_UNUSED t5_pcie_config_array[][2] = {
{0x0, 0x34},
{0x3c, 0x40},
{0x50, 0x64},
{0x70, 0x80},
{0x94, 0xa0},
{0xb0, 0xb8},
{0xd0, 0xd4},
{0x100, 0x128},
{0x140, 0x148},
{0x150, 0x164},
{0x170, 0x178},
{0x180, 0x194},
{0x1a0, 0x1b8},
{0x1c0, 0x208},
};
static u32 ATTRIBUTE_UNUSED t5_pcie_cdbg_array[][4] = {
{0x5a10, 0x5a18, 0x00, 0x20},
{0x5a10, 0x5a18, 0x21, 0x18},
};
static u32 ATTRIBUTE_UNUSED t6_tp_tm_pio_array[1][4] = {
{0x7e18, 0x7e1c, 0x0, 12}
};
static u32 ATTRIBUTE_UNUSED t5_tp_tm_pio_array[1][4] = {
{0x7e18, 0x7e1c, 0x0, 12}
};
static u32 ATTRIBUTE_UNUSED t5_pm_rx_array[][4] = {
{0x8FD0, 0x8FD4, 0x10000, 0x20},
{0x8FD0, 0x8FD4, 0x10021, 0x0D},
};
static u32 ATTRIBUTE_UNUSED t5_pm_tx_array[][4] = {
{0x8FF0, 0x8FF4, 0x10000, 0x20},
{0x8FF0, 0x8FF4, 0x10021, 0x1D},
};
static u32 ATTRIBUTE_UNUSED t6_tp_mib_index_array[6][4] = {
{0x7e50, 0x7e54, 0x0, 13},
{0x7e50, 0x7e54, 0x10, 6},
{0x7e50, 0x7e54, 0x18, 21},
{0x7e50, 0x7e54, 0x30, 32},
{0x7e50, 0x7e54, 0x50, 22},
{0x7e50, 0x7e54, 0x68, 12}
};
static u32 ATTRIBUTE_UNUSED t5_tp_mib_index_array[9][4] = {
{0x7e50, 0x7e54, 0x0, 13},
{0x7e50, 0x7e54, 0x10, 6},
{0x7e50, 0x7e54, 0x18, 8},
{0x7e50, 0x7e54, 0x20, 13},
{0x7e50, 0x7e54, 0x30, 16},
{0x7e50, 0x7e54, 0x40, 16},
{0x7e50, 0x7e54, 0x50, 16},
{0x7e50, 0x7e54, 0x60, 6},
{0x7e50, 0x7e54, 0x68, 4}
};
static u32 ATTRIBUTE_UNUSED t5_sge_dbg_index_array[9][4] = {
{0x10cc, 0x10d0, 0x0, 16},
{0x10cc, 0x10d4, 0x0, 16},
};
static u32 ATTRIBUTE_UNUSED t6_up_cim_reg_array[][4] = {
{0x7b50, 0x7b54, 0x2000, 0x20},
{0x7b50, 0x7b54, 0x2080, 0x1d},
{0x7b50, 0x7b54, 0x00, 0x20},
{0x7b50, 0x7b54, 0x80, 0x20},
{0x7b50, 0x7b54, 0x100, 0x11},
{0x7b50, 0x7b54, 0x200, 0x10},
{0x7b50, 0x7b54, 0x240, 0x2},
{0x7b50, 0x7b54, 0x250, 0x2},
{0x7b50, 0x7b54, 0x260, 0x2},
{0x7b50, 0x7b54, 0x270, 0x2},
{0x7b50, 0x7b54, 0x280, 0x20},
{0x7b50, 0x7b54, 0x300, 0x20},
{0x7b50, 0x7b54, 0x380, 0x14},
};
static u32 ATTRIBUTE_UNUSED t5_up_cim_reg_array[][4] = {
{0x7b50, 0x7b54, 0x2000, 0x20},
{0x7b50, 0x7b54, 0x2080, 0x19},
{0x7b50, 0x7b54, 0x00, 0x20},
{0x7b50, 0x7b54, 0x80, 0x20},
{0x7b50, 0x7b54, 0x100, 0x11},
{0x7b50, 0x7b54, 0x200, 0x10},
{0x7b50, 0x7b54, 0x240, 0x2},
{0x7b50, 0x7b54, 0x250, 0x2},
{0x7b50, 0x7b54, 0x260, 0x2},
{0x7b50, 0x7b54, 0x270, 0x2},
{0x7b50, 0x7b54, 0x280, 0x20},
{0x7b50, 0x7b54, 0x300, 0x20},
{0x7b50, 0x7b54, 0x380, 0x14},
};
#endif