File Index
Files and directories
Sign in
FILE

hclge_debugfs.h

File preview with syntax highlighting.

linux-6.19.14/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.h C
  1/* SPDX-License-Identifier: GPL-2.0+ */
  2/* Copyright (c) 2018-2019 Hisilicon Limited. */
  3
  4#ifndef __HCLGE_DEBUGFS_H
  5#define __HCLGE_DEBUGFS_H
  6
  7#include <linux/etherdevice.h>
  8#include "hclge_cmd.h"
  9
 10#define HCLGE_DBG_MNG_TBL_MAX	   64
 11
 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
 20
 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
 27
 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
 34
 35#define HCLGE_DBG_DFX_SSU_2_OFFSET 12
 36
 37struct hclge_qos_pri_map_cmd {
 38	u8 pri0_tc  : 4,
 39	   pri1_tc  : 4;
 40	u8 pri2_tc  : 4,
 41	   pri3_tc  : 4;
 42	u8 pri4_tc  : 4,
 43	   pri5_tc  : 4;
 44	u8 pri6_tc  : 4,
 45	   pri7_tc  : 4;
 46	u8 vlan_pri : 4,
 47	   rev	    : 4;
 48};
 49
 50struct hclge_dbg_bitmap_cmd {
 51	union {
 52		u8 bitmap;
 53		struct {
 54			u8 bit0 : 1,
 55			   bit1 : 1,
 56			   bit2 : 1,
 57			   bit3 : 1,
 58			   bit4 : 1,
 59			   bit5 : 1,
 60			   bit6 : 1,
 61			   bit7 : 1;
 62		};
 63	};
 64};
 65
 66struct hclge_dbg_reg_common_msg {
 67	int msg_num;
 68	int offset;
 69	enum hclge_opcode_type cmd;
 70};
 71
 72struct hclge_dbg_tcam_msg {
 73	u8 stage;
 74	u32 loc;
 75};
 76
 77#define	HCLGE_DBG_MAX_DFX_MSG_LEN	60
 78struct hclge_dbg_dfx_message {
 79	int flag;
 80	char message[HCLGE_DBG_MAX_DFX_MSG_LEN];
 81};
 82
 83#define HCLGE_DBG_MAC_REG_TYPE_LEN	32
 84struct 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;
 88};
 89
 90struct 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,
 94			    char *buf, int len);
 95	read_func dbg_read_func;
 96};
 97
 98struct hclge_dbg_status_dfx_info {
 99	u32  offset;
100	char message[HCLGE_DBG_MAX_DFX_MSG_LEN];
101};
102
103#define HCLGE_DBG_INFO_LEN			256
104#define HCLGE_DBG_VLAN_FLTR_INFO_LEN		256
105#define HCLGE_DBG_VLAN_OFFLOAD_INFO_LEN		512
106#define HCLGE_DBG_ID_LEN			16
107#define HCLGE_DBG_ITEM_NAME_LEN			32
108#define HCLGE_DBG_DATA_STR_LEN			32
109#define HCLGE_DBG_TM_INFO_LEN			256
110
111#define HCLGE_BILLION_NANO_SECONDS	1000000000
112
113struct hclge_dbg_item {
114	char name[HCLGE_DBG_ITEM_NAME_LEN];
115	u16 interval; /* blank numbers after the item */
116};
117
118struct hclge_dbg_vlan_cfg {
119	u16 pvid;
120	u8 accept_tag1;
121	u8 accept_tag2;
122	u8 accept_untag1;
123	u8 accept_untag2;
124	u8 insert_tag1;
125	u8 insert_tag2;
126	u8 shift_tag;
127	u8 strip_tag1;
128	u8 strip_tag2;
129	u8 drop_tag1;
130	u8 drop_tag2;
131	u8 pri_only1;
132	u8 pri_only2;
133};
134
135int hclge_dbg_cmd_send(struct hclge_dev *hdev, struct hclge_desc *desc_src,
136		       int index, int bd_num, enum hclge_opcode_type cmd);
137
138#endif
~/ Read-only file preview.