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};
96
97struct hclge_dbg_status_dfx_info {
98	u32  offset;
99	char message[HCLGE_DBG_MAX_DFX_MSG_LEN];
100};
101
102static const struct hclge_dbg_dfx_message hclge_dbg_bios_common_reg[] = {
103	{false, "Reserved"},
104	{true,	"BP_CPU_STATE"},
105	{true,	"DFX_MSIX_INFO_NIC_0"},
106	{true,	"DFX_MSIX_INFO_NIC_1"},
107	{true,	"DFX_MSIX_INFO_NIC_2"},
108	{true,	"DFX_MSIX_INFO_NIC_3"},
109
110	{true,	"DFX_MSIX_INFO_ROC_0"},
111	{true,	"DFX_MSIX_INFO_ROC_1"},
112	{true,	"DFX_MSIX_INFO_ROC_2"},
113	{true,	"DFX_MSIX_INFO_ROC_3"},
114	{false, "Reserved"},
115	{false, "Reserved"},
116};
117
118static const struct hclge_dbg_dfx_message hclge_dbg_ssu_reg_0[] = {
119	{false, "Reserved"},
120	{true,	"SSU_ETS_PORT_STATUS"},
121	{true,	"SSU_ETS_TCG_STATUS"},
122	{false, "Reserved"},
123	{false, "Reserved"},
124	{true,	"SSU_BP_STATUS_0"},
125
126	{true,	"SSU_BP_STATUS_1"},
127	{true,	"SSU_BP_STATUS_2"},
128	{true,	"SSU_BP_STATUS_3"},
129	{true,	"SSU_BP_STATUS_4"},
130	{true,	"SSU_BP_STATUS_5"},
131	{true,	"SSU_MAC_TX_PFC_IND"},
132
133	{true,	"MAC_SSU_RX_PFC_IND"},
134	{true,	"BTMP_AGEING_ST_B0"},
135	{true,	"BTMP_AGEING_ST_B1"},
136	{true,	"BTMP_AGEING_ST_B2"},
137	{false, "Reserved"},
138	{false, "Reserved"},
139
140	{true,	"FULL_DROP_NUM"},
141	{true,	"PART_DROP_NUM"},
142	{true,	"PPP_KEY_DROP_NUM"},
143	{true,	"PPP_RLT_DROP_NUM"},
144	{true,	"LO_PRI_UNICAST_RLT_DROP_NUM"},
145	{true,	"HI_PRI_MULTICAST_RLT_DROP_NUM"},
146
147	{true,	"LO_PRI_MULTICAST_RLT_DROP_NUM"},
148	{true,	"NCSI_PACKET_CURR_BUFFER_CNT"},
149	{true,	"BTMP_AGEING_RLS_CNT_BANK0"},
150	{true,	"BTMP_AGEING_RLS_CNT_BANK1"},
151	{true,	"BTMP_AGEING_RLS_CNT_BANK2"},
152	{true,	"SSU_MB_RD_RLT_DROP_CNT"},
153
154	{true,	"SSU_PPP_MAC_KEY_NUM_L"},
155	{true,	"SSU_PPP_MAC_KEY_NUM_H"},
156	{true,	"SSU_PPP_HOST_KEY_NUM_L"},
157	{true,	"SSU_PPP_HOST_KEY_NUM_H"},
158	{true,	"PPP_SSU_MAC_RLT_NUM_L"},
159	{true,	"PPP_SSU_MAC_RLT_NUM_H"},
160
161	{true,	"PPP_SSU_HOST_RLT_NUM_L"},
162	{true,	"PPP_SSU_HOST_RLT_NUM_H"},
163	{true,	"NCSI_RX_PACKET_IN_CNT_L"},
164	{true,	"NCSI_RX_PACKET_IN_CNT_H"},
165	{true,	"NCSI_TX_PACKET_OUT_CNT_L"},
166	{true,	"NCSI_TX_PACKET_OUT_CNT_H"},
167
168	{true,	"SSU_KEY_DROP_NUM"},
169	{true,	"MB_UNCOPY_NUM"},
170	{true,	"RX_OQ_DROP_PKT_CNT"},
171	{true,	"TX_OQ_DROP_PKT_CNT"},
172	{true,	"BANK_UNBALANCE_DROP_CNT"},
173	{true,	"BANK_UNBALANCE_RX_DROP_CNT"},
174
175	{true,	"NIC_L2_ERR_DROP_PKT_CNT"},
176	{true,	"ROC_L2_ERR_DROP_PKT_CNT"},
177	{true,	"NIC_L2_ERR_DROP_PKT_CNT_RX"},
178	{true,	"ROC_L2_ERR_DROP_PKT_CNT_RX"},
179	{true,	"RX_OQ_GLB_DROP_PKT_CNT"},
180	{false, "Reserved"},
181
182	{true,	"LO_PRI_UNICAST_CUR_CNT"},
183	{true,	"HI_PRI_MULTICAST_CUR_CNT"},
184	{true,	"LO_PRI_MULTICAST_CUR_CNT"},
185	{false, "Reserved"},
186	{false, "Reserved"},
187	{false, "Reserved"},
188};
189
190static const struct hclge_dbg_dfx_message hclge_dbg_ssu_reg_1[] = {
191	{true,	"prt_id"},
192	{true,	"PACKET_TC_CURR_BUFFER_CNT_0"},
193	{true,	"PACKET_TC_CURR_BUFFER_CNT_1"},
194	{true,	"PACKET_TC_CURR_BUFFER_CNT_2"},
195	{true,	"PACKET_TC_CURR_BUFFER_CNT_3"},
196	{true,	"PACKET_TC_CURR_BUFFER_CNT_4"},
197
198	{true,	"PACKET_TC_CURR_BUFFER_CNT_5"},
199	{true,	"PACKET_TC_CURR_BUFFER_CNT_6"},
200	{true,	"PACKET_TC_CURR_BUFFER_CNT_7"},
201	{true,	"PACKET_CURR_BUFFER_CNT"},
202	{false, "Reserved"},
203	{false, "Reserved"},
204
205	{true,	"RX_PACKET_IN_CNT_L"},
206	{true,	"RX_PACKET_IN_CNT_H"},
207	{true,	"RX_PACKET_OUT_CNT_L"},
208	{true,	"RX_PACKET_OUT_CNT_H"},
209	{true,	"TX_PACKET_IN_CNT_L"},
210	{true,	"TX_PACKET_IN_CNT_H"},
211
212	{true,	"TX_PACKET_OUT_CNT_L"},
213	{true,	"TX_PACKET_OUT_CNT_H"},
214	{true,	"ROC_RX_PACKET_IN_CNT_L"},
215	{true,	"ROC_RX_PACKET_IN_CNT_H"},
216	{true,	"ROC_TX_PACKET_OUT_CNT_L"},
217	{true,	"ROC_TX_PACKET_OUT_CNT_H"},
218
219	{true,	"RX_PACKET_TC_IN_CNT_0_L"},
220	{true,	"RX_PACKET_TC_IN_CNT_0_H"},
221	{true,	"RX_PACKET_TC_IN_CNT_1_L"},
222	{true,	"RX_PACKET_TC_IN_CNT_1_H"},
223	{true,	"RX_PACKET_TC_IN_CNT_2_L"},
224	{true,	"RX_PACKET_TC_IN_CNT_2_H"},
225
226	{true,	"RX_PACKET_TC_IN_CNT_3_L"},
227	{true,	"RX_PACKET_TC_IN_CNT_3_H"},
228	{true,	"RX_PACKET_TC_IN_CNT_4_L"},
229	{true,	"RX_PACKET_TC_IN_CNT_4_H"},
230	{true,	"RX_PACKET_TC_IN_CNT_5_L"},
231	{true,	"RX_PACKET_TC_IN_CNT_5_H"},
232
233	{true,	"RX_PACKET_TC_IN_CNT_6_L"},
234	{true,	"RX_PACKET_TC_IN_CNT_6_H"},
235	{true,	"RX_PACKET_TC_IN_CNT_7_L"},
236	{true,	"RX_PACKET_TC_IN_CNT_7_H"},
237	{true,	"RX_PACKET_TC_OUT_CNT_0_L"},
238	{true,	"RX_PACKET_TC_OUT_CNT_0_H"},
239
240	{true,	"RX_PACKET_TC_OUT_CNT_1_L"},
241	{true,	"RX_PACKET_TC_OUT_CNT_1_H"},
242	{true,	"RX_PACKET_TC_OUT_CNT_2_L"},
243	{true,	"RX_PACKET_TC_OUT_CNT_2_H"},
244	{true,	"RX_PACKET_TC_OUT_CNT_3_L"},
245	{true,	"RX_PACKET_TC_OUT_CNT_3_H"},
246
247	{true,	"RX_PACKET_TC_OUT_CNT_4_L"},
248	{true,	"RX_PACKET_TC_OUT_CNT_4_H"},
249	{true,	"RX_PACKET_TC_OUT_CNT_5_L"},
250	{true,	"RX_PACKET_TC_OUT_CNT_5_H"},
251	{true,	"RX_PACKET_TC_OUT_CNT_6_L"},
252	{true,	"RX_PACKET_TC_OUT_CNT_6_H"},
253
254	{true,	"RX_PACKET_TC_OUT_CNT_7_L"},
255	{true,	"RX_PACKET_TC_OUT_CNT_7_H"},
256	{true,	"TX_PACKET_TC_IN_CNT_0_L"},
257	{true,	"TX_PACKET_TC_IN_CNT_0_H"},
258	{true,	"TX_PACKET_TC_IN_CNT_1_L"},
259	{true,	"TX_PACKET_TC_IN_CNT_1_H"},
260
261	{true,	"TX_PACKET_TC_IN_CNT_2_L"},
262	{true,	"TX_PACKET_TC_IN_CNT_2_H"},
263	{true,	"TX_PACKET_TC_IN_CNT_3_L"},
264	{true,	"TX_PACKET_TC_IN_CNT_3_H"},
265	{true,	"TX_PACKET_TC_IN_CNT_4_L"},
266	{true,	"TX_PACKET_TC_IN_CNT_4_H"},
267
268	{true,	"TX_PACKET_TC_IN_CNT_5_L"},
269	{true,	"TX_PACKET_TC_IN_CNT_5_H"},
270	{true,	"TX_PACKET_TC_IN_CNT_6_L"},
271	{true,	"TX_PACKET_TC_IN_CNT_6_H"},
272	{true,	"TX_PACKET_TC_IN_CNT_7_L"},
273	{true,	"TX_PACKET_TC_IN_CNT_7_H"},
274
275	{true,	"TX_PACKET_TC_OUT_CNT_0_L"},
276	{true,	"TX_PACKET_TC_OUT_CNT_0_H"},
277	{true,	"TX_PACKET_TC_OUT_CNT_1_L"},
278	{true,	"TX_PACKET_TC_OUT_CNT_1_H"},
279	{true,	"TX_PACKET_TC_OUT_CNT_2_L"},
280	{true,	"TX_PACKET_TC_OUT_CNT_2_H"},
281
282	{true,	"TX_PACKET_TC_OUT_CNT_3_L"},
283	{true,	"TX_PACKET_TC_OUT_CNT_3_H"},
284	{true,	"TX_PACKET_TC_OUT_CNT_4_L"},
285	{true,	"TX_PACKET_TC_OUT_CNT_4_H"},
286	{true,	"TX_PACKET_TC_OUT_CNT_5_L"},
287	{true,	"TX_PACKET_TC_OUT_CNT_5_H"},
288
289	{true,	"TX_PACKET_TC_OUT_CNT_6_L"},
290	{true,	"TX_PACKET_TC_OUT_CNT_6_H"},
291	{true,	"TX_PACKET_TC_OUT_CNT_7_L"},
292	{true,	"TX_PACKET_TC_OUT_CNT_7_H"},
293	{false, "Reserved"},
294	{false, "Reserved"},
295};
296
297static const struct hclge_dbg_dfx_message hclge_dbg_ssu_reg_2[] = {
298	{true,	"OQ_INDEX"},
299	{true,	"QUEUE_CNT"},
300	{false, "Reserved"},
301	{false, "Reserved"},
302	{false, "Reserved"},
303	{false, "Reserved"},
304};
305
306static const struct hclge_dbg_dfx_message hclge_dbg_igu_egu_reg[] = {
307	{true,	"prt_id"},
308	{true,	"IGU_RX_ERR_PKT"},
309	{true,	"IGU_RX_NO_SOF_PKT"},
310	{true,	"EGU_TX_1588_SHORT_PKT"},
311	{true,	"EGU_TX_1588_PKT"},
312	{true,	"EGU_TX_ERR_PKT"},
313
314	{true,	"IGU_RX_OUT_L2_PKT"},
315	{true,	"IGU_RX_OUT_L3_PKT"},
316	{true,	"IGU_RX_OUT_L4_PKT"},
317	{true,	"IGU_RX_IN_L2_PKT"},
318	{true,	"IGU_RX_IN_L3_PKT"},
319	{true,	"IGU_RX_IN_L4_PKT"},
320
321	{true,	"IGU_RX_EL3E_PKT"},
322	{true,	"IGU_RX_EL4E_PKT"},
323	{true,	"IGU_RX_L3E_PKT"},
324	{true,	"IGU_RX_L4E_PKT"},
325	{true,	"IGU_RX_ROCEE_PKT"},
326	{true,	"IGU_RX_OUT_UDP0_PKT"},
327
328	{true,	"IGU_RX_IN_UDP0_PKT"},
329	{true,	"IGU_MC_CAR_DROP_PKT_L"},
330	{true,	"IGU_MC_CAR_DROP_PKT_H"},
331	{true,	"IGU_BC_CAR_DROP_PKT_L"},
332	{true,	"IGU_BC_CAR_DROP_PKT_H"},
333	{false, "Reserved"},
334
335	{true,	"IGU_RX_OVERSIZE_PKT_L"},
336	{true,	"IGU_RX_OVERSIZE_PKT_H"},
337	{true,	"IGU_RX_UNDERSIZE_PKT_L"},
338	{true,	"IGU_RX_UNDERSIZE_PKT_H"},
339	{true,	"IGU_RX_OUT_ALL_PKT_L"},
340	{true,	"IGU_RX_OUT_ALL_PKT_H"},
341
342	{true,	"IGU_TX_OUT_ALL_PKT_L"},
343	{true,	"IGU_TX_OUT_ALL_PKT_H"},
344	{true,	"IGU_RX_UNI_PKT_L"},
345	{true,	"IGU_RX_UNI_PKT_H"},
346	{true,	"IGU_RX_MULTI_PKT_L"},
347	{true,	"IGU_RX_MULTI_PKT_H"},
348
349	{true,	"IGU_RX_BROAD_PKT_L"},
350	{true,	"IGU_RX_BROAD_PKT_H"},
351	{true,	"EGU_TX_OUT_ALL_PKT_L"},
352	{true,	"EGU_TX_OUT_ALL_PKT_H"},
353	{true,	"EGU_TX_UNI_PKT_L"},
354	{true,	"EGU_TX_UNI_PKT_H"},
355
356	{true,	"EGU_TX_MULTI_PKT_L"},
357	{true,	"EGU_TX_MULTI_PKT_H"},
358	{true,	"EGU_TX_BROAD_PKT_L"},
359	{true,	"EGU_TX_BROAD_PKT_H"},
360	{true,	"IGU_TX_KEY_NUM_L"},
361	{true,	"IGU_TX_KEY_NUM_H"},
362
363	{true,	"IGU_RX_NON_TUN_PKT_L"},
364	{true,	"IGU_RX_NON_TUN_PKT_H"},
365	{true,	"IGU_RX_TUN_PKT_L"},
366	{true,	"IGU_RX_TUN_PKT_H"},
367	{false,	"Reserved"},
368	{false,	"Reserved"},
369};
370
371static const struct hclge_dbg_dfx_message hclge_dbg_rpu_reg_0[] = {
372	{true, "tc_queue_num"},
373	{true, "FSM_DFX_ST0"},
374	{true, "FSM_DFX_ST1"},
375	{true, "RPU_RX_PKT_DROP_CNT"},
376	{true, "BUF_WAIT_TIMEOUT"},
377	{true, "BUF_WAIT_TIMEOUT_QID"},
378};
379
380static const struct hclge_dbg_dfx_message hclge_dbg_rpu_reg_1[] = {
381	{false, "Reserved"},
382	{true,	"FIFO_DFX_ST0"},
383	{true,	"FIFO_DFX_ST1"},
384	{true,	"FIFO_DFX_ST2"},
385	{true,	"FIFO_DFX_ST3"},
386	{true,	"FIFO_DFX_ST4"},
387
388	{true,	"FIFO_DFX_ST5"},
389	{false, "Reserved"},
390	{false, "Reserved"},
391	{false, "Reserved"},
392	{false, "Reserved"},
393	{false, "Reserved"},
394};
395
396static const struct hclge_dbg_dfx_message hclge_dbg_ncsi_reg[] = {
397	{false, "Reserved"},
398	{true,	"NCSI_EGU_TX_FIFO_STS"},
399	{true,	"NCSI_PAUSE_STATUS"},
400	{true,	"NCSI_RX_CTRL_DMAC_ERR_CNT"},
401	{true,	"NCSI_RX_CTRL_SMAC_ERR_CNT"},
402	{true,	"NCSI_RX_CTRL_CKS_ERR_CNT"},
403
404	{true,	"NCSI_RX_CTRL_PKT_CNT"},
405	{true,	"NCSI_RX_PT_DMAC_ERR_CNT"},
406	{true,	"NCSI_RX_PT_SMAC_ERR_CNT"},
407	{true,	"NCSI_RX_PT_PKT_CNT"},
408	{true,	"NCSI_RX_FCS_ERR_CNT"},
409	{true,	"NCSI_TX_CTRL_DMAC_ERR_CNT"},
410
411	{true,	"NCSI_TX_CTRL_SMAC_ERR_CNT"},
412	{true,	"NCSI_TX_CTRL_PKT_CNT"},
413	{true,	"NCSI_TX_PT_DMAC_ERR_CNT"},
414	{true,	"NCSI_TX_PT_SMAC_ERR_CNT"},
415	{true,	"NCSI_TX_PT_PKT_CNT"},
416	{true,	"NCSI_TX_PT_PKT_TRUNC_CNT"},
417
418	{true,	"NCSI_TX_PT_PKT_ERR_CNT"},
419	{true,	"NCSI_TX_CTRL_PKT_ERR_CNT"},
420	{true,	"NCSI_RX_CTRL_PKT_TRUNC_CNT"},
421	{true,	"NCSI_RX_CTRL_PKT_CFLIT_CNT"},
422	{false, "Reserved"},
423	{false, "Reserved"},
424
425	{true,	"NCSI_MAC_RX_OCTETS_OK"},
426	{true,	"NCSI_MAC_RX_OCTETS_BAD"},
427	{true,	"NCSI_MAC_RX_UC_PKTS"},
428	{true,	"NCSI_MAC_RX_MC_PKTS"},
429	{true,	"NCSI_MAC_RX_BC_PKTS"},
430	{true,	"NCSI_MAC_RX_PKTS_64OCTETS"},
431
432	{true,	"NCSI_MAC_RX_PKTS_65TO127OCTETS"},
433	{true,	"NCSI_MAC_RX_PKTS_128TO255OCTETS"},
434	{true,	"NCSI_MAC_RX_PKTS_255TO511OCTETS"},
435	{true,	"NCSI_MAC_RX_PKTS_512TO1023OCTETS"},
436	{true,	"NCSI_MAC_RX_PKTS_1024TO1518OCTETS"},
437	{true,	"NCSI_MAC_RX_PKTS_1519TOMAXOCTETS"},
438
439	{true,	"NCSI_MAC_RX_FCS_ERRORS"},
440	{true,	"NCSI_MAC_RX_LONG_ERRORS"},
441	{true,	"NCSI_MAC_RX_JABBER_ERRORS"},
442	{true,	"NCSI_MAC_RX_RUNT_ERR_CNT"},
443	{true,	"NCSI_MAC_RX_SHORT_ERR_CNT"},
444	{true,	"NCSI_MAC_RX_FILT_PKT_CNT"},
445
446	{true,	"NCSI_MAC_RX_OCTETS_TOTAL_FILT"},
447	{true,	"NCSI_MAC_TX_OCTETS_OK"},
448	{true,	"NCSI_MAC_TX_OCTETS_BAD"},
449	{true,	"NCSI_MAC_TX_UC_PKTS"},
450	{true,	"NCSI_MAC_TX_MC_PKTS"},
451	{true,	"NCSI_MAC_TX_BC_PKTS"},
452
453	{true,	"NCSI_MAC_TX_PKTS_64OCTETS"},
454	{true,	"NCSI_MAC_TX_PKTS_65TO127OCTETS"},
455	{true,	"NCSI_MAC_TX_PKTS_128TO255OCTETS"},
456	{true,	"NCSI_MAC_TX_PKTS_256TO511OCTETS"},
457	{true,	"NCSI_MAC_TX_PKTS_512TO1023OCTETS"},
458	{true,	"NCSI_MAC_TX_PKTS_1024TO1518OCTETS"},
459
460	{true,	"NCSI_MAC_TX_PKTS_1519TOMAXOCTETS"},
461	{true,	"NCSI_MAC_TX_UNDERRUN"},
462	{true,	"NCSI_MAC_TX_CRC_ERROR"},
463	{true,	"NCSI_MAC_TX_PAUSE_FRAMES"},
464	{true,	"NCSI_MAC_RX_PAD_PKTS"},
465	{true,	"NCSI_MAC_RX_PAUSE_FRAMES"},
466};
467
468static const struct hclge_dbg_dfx_message hclge_dbg_rtc_reg[] = {
469	{false, "Reserved"},
470	{true,	"LGE_IGU_AFIFO_DFX_0"},
471	{true,	"LGE_IGU_AFIFO_DFX_1"},
472	{true,	"LGE_IGU_AFIFO_DFX_2"},
473	{true,	"LGE_IGU_AFIFO_DFX_3"},
474	{true,	"LGE_IGU_AFIFO_DFX_4"},
475
476	{true,	"LGE_IGU_AFIFO_DFX_5"},
477	{true,	"LGE_IGU_AFIFO_DFX_6"},
478	{true,	"LGE_IGU_AFIFO_DFX_7"},
479	{true,	"LGE_EGU_AFIFO_DFX_0"},
480	{true,	"LGE_EGU_AFIFO_DFX_1"},
481	{true,	"LGE_EGU_AFIFO_DFX_2"},
482
483	{true,	"LGE_EGU_AFIFO_DFX_3"},
484	{true,	"LGE_EGU_AFIFO_DFX_4"},
485	{true,	"LGE_EGU_AFIFO_DFX_5"},
486	{true,	"LGE_EGU_AFIFO_DFX_6"},
487	{true,	"LGE_EGU_AFIFO_DFX_7"},
488	{true,	"CGE_IGU_AFIFO_DFX_0"},
489
490	{true,	"CGE_IGU_AFIFO_DFX_1"},
491	{true,	"CGE_EGU_AFIFO_DFX_0"},
492	{true,	"CGE_EGU_AFIFO_DFX_1"},
493	{false, "Reserved"},
494	{false, "Reserved"},
495	{false, "Reserved"},
496};
497
498static const struct hclge_dbg_dfx_message hclge_dbg_ppp_reg[] = {
499	{false, "Reserved"},
500	{true,	"DROP_FROM_PRT_PKT_CNT"},
501	{true,	"DROP_FROM_HOST_PKT_CNT"},
502	{true,	"DROP_TX_VLAN_PROC_CNT"},
503	{true,	"DROP_MNG_CNT"},
504	{true,	"DROP_FD_CNT"},
505
506	{true,	"DROP_NO_DST_CNT"},
507	{true,	"DROP_MC_MBID_FULL_CNT"},
508	{true,	"DROP_SC_FILTERED"},
509	{true,	"PPP_MC_DROP_PKT_CNT"},
510	{true,	"DROP_PT_CNT"},
511	{true,	"DROP_MAC_ANTI_SPOOF_CNT"},
512
513	{true,	"DROP_IG_VFV_CNT"},
514	{true,	"DROP_IG_PRTV_CNT"},
515	{true,	"DROP_CNM_PFC_PAUSE_CNT"},
516	{true,	"DROP_TORUS_TC_CNT"},
517	{true,	"DROP_TORUS_LPBK_CNT"},
518	{true,	"PPP_HFS_STS"},
519
520	{true,	"PPP_MC_RSLT_STS"},
521	{true,	"PPP_P3U_STS"},
522	{true,	"PPP_RSLT_DESCR_STS"},
523	{true,	"PPP_UMV_STS_0"},
524	{true,	"PPP_UMV_STS_1"},
525	{true,	"PPP_VFV_STS"},
526
527	{true,	"PPP_GRO_KEY_CNT"},
528	{true,	"PPP_GRO_INFO_CNT"},
529	{true,	"PPP_GRO_DROP_CNT"},
530	{true,	"PPP_GRO_OUT_CNT"},
531	{true,	"PPP_GRO_KEY_MATCH_DATA_CNT"},
532	{true,	"PPP_GRO_KEY_MATCH_TCAM_CNT"},
533
534	{true,	"PPP_GRO_INFO_MATCH_CNT"},
535	{true,	"PPP_GRO_FREE_ENTRY_CNT"},
536	{true,	"PPP_GRO_INNER_DFX_SIGNAL"},
537	{false, "Reserved"},
538	{false, "Reserved"},
539	{false, "Reserved"},
540
541	{true,	"GET_RX_PKT_CNT_L"},
542	{true,	"GET_RX_PKT_CNT_H"},
543	{true,	"GET_TX_PKT_CNT_L"},
544	{true,	"GET_TX_PKT_CNT_H"},
545	{true,	"SEND_UC_PRT2HOST_PKT_CNT_L"},
546	{true,	"SEND_UC_PRT2HOST_PKT_CNT_H"},
547
548	{true,	"SEND_UC_PRT2PRT_PKT_CNT_L"},
549	{true,	"SEND_UC_PRT2PRT_PKT_CNT_H"},
550	{true,	"SEND_UC_HOST2HOST_PKT_CNT_L"},
551	{true,	"SEND_UC_HOST2HOST_PKT_CNT_H"},
552	{true,	"SEND_UC_HOST2PRT_PKT_CNT_L"},
553	{true,	"SEND_UC_HOST2PRT_PKT_CNT_H"},
554
555	{true,	"SEND_MC_FROM_PRT_CNT_L"},
556	{true,	"SEND_MC_FROM_PRT_CNT_H"},
557	{true,	"SEND_MC_FROM_HOST_CNT_L"},
558	{true,	"SEND_MC_FROM_HOST_CNT_H"},
559	{true,	"SSU_MC_RD_CNT_L"},
560	{true,	"SSU_MC_RD_CNT_H"},
561
562	{true,	"SSU_MC_DROP_CNT_L"},
563	{true,	"SSU_MC_DROP_CNT_H"},
564	{true,	"SSU_MC_RD_PKT_CNT_L"},
565	{true,	"SSU_MC_RD_PKT_CNT_H"},
566	{true,	"PPP_MC_2HOST_PKT_CNT_L"},
567	{true,	"PPP_MC_2HOST_PKT_CNT_H"},
568
569	{true,	"PPP_MC_2PRT_PKT_CNT_L"},
570	{true,	"PPP_MC_2PRT_PKT_CNT_H"},
571	{true,	"NTSNOS_PKT_CNT_L"},
572	{true,	"NTSNOS_PKT_CNT_H"},
573	{true,	"NTUP_PKT_CNT_L"},
574	{true,	"NTUP_PKT_CNT_H"},
575
576	{true,	"NTLCL_PKT_CNT_L"},
577	{true,	"NTLCL_PKT_CNT_H"},
578	{true,	"NTTGT_PKT_CNT_L"},
579	{true,	"NTTGT_PKT_CNT_H"},
580	{true,	"RTNS_PKT_CNT_L"},
581	{true,	"RTNS_PKT_CNT_H"},
582
583	{true,	"RTLPBK_PKT_CNT_L"},
584	{true,	"RTLPBK_PKT_CNT_H"},
585	{true,	"NR_PKT_CNT_L"},
586	{true,	"NR_PKT_CNT_H"},
587	{true,	"RR_PKT_CNT_L"},
588	{true,	"RR_PKT_CNT_H"},
589
590	{true,	"MNG_TBL_HIT_CNT_L"},
591	{true,	"MNG_TBL_HIT_CNT_H"},
592	{true,	"FD_TBL_HIT_CNT_L"},
593	{true,	"FD_TBL_HIT_CNT_H"},
594	{true,	"FD_LKUP_CNT_L"},
595	{true,	"FD_LKUP_CNT_H"},
596
597	{true,	"BC_HIT_CNT_L"},
598	{true,	"BC_HIT_CNT_H"},
599	{true,	"UM_TBL_UC_HIT_CNT_L"},
600	{true,	"UM_TBL_UC_HIT_CNT_H"},
601	{true,	"UM_TBL_MC_HIT_CNT_L"},
602	{true,	"UM_TBL_MC_HIT_CNT_H"},
603
604	{true,	"UM_TBL_VMDQ1_HIT_CNT_L"},
605	{true,	"UM_TBL_VMDQ1_HIT_CNT_H"},
606	{true,	"MTA_TBL_HIT_CNT_L"},
607	{true,	"MTA_TBL_HIT_CNT_H"},
608	{true,	"FWD_BONDING_HIT_CNT_L"},
609	{true,	"FWD_BONDING_HIT_CNT_H"},
610
611	{true,	"PROMIS_TBL_HIT_CNT_L"},
612	{true,	"PROMIS_TBL_HIT_CNT_H"},
613	{true,	"GET_TUNL_PKT_CNT_L"},
614	{true,	"GET_TUNL_PKT_CNT_H"},
615	{true,	"GET_BMC_PKT_CNT_L"},
616	{true,	"GET_BMC_PKT_CNT_H"},
617
618	{true,	"SEND_UC_PRT2BMC_PKT_CNT_L"},
619	{true,	"SEND_UC_PRT2BMC_PKT_CNT_H"},
620	{true,	"SEND_UC_HOST2BMC_PKT_CNT_L"},
621	{true,	"SEND_UC_HOST2BMC_PKT_CNT_H"},
622	{true,	"SEND_UC_BMC2HOST_PKT_CNT_L"},
623	{true,	"SEND_UC_BMC2HOST_PKT_CNT_H"},
624
625	{true,	"SEND_UC_BMC2PRT_PKT_CNT_L"},
626	{true,	"SEND_UC_BMC2PRT_PKT_CNT_H"},
627	{true,	"PPP_MC_2BMC_PKT_CNT_L"},
628	{true,	"PPP_MC_2BMC_PKT_CNT_H"},
629	{true,	"VLAN_MIRR_CNT_L"},
630	{true,	"VLAN_MIRR_CNT_H"},
631
632	{true,	"IG_MIRR_CNT_L"},
633	{true,	"IG_MIRR_CNT_H"},
634	{true,	"EG_MIRR_CNT_L"},
635	{true,	"EG_MIRR_CNT_H"},
636	{true,	"RX_DEFAULT_HOST_HIT_CNT_L"},
637	{true,	"RX_DEFAULT_HOST_HIT_CNT_H"},
638
639	{true,	"LAN_PAIR_CNT_L"},
640	{true,	"LAN_PAIR_CNT_H"},
641	{true,	"UM_TBL_MC_HIT_PKT_CNT_L"},
642	{true,	"UM_TBL_MC_HIT_PKT_CNT_H"},
643	{true,	"MTA_TBL_HIT_PKT_CNT_L"},
644	{true,	"MTA_TBL_HIT_PKT_CNT_H"},
645
646	{true,	"PROMIS_TBL_HIT_PKT_CNT_L"},
647	{true,	"PROMIS_TBL_HIT_PKT_CNT_H"},
648	{false, "Reserved"},
649	{false, "Reserved"},
650	{false, "Reserved"},
651	{false, "Reserved"},
652};
653
654static const struct hclge_dbg_dfx_message hclge_dbg_rcb_reg[] = {
655	{false, "Reserved"},
656	{true,	"FSM_DFX_ST0"},
657	{true,	"FSM_DFX_ST1"},
658	{true,	"FSM_DFX_ST2"},
659	{true,	"FIFO_DFX_ST0"},
660	{true,	"FIFO_DFX_ST1"},
661
662	{true,	"FIFO_DFX_ST2"},
663	{true,	"FIFO_DFX_ST3"},
664	{true,	"FIFO_DFX_ST4"},
665	{true,	"FIFO_DFX_ST5"},
666	{true,	"FIFO_DFX_ST6"},
667	{true,	"FIFO_DFX_ST7"},
668
669	{true,	"FIFO_DFX_ST8"},
670	{true,	"FIFO_DFX_ST9"},
671	{true,	"FIFO_DFX_ST10"},
672	{true,	"FIFO_DFX_ST11"},
673	{true,	"Q_CREDIT_VLD_0"},
674	{true,	"Q_CREDIT_VLD_1"},
675
676	{true,	"Q_CREDIT_VLD_2"},
677	{true,	"Q_CREDIT_VLD_3"},
678	{true,	"Q_CREDIT_VLD_4"},
679	{true,	"Q_CREDIT_VLD_5"},
680	{true,	"Q_CREDIT_VLD_6"},
681	{true,	"Q_CREDIT_VLD_7"},
682
683	{true,	"Q_CREDIT_VLD_8"},
684	{true,	"Q_CREDIT_VLD_9"},
685	{true,	"Q_CREDIT_VLD_10"},
686	{true,	"Q_CREDIT_VLD_11"},
687	{true,	"Q_CREDIT_VLD_12"},
688	{true,	"Q_CREDIT_VLD_13"},
689
690	{true,	"Q_CREDIT_VLD_14"},
691	{true,	"Q_CREDIT_VLD_15"},
692	{true,	"Q_CREDIT_VLD_16"},
693	{true,	"Q_CREDIT_VLD_17"},
694	{true,	"Q_CREDIT_VLD_18"},
695	{true,	"Q_CREDIT_VLD_19"},
696
697	{true,	"Q_CREDIT_VLD_20"},
698	{true,	"Q_CREDIT_VLD_21"},
699	{true,	"Q_CREDIT_VLD_22"},
700	{true,	"Q_CREDIT_VLD_23"},
701	{true,	"Q_CREDIT_VLD_24"},
702	{true,	"Q_CREDIT_VLD_25"},
703
704	{true,	"Q_CREDIT_VLD_26"},
705	{true,	"Q_CREDIT_VLD_27"},
706	{true,	"Q_CREDIT_VLD_28"},
707	{true,	"Q_CREDIT_VLD_29"},
708	{true,	"Q_CREDIT_VLD_30"},
709	{true,	"Q_CREDIT_VLD_31"},
710
711	{true,	"GRO_BD_SERR_CNT"},
712	{true,	"GRO_CONTEXT_SERR_CNT"},
713	{true,	"RX_STASH_CFG_SERR_CNT"},
714	{true,	"AXI_RD_FBD_SERR_CNT"},
715	{true,	"GRO_BD_MERR_CNT"},
716	{true,	"GRO_CONTEXT_MERR_CNT"},
717
718	{true,	"RX_STASH_CFG_MERR_CNT"},
719	{true,	"AXI_RD_FBD_MERR_CNT"},
720	{false, "Reserved"},
721	{false, "Reserved"},
722	{false, "Reserved"},
723	{false, "Reserved"},
724};
725
726static const struct hclge_dbg_dfx_message hclge_dbg_tqp_reg[] = {
727	{true, "q_num"},
728	{true, "RCB_CFG_RX_RING_TAIL"},
729	{true, "RCB_CFG_RX_RING_HEAD"},
730	{true, "RCB_CFG_RX_RING_FBDNUM"},
731	{true, "RCB_CFG_RX_RING_OFFSET"},
732	{true, "RCB_CFG_RX_RING_FBDOFFSET"},
733
734	{true, "RCB_CFG_RX_RING_PKTNUM_RECORD"},
735	{true, "RCB_CFG_TX_RING_TAIL"},
736	{true, "RCB_CFG_TX_RING_HEAD"},
737	{true, "RCB_CFG_TX_RING_FBDNUM"},
738	{true, "RCB_CFG_TX_RING_OFFSET"},
739	{true, "RCB_CFG_TX_RING_EBDNUM"},
740};
741
742#define HCLGE_DBG_INFO_LEN			256
743#define HCLGE_DBG_VLAN_FLTR_INFO_LEN		256
744#define HCLGE_DBG_VLAN_OFFLOAD_INFO_LEN		512
745#define HCLGE_DBG_ID_LEN			16
746#define HCLGE_DBG_ITEM_NAME_LEN			32
747#define HCLGE_DBG_DATA_STR_LEN			32
748#define HCLGE_DBG_TM_INFO_LEN			256
749
750#define HCLGE_BILLION_NANO_SECONDS	1000000000
751
752struct hclge_dbg_item {
753	char name[HCLGE_DBG_ITEM_NAME_LEN];
754	u16 interval; /* blank numbers after the item */
755};
756
757struct hclge_dbg_vlan_cfg {
758	u16 pvid;
759	u8 accept_tag1;
760	u8 accept_tag2;
761	u8 accept_untag1;
762	u8 accept_untag2;
763	u8 insert_tag1;
764	u8 insert_tag2;
765	u8 shift_tag;
766	u8 strip_tag1;
767	u8 strip_tag2;
768	u8 drop_tag1;
769	u8 drop_tag2;
770	u8 pri_only1;
771	u8 pri_only2;
772};
773
774#endif
775