1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* Huawei HiNIC PCI Express Linux driver 3 * Copyright(c) 2017 Huawei Technologies Co., Ltd 4 */ 5 6 #ifndef HINIC_DEBUGFS_H 7 #define HINIC_DEBUGFS_H 8 9 #include "hinic_dev.h" 10 11 #define TBL_ID_FUNC_CFG_SM_NODE 11 12 #define TBL_ID_FUNC_CFG_SM_INST 1 13 14 #define HINIC_FUNCTION_CONFIGURE_TABLE_SIZE 64 15 #define HINIC_FUNCTION_CONFIGURE_TABLE 1 16 17 struct hinic_cmd_lt_rd { 18 u8 status; 19 u8 version; 20 u8 rsvd0[6]; 21 22 unsigned char node; 23 unsigned char inst; 24 unsigned char entry_size; 25 unsigned char rsvd; 26 unsigned int lt_index; 27 unsigned int offset; 28 unsigned int len; 29 unsigned char data[100]; 30 }; 31 32 struct tag_sml_funcfg_tbl { 33 union { 34 struct { 35 u32 rsvd0 :8; 36 u32 nic_rx_mode :5; 37 u32 rsvd1 :18; 38 u32 valid :1; 39 } bs; 40 41 u32 value; 42 } dw0; 43 44 union { 45 struct { 46 u32 vlan_id :12; 47 u32 vlan_mode :3; 48 u32 fast_recycled_mode :1; 49 u32 mtu :16; 50 } bs; 51 52 u32 value; 53 } dw1; 54 55 u32 dw2; 56 u32 dw3; 57 u32 dw4; 58 u32 dw5; 59 u32 dw6; 60 u32 dw7; 61 u32 dw8; 62 u32 dw9; 63 u32 dw10; 64 u32 dw11; 65 u32 dw12; 66 67 union { 68 struct { 69 u32 rsvd2 :15; 70 u32 cfg_q_num :9; 71 u32 cfg_rq_depth :6; 72 u32 vhd_type :2; 73 } bs; 74 75 u32 value; 76 } dw13; 77 78 u32 dw14; 79 u32 dw15; 80 }; 81 82 int hinic_sq_debug_add(struct hinic_dev *dev, u16 sq_id); 83 84 void hinic_sq_debug_rem(struct hinic_sq *sq); 85 86 int hinic_rq_debug_add(struct hinic_dev *dev, u16 rq_id); 87 88 void hinic_rq_debug_rem(struct hinic_rq *rq); 89 90 int hinic_func_table_debug_add(struct hinic_dev *dev); 91 92 void hinic_func_table_debug_rem(struct hinic_dev *dev); 93 94 void hinic_sq_dbgfs_init(struct hinic_dev *nic_dev); 95 96 void hinic_sq_dbgfs_uninit(struct hinic_dev *nic_dev); 97 98 void hinic_rq_dbgfs_init(struct hinic_dev *nic_dev); 99 100 void hinic_rq_dbgfs_uninit(struct hinic_dev *nic_dev); 101 102 void hinic_func_tbl_dbgfs_init(struct hinic_dev *nic_dev); 103 104 void hinic_func_tbl_dbgfs_uninit(struct hinic_dev *nic_dev); 105 106 void hinic_dbg_init(struct hinic_dev *nic_dev); 107 108 void hinic_dbg_uninit(struct hinic_dev *nic_dev); 109 110 void hinic_dbg_register_debugfs(const char *debugfs_dir_name); 111 112 void hinic_dbg_unregister_debugfs(void); 113 114 #endif 115