162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* Huawei HiNIC PCI Express Linux driver 362306a36Sopenharmony_ci * Copyright(c) 2017 Huawei Technologies Co., Ltd 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#ifndef HINIC_DEBUGFS_H 762306a36Sopenharmony_ci#define HINIC_DEBUGFS_H 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include "hinic_dev.h" 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#define TBL_ID_FUNC_CFG_SM_NODE 11 1262306a36Sopenharmony_ci#define TBL_ID_FUNC_CFG_SM_INST 1 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#define HINIC_FUNCTION_CONFIGURE_TABLE_SIZE 64 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_cistruct hinic_cmd_lt_rd { 1762306a36Sopenharmony_ci u8 status; 1862306a36Sopenharmony_ci u8 version; 1962306a36Sopenharmony_ci u8 rsvd0[6]; 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci unsigned char node; 2262306a36Sopenharmony_ci unsigned char inst; 2362306a36Sopenharmony_ci unsigned char entry_size; 2462306a36Sopenharmony_ci unsigned char rsvd; 2562306a36Sopenharmony_ci unsigned int lt_index; 2662306a36Sopenharmony_ci unsigned int offset; 2762306a36Sopenharmony_ci unsigned int len; 2862306a36Sopenharmony_ci unsigned char data[100]; 2962306a36Sopenharmony_ci}; 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_cistruct tag_sml_funcfg_tbl { 3262306a36Sopenharmony_ci union { 3362306a36Sopenharmony_ci struct { 3462306a36Sopenharmony_ci u32 rsvd0 :8; 3562306a36Sopenharmony_ci u32 nic_rx_mode :5; 3662306a36Sopenharmony_ci u32 rsvd1 :18; 3762306a36Sopenharmony_ci u32 valid :1; 3862306a36Sopenharmony_ci } bs; 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci u32 value; 4162306a36Sopenharmony_ci } dw0; 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci union { 4462306a36Sopenharmony_ci struct { 4562306a36Sopenharmony_ci u32 vlan_id :12; 4662306a36Sopenharmony_ci u32 vlan_mode :3; 4762306a36Sopenharmony_ci u32 fast_recycled_mode :1; 4862306a36Sopenharmony_ci u32 mtu :16; 4962306a36Sopenharmony_ci } bs; 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci u32 value; 5262306a36Sopenharmony_ci } dw1; 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci u32 dw2; 5562306a36Sopenharmony_ci u32 dw3; 5662306a36Sopenharmony_ci u32 dw4; 5762306a36Sopenharmony_ci u32 dw5; 5862306a36Sopenharmony_ci u32 dw6; 5962306a36Sopenharmony_ci u32 dw7; 6062306a36Sopenharmony_ci u32 dw8; 6162306a36Sopenharmony_ci u32 dw9; 6262306a36Sopenharmony_ci u32 dw10; 6362306a36Sopenharmony_ci u32 dw11; 6462306a36Sopenharmony_ci u32 dw12; 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci union { 6762306a36Sopenharmony_ci struct { 6862306a36Sopenharmony_ci u32 rsvd2 :15; 6962306a36Sopenharmony_ci u32 cfg_q_num :9; 7062306a36Sopenharmony_ci u32 cfg_rq_depth :6; 7162306a36Sopenharmony_ci u32 vhd_type :2; 7262306a36Sopenharmony_ci } bs; 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci u32 value; 7562306a36Sopenharmony_ci } dw13; 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci u32 dw14; 7862306a36Sopenharmony_ci u32 dw15; 7962306a36Sopenharmony_ci}; 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ciint hinic_sq_debug_add(struct hinic_dev *dev, u16 sq_id); 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_civoid hinic_sq_debug_rem(struct hinic_sq *sq); 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ciint hinic_rq_debug_add(struct hinic_dev *dev, u16 rq_id); 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_civoid hinic_rq_debug_rem(struct hinic_rq *rq); 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ciint hinic_func_table_debug_add(struct hinic_dev *dev); 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_civoid hinic_func_table_debug_rem(struct hinic_dev *dev); 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_civoid hinic_sq_dbgfs_init(struct hinic_dev *nic_dev); 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_civoid hinic_sq_dbgfs_uninit(struct hinic_dev *nic_dev); 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_civoid hinic_rq_dbgfs_init(struct hinic_dev *nic_dev); 9862306a36Sopenharmony_ci 9962306a36Sopenharmony_civoid hinic_rq_dbgfs_uninit(struct hinic_dev *nic_dev); 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_civoid hinic_func_tbl_dbgfs_init(struct hinic_dev *nic_dev); 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_civoid hinic_func_tbl_dbgfs_uninit(struct hinic_dev *nic_dev); 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_civoid hinic_dbg_init(struct hinic_dev *nic_dev); 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_civoid hinic_dbg_uninit(struct hinic_dev *nic_dev); 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_civoid hinic_dbg_register_debugfs(const char *debugfs_dir_name); 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_civoid hinic_dbg_unregister_debugfs(void); 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci#endif 114