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