1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /* Copyright (c) 2018-2019 Hisilicon Limited. */
4 #ifndef __HCLGE_DEBUGFS_H
5 #define __HCLGE_DEBUGFS_H
7 #include <linux/etherdevice.h>
10 #define HCLGE_DBG_MNG_TBL_MAX 64
12 #define HCLGE_DBG_MNG_VLAN_MASK_B BIT(0)
13 #define HCLGE_DBG_MNG_MAC_MASK_B BIT(1)
14 #define HCLGE_DBG_MNG_ETHER_MASK_B BIT(2)
15 #define HCLGE_DBG_MNG_E_TYPE_B BIT(11)
16 #define HCLGE_DBG_MNG_DROP_B BIT(13)
17 #define HCLGE_DBG_MNG_VLAN_TAG 0x0FFF
18 #define HCLGE_DBG_MNG_PF_ID 0x0007
19 #define HCLGE_DBG_MNG_VF_ID 0x00FF
21 /* Get DFX BD number offset */
22 #define HCLGE_DBG_DFX_BIOS_OFFSET 1
23 #define HCLGE_DBG_DFX_SSU_0_OFFSET 2
24 #define HCLGE_DBG_DFX_SSU_1_OFFSET 3
25 #define HCLGE_DBG_DFX_IGU_OFFSET 4
26 #define HCLGE_DBG_DFX_RPU_0_OFFSET 5
28 #define HCLGE_DBG_DFX_RPU_1_OFFSET 6
29 #define HCLGE_DBG_DFX_NCSI_OFFSET 7
30 #define HCLGE_DBG_DFX_RTC_OFFSET 8
31 #define HCLGE_DBG_DFX_PPP_OFFSET 9
32 #define HCLGE_DBG_DFX_RCB_OFFSET 10
33 #define HCLGE_DBG_DFX_TQP_OFFSET 11
35 #define HCLGE_DBG_DFX_SSU_2_OFFSET 12
37 struct hclge_qos_pri_map_cmd
{
50 struct hclge_dbg_bitmap_cmd
{
66 struct hclge_dbg_reg_common_msg
{
69 enum hclge_opcode_type cmd
;
72 struct hclge_dbg_tcam_msg
{
77 #define HCLGE_DBG_MAX_DFX_MSG_LEN 60
78 struct hclge_dbg_dfx_message
{
80 char message
[HCLGE_DBG_MAX_DFX_MSG_LEN
];
83 #define HCLGE_DBG_MAC_REG_TYPE_LEN 32
84 struct hclge_dbg_reg_type_info
{
85 enum hnae3_dbg_cmd cmd
;
86 const struct hclge_dbg_dfx_message
*dfx_msg
;
87 struct hclge_dbg_reg_common_msg reg_msg
;
90 struct hclge_dbg_func
{
91 enum hnae3_dbg_cmd cmd
;
92 int (*dbg_dump
)(struct hclge_dev
*hdev
, char *buf
, int len
);
93 int (*dbg_dump_reg
)(struct hclge_dev
*hdev
, enum hnae3_dbg_cmd cmd
,
97 struct hclge_dbg_status_dfx_info
{
99 char message
[HCLGE_DBG_MAX_DFX_MSG_LEN
];
102 #define HCLGE_DBG_INFO_LEN 256
103 #define HCLGE_DBG_VLAN_FLTR_INFO_LEN 256
104 #define HCLGE_DBG_VLAN_OFFLOAD_INFO_LEN 512
105 #define HCLGE_DBG_ID_LEN 16
106 #define HCLGE_DBG_ITEM_NAME_LEN 32
107 #define HCLGE_DBG_DATA_STR_LEN 32
108 #define HCLGE_DBG_TM_INFO_LEN 256
110 #define HCLGE_BILLION_NANO_SECONDS 1000000000
112 struct hclge_dbg_item
{
113 char name
[HCLGE_DBG_ITEM_NAME_LEN
];
114 u16 interval
; /* blank numbers after the item */
117 struct hclge_dbg_vlan_cfg
{
134 int hclge_dbg_cmd_send(struct hclge_dev
*hdev
, struct hclge_desc
*desc_src
,
135 int index
, int bd_num
, enum hclge_opcode_type cmd
);