1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* Copyright (c) 2025 Broadcom */ 3 4 #ifndef _BNGE_HWRM_LIB_H_ 5 #define _BNGE_HWRM_LIB_H_ 6 7 #define BNGE_PLC_EN_JUMBO_THRES_VALID \ 8 VNIC_PLCMODES_CFG_REQ_ENABLES_JUMBO_THRESH_VALID 9 #define BNGE_PLC_EN_HDS_THRES_VALID \ 10 VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_THRESHOLD_VALID 11 #define BNGE_VNIC_CFG_ROCE_DUAL_MODE \ 12 VNIC_CFG_REQ_FLAGS_ROCE_DUAL_VNIC_MODE 13 14 int bnge_hwrm_ver_get(struct bnge_dev *bd); 15 int bnge_hwrm_func_reset(struct bnge_dev *bd); 16 int bnge_hwrm_fw_set_time(struct bnge_dev *bd); 17 int bnge_hwrm_func_drv_rgtr(struct bnge_dev *bd); 18 int bnge_hwrm_func_drv_unrgtr(struct bnge_dev *bd); 19 int bnge_hwrm_vnic_qcaps(struct bnge_dev *bd); 20 int bnge_hwrm_nvm_dev_info(struct bnge_dev *bd, 21 struct hwrm_nvm_get_dev_info_output *nvm_dev_info); 22 int bnge_hwrm_func_backing_store(struct bnge_dev *bd, 23 struct bnge_ctx_mem_type *ctxm, 24 bool last); 25 int bnge_hwrm_func_backing_store_qcaps(struct bnge_dev *bd); 26 int bnge_hwrm_reserve_rings(struct bnge_dev *bd, 27 struct bnge_hw_rings *hwr); 28 int bnge_hwrm_func_qcaps(struct bnge_dev *bd); 29 int bnge_hwrm_vnic_qcaps(struct bnge_dev *bd); 30 int bnge_hwrm_func_qcfg(struct bnge_dev *bd); 31 int bnge_hwrm_func_resc_qcaps(struct bnge_dev *bd); 32 int bnge_hwrm_queue_qportcfg(struct bnge_dev *bd); 33 34 int bnge_hwrm_vnic_set_hds(struct bnge_net *bn, struct bnge_vnic_info *vnic); 35 int bnge_hwrm_vnic_ctx_alloc(struct bnge_dev *bd, 36 struct bnge_vnic_info *vnic, u16 ctx_idx); 37 int bnge_hwrm_vnic_set_rss(struct bnge_net *bn, 38 struct bnge_vnic_info *vnic, bool set_rss); 39 int bnge_hwrm_vnic_cfg(struct bnge_net *bn, struct bnge_vnic_info *vnic); 40 void bnge_hwrm_update_rss_hash_cfg(struct bnge_net *bn); 41 int bnge_hwrm_vnic_alloc(struct bnge_dev *bd, struct bnge_vnic_info *vnic, 42 unsigned int nr_rings); 43 void bnge_hwrm_vnic_free_one(struct bnge_dev *bd, struct bnge_vnic_info *vnic); 44 void bnge_hwrm_vnic_ctx_free_one(struct bnge_dev *bd, 45 struct bnge_vnic_info *vnic, u16 ctx_idx); 46 int bnge_hwrm_l2_filter_free(struct bnge_dev *bd, struct bnge_l2_filter *fltr); 47 int bnge_hwrm_l2_filter_alloc(struct bnge_dev *bd, struct bnge_l2_filter *fltr); 48 int bnge_hwrm_cfa_l2_set_rx_mask(struct bnge_dev *bd, 49 struct bnge_vnic_info *vnic); 50 void bnge_hwrm_stat_ctx_free(struct bnge_net *bn); 51 int bnge_hwrm_stat_ctx_alloc(struct bnge_net *bn); 52 int hwrm_ring_free_send_msg(struct bnge_net *bn, struct bnge_ring_struct *ring, 53 u32 ring_type, int cmpl_ring_id); 54 int hwrm_ring_alloc_send_msg(struct bnge_net *bn, 55 struct bnge_ring_struct *ring, 56 u32 ring_type, u32 map_index); 57 int bnge_hwrm_set_async_event_cr(struct bnge_dev *bd, int idx); 58 #endif /* _BNGE_HWRM_LIB_H_ */ 59