Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0+ */
0002 /* Copyright (c) 2018-2019 Hisilicon Limited. */
0003 
0004 #ifndef __HCLGE_DEBUGFS_H
0005 #define __HCLGE_DEBUGFS_H
0006 
0007 #include <linux/etherdevice.h>
0008 #include "hclge_cmd.h"
0009 
0010 #define HCLGE_DBG_MNG_TBL_MAX      64
0011 
0012 #define HCLGE_DBG_MNG_VLAN_MASK_B  BIT(0)
0013 #define HCLGE_DBG_MNG_MAC_MASK_B   BIT(1)
0014 #define HCLGE_DBG_MNG_ETHER_MASK_B BIT(2)
0015 #define HCLGE_DBG_MNG_E_TYPE_B     BIT(11)
0016 #define HCLGE_DBG_MNG_DROP_B       BIT(13)
0017 #define HCLGE_DBG_MNG_VLAN_TAG     0x0FFF
0018 #define HCLGE_DBG_MNG_PF_ID    0x0007
0019 #define HCLGE_DBG_MNG_VF_ID    0x00FF
0020 
0021 /* Get DFX BD number offset */
0022 #define HCLGE_DBG_DFX_BIOS_OFFSET  1
0023 #define HCLGE_DBG_DFX_SSU_0_OFFSET 2
0024 #define HCLGE_DBG_DFX_SSU_1_OFFSET 3
0025 #define HCLGE_DBG_DFX_IGU_OFFSET   4
0026 #define HCLGE_DBG_DFX_RPU_0_OFFSET 5
0027 
0028 #define HCLGE_DBG_DFX_RPU_1_OFFSET 6
0029 #define HCLGE_DBG_DFX_NCSI_OFFSET  7
0030 #define HCLGE_DBG_DFX_RTC_OFFSET   8
0031 #define HCLGE_DBG_DFX_PPP_OFFSET   9
0032 #define HCLGE_DBG_DFX_RCB_OFFSET   10
0033 #define HCLGE_DBG_DFX_TQP_OFFSET   11
0034 
0035 #define HCLGE_DBG_DFX_SSU_2_OFFSET 12
0036 
0037 struct hclge_qos_pri_map_cmd {
0038     u8 pri0_tc  : 4,
0039        pri1_tc  : 4;
0040     u8 pri2_tc  : 4,
0041        pri3_tc  : 4;
0042     u8 pri4_tc  : 4,
0043        pri5_tc  : 4;
0044     u8 pri6_tc  : 4,
0045        pri7_tc  : 4;
0046     u8 vlan_pri : 4,
0047        rev      : 4;
0048 };
0049 
0050 struct hclge_dbg_bitmap_cmd {
0051     union {
0052         u8 bitmap;
0053         struct {
0054             u8 bit0 : 1,
0055                bit1 : 1,
0056                bit2 : 1,
0057                bit3 : 1,
0058                bit4 : 1,
0059                bit5 : 1,
0060                bit6 : 1,
0061                bit7 : 1;
0062         };
0063     };
0064 };
0065 
0066 struct hclge_dbg_reg_common_msg {
0067     int msg_num;
0068     int offset;
0069     enum hclge_opcode_type cmd;
0070 };
0071 
0072 struct hclge_dbg_tcam_msg {
0073     u8 stage;
0074     u32 loc;
0075 };
0076 
0077 #define HCLGE_DBG_MAX_DFX_MSG_LEN   60
0078 struct hclge_dbg_dfx_message {
0079     int flag;
0080     char message[HCLGE_DBG_MAX_DFX_MSG_LEN];
0081 };
0082 
0083 #define HCLGE_DBG_MAC_REG_TYPE_LEN  32
0084 struct hclge_dbg_reg_type_info {
0085     enum hnae3_dbg_cmd cmd;
0086     const struct hclge_dbg_dfx_message *dfx_msg;
0087     struct hclge_dbg_reg_common_msg reg_msg;
0088 };
0089 
0090 struct hclge_dbg_func {
0091     enum hnae3_dbg_cmd cmd;
0092     int (*dbg_dump)(struct hclge_dev *hdev, char *buf, int len);
0093     int (*dbg_dump_reg)(struct hclge_dev *hdev, enum hnae3_dbg_cmd cmd,
0094                 char *buf, int len);
0095 };
0096 
0097 struct hclge_dbg_status_dfx_info {
0098     u32  offset;
0099     char message[HCLGE_DBG_MAX_DFX_MSG_LEN];
0100 };
0101 
0102 static const struct hclge_dbg_dfx_message hclge_dbg_bios_common_reg[] = {
0103     {false, "Reserved"},
0104     {true,  "BP_CPU_STATE"},
0105     {true,  "DFX_MSIX_INFO_NIC_0"},
0106     {true,  "DFX_MSIX_INFO_NIC_1"},
0107     {true,  "DFX_MSIX_INFO_NIC_2"},
0108     {true,  "DFX_MSIX_INFO_NIC_3"},
0109 
0110     {true,  "DFX_MSIX_INFO_ROC_0"},
0111     {true,  "DFX_MSIX_INFO_ROC_1"},
0112     {true,  "DFX_MSIX_INFO_ROC_2"},
0113     {true,  "DFX_MSIX_INFO_ROC_3"},
0114     {false, "Reserved"},
0115     {false, "Reserved"},
0116 };
0117 
0118 static const struct hclge_dbg_dfx_message hclge_dbg_ssu_reg_0[] = {
0119     {false, "Reserved"},
0120     {true,  "SSU_ETS_PORT_STATUS"},
0121     {true,  "SSU_ETS_TCG_STATUS"},
0122     {false, "Reserved"},
0123     {false, "Reserved"},
0124     {true,  "SSU_BP_STATUS_0"},
0125 
0126     {true,  "SSU_BP_STATUS_1"},
0127     {true,  "SSU_BP_STATUS_2"},
0128     {true,  "SSU_BP_STATUS_3"},
0129     {true,  "SSU_BP_STATUS_4"},
0130     {true,  "SSU_BP_STATUS_5"},
0131     {true,  "SSU_MAC_TX_PFC_IND"},
0132 
0133     {true,  "MAC_SSU_RX_PFC_IND"},
0134     {true,  "BTMP_AGEING_ST_B0"},
0135     {true,  "BTMP_AGEING_ST_B1"},
0136     {true,  "BTMP_AGEING_ST_B2"},
0137     {false, "Reserved"},
0138     {false, "Reserved"},
0139 
0140     {true,  "FULL_DROP_NUM"},
0141     {true,  "PART_DROP_NUM"},
0142     {true,  "PPP_KEY_DROP_NUM"},
0143     {true,  "PPP_RLT_DROP_NUM"},
0144     {true,  "LO_PRI_UNICAST_RLT_DROP_NUM"},
0145     {true,  "HI_PRI_MULTICAST_RLT_DROP_NUM"},
0146 
0147     {true,  "LO_PRI_MULTICAST_RLT_DROP_NUM"},
0148     {true,  "NCSI_PACKET_CURR_BUFFER_CNT"},
0149     {true,  "BTMP_AGEING_RLS_CNT_BANK0"},
0150     {true,  "BTMP_AGEING_RLS_CNT_BANK1"},
0151     {true,  "BTMP_AGEING_RLS_CNT_BANK2"},
0152     {true,  "SSU_MB_RD_RLT_DROP_CNT"},
0153 
0154     {true,  "SSU_PPP_MAC_KEY_NUM_L"},
0155     {true,  "SSU_PPP_MAC_KEY_NUM_H"},
0156     {true,  "SSU_PPP_HOST_KEY_NUM_L"},
0157     {true,  "SSU_PPP_HOST_KEY_NUM_H"},
0158     {true,  "PPP_SSU_MAC_RLT_NUM_L"},
0159     {true,  "PPP_SSU_MAC_RLT_NUM_H"},
0160 
0161     {true,  "PPP_SSU_HOST_RLT_NUM_L"},
0162     {true,  "PPP_SSU_HOST_RLT_NUM_H"},
0163     {true,  "NCSI_RX_PACKET_IN_CNT_L"},
0164     {true,  "NCSI_RX_PACKET_IN_CNT_H"},
0165     {true,  "NCSI_TX_PACKET_OUT_CNT_L"},
0166     {true,  "NCSI_TX_PACKET_OUT_CNT_H"},
0167 
0168     {true,  "SSU_KEY_DROP_NUM"},
0169     {true,  "MB_UNCOPY_NUM"},
0170     {true,  "RX_OQ_DROP_PKT_CNT"},
0171     {true,  "TX_OQ_DROP_PKT_CNT"},
0172     {true,  "BANK_UNBALANCE_DROP_CNT"},
0173     {true,  "BANK_UNBALANCE_RX_DROP_CNT"},
0174 
0175     {true,  "NIC_L2_ERR_DROP_PKT_CNT"},
0176     {true,  "ROC_L2_ERR_DROP_PKT_CNT"},
0177     {true,  "NIC_L2_ERR_DROP_PKT_CNT_RX"},
0178     {true,  "ROC_L2_ERR_DROP_PKT_CNT_RX"},
0179     {true,  "RX_OQ_GLB_DROP_PKT_CNT"},
0180     {false, "Reserved"},
0181 
0182     {true,  "LO_PRI_UNICAST_CUR_CNT"},
0183     {true,  "HI_PRI_MULTICAST_CUR_CNT"},
0184     {true,  "LO_PRI_MULTICAST_CUR_CNT"},
0185     {false, "Reserved"},
0186     {false, "Reserved"},
0187     {false, "Reserved"},
0188 };
0189 
0190 static const struct hclge_dbg_dfx_message hclge_dbg_ssu_reg_1[] = {
0191     {true,  "prt_id"},
0192     {true,  "PACKET_TC_CURR_BUFFER_CNT_0"},
0193     {true,  "PACKET_TC_CURR_BUFFER_CNT_1"},
0194     {true,  "PACKET_TC_CURR_BUFFER_CNT_2"},
0195     {true,  "PACKET_TC_CURR_BUFFER_CNT_3"},
0196     {true,  "PACKET_TC_CURR_BUFFER_CNT_4"},
0197 
0198     {true,  "PACKET_TC_CURR_BUFFER_CNT_5"},
0199     {true,  "PACKET_TC_CURR_BUFFER_CNT_6"},
0200     {true,  "PACKET_TC_CURR_BUFFER_CNT_7"},
0201     {true,  "PACKET_CURR_BUFFER_CNT"},
0202     {false, "Reserved"},
0203     {false, "Reserved"},
0204 
0205     {true,  "RX_PACKET_IN_CNT_L"},
0206     {true,  "RX_PACKET_IN_CNT_H"},
0207     {true,  "RX_PACKET_OUT_CNT_L"},
0208     {true,  "RX_PACKET_OUT_CNT_H"},
0209     {true,  "TX_PACKET_IN_CNT_L"},
0210     {true,  "TX_PACKET_IN_CNT_H"},
0211 
0212     {true,  "TX_PACKET_OUT_CNT_L"},
0213     {true,  "TX_PACKET_OUT_CNT_H"},
0214     {true,  "ROC_RX_PACKET_IN_CNT_L"},
0215     {true,  "ROC_RX_PACKET_IN_CNT_H"},
0216     {true,  "ROC_TX_PACKET_OUT_CNT_L"},
0217     {true,  "ROC_TX_PACKET_OUT_CNT_H"},
0218 
0219     {true,  "RX_PACKET_TC_IN_CNT_0_L"},
0220     {true,  "RX_PACKET_TC_IN_CNT_0_H"},
0221     {true,  "RX_PACKET_TC_IN_CNT_1_L"},
0222     {true,  "RX_PACKET_TC_IN_CNT_1_H"},
0223     {true,  "RX_PACKET_TC_IN_CNT_2_L"},
0224     {true,  "RX_PACKET_TC_IN_CNT_2_H"},
0225 
0226     {true,  "RX_PACKET_TC_IN_CNT_3_L"},
0227     {true,  "RX_PACKET_TC_IN_CNT_3_H"},
0228     {true,  "RX_PACKET_TC_IN_CNT_4_L"},
0229     {true,  "RX_PACKET_TC_IN_CNT_4_H"},
0230     {true,  "RX_PACKET_TC_IN_CNT_5_L"},
0231     {true,  "RX_PACKET_TC_IN_CNT_5_H"},
0232 
0233     {true,  "RX_PACKET_TC_IN_CNT_6_L"},
0234     {true,  "RX_PACKET_TC_IN_CNT_6_H"},
0235     {true,  "RX_PACKET_TC_IN_CNT_7_L"},
0236     {true,  "RX_PACKET_TC_IN_CNT_7_H"},
0237     {true,  "RX_PACKET_TC_OUT_CNT_0_L"},
0238     {true,  "RX_PACKET_TC_OUT_CNT_0_H"},
0239 
0240     {true,  "RX_PACKET_TC_OUT_CNT_1_L"},
0241     {true,  "RX_PACKET_TC_OUT_CNT_1_H"},
0242     {true,  "RX_PACKET_TC_OUT_CNT_2_L"},
0243     {true,  "RX_PACKET_TC_OUT_CNT_2_H"},
0244     {true,  "RX_PACKET_TC_OUT_CNT_3_L"},
0245     {true,  "RX_PACKET_TC_OUT_CNT_3_H"},
0246 
0247     {true,  "RX_PACKET_TC_OUT_CNT_4_L"},
0248     {true,  "RX_PACKET_TC_OUT_CNT_4_H"},
0249     {true,  "RX_PACKET_TC_OUT_CNT_5_L"},
0250     {true,  "RX_PACKET_TC_OUT_CNT_5_H"},
0251     {true,  "RX_PACKET_TC_OUT_CNT_6_L"},
0252     {true,  "RX_PACKET_TC_OUT_CNT_6_H"},
0253 
0254     {true,  "RX_PACKET_TC_OUT_CNT_7_L"},
0255     {true,  "RX_PACKET_TC_OUT_CNT_7_H"},
0256     {true,  "TX_PACKET_TC_IN_CNT_0_L"},
0257     {true,  "TX_PACKET_TC_IN_CNT_0_H"},
0258     {true,  "TX_PACKET_TC_IN_CNT_1_L"},
0259     {true,  "TX_PACKET_TC_IN_CNT_1_H"},
0260 
0261     {true,  "TX_PACKET_TC_IN_CNT_2_L"},
0262     {true,  "TX_PACKET_TC_IN_CNT_2_H"},
0263     {true,  "TX_PACKET_TC_IN_CNT_3_L"},
0264     {true,  "TX_PACKET_TC_IN_CNT_3_H"},
0265     {true,  "TX_PACKET_TC_IN_CNT_4_L"},
0266     {true,  "TX_PACKET_TC_IN_CNT_4_H"},
0267 
0268     {true,  "TX_PACKET_TC_IN_CNT_5_L"},
0269     {true,  "TX_PACKET_TC_IN_CNT_5_H"},
0270     {true,  "TX_PACKET_TC_IN_CNT_6_L"},
0271     {true,  "TX_PACKET_TC_IN_CNT_6_H"},
0272     {true,  "TX_PACKET_TC_IN_CNT_7_L"},
0273     {true,  "TX_PACKET_TC_IN_CNT_7_H"},
0274 
0275     {true,  "TX_PACKET_TC_OUT_CNT_0_L"},
0276     {true,  "TX_PACKET_TC_OUT_CNT_0_H"},
0277     {true,  "TX_PACKET_TC_OUT_CNT_1_L"},
0278     {true,  "TX_PACKET_TC_OUT_CNT_1_H"},
0279     {true,  "TX_PACKET_TC_OUT_CNT_2_L"},
0280     {true,  "TX_PACKET_TC_OUT_CNT_2_H"},
0281 
0282     {true,  "TX_PACKET_TC_OUT_CNT_3_L"},
0283     {true,  "TX_PACKET_TC_OUT_CNT_3_H"},
0284     {true,  "TX_PACKET_TC_OUT_CNT_4_L"},
0285     {true,  "TX_PACKET_TC_OUT_CNT_4_H"},
0286     {true,  "TX_PACKET_TC_OUT_CNT_5_L"},
0287     {true,  "TX_PACKET_TC_OUT_CNT_5_H"},
0288 
0289     {true,  "TX_PACKET_TC_OUT_CNT_6_L"},
0290     {true,  "TX_PACKET_TC_OUT_CNT_6_H"},
0291     {true,  "TX_PACKET_TC_OUT_CNT_7_L"},
0292     {true,  "TX_PACKET_TC_OUT_CNT_7_H"},
0293     {false, "Reserved"},
0294     {false, "Reserved"},
0295 };
0296 
0297 static const struct hclge_dbg_dfx_message hclge_dbg_ssu_reg_2[] = {
0298     {true,  "OQ_INDEX"},
0299     {true,  "QUEUE_CNT"},
0300     {false, "Reserved"},
0301     {false, "Reserved"},
0302     {false, "Reserved"},
0303     {false, "Reserved"},
0304 };
0305 
0306 static const struct hclge_dbg_dfx_message hclge_dbg_igu_egu_reg[] = {
0307     {true,  "prt_id"},
0308     {true,  "IGU_RX_ERR_PKT"},
0309     {true,  "IGU_RX_NO_SOF_PKT"},
0310     {true,  "EGU_TX_1588_SHORT_PKT"},
0311     {true,  "EGU_TX_1588_PKT"},
0312     {true,  "EGU_TX_ERR_PKT"},
0313 
0314     {true,  "IGU_RX_OUT_L2_PKT"},
0315     {true,  "IGU_RX_OUT_L3_PKT"},
0316     {true,  "IGU_RX_OUT_L4_PKT"},
0317     {true,  "IGU_RX_IN_L2_PKT"},
0318     {true,  "IGU_RX_IN_L3_PKT"},
0319     {true,  "IGU_RX_IN_L4_PKT"},
0320 
0321     {true,  "IGU_RX_EL3E_PKT"},
0322     {true,  "IGU_RX_EL4E_PKT"},
0323     {true,  "IGU_RX_L3E_PKT"},
0324     {true,  "IGU_RX_L4E_PKT"},
0325     {true,  "IGU_RX_ROCEE_PKT"},
0326     {true,  "IGU_RX_OUT_UDP0_PKT"},
0327 
0328     {true,  "IGU_RX_IN_UDP0_PKT"},
0329     {true,  "IGU_MC_CAR_DROP_PKT_L"},
0330     {true,  "IGU_MC_CAR_DROP_PKT_H"},
0331     {true,  "IGU_BC_CAR_DROP_PKT_L"},
0332     {true,  "IGU_BC_CAR_DROP_PKT_H"},
0333     {false, "Reserved"},
0334 
0335     {true,  "IGU_RX_OVERSIZE_PKT_L"},
0336     {true,  "IGU_RX_OVERSIZE_PKT_H"},
0337     {true,  "IGU_RX_UNDERSIZE_PKT_L"},
0338     {true,  "IGU_RX_UNDERSIZE_PKT_H"},
0339     {true,  "IGU_RX_OUT_ALL_PKT_L"},
0340     {true,  "IGU_RX_OUT_ALL_PKT_H"},
0341 
0342     {true,  "IGU_TX_OUT_ALL_PKT_L"},
0343     {true,  "IGU_TX_OUT_ALL_PKT_H"},
0344     {true,  "IGU_RX_UNI_PKT_L"},
0345     {true,  "IGU_RX_UNI_PKT_H"},
0346     {true,  "IGU_RX_MULTI_PKT_L"},
0347     {true,  "IGU_RX_MULTI_PKT_H"},
0348 
0349     {true,  "IGU_RX_BROAD_PKT_L"},
0350     {true,  "IGU_RX_BROAD_PKT_H"},
0351     {true,  "EGU_TX_OUT_ALL_PKT_L"},
0352     {true,  "EGU_TX_OUT_ALL_PKT_H"},
0353     {true,  "EGU_TX_UNI_PKT_L"},
0354     {true,  "EGU_TX_UNI_PKT_H"},
0355 
0356     {true,  "EGU_TX_MULTI_PKT_L"},
0357     {true,  "EGU_TX_MULTI_PKT_H"},
0358     {true,  "EGU_TX_BROAD_PKT_L"},
0359     {true,  "EGU_TX_BROAD_PKT_H"},
0360     {true,  "IGU_TX_KEY_NUM_L"},
0361     {true,  "IGU_TX_KEY_NUM_H"},
0362 
0363     {true,  "IGU_RX_NON_TUN_PKT_L"},
0364     {true,  "IGU_RX_NON_TUN_PKT_H"},
0365     {true,  "IGU_RX_TUN_PKT_L"},
0366     {true,  "IGU_RX_TUN_PKT_H"},
0367     {false, "Reserved"},
0368     {false, "Reserved"},
0369 };
0370 
0371 static const struct hclge_dbg_dfx_message hclge_dbg_rpu_reg_0[] = {
0372     {true, "tc_queue_num"},
0373     {true, "FSM_DFX_ST0"},
0374     {true, "FSM_DFX_ST1"},
0375     {true, "RPU_RX_PKT_DROP_CNT"},
0376     {true, "BUF_WAIT_TIMEOUT"},
0377     {true, "BUF_WAIT_TIMEOUT_QID"},
0378 };
0379 
0380 static const struct hclge_dbg_dfx_message hclge_dbg_rpu_reg_1[] = {
0381     {false, "Reserved"},
0382     {true,  "FIFO_DFX_ST0"},
0383     {true,  "FIFO_DFX_ST1"},
0384     {true,  "FIFO_DFX_ST2"},
0385     {true,  "FIFO_DFX_ST3"},
0386     {true,  "FIFO_DFX_ST4"},
0387 
0388     {true,  "FIFO_DFX_ST5"},
0389     {false, "Reserved"},
0390     {false, "Reserved"},
0391     {false, "Reserved"},
0392     {false, "Reserved"},
0393     {false, "Reserved"},
0394 };
0395 
0396 static const struct hclge_dbg_dfx_message hclge_dbg_ncsi_reg[] = {
0397     {false, "Reserved"},
0398     {true,  "NCSI_EGU_TX_FIFO_STS"},
0399     {true,  "NCSI_PAUSE_STATUS"},
0400     {true,  "NCSI_RX_CTRL_DMAC_ERR_CNT"},
0401     {true,  "NCSI_RX_CTRL_SMAC_ERR_CNT"},
0402     {true,  "NCSI_RX_CTRL_CKS_ERR_CNT"},
0403 
0404     {true,  "NCSI_RX_CTRL_PKT_CNT"},
0405     {true,  "NCSI_RX_PT_DMAC_ERR_CNT"},
0406     {true,  "NCSI_RX_PT_SMAC_ERR_CNT"},
0407     {true,  "NCSI_RX_PT_PKT_CNT"},
0408     {true,  "NCSI_RX_FCS_ERR_CNT"},
0409     {true,  "NCSI_TX_CTRL_DMAC_ERR_CNT"},
0410 
0411     {true,  "NCSI_TX_CTRL_SMAC_ERR_CNT"},
0412     {true,  "NCSI_TX_CTRL_PKT_CNT"},
0413     {true,  "NCSI_TX_PT_DMAC_ERR_CNT"},
0414     {true,  "NCSI_TX_PT_SMAC_ERR_CNT"},
0415     {true,  "NCSI_TX_PT_PKT_CNT"},
0416     {true,  "NCSI_TX_PT_PKT_TRUNC_CNT"},
0417 
0418     {true,  "NCSI_TX_PT_PKT_ERR_CNT"},
0419     {true,  "NCSI_TX_CTRL_PKT_ERR_CNT"},
0420     {true,  "NCSI_RX_CTRL_PKT_TRUNC_CNT"},
0421     {true,  "NCSI_RX_CTRL_PKT_CFLIT_CNT"},
0422     {false, "Reserved"},
0423     {false, "Reserved"},
0424 
0425     {true,  "NCSI_MAC_RX_OCTETS_OK"},
0426     {true,  "NCSI_MAC_RX_OCTETS_BAD"},
0427     {true,  "NCSI_MAC_RX_UC_PKTS"},
0428     {true,  "NCSI_MAC_RX_MC_PKTS"},
0429     {true,  "NCSI_MAC_RX_BC_PKTS"},
0430     {true,  "NCSI_MAC_RX_PKTS_64OCTETS"},
0431 
0432     {true,  "NCSI_MAC_RX_PKTS_65TO127OCTETS"},
0433     {true,  "NCSI_MAC_RX_PKTS_128TO255OCTETS"},
0434     {true,  "NCSI_MAC_RX_PKTS_255TO511OCTETS"},
0435     {true,  "NCSI_MAC_RX_PKTS_512TO1023OCTETS"},
0436     {true,  "NCSI_MAC_RX_PKTS_1024TO1518OCTETS"},
0437     {true,  "NCSI_MAC_RX_PKTS_1519TOMAXOCTETS"},
0438 
0439     {true,  "NCSI_MAC_RX_FCS_ERRORS"},
0440     {true,  "NCSI_MAC_RX_LONG_ERRORS"},
0441     {true,  "NCSI_MAC_RX_JABBER_ERRORS"},
0442     {true,  "NCSI_MAC_RX_RUNT_ERR_CNT"},
0443     {true,  "NCSI_MAC_RX_SHORT_ERR_CNT"},
0444     {true,  "NCSI_MAC_RX_FILT_PKT_CNT"},
0445 
0446     {true,  "NCSI_MAC_RX_OCTETS_TOTAL_FILT"},
0447     {true,  "NCSI_MAC_TX_OCTETS_OK"},
0448     {true,  "NCSI_MAC_TX_OCTETS_BAD"},
0449     {true,  "NCSI_MAC_TX_UC_PKTS"},
0450     {true,  "NCSI_MAC_TX_MC_PKTS"},
0451     {true,  "NCSI_MAC_TX_BC_PKTS"},
0452 
0453     {true,  "NCSI_MAC_TX_PKTS_64OCTETS"},
0454     {true,  "NCSI_MAC_TX_PKTS_65TO127OCTETS"},
0455     {true,  "NCSI_MAC_TX_PKTS_128TO255OCTETS"},
0456     {true,  "NCSI_MAC_TX_PKTS_256TO511OCTETS"},
0457     {true,  "NCSI_MAC_TX_PKTS_512TO1023OCTETS"},
0458     {true,  "NCSI_MAC_TX_PKTS_1024TO1518OCTETS"},
0459 
0460     {true,  "NCSI_MAC_TX_PKTS_1519TOMAXOCTETS"},
0461     {true,  "NCSI_MAC_TX_UNDERRUN"},
0462     {true,  "NCSI_MAC_TX_CRC_ERROR"},
0463     {true,  "NCSI_MAC_TX_PAUSE_FRAMES"},
0464     {true,  "NCSI_MAC_RX_PAD_PKTS"},
0465     {true,  "NCSI_MAC_RX_PAUSE_FRAMES"},
0466 };
0467 
0468 static const struct hclge_dbg_dfx_message hclge_dbg_rtc_reg[] = {
0469     {false, "Reserved"},
0470     {true,  "LGE_IGU_AFIFO_DFX_0"},
0471     {true,  "LGE_IGU_AFIFO_DFX_1"},
0472     {true,  "LGE_IGU_AFIFO_DFX_2"},
0473     {true,  "LGE_IGU_AFIFO_DFX_3"},
0474     {true,  "LGE_IGU_AFIFO_DFX_4"},
0475 
0476     {true,  "LGE_IGU_AFIFO_DFX_5"},
0477     {true,  "LGE_IGU_AFIFO_DFX_6"},
0478     {true,  "LGE_IGU_AFIFO_DFX_7"},
0479     {true,  "LGE_EGU_AFIFO_DFX_0"},
0480     {true,  "LGE_EGU_AFIFO_DFX_1"},
0481     {true,  "LGE_EGU_AFIFO_DFX_2"},
0482 
0483     {true,  "LGE_EGU_AFIFO_DFX_3"},
0484     {true,  "LGE_EGU_AFIFO_DFX_4"},
0485     {true,  "LGE_EGU_AFIFO_DFX_5"},
0486     {true,  "LGE_EGU_AFIFO_DFX_6"},
0487     {true,  "LGE_EGU_AFIFO_DFX_7"},
0488     {true,  "CGE_IGU_AFIFO_DFX_0"},
0489 
0490     {true,  "CGE_IGU_AFIFO_DFX_1"},
0491     {true,  "CGE_EGU_AFIFO_DFX_0"},
0492     {true,  "CGE_EGU_AFIFO_DFX_1"},
0493     {false, "Reserved"},
0494     {false, "Reserved"},
0495     {false, "Reserved"},
0496 };
0497 
0498 static const struct hclge_dbg_dfx_message hclge_dbg_ppp_reg[] = {
0499     {false, "Reserved"},
0500     {true,  "DROP_FROM_PRT_PKT_CNT"},
0501     {true,  "DROP_FROM_HOST_PKT_CNT"},
0502     {true,  "DROP_TX_VLAN_PROC_CNT"},
0503     {true,  "DROP_MNG_CNT"},
0504     {true,  "DROP_FD_CNT"},
0505 
0506     {true,  "DROP_NO_DST_CNT"},
0507     {true,  "DROP_MC_MBID_FULL_CNT"},
0508     {true,  "DROP_SC_FILTERED"},
0509     {true,  "PPP_MC_DROP_PKT_CNT"},
0510     {true,  "DROP_PT_CNT"},
0511     {true,  "DROP_MAC_ANTI_SPOOF_CNT"},
0512 
0513     {true,  "DROP_IG_VFV_CNT"},
0514     {true,  "DROP_IG_PRTV_CNT"},
0515     {true,  "DROP_CNM_PFC_PAUSE_CNT"},
0516     {true,  "DROP_TORUS_TC_CNT"},
0517     {true,  "DROP_TORUS_LPBK_CNT"},
0518     {true,  "PPP_HFS_STS"},
0519 
0520     {true,  "PPP_MC_RSLT_STS"},
0521     {true,  "PPP_P3U_STS"},
0522     {true,  "PPP_RSLT_DESCR_STS"},
0523     {true,  "PPP_UMV_STS_0"},
0524     {true,  "PPP_UMV_STS_1"},
0525     {true,  "PPP_VFV_STS"},
0526 
0527     {true,  "PPP_GRO_KEY_CNT"},
0528     {true,  "PPP_GRO_INFO_CNT"},
0529     {true,  "PPP_GRO_DROP_CNT"},
0530     {true,  "PPP_GRO_OUT_CNT"},
0531     {true,  "PPP_GRO_KEY_MATCH_DATA_CNT"},
0532     {true,  "PPP_GRO_KEY_MATCH_TCAM_CNT"},
0533 
0534     {true,  "PPP_GRO_INFO_MATCH_CNT"},
0535     {true,  "PPP_GRO_FREE_ENTRY_CNT"},
0536     {true,  "PPP_GRO_INNER_DFX_SIGNAL"},
0537     {false, "Reserved"},
0538     {false, "Reserved"},
0539     {false, "Reserved"},
0540 
0541     {true,  "GET_RX_PKT_CNT_L"},
0542     {true,  "GET_RX_PKT_CNT_H"},
0543     {true,  "GET_TX_PKT_CNT_L"},
0544     {true,  "GET_TX_PKT_CNT_H"},
0545     {true,  "SEND_UC_PRT2HOST_PKT_CNT_L"},
0546     {true,  "SEND_UC_PRT2HOST_PKT_CNT_H"},
0547 
0548     {true,  "SEND_UC_PRT2PRT_PKT_CNT_L"},
0549     {true,  "SEND_UC_PRT2PRT_PKT_CNT_H"},
0550     {true,  "SEND_UC_HOST2HOST_PKT_CNT_L"},
0551     {true,  "SEND_UC_HOST2HOST_PKT_CNT_H"},
0552     {true,  "SEND_UC_HOST2PRT_PKT_CNT_L"},
0553     {true,  "SEND_UC_HOST2PRT_PKT_CNT_H"},
0554 
0555     {true,  "SEND_MC_FROM_PRT_CNT_L"},
0556     {true,  "SEND_MC_FROM_PRT_CNT_H"},
0557     {true,  "SEND_MC_FROM_HOST_CNT_L"},
0558     {true,  "SEND_MC_FROM_HOST_CNT_H"},
0559     {true,  "SSU_MC_RD_CNT_L"},
0560     {true,  "SSU_MC_RD_CNT_H"},
0561 
0562     {true,  "SSU_MC_DROP_CNT_L"},
0563     {true,  "SSU_MC_DROP_CNT_H"},
0564     {true,  "SSU_MC_RD_PKT_CNT_L"},
0565     {true,  "SSU_MC_RD_PKT_CNT_H"},
0566     {true,  "PPP_MC_2HOST_PKT_CNT_L"},
0567     {true,  "PPP_MC_2HOST_PKT_CNT_H"},
0568 
0569     {true,  "PPP_MC_2PRT_PKT_CNT_L"},
0570     {true,  "PPP_MC_2PRT_PKT_CNT_H"},
0571     {true,  "NTSNOS_PKT_CNT_L"},
0572     {true,  "NTSNOS_PKT_CNT_H"},
0573     {true,  "NTUP_PKT_CNT_L"},
0574     {true,  "NTUP_PKT_CNT_H"},
0575 
0576     {true,  "NTLCL_PKT_CNT_L"},
0577     {true,  "NTLCL_PKT_CNT_H"},
0578     {true,  "NTTGT_PKT_CNT_L"},
0579     {true,  "NTTGT_PKT_CNT_H"},
0580     {true,  "RTNS_PKT_CNT_L"},
0581     {true,  "RTNS_PKT_CNT_H"},
0582 
0583     {true,  "RTLPBK_PKT_CNT_L"},
0584     {true,  "RTLPBK_PKT_CNT_H"},
0585     {true,  "NR_PKT_CNT_L"},
0586     {true,  "NR_PKT_CNT_H"},
0587     {true,  "RR_PKT_CNT_L"},
0588     {true,  "RR_PKT_CNT_H"},
0589 
0590     {true,  "MNG_TBL_HIT_CNT_L"},
0591     {true,  "MNG_TBL_HIT_CNT_H"},
0592     {true,  "FD_TBL_HIT_CNT_L"},
0593     {true,  "FD_TBL_HIT_CNT_H"},
0594     {true,  "FD_LKUP_CNT_L"},
0595     {true,  "FD_LKUP_CNT_H"},
0596 
0597     {true,  "BC_HIT_CNT_L"},
0598     {true,  "BC_HIT_CNT_H"},
0599     {true,  "UM_TBL_UC_HIT_CNT_L"},
0600     {true,  "UM_TBL_UC_HIT_CNT_H"},
0601     {true,  "UM_TBL_MC_HIT_CNT_L"},
0602     {true,  "UM_TBL_MC_HIT_CNT_H"},
0603 
0604     {true,  "UM_TBL_VMDQ1_HIT_CNT_L"},
0605     {true,  "UM_TBL_VMDQ1_HIT_CNT_H"},
0606     {true,  "MTA_TBL_HIT_CNT_L"},
0607     {true,  "MTA_TBL_HIT_CNT_H"},
0608     {true,  "FWD_BONDING_HIT_CNT_L"},
0609     {true,  "FWD_BONDING_HIT_CNT_H"},
0610 
0611     {true,  "PROMIS_TBL_HIT_CNT_L"},
0612     {true,  "PROMIS_TBL_HIT_CNT_H"},
0613     {true,  "GET_TUNL_PKT_CNT_L"},
0614     {true,  "GET_TUNL_PKT_CNT_H"},
0615     {true,  "GET_BMC_PKT_CNT_L"},
0616     {true,  "GET_BMC_PKT_CNT_H"},
0617 
0618     {true,  "SEND_UC_PRT2BMC_PKT_CNT_L"},
0619     {true,  "SEND_UC_PRT2BMC_PKT_CNT_H"},
0620     {true,  "SEND_UC_HOST2BMC_PKT_CNT_L"},
0621     {true,  "SEND_UC_HOST2BMC_PKT_CNT_H"},
0622     {true,  "SEND_UC_BMC2HOST_PKT_CNT_L"},
0623     {true,  "SEND_UC_BMC2HOST_PKT_CNT_H"},
0624 
0625     {true,  "SEND_UC_BMC2PRT_PKT_CNT_L"},
0626     {true,  "SEND_UC_BMC2PRT_PKT_CNT_H"},
0627     {true,  "PPP_MC_2BMC_PKT_CNT_L"},
0628     {true,  "PPP_MC_2BMC_PKT_CNT_H"},
0629     {true,  "VLAN_MIRR_CNT_L"},
0630     {true,  "VLAN_MIRR_CNT_H"},
0631 
0632     {true,  "IG_MIRR_CNT_L"},
0633     {true,  "IG_MIRR_CNT_H"},
0634     {true,  "EG_MIRR_CNT_L"},
0635     {true,  "EG_MIRR_CNT_H"},
0636     {true,  "RX_DEFAULT_HOST_HIT_CNT_L"},
0637     {true,  "RX_DEFAULT_HOST_HIT_CNT_H"},
0638 
0639     {true,  "LAN_PAIR_CNT_L"},
0640     {true,  "LAN_PAIR_CNT_H"},
0641     {true,  "UM_TBL_MC_HIT_PKT_CNT_L"},
0642     {true,  "UM_TBL_MC_HIT_PKT_CNT_H"},
0643     {true,  "MTA_TBL_HIT_PKT_CNT_L"},
0644     {true,  "MTA_TBL_HIT_PKT_CNT_H"},
0645 
0646     {true,  "PROMIS_TBL_HIT_PKT_CNT_L"},
0647     {true,  "PROMIS_TBL_HIT_PKT_CNT_H"},
0648     {false, "Reserved"},
0649     {false, "Reserved"},
0650     {false, "Reserved"},
0651     {false, "Reserved"},
0652 };
0653 
0654 static const struct hclge_dbg_dfx_message hclge_dbg_rcb_reg[] = {
0655     {false, "Reserved"},
0656     {true,  "FSM_DFX_ST0"},
0657     {true,  "FSM_DFX_ST1"},
0658     {true,  "FSM_DFX_ST2"},
0659     {true,  "FIFO_DFX_ST0"},
0660     {true,  "FIFO_DFX_ST1"},
0661 
0662     {true,  "FIFO_DFX_ST2"},
0663     {true,  "FIFO_DFX_ST3"},
0664     {true,  "FIFO_DFX_ST4"},
0665     {true,  "FIFO_DFX_ST5"},
0666     {true,  "FIFO_DFX_ST6"},
0667     {true,  "FIFO_DFX_ST7"},
0668 
0669     {true,  "FIFO_DFX_ST8"},
0670     {true,  "FIFO_DFX_ST9"},
0671     {true,  "FIFO_DFX_ST10"},
0672     {true,  "FIFO_DFX_ST11"},
0673     {true,  "Q_CREDIT_VLD_0"},
0674     {true,  "Q_CREDIT_VLD_1"},
0675 
0676     {true,  "Q_CREDIT_VLD_2"},
0677     {true,  "Q_CREDIT_VLD_3"},
0678     {true,  "Q_CREDIT_VLD_4"},
0679     {true,  "Q_CREDIT_VLD_5"},
0680     {true,  "Q_CREDIT_VLD_6"},
0681     {true,  "Q_CREDIT_VLD_7"},
0682 
0683     {true,  "Q_CREDIT_VLD_8"},
0684     {true,  "Q_CREDIT_VLD_9"},
0685     {true,  "Q_CREDIT_VLD_10"},
0686     {true,  "Q_CREDIT_VLD_11"},
0687     {true,  "Q_CREDIT_VLD_12"},
0688     {true,  "Q_CREDIT_VLD_13"},
0689 
0690     {true,  "Q_CREDIT_VLD_14"},
0691     {true,  "Q_CREDIT_VLD_15"},
0692     {true,  "Q_CREDIT_VLD_16"},
0693     {true,  "Q_CREDIT_VLD_17"},
0694     {true,  "Q_CREDIT_VLD_18"},
0695     {true,  "Q_CREDIT_VLD_19"},
0696 
0697     {true,  "Q_CREDIT_VLD_20"},
0698     {true,  "Q_CREDIT_VLD_21"},
0699     {true,  "Q_CREDIT_VLD_22"},
0700     {true,  "Q_CREDIT_VLD_23"},
0701     {true,  "Q_CREDIT_VLD_24"},
0702     {true,  "Q_CREDIT_VLD_25"},
0703 
0704     {true,  "Q_CREDIT_VLD_26"},
0705     {true,  "Q_CREDIT_VLD_27"},
0706     {true,  "Q_CREDIT_VLD_28"},
0707     {true,  "Q_CREDIT_VLD_29"},
0708     {true,  "Q_CREDIT_VLD_30"},
0709     {true,  "Q_CREDIT_VLD_31"},
0710 
0711     {true,  "GRO_BD_SERR_CNT"},
0712     {true,  "GRO_CONTEXT_SERR_CNT"},
0713     {true,  "RX_STASH_CFG_SERR_CNT"},
0714     {true,  "AXI_RD_FBD_SERR_CNT"},
0715     {true,  "GRO_BD_MERR_CNT"},
0716     {true,  "GRO_CONTEXT_MERR_CNT"},
0717 
0718     {true,  "RX_STASH_CFG_MERR_CNT"},
0719     {true,  "AXI_RD_FBD_MERR_CNT"},
0720     {false, "Reserved"},
0721     {false, "Reserved"},
0722     {false, "Reserved"},
0723     {false, "Reserved"},
0724 };
0725 
0726 static const struct hclge_dbg_dfx_message hclge_dbg_tqp_reg[] = {
0727     {true, "q_num"},
0728     {true, "RCB_CFG_RX_RING_TAIL"},
0729     {true, "RCB_CFG_RX_RING_HEAD"},
0730     {true, "RCB_CFG_RX_RING_FBDNUM"},
0731     {true, "RCB_CFG_RX_RING_OFFSET"},
0732     {true, "RCB_CFG_RX_RING_FBDOFFSET"},
0733 
0734     {true, "RCB_CFG_RX_RING_PKTNUM_RECORD"},
0735     {true, "RCB_CFG_TX_RING_TAIL"},
0736     {true, "RCB_CFG_TX_RING_HEAD"},
0737     {true, "RCB_CFG_TX_RING_FBDNUM"},
0738     {true, "RCB_CFG_TX_RING_OFFSET"},
0739     {true, "RCB_CFG_TX_RING_EBDNUM"},
0740 };
0741 
0742 #define HCLGE_DBG_INFO_LEN          256
0743 #define HCLGE_DBG_VLAN_FLTR_INFO_LEN        256
0744 #define HCLGE_DBG_VLAN_OFFLOAD_INFO_LEN     512
0745 #define HCLGE_DBG_ID_LEN            16
0746 #define HCLGE_DBG_ITEM_NAME_LEN         32
0747 #define HCLGE_DBG_DATA_STR_LEN          32
0748 #define HCLGE_DBG_TM_INFO_LEN           256
0749 
0750 #define HCLGE_BILLION_NANO_SECONDS  1000000000
0751 
0752 struct hclge_dbg_item {
0753     char name[HCLGE_DBG_ITEM_NAME_LEN];
0754     u16 interval; /* blank numbers after the item */
0755 };
0756 
0757 struct hclge_dbg_vlan_cfg {
0758     u16 pvid;
0759     u8 accept_tag1;
0760     u8 accept_tag2;
0761     u8 accept_untag1;
0762     u8 accept_untag2;
0763     u8 insert_tag1;
0764     u8 insert_tag2;
0765     u8 shift_tag;
0766     u8 strip_tag1;
0767     u8 strip_tag2;
0768     u8 drop_tag1;
0769     u8 drop_tag2;
0770     u8 pri_only1;
0771     u8 pri_only2;
0772 };
0773 
0774 #endif