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