1  /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
2  /* QLogic qed NIC Driver
3   * Copyright (c) 2015 QLogic Corporation
4   * Copyright (c) 2019-2021 Marvell International Ltd.
5   */
6  
7  #ifndef _QED_DEBUG_H
8  #define _QED_DEBUG_H
9  
10  enum qed_dbg_features {
11  	DBG_FEATURE_GRC,
12  	DBG_FEATURE_IDLE_CHK,
13  	DBG_FEATURE_MCP_TRACE,
14  	DBG_FEATURE_REG_FIFO,
15  	DBG_FEATURE_IGU_FIFO,
16  	DBG_FEATURE_PROTECTION_OVERRIDE,
17  	DBG_FEATURE_FW_ASSERTS,
18  	DBG_FEATURE_ILT,
19  	DBG_FEATURE_NUM
20  };
21  
22  /* Forward Declaration */
23  struct qed_dev;
24  struct qed_hwfn;
25  
26  int qed_dbg_grc(struct qed_dev *cdev, void *buffer, u32 *num_dumped_bytes);
27  int qed_dbg_grc_size(struct qed_dev *cdev);
28  int qed_dbg_idle_chk(struct qed_dev *cdev, void *buffer,
29  		     u32 *num_dumped_bytes);
30  int qed_dbg_idle_chk_size(struct qed_dev *cdev);
31  int qed_dbg_reg_fifo(struct qed_dev *cdev, void *buffer,
32  		     u32 *num_dumped_bytes);
33  int qed_dbg_reg_fifo_size(struct qed_dev *cdev);
34  int qed_dbg_igu_fifo(struct qed_dev *cdev, void *buffer,
35  		     u32 *num_dumped_bytes);
36  int qed_dbg_igu_fifo_size(struct qed_dev *cdev);
37  int qed_dbg_protection_override(struct qed_dev *cdev, void *buffer,
38  				u32 *num_dumped_bytes);
39  int qed_dbg_protection_override_size(struct qed_dev *cdev);
40  int qed_dbg_fw_asserts(struct qed_dev *cdev, void *buffer,
41  		       u32 *num_dumped_bytes);
42  int qed_dbg_fw_asserts_size(struct qed_dev *cdev);
43  int qed_dbg_ilt(struct qed_dev *cdev, void *buffer, u32 *num_dumped_bytes);
44  int qed_dbg_ilt_size(struct qed_dev *cdev);
45  int qed_dbg_mcp_trace(struct qed_dev *cdev, void *buffer,
46  		      u32 *num_dumped_bytes);
47  int qed_dbg_mcp_trace_size(struct qed_dev *cdev);
48  int qed_dbg_phy_size(struct qed_dev *cdev);
49  int qed_dbg_all_data(struct qed_dev *cdev, void *buffer);
50  int qed_dbg_all_data_size(struct qed_dev *cdev);
51  u8 qed_get_debug_engine(struct qed_dev *cdev);
52  void qed_set_debug_engine(struct qed_dev *cdev, int engine_number);
53  int qed_dbg_feature(struct qed_dev *cdev, void *buffer,
54  		    enum qed_dbg_features feature, u32 *num_dumped_bytes);
55  int qed_dbg_feature_size(struct qed_dev *cdev, enum qed_dbg_features feature);
56  
57  void qed_dbg_pf_init(struct qed_dev *cdev);
58  void qed_dbg_pf_exit(struct qed_dev *cdev);
59  
60  #endif
61