The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/cxgbe/cudbg/cudbg_entity.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

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

Cache object: 760e0e80d1a4a938224da9949cb4295b


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.