X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fhns3%2Fhns3_intr.h;h=8bee8d77af20076ca9bb9ab08f4c7dad97753429;hb=7ab816640c923f6e91beddcc196b1cad81cda524;hp=31f42be27fc449fd24b4fc8c0f677c0e21c9e252;hpb=53e6f86cf550a75fb1d55a76f411e214e783d14d;p=dpdk.git diff --git a/drivers/net/hns3/hns3_intr.h b/drivers/net/hns3/hns3_intr.h index 31f42be27f..8bee8d77af 100644 --- a/drivers/net/hns3/hns3_intr.h +++ b/drivers/net/hns3/hns3_intr.h @@ -81,6 +81,75 @@ #define HNS3_RESET_PROCESS_MS 200 +#define HNS3_DESC_DATA_MAX 8 +#define HNS3_REG_NUM_MAX 256 +#define HNS3_DESC_NO_DATA_LEN 8 +#define HNS3_DESC_DATA_UNIT_SIZE 4 + +enum hns3_mod_name_list { + MODULE_NONE, + MODULE_BIOS_COMMON, + MODULE_GE, + MODULE_IGU_EGU, + MODULE_LGE, + MODULE_NCSI, + MODULE_PPP, + MODULE_QCN, + MODULE_RCB_RX, + MODULE_RTC, + MODULE_SSU, + MODULE_TM, + MODULE_RCB_TX, + MODULE_TXDMA, + MODULE_MASTER, + MODULE_ROH_MAC, +}; + +enum hns3_err_type_list { + NONE_ERROR, + FIFO_ERROR, + MEMORY_ERROR, + POISION_ERROR, + MSIX_ECC_ERROR, + TQP_INT_ECC_ERROR, + PF_ABNORMAL_INT_ERROR, + MPF_ABNORMAL_INT_ERROR, + COMMON_ERROR, + PORT_ERROR, + ETS_ERROR, + NCSI_ERROR, + GLB_ERROR, +}; + +struct hns3_hw_mod_name { + enum hns3_mod_name_list module_name; + const char *msg; +}; + +struct hns3_hw_err_type { + enum hns3_err_type_list error_type; + const char *msg; +}; + +struct hns3_sum_err_info { + uint8_t reset_type; /* the total reset type */ + uint8_t mod_num; /* the modules num encounter error */ + uint8_t rsv[2]; +}; + +struct hns3_mod_err_info { + uint8_t mod_id; /* the error module id */ + uint8_t err_num; /* the errors num in module */ + uint8_t rsv[2]; +}; + +struct hns3_type_reg_err_info { + uint8_t type_id; /* the type id of error */ + uint8_t reg_num; /* the related registers num of this error */ + uint8_t rsv[2]; + uint32_t reg[HNS3_REG_NUM_MAX]; /* the registers value */ +}; + struct hns3_hw_blk { const char *name; int (*enable_err_intr)(struct hns3_adapter *hns, bool en); @@ -103,6 +172,7 @@ int hns3_enable_hw_error_intr(struct hns3_adapter *hns, bool state); void hns3_handle_msix_error(struct hns3_adapter *hns, uint64_t *levels); void hns3_handle_ras_error(struct hns3_adapter *hns, uint64_t *levels); void hns3_config_mac_tnl_int(struct hns3_hw *hw, bool en); +void hns3_handle_error(struct hns3_adapter *hns); void hns3_intr_unregister(const struct rte_intr_handle *hdl, rte_intr_callback_fn cb_fn, void *cb_arg); @@ -115,5 +185,7 @@ int hns3_reset_req_hw_reset(struct hns3_adapter *hns); int hns3_reset_process(struct hns3_adapter *hns, enum hns3_reset_level reset_level); void hns3_reset_abort(struct hns3_adapter *hns); +void hns3_start_report_lse(struct rte_eth_dev *dev); +void hns3_stop_report_lse(struct rte_eth_dev *dev); #endif /* _HNS3_INTR_H_ */