1253ac3a9SLuo bin /* SPDX-License-Identifier: GPL-2.0-only */ 2253ac3a9SLuo bin /* Huawei HiNIC PCI Express Linux driver 3253ac3a9SLuo bin * Copyright(c) 2017 Huawei Technologies Co., Ltd 4253ac3a9SLuo bin */ 5253ac3a9SLuo bin 6253ac3a9SLuo bin #ifndef HINIC_DEBUGFS_H 7253ac3a9SLuo bin #define HINIC_DEBUGFS_H 8253ac3a9SLuo bin 9253ac3a9SLuo bin #include "hinic_dev.h" 10253ac3a9SLuo bin 11*5215e162SLuo bin #define TBL_ID_FUNC_CFG_SM_NODE 11 12*5215e162SLuo bin #define TBL_ID_FUNC_CFG_SM_INST 1 13*5215e162SLuo bin 14*5215e162SLuo bin #define HINIC_FUNCTION_CONFIGURE_TABLE_SIZE 64 15*5215e162SLuo bin 16*5215e162SLuo bin struct hinic_cmd_lt_rd { 17*5215e162SLuo bin u8 status; 18*5215e162SLuo bin u8 version; 19*5215e162SLuo bin u8 rsvd0[6]; 20*5215e162SLuo bin 21*5215e162SLuo bin unsigned char node; 22*5215e162SLuo bin unsigned char inst; 23*5215e162SLuo bin unsigned char entry_size; 24*5215e162SLuo bin unsigned char rsvd; 25*5215e162SLuo bin unsigned int lt_index; 26*5215e162SLuo bin unsigned int offset; 27*5215e162SLuo bin unsigned int len; 28*5215e162SLuo bin unsigned char data[100]; 29*5215e162SLuo bin }; 30*5215e162SLuo bin 31*5215e162SLuo bin struct tag_sml_funcfg_tbl { 32*5215e162SLuo bin union { 33*5215e162SLuo bin struct { 34*5215e162SLuo bin u32 rsvd0 :8; 35*5215e162SLuo bin u32 nic_rx_mode :5; 36*5215e162SLuo bin u32 rsvd1 :18; 37*5215e162SLuo bin u32 valid :1; 38*5215e162SLuo bin } bs; 39*5215e162SLuo bin 40*5215e162SLuo bin u32 value; 41*5215e162SLuo bin } dw0; 42*5215e162SLuo bin 43*5215e162SLuo bin union { 44*5215e162SLuo bin struct { 45*5215e162SLuo bin u32 vlan_id :12; 46*5215e162SLuo bin u32 vlan_mode :3; 47*5215e162SLuo bin u32 fast_recycled_mode :1; 48*5215e162SLuo bin u32 mtu :16; 49*5215e162SLuo bin } bs; 50*5215e162SLuo bin 51*5215e162SLuo bin u32 value; 52*5215e162SLuo bin } dw1; 53*5215e162SLuo bin 54*5215e162SLuo bin u32 dw2; 55*5215e162SLuo bin u32 dw3; 56*5215e162SLuo bin u32 dw4; 57*5215e162SLuo bin u32 dw5; 58*5215e162SLuo bin u32 dw6; 59*5215e162SLuo bin u32 dw7; 60*5215e162SLuo bin u32 dw8; 61*5215e162SLuo bin u32 dw9; 62*5215e162SLuo bin u32 dw10; 63*5215e162SLuo bin u32 dw11; 64*5215e162SLuo bin u32 dw12; 65*5215e162SLuo bin 66*5215e162SLuo bin union { 67*5215e162SLuo bin struct { 68*5215e162SLuo bin u32 rsvd2 :15; 69*5215e162SLuo bin u32 cfg_q_num :9; 70*5215e162SLuo bin u32 cfg_rq_depth :6; 71*5215e162SLuo bin u32 vhd_type :2; 72*5215e162SLuo bin } bs; 73*5215e162SLuo bin 74*5215e162SLuo bin u32 value; 75*5215e162SLuo bin } dw13; 76*5215e162SLuo bin 77*5215e162SLuo bin u32 dw14; 78*5215e162SLuo bin u32 dw15; 79*5215e162SLuo bin }; 80*5215e162SLuo bin 81253ac3a9SLuo bin int hinic_sq_debug_add(struct hinic_dev *dev, u16 sq_id); 82253ac3a9SLuo bin 83253ac3a9SLuo bin void hinic_sq_debug_rem(struct hinic_sq *sq); 84253ac3a9SLuo bin 85626f0603SLuo bin int hinic_rq_debug_add(struct hinic_dev *dev, u16 rq_id); 86626f0603SLuo bin 87626f0603SLuo bin void hinic_rq_debug_rem(struct hinic_rq *rq); 88626f0603SLuo bin 89*5215e162SLuo bin int hinic_func_table_debug_add(struct hinic_dev *dev); 90*5215e162SLuo bin 91*5215e162SLuo bin void hinic_func_table_debug_rem(struct hinic_dev *dev); 92*5215e162SLuo bin 93253ac3a9SLuo bin void hinic_sq_dbgfs_init(struct hinic_dev *nic_dev); 94253ac3a9SLuo bin 95253ac3a9SLuo bin void hinic_sq_dbgfs_uninit(struct hinic_dev *nic_dev); 96253ac3a9SLuo bin 97626f0603SLuo bin void hinic_rq_dbgfs_init(struct hinic_dev *nic_dev); 98626f0603SLuo bin 99626f0603SLuo bin void hinic_rq_dbgfs_uninit(struct hinic_dev *nic_dev); 100626f0603SLuo bin 101*5215e162SLuo bin void hinic_func_tbl_dbgfs_init(struct hinic_dev *nic_dev); 102*5215e162SLuo bin 103*5215e162SLuo bin void hinic_func_tbl_dbgfs_uninit(struct hinic_dev *nic_dev); 104*5215e162SLuo bin 105253ac3a9SLuo bin void hinic_dbg_init(struct hinic_dev *nic_dev); 106253ac3a9SLuo bin 107253ac3a9SLuo bin void hinic_dbg_uninit(struct hinic_dev *nic_dev); 108253ac3a9SLuo bin 109253ac3a9SLuo bin void hinic_dbg_register_debugfs(const char *debugfs_dir_name); 110253ac3a9SLuo bin 111253ac3a9SLuo bin void hinic_dbg_unregister_debugfs(void); 112253ac3a9SLuo bin 113253ac3a9SLuo bin #endif 114