FreeBSD kernel BXE device code
bxe.c File Reference
#include <sys/cdefs.h>
#include "bxe.h"
#include "ecore_sp.h"
#include "ecore_init.h"
#include "ecore_init_ops.h"
#include "57710_int_offsets.h"
#include "57711_int_offsets.h"
#include "57712_int_offsets.h"
#include "bxe_dump.h"
#include "bxe_ioctl.h"
#include <sys/conf.h>
Include dependency graph for bxe.c:

Go to the source code of this file.

Data Structures

struct  pbf_pN_buf_regs
 
struct  pbf_pN_cmd_regs
 
struct  bxe_prev_list_node
 
struct  bxe_set_addr_ctx
 
struct  bxe_mac_vals
 

Macros

#define BXE_DRIVER_VERSION   "1.78.91"
 
#define CTLTYPE_U64   CTLTYPE_QUAD
 
#define sysctl_handle_64   sysctl_handle_quad
 
#define CSUM_TCP_IPV6   0
 
#define CSUM_UDP_IPV6   0
 
#define BXE_DEF_SB_ATT_IDX   0x0001
 
#define BXE_DEF_SB_IDX   0x0002
 
#define FLR_WAIT_USEC   10000 /* 10 msecs */
 
#define FLR_WAIT_INTERVAL   50 /* usecs */
 
#define FLR_POLL_CNT   (FLR_WAIT_USEC / FLR_WAIT_INTERVAL) /* 200 */
 
#define BXE_DEVDESC_MAX   64
 
#define BXE_PREV_WAIT_NEEDED   1
 
#define STAT_NAME_LEN   32 /* no stat names below can be longer than this */
 
#define STATS_OFFSET32(stat_name)    (offsetof(struct bxe_eth_stats, stat_name) / 4)
 
#define Q_STATS_OFFSET32(stat_name)    (offsetof(struct bxe_eth_q_stats, stat_name) / 4)
 
#define STATS_FLAGS_PORT   1
 
#define STATS_FLAGS_FUNC   2 /* MF only cares about function stats */
 
#define STATS_FLAGS_BOTH   (STATS_FLAGS_FUNC | STATS_FLAGS_PORT)
 
#define BXE_NUM_ETH_STATS   ARRAY_SIZE(bxe_eth_stats_arr)
 
#define BXE_NUM_ETH_Q_STATS   ARRAY_SIZE(bxe_eth_q_stats_arr)
 
#define BYTE_OFFSET(offset)   (8 * (offset & 0x03))
 
#define BXE_RECOVERY_GLOB_REG   MISC_REG_GENERIC_POR_1
 
#define BXE_PATH0_LOAD_CNT_MASK   0x000000ff
 
#define BXE_PATH0_LOAD_CNT_SHIFT   0
 
#define BXE_PATH1_LOAD_CNT_MASK   0x0000ff00
 
#define BXE_PATH1_LOAD_CNT_SHIFT   8
 
#define BXE_PATH0_RST_IN_PROG_BIT   0x00010000
 
#define BXE_PATH1_RST_IN_PROG_BIT   0x00020000
 
#define BXE_GLOBAL_RESET_BIT   0x00040000
 
#define DRV_INFO_ETH_STAT_NUM_MACS_REQUIRED   3
 
#define PXP2_EOP_ERROR_BIT   PXP2_PXP2_INT_STS_CLR_0_REG_WR_PGLUE_EOP_ERROR
 
#define AEU_PXP2_HW_INT_BIT   AEU_INPUTS_ATTN_BITS_PXPPCICLOCKCLIENT_HW_INTERRUPT
 
#define SHARED_MF_CLP_MAGIC   0x80000000 /* 'magic' bit */
 
#define MCP_TIMEOUT   5000 /* 5 seconds (in ms) */
 
#define MCP_ONE_TIMEOUT   100 /* 100 ms */
 
#define GET_FIELD(value, fname)    (((value) & (fname##_MASK)) >> (fname##_SHIFT))
 
#define IGU_FID(val)   GET_FIELD((val), IGU_REG_MAPPING_MEMORY_FID)
 
#define IGU_VEC(val)   GET_FIELD((val), IGU_REG_MAPPING_MEMORY_VECTOR)
 
#define BXE_PREV_UNDI_PROD_ADDR(p)   (BAR_TSTRORM_INTMEM + 0x1508 + ((p) << 4))
 
#define BXE_PREV_UNDI_RCQ(val)   ((val) & 0xffff)
 
#define BXE_PREV_UNDI_BD(val)   ((val) >> 16 & 0xffff)
 
#define BXE_PREV_UNDI_PROD(rcq, bd)   ((bd) << 16 | (rcq))
 
#define OP_GEN_PARAM(param)    (((param) << SDM_OP_GEN_COMP_PARAM_SHIFT) & SDM_OP_GEN_COMP_PARAM)
 
#define OP_GEN_TYPE(type)    (((type) << SDM_OP_GEN_COMP_TYPE_SHIFT) & SDM_OP_GEN_COMP_TYPE)
 
#define OP_GEN_AGG_VECT(index)    (((index) << SDM_OP_GEN_AGG_VECT_IDX_SHIFT) & SDM_OP_GEN_AGG_VECT_IDX)
 
#define BXE_PATH(sc)   (CHIP_IS_E1x(sc) ? 0 : (sc->pcie_func & 1))
 
#define DUMP_ALL_PRESETS   0x1FFF
 
#define DUMP_MAX_PRESETS   13
 
#define IS_E1_REG(chips)   ((chips & DUMP_CHIP_E1) == DUMP_CHIP_E1)
 
#define IS_E1H_REG(chips)   ((chips & DUMP_CHIP_E1H) == DUMP_CHIP_E1H)
 
#define IS_E2_REG(chips)   ((chips & DUMP_CHIP_E2) == DUMP_CHIP_E2)
 
#define IS_E3A0_REG(chips)   ((chips & DUMP_CHIP_E3A0) == DUMP_CHIP_E3A0)
 
#define IS_E3B0_REG(chips)   ((chips & DUMP_CHIP_E3B0) == DUMP_CHIP_E3B0)
 
#define IS_REG_IN_PRESET(presets, idx)    ((presets & (1 << (idx-1))) == (1 << (idx-1)))
 

Functions

 __FBSDID ("$FreeBSD$")
 
 MALLOC_DECLARE (M_BXE_ILT)
 
 MALLOC_DEFINE (M_BXE_ILT, "bxe_ilt", "bxe ILT pointer")
 
static int bxe_probe (device_t)
 
static int bxe_attach (device_t)
 
static int bxe_detach (device_t)
 
static int bxe_shutdown (device_t)
 
 MODULE_DEPEND (bxe, pci, 1, 1, 1)
 
 MODULE_DEPEND (bxe, ether, 1, 1, 1)
 
 DRIVER_MODULE (bxe, pci, bxe_driver, bxe_devclass, 0, 0)
 
 DEBUGNET_DEFINE (bxe)
 
 MTX_SYSINIT (bxe_prev_mtx, &bxe_prev_mtx, "bxe_prev_lock", MTX_DEF)
 
static LIST_HEAD (bxe_prev_list_node)
 
 SYSCTL_NODE (_hw, OID_AUTO, bxe, CTLFLAG_RD|CTLFLAG_MPSAFE, 0, "bxe driver parameters")
 
 SYSCTL_ULONG (_hw_bxe, OID_AUTO, debug, CTLFLAG_RDTUN, &bxe_debug, 0, "Debug logging mode")
 
 SYSCTL_INT (_hw_bxe, OID_AUTO, interrupt_mode, CTLFLAG_RDTUN, &bxe_interrupt_mode, 0, "Interrupt (MSI-X/MSI/INTx) mode")
 
 SYSCTL_INT (_hw_bxe, OID_AUTO, queue_count, CTLFLAG_RDTUN, &bxe_queue_count, 0, "Multi-Queue queue count")
 
 SYSCTL_INT (_hw_bxe, OID_AUTO, max_rx_bufs, CTLFLAG_RDTUN, &bxe_max_rx_bufs, 0, "Maximum Number of Rx Buffers Per Queue")
 
 SYSCTL_INT (_hw_bxe, OID_AUTO, hc_rx_ticks, CTLFLAG_RDTUN, &bxe_hc_rx_ticks, 0, "Host Coalescing Rx ticks")
 
 SYSCTL_INT (_hw_bxe, OID_AUTO, hc_tx_ticks, CTLFLAG_RDTUN, &bxe_hc_tx_ticks, 0, "Host Coalescing Tx ticks")
 
 SYSCTL_INT (_hw_bxe, OID_AUTO, rx_budget, CTLFLAG_TUN, &bxe_rx_budget, 0, "Rx processing budget")
 
 SYSCTL_INT (_hw_bxe, OID_AUTO, max_aggregation_size, CTLFLAG_TUN, &bxe_max_aggregation_size, 0, "max aggregation size")
 
 SYSCTL_INT (_hw_bxe, OID_AUTO, mrrs, CTLFLAG_RDTUN, &bxe_mrrs, 0, "PCIe maximum read request size")
 
 SYSCTL_INT (_hw_bxe, OID_AUTO, autogreeen, CTLFLAG_RDTUN, &bxe_autogreeen, 0, "AutoGrEEEn support")
 
 SYSCTL_INT (_hw_bxe, OID_AUTO, udp_rss, CTLFLAG_RDTUN, &bxe_udp_rss, 0, "UDP RSS support")
 
static void bxe_cmng_fns_init (struct bxe_softc *sc, uint8_t read_cfg, uint8_t cmng_type)
 
static int bxe_get_cmng_fns_mode (struct bxe_softc *sc)
 
static void storm_memset_cmng (struct bxe_softc *sc, struct cmng_init *cmng, uint8_t port)
 
static void bxe_set_reset_global (struct bxe_softc *sc)
 
static void bxe_set_reset_in_progress (struct bxe_softc *sc)
 
static uint8_t bxe_reset_is_done (struct bxe_softc *sc, int engine)
 
static uint8_t bxe_clear_pf_load (struct bxe_softc *sc)
 
static uint8_t bxe_chk_parity_attn (struct bxe_softc *sc, uint8_t *global, uint8_t print)
 
static void bxe_int_disable (struct bxe_softc *sc)
 
static int bxe_release_leader_lock (struct bxe_softc *sc)
 
static void bxe_pf_disable (struct bxe_softc *sc)
 
static void bxe_free_fp_buffers (struct bxe_softc *sc)
 
static void bxe_update_rx_prod (struct bxe_softc *sc, struct bxe_fastpath *fp, uint16_t rx_bd_prod, uint16_t rx_cq_prod, uint16_t rx_sge_prod)
 
static void bxe_link_report_locked (struct bxe_softc *sc)
 
static void bxe_link_report (struct bxe_softc *sc)
 
static void bxe_link_status_update (struct bxe_softc *sc)
 
static void bxe_periodic_callout_func (void *xsc)
 
static void bxe_periodic_start (struct bxe_softc *sc)
 
static void bxe_periodic_stop (struct bxe_softc *sc)
 
static int bxe_alloc_rx_bd_mbuf (struct bxe_fastpath *fp, uint16_t prev_index, uint16_t index)
 
static int bxe_alloc_rx_tpa_mbuf (struct bxe_fastpath *fp, int queue)
 
static int bxe_alloc_rx_sge_mbuf (struct bxe_fastpath *fp, uint16_t index)
 
static uint8_t bxe_txeof (struct bxe_softc *sc, struct bxe_fastpath *fp)
 
static void bxe_task_fp (struct bxe_fastpath *fp)
 
static __noinline void bxe_dump_mbuf (struct bxe_softc *sc, struct mbuf *m, uint8_t contents)
 
static int bxe_alloc_mem (struct bxe_softc *sc)
 
static void bxe_free_mem (struct bxe_softc *sc)
 
static int bxe_alloc_fw_stats_mem (struct bxe_softc *sc)
 
static void bxe_free_fw_stats_mem (struct bxe_softc *sc)
 
static int bxe_interrupt_attach (struct bxe_softc *sc)
 
static void bxe_interrupt_detach (struct bxe_softc *sc)
 
static void bxe_set_rx_mode (struct bxe_softc *sc)
 
static int bxe_init_locked (struct bxe_softc *sc)
 
static int bxe_stop_locked (struct bxe_softc *sc)
 
static void bxe_sp_err_timeout_task (void *arg, int pending)
 
void bxe_parity_recover (struct bxe_softc *sc)
 
void bxe_handle_error (struct bxe_softc *sc)
 
static __noinline int bxe_nic_load (struct bxe_softc *sc, int load_mode)
 
static __noinline int bxe_nic_unload (struct bxe_softc *sc, uint32_t unload_mode, uint8_t keep_link)
 
static void bxe_handle_sp_tq (void *context, int pending)
 
static void bxe_handle_fp_tq (void *context, int pending)
 
static int bxe_add_cdev (struct bxe_softc *sc)
 
static void bxe_del_cdev (struct bxe_softc *sc)
 
int bxe_grc_dump (struct bxe_softc *sc)
 
static int bxe_alloc_buf_rings (struct bxe_softc *sc)
 
static void bxe_free_buf_rings (struct bxe_softc *sc)
 
uint32_t calc_crc32 (uint8_t *crc32_packet, uint32_t crc32_length, uint32_t crc32_seed, uint8_t complement)
 
int bxe_test_bit (int nr, volatile unsigned long *addr)
 
void bxe_set_bit (unsigned int nr, volatile unsigned long *addr)
 
void bxe_clear_bit (int nr, volatile unsigned long *addr)
 
int bxe_test_and_set_bit (int nr, volatile unsigned long *addr)
 
int bxe_test_and_clear_bit (int nr, volatile unsigned long *addr)
 
int bxe_cmpxchg (volatile int *addr, int old, int new)
 
static void bxe_dma_map_addr (void *arg, bus_dma_segment_t *segs, int nseg, int error)
 
int bxe_dma_alloc (struct bxe_softc *sc, bus_size_t size, struct bxe_dma *dma, const char *msg)
 
void bxe_dma_free (struct bxe_softc *sc, struct bxe_dma *dma)
 
void bxe_reg_wr_ind (struct bxe_softc *sc, uint32_t addr, uint32_t val)
 
uint32_t bxe_reg_rd_ind (struct bxe_softc *sc, uint32_t addr)
 
static int bxe_acquire_hw_lock (struct bxe_softc *sc, uint32_t resource)
 
static int bxe_release_hw_lock (struct bxe_softc *sc, uint32_t resource)
 
static void bxe_acquire_phy_lock (struct bxe_softc *sc)
 
static void bxe_release_phy_lock (struct bxe_softc *sc)
 
static int bxe_acquire_nvram_lock (struct bxe_softc *sc)
 
static int bxe_release_nvram_lock (struct bxe_softc *sc)
 
static void bxe_enable_nvram_access (struct bxe_softc *sc)
 
static void bxe_disable_nvram_access (struct bxe_softc *sc)
 
static int bxe_nvram_read_dword (struct bxe_softc *sc, uint32_t offset, uint32_t *ret_val, uint32_t cmd_flags)
 
static int bxe_nvram_read (struct bxe_softc *sc, uint32_t offset, uint8_t *ret_buf, int buf_size)
 
static int bxe_nvram_write_dword (struct bxe_softc *sc, uint32_t offset, uint32_t val, uint32_t cmd_flags)
 
static int bxe_nvram_write1 (struct bxe_softc *sc, uint32_t offset, uint8_t *data_buf, int buf_size)
 
static int bxe_nvram_write (struct bxe_softc *sc, uint32_t offset, uint8_t *data_buf, int buf_size)
 
void bxe_post_dmae (struct bxe_softc *sc, struct dmae_cmd *dmae, int idx)
 
uint32_t bxe_dmae_opcode_add_comp (uint32_t opcode, uint8_t comp_type)
 
uint32_t bxe_dmae_opcode_clr_src_reset (uint32_t opcode)
 
uint32_t bxe_dmae_opcode (struct bxe_softc *sc, uint8_t src_type, uint8_t dst_type, uint8_t with_comp, uint8_t comp_type)
 
static void bxe_prep_dmae_with_comp (struct bxe_softc *sc, struct dmae_cmd *dmae, uint8_t src_type, uint8_t dst_type)
 
static int bxe_issue_dmae_with_comp (struct bxe_softc *sc, struct dmae_cmd *dmae)
 
void bxe_read_dmae (struct bxe_softc *sc, uint32_t src_addr, uint32_t len32)
 
void bxe_write_dmae (struct bxe_softc *sc, bus_addr_t dma_addr, uint32_t dst_addr, uint32_t len32)
 
void bxe_write_dmae_phys_len (struct bxe_softc *sc, bus_addr_t phys_addr, uint32_t addr, uint32_t len)
 
void bxe_set_ctx_validation (struct bxe_softc *sc, struct eth_context *cxt, uint32_t cid)
 
static void bxe_storm_memset_hc_timeout (struct bxe_softc *sc, uint8_t port, uint8_t fw_sb_id, uint8_t sb_index, uint8_t ticks)
 
static void bxe_storm_memset_hc_disable (struct bxe_softc *sc, uint8_t port, uint16_t fw_sb_id, uint8_t sb_index, uint8_t disable)
 
void bxe_update_coalesce_sb_index (struct bxe_softc *sc, uint8_t fw_sb_id, uint8_t sb_index, uint8_t disable, uint16_t usec)
 
void elink_cb_udelay (struct bxe_softc *sc, uint32_t usecs)
 
uint32_t elink_cb_reg_read (struct bxe_softc *sc, uint32_t reg_addr)
 
void elink_cb_reg_write (struct bxe_softc *sc, uint32_t reg_addr, uint32_t val)
 
void elink_cb_reg_wb_write (struct bxe_softc *sc, uint32_t offset, uint32_t *wb_write, uint16_t len)
 
void elink_cb_reg_wb_read (struct bxe_softc *sc, uint32_t offset, uint32_t *wb_write, uint16_t len)
 
uint8_t elink_cb_path_id (struct bxe_softc *sc)
 
void elink_cb_event_log (struct bxe_softc *sc, const elink_log_id_t elink_log_id,...)
 
static int bxe_set_spio (struct bxe_softc *sc, int spio, uint32_t mode)
 
static int bxe_gpio_read (struct bxe_softc *sc, int gpio_num, uint8_t port)
 
static int bxe_gpio_write (struct bxe_softc *sc, int gpio_num, uint32_t mode, uint8_t port)
 
static int bxe_gpio_mult_write (struct bxe_softc *sc, uint8_t pins, uint32_t mode)
 
static int bxe_gpio_int_write (struct bxe_softc *sc, int gpio_num, uint32_t mode, uint8_t port)
 
uint32_t elink_cb_gpio_read (struct bxe_softc *sc, uint16_t gpio_num, uint8_t port)
 
uint8_t elink_cb_gpio_write (struct bxe_softc *sc, uint16_t gpio_num, uint8_t mode, uint8_t port)
 
uint8_t elink_cb_gpio_mult_write (struct bxe_softc *sc, uint8_t pins, uint8_t mode)
 
uint8_t elink_cb_gpio_int_write (struct bxe_softc *sc, uint16_t gpio_num, uint8_t mode, uint8_t port)
 
void elink_cb_notify_link_changed (struct bxe_softc *sc)
 
uint32_t elink_cb_fw_command (struct bxe_softc *sc, uint32_t command, uint32_t param)
 
static uint32_t bxe_fw_command (struct bxe_softc *sc, uint32_t command, uint32_t param)
 
static void __storm_memset_dma_mapping (struct bxe_softc *sc, uint32_t addr, bus_addr_t mapping)
 
static void storm_memset_spq_addr (struct bxe_softc *sc, bus_addr_t mapping, uint16_t abs_fid)
 
static void storm_memset_vf_to_pf (struct bxe_softc *sc, uint16_t abs_fid, uint16_t pf_id)
 
static void storm_memset_func_en (struct bxe_softc *sc, uint16_t abs_fid, uint8_t enable)
 
static void storm_memset_eq_data (struct bxe_softc *sc, struct event_ring_data *eq_data, uint16_t pfid)
 
static void storm_memset_eq_prod (struct bxe_softc *sc, uint16_t eq_prod, uint16_t pfid)
 
static struct eth_spebxe_sp_get_next (struct bxe_softc *sc)
 
static void bxe_sp_prod_update (struct bxe_softc *sc)
 
static int bxe_is_contextless_ramrod (int cmd, int cmd_type)
 
int bxe_sp_post (struct bxe_softc *sc, int command, int cid, uint32_t data_hi, uint32_t data_lo, int cmd_type)
 
static void bxe_init_mutexes (struct bxe_softc *sc)
 
static void bxe_release_mutexes (struct bxe_softc *sc)
 
static void bxe_tx_disable (struct bxe_softc *sc)
 
static void bxe_drv_pulse (struct bxe_softc *sc)
 
static uint16_t bxe_tx_avail (struct bxe_softc *sc, struct bxe_fastpath *fp)
 
static int bxe_tx_queue_has_work (struct bxe_fastpath *fp)
 
static uint8_t bxe_has_tx_work (struct bxe_fastpath *fp)
 
static int bxe_has_rx_work (struct bxe_fastpath *fp)
 
static void bxe_sp_event (struct bxe_softc *sc, struct bxe_fastpath *fp, union eth_rx_cqe *rr_cqe)
 
static void bxe_tpa_start (struct bxe_softc *sc, struct bxe_fastpath *fp, uint16_t queue, uint16_t cons, uint16_t prod, struct eth_fast_path_rx_cqe *cqe)
 
static int bxe_fill_frag_mbuf (struct bxe_softc *sc, struct bxe_fastpath *fp, struct bxe_sw_tpa_info *tpa_info, uint16_t queue, uint16_t pages, struct mbuf *m, struct eth_end_agg_rx_cqe *cqe, uint16_t cqe_idx)
 
static void bxe_clear_sge_mask_next_elems (struct bxe_fastpath *fp)
 
static void bxe_init_sge_ring_bit_mask (struct bxe_fastpath *fp)
 
static void bxe_update_last_max_sge (struct bxe_fastpath *fp, uint16_t idx)
 
static void bxe_update_sge_prod (struct bxe_softc *sc, struct bxe_fastpath *fp, uint16_t sge_len, union eth_sgl_or_raw_data *cqe)
 
static void bxe_tpa_stop (struct bxe_softc *sc, struct bxe_fastpath *fp, struct bxe_sw_tpa_info *tpa_info, uint16_t queue, uint16_t pages, struct eth_end_agg_rx_cqe *cqe, uint16_t cqe_idx)
 
static uint8_t bxe_service_rxsgl (struct bxe_fastpath *fp, uint16_t len, uint16_t lenonbd, struct mbuf *m, struct eth_fast_path_rx_cqe *cqe_fp)
 
static uint8_t bxe_rxeof (struct bxe_softc *sc, struct bxe_fastpath *fp)
 
static uint16_t bxe_free_tx_pkt (struct bxe_softc *sc, struct bxe_fastpath *fp, uint16_t idx)
 
static int bxe_watchdog (struct bxe_softc *sc, struct bxe_fastpath *fp)
 
static void bxe_drain_tx_queues (struct bxe_softc *sc)
 
static int bxe_del_all_macs (struct bxe_softc *sc, struct ecore_vlan_mac_obj *mac_obj, int mac_type, uint8_t wait_for_comp)
 
static int bxe_fill_accept_flags (struct bxe_softc *sc, uint32_t rx_mode, unsigned long *rx_accept_flags, unsigned long *tx_accept_flags)
 
static int bxe_set_q_rx_mode (struct bxe_softc *sc, uint8_t cl_id, unsigned long rx_mode_flags, unsigned long rx_accept_flags, unsigned long tx_accept_flags, unsigned long ramrod_flags)
 
static int bxe_set_storm_rx_mode (struct bxe_softc *sc)
 
static int bxe_nic_load_no_mcp (struct bxe_softc *sc)
 
static int bxe_nic_unload_no_mcp (struct bxe_softc *sc)
 
static uint32_t bxe_send_unload_req (struct bxe_softc *sc, int unload_mode)
 
static void bxe_send_unload_done (struct bxe_softc *sc, uint8_t keep_link)
 
static int bxe_func_wait_started (struct bxe_softc *sc)
 
static int bxe_stop_queue (struct bxe_softc *sc, int index)
 
static uint8_t bxe_wait_sp_comp (struct bxe_softc *sc, unsigned long mask)
 
static int bxe_func_stop (struct bxe_softc *sc)
 
static int bxe_reset_hw (struct bxe_softc *sc, uint32_t load_code)
 
static void bxe_int_disable_sync (struct bxe_softc *sc, int disable_hw)
 
static void bxe_chip_cleanup (struct bxe_softc *sc, uint32_t unload_mode, uint8_t keep_link)
 
static void bxe_disable_close_the_gate (struct bxe_softc *sc)
 
static void bxe_squeeze_objects (struct bxe_softc *sc)
 
static int bxe_ifmedia_update (struct ifnet *ifp)
 
static void bxe_ifmedia_status (struct ifnet *ifp, struct ifmediareq *ifmr)
 
static void bxe_handle_chip_tq (void *context, int pending)
 
static int bxe_ioctl (if_t ifp, u_long command, caddr_t data)
 
static int bxe_chktso_window (struct bxe_softc *sc, int nsegs, bus_dma_segment_t *segs, struct mbuf *m)
 
static uint8_t bxe_set_pbd_csum_e2 (struct bxe_fastpath *fp, struct mbuf *m, uint32_t *parsing_data)
 
static uint8_t bxe_set_pbd_csum (struct bxe_fastpath *fp, struct mbuf *m, struct eth_tx_parse_bd_e1x *pbd)
 
static void bxe_set_pbd_lso_e2 (struct mbuf *m, uint32_t *parsing_data)
 
static void bxe_set_pbd_lso (struct mbuf *m, struct eth_tx_parse_bd_e1x *pbd)
 
static int bxe_tx_encap (struct bxe_fastpath *fp, struct mbuf **m_head)
 
static void bxe_tx_start_locked (struct bxe_softc *sc, if_t ifp, struct bxe_fastpath *fp)
 
static void bxe_tx_start (if_t ifp)
 
static int bxe_tx_mq_start_locked (struct bxe_softc *sc, if_t ifp, struct bxe_fastpath *fp, struct mbuf *m)
 
static void bxe_tx_mq_start_deferred (void *arg, int pending)
 
static int bxe_tx_mq_start (struct ifnet *ifp, struct mbuf *m)
 
static void bxe_mq_flush (struct ifnet *ifp)
 
static uint16_t bxe_cid_ilt_lines (struct bxe_softc *sc)
 
static void bxe_ilt_set_info (struct bxe_softc *sc)
 
static void bxe_set_fp_rx_buf_size (struct bxe_softc *sc)
 
static int bxe_alloc_ilt_mem (struct bxe_softc *sc)
 
static int bxe_alloc_ilt_lines_mem (struct bxe_softc *sc)
 
static void bxe_free_ilt_mem (struct bxe_softc *sc)
 
static void bxe_free_ilt_lines_mem (struct bxe_softc *sc)
 
static void bxe_free_rx_bd_chain (struct bxe_fastpath *fp)
 
static void bxe_free_tpa_pool (struct bxe_fastpath *fp)
 
static void bxe_free_sge_chain (struct bxe_fastpath *fp)
 
static __noinline int bxe_alloc_fp_buffers (struct bxe_softc *sc)
 
static void bxe_clear_reset_global (struct bxe_softc *sc)
 
static uint8_t bxe_reset_is_global (struct bxe_softc *sc)
 
static void bxe_set_reset_done (struct bxe_softc *sc)
 
static uint8_t bxe_get_load_status (struct bxe_softc *sc, int engine)
 
static void bxe_set_pf_load (struct bxe_softc *sc)
 
static int bxe_nic_load_request (struct bxe_softc *sc, uint32_t *load_code)
 
static int bxe_nic_load_analyze_req (struct bxe_softc *sc, uint32_t load_code)
 
static void bxe_nic_load_pmf (struct bxe_softc *sc, uint32_t load_code)
 
static void bxe_read_mf_cfg (struct bxe_softc *sc)
 
static int bxe_acquire_alr (struct bxe_softc *sc)
 
static void bxe_release_alr (struct bxe_softc *sc)
 
static void bxe_fan_failure (struct bxe_softc *sc)
 
static void bxe_link_attn (struct bxe_softc *sc)
 
static void bxe_attn_int_asserted (struct bxe_softc *sc, uint32_t asserted)
 
static void bxe_print_next_block (struct bxe_softc *sc, int idx, const char *blk)
 
static int bxe_check_blocks_with_parity0 (struct bxe_softc *sc, uint32_t sig, int par_num, uint8_t print)
 
static int bxe_check_blocks_with_parity1 (struct bxe_softc *sc, uint32_t sig, int par_num, uint8_t *global, uint8_t print)
 
static int bxe_check_blocks_with_parity2 (struct bxe_softc *sc, uint32_t sig, int par_num, uint8_t print)
 
static int bxe_check_blocks_with_parity3 (struct bxe_softc *sc, uint32_t sig, int par_num, uint8_t *global, uint8_t print)
 
static int bxe_check_blocks_with_parity4 (struct bxe_softc *sc, uint32_t sig, int par_num, uint8_t print)
 
static uint8_t bxe_parity_attn (struct bxe_softc *sc, uint8_t *global, uint8_t print, uint32_t *sig)
 
static void bxe_attn_int_deasserted4 (struct bxe_softc *sc, uint32_t attn)
 
static void bxe_e1h_disable (struct bxe_softc *sc)
 
static void bxe_e1h_enable (struct bxe_softc *sc)
 
static void bxe_config_mf_bw (struct bxe_softc *sc)
 
static void bxe_set_mf_bw (struct bxe_softc *sc)
 
static void bxe_handle_eee_event (struct bxe_softc *sc)
 
static void bxe_drv_info_ether_stat (struct bxe_softc *sc)
 
static void bxe_handle_drv_info_req (struct bxe_softc *sc)
 
static void bxe_dcc_event (struct bxe_softc *sc, uint32_t dcc_event)
 
static void bxe_pmf_update (struct bxe_softc *sc)
 
static int bxe_mc_assert (struct bxe_softc *sc)
 
static void bxe_attn_int_deasserted3 (struct bxe_softc *sc, uint32_t attn)
 
static void bxe_attn_int_deasserted2 (struct bxe_softc *sc, uint32_t attn)
 
static void bxe_attn_int_deasserted1 (struct bxe_softc *sc, uint32_t attn)
 
static void bxe_attn_int_deasserted0 (struct bxe_softc *sc, uint32_t attn)
 
static void bxe_attn_int_deasserted (struct bxe_softc *sc, uint32_t deasserted)
 
static void bxe_attn_int (struct bxe_softc *sc)
 
static uint16_t bxe_update_dsb_idx (struct bxe_softc *sc)
 
static struct ecore_queue_sp_objbxe_cid_to_q_obj (struct bxe_softc *sc, uint32_t cid)
 
static void bxe_handle_mcast_eqe (struct bxe_softc *sc)
 
static void bxe_handle_classification_eqe (struct bxe_softc *sc, union event_ring_elem *elem)
 
static void bxe_handle_rx_mode_eqe (struct bxe_softc *sc, union event_ring_elem *elem)
 
static void bxe_update_eq_prod (struct bxe_softc *sc, uint16_t prod)
 
static void bxe_eq_int (struct bxe_softc *sc)
 
static void bxe_intr_legacy (void *xsc)
 
static void bxe_intr_sp (void *xsc)
 
static void bxe_intr_fp (void *xfp)
 
static void bxe_interrupt_free (struct bxe_softc *sc)
 
static int bxe_interrupt_alloc (struct bxe_softc *sc)
 
static int bxe_init_hw_common_chip (struct bxe_softc *sc)
 
static int bxe_init_hw_common (struct bxe_softc *sc)
 
static int bxe_init_hw_port (struct bxe_softc *sc)
 
static int bxe_init_hw_func (struct bxe_softc *sc)
 
static void bxe_reset_common (struct bxe_softc *sc)
 
static void bxe_reset_port (struct bxe_softc *sc)
 
static void bxe_reset_func (struct bxe_softc *sc)
 
static int bxe_gunzip_init (struct bxe_softc *sc)
 
static void bxe_gunzip_end (struct bxe_softc *sc)
 
static int bxe_init_firmware (struct bxe_softc *sc)
 
static void bxe_release_firmware (struct bxe_softc *sc)
 
static void bxe_init_func_obj (struct bxe_softc *sc)
 
static int bxe_init_hw (struct bxe_softc *sc, uint32_t load_code)
 
static void bxe_fill (struct bxe_softc *sc, uint32_t addr, int fill, uint32_t len)
 
static void bxe_wr_fp_sb_data (struct bxe_softc *sc, int fw_sb_id, uint32_t *sb_data_p, uint32_t data_size)
 
static void bxe_zero_fp_sb (struct bxe_softc *sc, int fw_sb_id)
 
static void bxe_wr_sp_sb_data (struct bxe_softc *sc, struct hc_sp_status_block_data *sp_sb_data)
 
static void bxe_zero_sp_sb (struct bxe_softc *sc)
 
static void bxe_setup_ndsb_state_machine (struct hc_status_block_sm *hc_sm, int igu_sb_id, int igu_seg_id)
 
static void bxe_map_sb_state_machines (struct hc_index_data *index_data)
 
static void bxe_init_sb (struct bxe_softc *sc, bus_addr_t busaddr, int vfid, uint8_t vf_valid, int fw_sb_id, int igu_sb_id)
 
static uint8_t bxe_fp_qzone_id (struct bxe_fastpath *fp)
 
static uint32_t bxe_rx_ustorm_prods_offset (struct bxe_softc *sc, struct bxe_fastpath *fp)
 
static void bxe_init_eth_fp (struct bxe_softc *sc, int idx)
 
static void bxe_init_rx_rings (struct bxe_softc *sc)
 
static void bxe_init_tx_ring_one (struct bxe_fastpath *fp)
 
static void bxe_init_tx_rings (struct bxe_softc *sc)
 
static void bxe_init_def_sb (struct bxe_softc *sc)
 
static void bxe_init_sp_ring (struct bxe_softc *sc)
 
static void bxe_init_eq_ring (struct bxe_softc *sc)
 
static void bxe_init_internal_common (struct bxe_softc *sc)
 
static void bxe_init_internal (struct bxe_softc *sc, uint32_t load_code)
 
static void storm_memset_func_cfg (struct bxe_softc *sc, struct tstorm_eth_function_common_config *tcfg, uint16_t abs_fid)
 
static void bxe_func_init (struct bxe_softc *sc, struct bxe_func_init_params *p)
 
static void bxe_calc_vn_min (struct bxe_softc *sc, struct cmng_init_input *input)
 
static uint16_t bxe_extract_max_cfg (struct bxe_softc *sc, uint32_t mf_cfg)
 
static void bxe_calc_vn_max (struct bxe_softc *sc, int vn, struct cmng_init_input *input)
 
static void bxe_pf_init (struct bxe_softc *sc)
 
static void bxe_hc_int_enable (struct bxe_softc *sc)
 
static void bxe_igu_int_enable (struct bxe_softc *sc)
 
static void bxe_int_enable (struct bxe_softc *sc)
 
static void bxe_hc_int_disable (struct bxe_softc *sc)
 
static void bxe_igu_int_disable (struct bxe_softc *sc)
 
static void bxe_nic_init (struct bxe_softc *sc, int load_code)
 
static void bxe_init_objs (struct bxe_softc *sc)
 
static int bxe_func_start (struct bxe_softc *sc)
 
static int bxe_set_power_state (struct bxe_softc *sc, uint8_t state)
 
static uint8_t bxe_trylock_hw_lock (struct bxe_softc *sc, uint32_t resource)
 
static int bxe_get_leader_lock_resource (struct bxe_softc *sc)
 
static uint8_t bxe_trylock_leader_lock (struct bxe_softc *sc)
 
static void bxe_set_234_gates (struct bxe_softc *sc, uint8_t close)
 
static int bxe_er_poll_igu_vq (struct bxe_softc *sc)
 
static void bxe_clp_reset_prep (struct bxe_softc *sc, uint32_t *magic_val)
 
static void bxe_clp_reset_done (struct bxe_softc *sc, uint32_t magic_val)
 
static void bxe_reset_mcp_prep (struct bxe_softc *sc, uint32_t *magic_val)
 
static void bxe_mcp_wait_one (struct bxe_softc *sc)
 
static int bxe_init_shmem (struct bxe_softc *sc)
 
static int bxe_reset_mcp_comp (struct bxe_softc *sc, uint32_t magic_val)
 
static void bxe_pxp_prep (struct bxe_softc *sc)
 
static void bxe_process_kill_chip_reset (struct bxe_softc *sc, uint8_t global)
 
static int bxe_process_kill (struct bxe_softc *sc, uint8_t global)
 
static int bxe_leader_reset (struct bxe_softc *sc)
 
static void bxe_pf_q_prep_init (struct bxe_softc *sc, struct bxe_fastpath *fp, struct ecore_queue_init_params *init_params)
 
static unsigned long bxe_get_common_flags (struct bxe_softc *sc, struct bxe_fastpath *fp, uint8_t zero_stats)
 
static unsigned long bxe_get_q_flags (struct bxe_softc *sc, struct bxe_fastpath *fp, uint8_t leading)
 
static void bxe_pf_q_prep_general (struct bxe_softc *sc, struct bxe_fastpath *fp, struct ecore_general_setup_params *gen_init, uint8_t cos)
 
static void bxe_pf_rx_q_prep (struct bxe_softc *sc, struct bxe_fastpath *fp, struct rxq_pause_params *pause, struct ecore_rxq_setup_params *rxq_init)
 
static void bxe_pf_tx_q_prep (struct bxe_softc *sc, struct bxe_fastpath *fp, struct ecore_txq_setup_params *txq_init, uint8_t cos)
 
static int bxe_setup_queue (struct bxe_softc *sc, struct bxe_fastpath *fp, uint8_t leading)
 
static int bxe_setup_leading (struct bxe_softc *sc)
 
static int bxe_config_rss_pf (struct bxe_softc *sc, struct ecore_rss_config_obj *rss_obj, uint8_t config_hash)
 
static int bxe_config_rss_eth (struct bxe_softc *sc, uint8_t config_hash)
 
static int bxe_init_rss_pf (struct bxe_softc *sc)
 
static int bxe_set_mac_one (struct bxe_softc *sc, uint8_t *mac, struct ecore_vlan_mac_obj *obj, uint8_t set, int mac_type, unsigned long *ramrod_flags)
 
static int bxe_set_eth_mac (struct bxe_softc *sc, uint8_t set)
 
static int bxe_get_cur_phy_idx (struct bxe_softc *sc)
 
static int bxe_get_link_cfg_idx (struct bxe_softc *sc)
 
static void bxe_set_requested_fc (struct bxe_softc *sc)
 
static void bxe_calc_fc_adv (struct bxe_softc *sc)
 
static uint16_t bxe_get_mf_speed (struct bxe_softc *sc)
 
static void bxe_fill_report_data (struct bxe_softc *sc, struct bxe_link_report_data *data)
 
static int bxe_initial_phy_init (struct bxe_softc *sc, int load_mode)
 
static u_int bxe_push_maddr (void *arg, struct sockaddr_dl *sdl, u_int cnt)
 
static int bxe_init_mcast_macs_list (struct bxe_softc *sc, struct ecore_mcast_ramrod_params *p)
 
static void bxe_free_mcast_macs_list (struct ecore_mcast_ramrod_params *p)
 
static int bxe_set_mc_list (struct bxe_softc *sc)
 
static u_int bxe_set_addr (void *arg, struct sockaddr_dl *sdl, u_int cnt)
 
static int bxe_set_uc_list (struct bxe_softc *sc)
 
static void bxe_update_drv_flags (struct bxe_softc *sc, uint32_t flags, uint32_t set)
 
static void bxe_init (void *xsc)
 
static int bxe_init_ifnet (struct bxe_softc *sc)
 
static void bxe_deallocate_bars (struct bxe_softc *sc)
 
static int bxe_allocate_bars (struct bxe_softc *sc)
 
static void bxe_get_function_num (struct bxe_softc *sc)
 
static uint32_t bxe_get_shmem_mf_cfg_base (struct bxe_softc *sc)
 
static uint32_t bxe_pcie_capability_read (struct bxe_softc *sc, int reg, int width)
 
static uint8_t bxe_is_pcie_pending (struct bxe_softc *sc)
 
static void bxe_probe_pci_caps (struct bxe_softc *sc)
 
static int bxe_get_shmem_mf_cfg_info_sd (struct bxe_softc *sc)
 
static uint32_t bxe_get_shmem_ext_proto_support_flags (struct bxe_softc *sc)
 
static int bxe_get_shmem_mf_cfg_info_si (struct bxe_softc *sc)
 
static int bxe_get_shmem_mf_cfg_info_niv (struct bxe_softc *sc)
 
static int bxe_check_valid_mf_cfg (struct bxe_softc *sc)
 
static int bxe_get_mf_cfg_info (struct bxe_softc *sc)
 
static int bxe_get_shmem_info (struct bxe_softc *sc)
 
static void bxe_get_tunable_params (struct bxe_softc *sc)
 
static int bxe_media_detect (struct bxe_softc *sc)
 
static int bxe_get_igu_cam_info (struct bxe_softc *sc)
 
static int bxe_get_device_info (struct bxe_softc *sc)
 
static void bxe_link_settings_supported (struct bxe_softc *sc, uint32_t switch_cfg)
 
static void bxe_link_settings_requested (struct bxe_softc *sc)
 
static void bxe_get_phy_info (struct bxe_softc *sc)
 
static void bxe_get_params (struct bxe_softc *sc)
 
static void bxe_set_modes_bitmap (struct bxe_softc *sc)
 
static int bxe_alloc_hsi_mem (struct bxe_softc *sc)
 
static void bxe_free_hsi_mem (struct bxe_softc *sc)
 
static void bxe_prev_interrupted_dmae (struct bxe_softc *sc)
 
static int bxe_prev_mcp_done (struct bxe_softc *sc)
 
static struct bxe_prev_list_nodebxe_prev_path_get_entry (struct bxe_softc *sc)
 
static uint8_t bxe_prev_is_path_marked (struct bxe_softc *sc)
 
static int bxe_prev_mark_path (struct bxe_softc *sc, uint8_t after_undi)
 
static int bxe_do_flr (struct bxe_softc *sc)
 
static void bxe_prev_unload_close_mac (struct bxe_softc *sc, struct bxe_mac_vals *vals)
 
static void bxe_prev_unload_undi_inc (struct bxe_softc *sc, uint8_t port, uint8_t inc)
 
static int bxe_prev_unload_common (struct bxe_softc *sc)
 
static int bxe_prev_unload_uncommon (struct bxe_softc *sc)
 
static int bxe_prev_unload (struct bxe_softc *sc)
 
void bxe_dcbx_set_state (struct bxe_softc *sc, uint8_t dcb_on, uint32_t dcbx_enabled)
 
static int bxe_set_qm_cid_count (struct bxe_softc *sc)
 
static void bxe_init_multi_cos (struct bxe_softc *sc)
 
static int bxe_sysctl_state (SYSCTL_HANDLER_ARGS)
 
static int bxe_sysctl_eth_stat (SYSCTL_HANDLER_ARGS)
 
static int bxe_sysctl_eth_q_stat (SYSCTL_HANDLER_ARGS)
 
static void bxe_force_link_reset (struct bxe_softc *sc)
 
static int bxe_sysctl_pauseparam (SYSCTL_HANDLER_ARGS)
 
static void bxe_add_sysctls (struct bxe_softc *sc)
 
static void bxe_init_fp_mutexs (struct bxe_softc *sc)
 
static void bxe_destroy_fp_mutexs (struct bxe_softc *sc)
 
void bxe_igu_ack_sb (struct bxe_softc *sc, uint8_t igu_sb_id, uint8_t segment, uint16_t index, uint8_t op, uint8_t update)
 
static void bxe_igu_clear_sb_gen (struct bxe_softc *sc, uint8_t func, uint8_t idu_sb_id, uint8_t is_pf)
 
static void bxe_igu_clear_sb (struct bxe_softc *sc, uint8_t idu_sb_id)
 
static void bxe_common_init_phy (struct bxe_softc *sc)
 
static void bxe_init_pxp (struct bxe_softc *sc)
 
static uint32_t bxe_get_pretend_reg (struct bxe_softc *sc)
 
static int bxe_pretend_func (struct bxe_softc *sc, uint16_t pretend_func_val)
 
static void bxe_iov_init_dmae (struct bxe_softc *sc)
 
static void bxe_iov_init_dq (struct bxe_softc *sc)
 
static void bxe_lb_pckt (struct bxe_softc *sc)
 
static int bxe_int_mem_test (struct bxe_softc *sc)
 
static void bxe_setup_fan_failure_detection (struct bxe_softc *sc)
 
static void bxe_enable_blocks_attention (struct bxe_softc *sc)
 
static uint32_t bxe_flr_clnup_reg_poll (struct bxe_softc *sc, uint32_t reg, uint32_t expected, uint32_t poll_count)
 
static int bxe_flr_clnup_poll_hw_counter (struct bxe_softc *sc, uint32_t reg, char *msg, uint32_t poll_cnt)
 
static uint32_t bxe_flr_clnup_poll_count (struct bxe_softc *sc)
 
static int bxe_poll_hw_usage_counters (struct bxe_softc *sc, uint32_t poll_cnt)
 
static int bxe_send_final_clnup (struct bxe_softc *sc, uint8_t clnup_func, uint32_t poll_cnt)
 
static void bxe_pbf_pN_buf_flushed (struct bxe_softc *sc, struct pbf_pN_buf_regs *regs, uint32_t poll_count)
 
static void bxe_pbf_pN_cmd_flushed (struct bxe_softc *sc, struct pbf_pN_cmd_regs *regs, uint32_t poll_count)
 
static void bxe_tx_hw_flushed (struct bxe_softc *sc, uint32_t poll_count)
 
static void bxe_hw_enable_status (struct bxe_softc *sc)
 
static int bxe_pf_flr_clnup (struct bxe_softc *sc)
 
static void bxe_link_reset (struct bxe_softc *sc)
 
static void bxe_ilt_wr (struct bxe_softc *sc, uint32_t index, bus_addr_t addr)
 
static void bxe_clear_func_ilt (struct bxe_softc *sc, uint32_t func)
 
static int ecore_gunzip (struct bxe_softc *sc, const uint8_t *zbuf, int len)
 
static void ecore_reg_wr_ind (struct bxe_softc *sc, uint32_t addr, uint32_t val)
 
static void ecore_write_dmae_phys_len (struct bxe_softc *sc, bus_addr_t phys_addr, uint32_t addr, uint32_t len)
 
void ecore_storm_memset_struct (struct bxe_softc *sc, uint32_t addr, size_t size, uint32_t *data)
 
static int bxe_eioctl (struct cdev *dev, u_long cmd, caddr_t data, int fflag, struct thread *td)
 
static int bxe_get_preset_regs_len (struct bxe_softc *sc, uint32_t preset)
 
static int bxe_get_total_regs_len32 (struct bxe_softc *sc)
 
static const uint32_t * __bxe_get_page_addr_ar (struct bxe_softc *sc)
 
static uint32_t __bxe_get_page_reg_num (struct bxe_softc *sc)
 
static const uint32_t * __bxe_get_page_write_ar (struct bxe_softc *sc)
 
static uint32_t __bxe_get_page_write_num (struct bxe_softc *sc)
 
static const struct reg_addr__bxe_get_page_read_ar (struct bxe_softc *sc)
 
static uint32_t __bxe_get_page_read_num (struct bxe_softc *sc)
 
static bool bxe_is_reg_in_chip (struct bxe_softc *sc, const struct reg_addr *reg_info)
 
static bool bxe_is_wreg_in_chip (struct bxe_softc *sc, const struct wreg_addr *wreg_info)
 
static void bxe_read_pages_regs (struct bxe_softc *sc, uint32_t *p, uint32_t preset)
 
static int bxe_get_preset_regs (struct bxe_softc *sc, uint32_t *p, uint32_t preset)
 
static bool bxe_is_nvram_accessible (struct bxe_softc *sc)
 
static int bxe_wr_eeprom (struct bxe_softc *sc, void *data, uint32_t offset, uint32_t len)
 
static int bxe_rd_eeprom (struct bxe_softc *sc, void *data, uint32_t offset, uint32_t len)
 
static int bxe_eeprom_rd_wr (struct bxe_softc *sc, bxe_eeprom_t *eeprom)
 
static int bxe_get_settings (struct bxe_softc *sc, bxe_dev_setting_t *dev_p)
 

Variables

static struct bxe_device_type bxe_devs []
 
static device_method_t bxe_methods []
 
static driver_t bxe_driver
 
static devclass_t bxe_devclass
 
struct mtx bxe_prev_mtx
 
unsigned long bxe_debug = 0
 
static int bxe_interrupt_mode = INTR_MODE_MSIX
 
static int bxe_queue_count = 4
 
static int bxe_max_rx_bufs = 0
 
static int bxe_hc_rx_ticks = 25
 
static int bxe_hc_tx_ticks = 50
 
static int bxe_rx_budget = 0xffffffff
 
static int bxe_max_aggregation_size = 0
 
static int bxe_mrrs = -1
 
static int bxe_autogreeen = 0
 
static int bxe_udp_rss = 0
 
struct {
   uint32_t   offset
 
   uint32_t   size
 
   uint32_t   flags
 
   char   string [STAT_NAME_LEN]
 
bxe_eth_stats_arr []
 
struct {
   uint32_t   offset
 
   uint32_t   size
 
   char   string [STAT_NAME_LEN]
 
bxe_eth_q_stats_arr []
 
static struct ecore_func_sp_drv_ops bxe_func_sp_drv
 
static struct cdevsw bxe_cdevsw
 

Macro Definition Documentation

◆ AEU_PXP2_HW_INT_BIT

#define AEU_PXP2_HW_INT_BIT   AEU_INPUTS_ATTN_BITS_PXPPCICLOCKCLIENT_HW_INTERRUPT

◆ BXE_DEF_SB_ATT_IDX

#define BXE_DEF_SB_ATT_IDX   0x0001

Definition at line 62 of file bxe.c.

◆ BXE_DEF_SB_IDX

#define BXE_DEF_SB_IDX   0x0002

Definition at line 63 of file bxe.c.

◆ BXE_DEVDESC_MAX

#define BXE_DEVDESC_MAX   64

Definition at line 89 of file bxe.c.

◆ BXE_DRIVER_VERSION

#define BXE_DRIVER_VERSION   "1.78.91"

Definition at line 32 of file bxe.c.

◆ BXE_GLOBAL_RESET_BIT

#define BXE_GLOBAL_RESET_BIT   0x00040000

Definition at line 6616 of file bxe.c.

◆ BXE_NUM_ETH_Q_STATS

#define BXE_NUM_ETH_Q_STATS   ARRAY_SIZE(bxe_eth_q_stats_arr)

Definition at line 647 of file bxe.c.

◆ BXE_NUM_ETH_STATS

#define BXE_NUM_ETH_STATS   ARRAY_SIZE(bxe_eth_stats_arr)

Definition at line 646 of file bxe.c.

◆ BXE_PATH

#define BXE_PATH (   sc)    (CHIP_IS_E1x(sc) ? 0 : (sc->pcie_func & 1))

Definition at line 18654 of file bxe.c.

◆ BXE_PATH0_LOAD_CNT_MASK

#define BXE_PATH0_LOAD_CNT_MASK   0x000000ff

Definition at line 6610 of file bxe.c.

◆ BXE_PATH0_LOAD_CNT_SHIFT

#define BXE_PATH0_LOAD_CNT_SHIFT   0

Definition at line 6611 of file bxe.c.

◆ BXE_PATH0_RST_IN_PROG_BIT

#define BXE_PATH0_RST_IN_PROG_BIT   0x00010000

Definition at line 6614 of file bxe.c.

◆ BXE_PATH1_LOAD_CNT_MASK

#define BXE_PATH1_LOAD_CNT_MASK   0x0000ff00

Definition at line 6612 of file bxe.c.

◆ BXE_PATH1_LOAD_CNT_SHIFT

#define BXE_PATH1_LOAD_CNT_SHIFT   8

Definition at line 6613 of file bxe.c.

◆ BXE_PATH1_RST_IN_PROG_BIT

#define BXE_PATH1_RST_IN_PROG_BIT   0x00020000

Definition at line 6615 of file bxe.c.

◆ BXE_PREV_UNDI_BD

#define BXE_PREV_UNDI_BD (   val)    ((val) >> 16 & 0xffff)

Definition at line 15532 of file bxe.c.

◆ BXE_PREV_UNDI_PROD

#define BXE_PREV_UNDI_PROD (   rcq,
  bd 
)    ((bd) << 16 | (rcq))

Definition at line 15533 of file bxe.c.

◆ BXE_PREV_UNDI_PROD_ADDR

#define BXE_PREV_UNDI_PROD_ADDR (   p)    (BAR_TSTRORM_INTMEM + 0x1508 + ((p) << 4))

Definition at line 15530 of file bxe.c.

◆ BXE_PREV_UNDI_RCQ

#define BXE_PREV_UNDI_RCQ (   val)    ((val) & 0xffff)

Definition at line 15531 of file bxe.c.

◆ BXE_PREV_WAIT_NEEDED

#define BXE_PREV_WAIT_NEEDED   1

Definition at line 236 of file bxe.c.

◆ BXE_RECOVERY_GLOB_REG

#define BXE_RECOVERY_GLOB_REG   MISC_REG_GENERIC_POR_1

Definition at line 6609 of file bxe.c.

◆ BYTE_OFFSET

#define BYTE_OFFSET (   offset)    (8 * (offset & 0x03))

Definition at line 1383 of file bxe.c.

◆ CSUM_TCP_IPV6

#define CSUM_TCP_IPV6   0

Definition at line 58 of file bxe.c.

◆ CSUM_UDP_IPV6

#define CSUM_UDP_IPV6   0

Definition at line 59 of file bxe.c.

◆ CTLTYPE_U64

#define CTLTYPE_U64   CTLTYPE_QUAD

Definition at line 48 of file bxe.c.

◆ DRV_INFO_ETH_STAT_NUM_MACS_REQUIRED

#define DRV_INFO_ETH_STAT_NUM_MACS_REQUIRED   3

Definition at line 7685 of file bxe.c.

◆ DUMP_ALL_PRESETS

#define DUMP_ALL_PRESETS   0x1FFF

Definition at line 18657 of file bxe.c.

◆ DUMP_MAX_PRESETS

#define DUMP_MAX_PRESETS   13

Definition at line 18658 of file bxe.c.

◆ FLR_POLL_CNT

#define FLR_POLL_CNT   (FLR_WAIT_USEC / FLR_WAIT_INTERVAL) /* 200 */

Definition at line 71 of file bxe.c.

◆ FLR_WAIT_INTERVAL

#define FLR_WAIT_INTERVAL   50 /* usecs */

Definition at line 70 of file bxe.c.

◆ FLR_WAIT_USEC

#define FLR_WAIT_USEC   10000 /* 10 msecs */

Definition at line 69 of file bxe.c.

◆ GET_FIELD

#define GET_FIELD (   value,
  fname 
)     (((value) & (fname##_MASK)) >> (fname##_SHIFT))

Definition at line 13917 of file bxe.c.

◆ IGU_FID

#define IGU_FID (   val)    GET_FIELD((val), IGU_REG_MAPPING_MEMORY_FID)

Definition at line 13919 of file bxe.c.

◆ IGU_VEC

#define IGU_VEC (   val)    GET_FIELD((val), IGU_REG_MAPPING_MEMORY_VECTOR)

Definition at line 13920 of file bxe.c.

◆ IS_E1_REG

#define IS_E1_REG (   chips)    ((chips & DUMP_CHIP_E1) == DUMP_CHIP_E1)

Definition at line 18659 of file bxe.c.

◆ IS_E1H_REG

#define IS_E1H_REG (   chips)    ((chips & DUMP_CHIP_E1H) == DUMP_CHIP_E1H)

Definition at line 18660 of file bxe.c.

◆ IS_E2_REG

#define IS_E2_REG (   chips)    ((chips & DUMP_CHIP_E2) == DUMP_CHIP_E2)

Definition at line 18661 of file bxe.c.

◆ IS_E3A0_REG

#define IS_E3A0_REG (   chips)    ((chips & DUMP_CHIP_E3A0) == DUMP_CHIP_E3A0)

Definition at line 18662 of file bxe.c.

◆ IS_E3B0_REG

#define IS_E3B0_REG (   chips)    ((chips & DUMP_CHIP_E3B0) == DUMP_CHIP_E3B0)

Definition at line 18663 of file bxe.c.

◆ IS_REG_IN_PRESET

#define IS_REG_IN_PRESET (   presets,
  idx 
)     ((presets & (1 << (idx-1))) == (1 << (idx-1)))

Definition at line 18665 of file bxe.c.

◆ MCP_ONE_TIMEOUT

#define MCP_ONE_TIMEOUT   100 /* 100 ms */

Definition at line 10830 of file bxe.c.

◆ MCP_TIMEOUT

#define MCP_TIMEOUT   5000 /* 5 seconds (in ms) */

Definition at line 10829 of file bxe.c.

◆ OP_GEN_AGG_VECT

#define OP_GEN_AGG_VECT (   index)     (((index) << SDM_OP_GEN_AGG_VECT_IDX_SHIFT) & SDM_OP_GEN_AGG_VECT_IDX)

Definition at line 17844 of file bxe.c.

◆ OP_GEN_PARAM

#define OP_GEN_PARAM (   param)     (((param) << SDM_OP_GEN_COMP_PARAM_SHIFT) & SDM_OP_GEN_COMP_PARAM)

Definition at line 17840 of file bxe.c.

◆ OP_GEN_TYPE

#define OP_GEN_TYPE (   type)     (((type) << SDM_OP_GEN_COMP_TYPE_SHIFT) & SDM_OP_GEN_COMP_TYPE)

Definition at line 17842 of file bxe.c.

◆ PXP2_EOP_ERROR_BIT

#define PXP2_EOP_ERROR_BIT   PXP2_PXP2_INT_STS_CLR_0_REG_WR_PGLUE_EOP_ERROR

◆ Q_STATS_OFFSET32

#define Q_STATS_OFFSET32 (   stat_name)     (offsetof(struct bxe_eth_q_stats, stat_name) / 4)

Definition at line 317 of file bxe.c.

◆ SHARED_MF_CLP_MAGIC

#define SHARED_MF_CLP_MAGIC   0x80000000 /* 'magic' bit */

Definition at line 10782 of file bxe.c.

◆ STAT_NAME_LEN

#define STAT_NAME_LEN   32 /* no stat names below can be longer than this */

Definition at line 312 of file bxe.c.

◆ STATS_FLAGS_BOTH

#define STATS_FLAGS_BOTH   (STATS_FLAGS_FUNC | STATS_FLAGS_PORT)

Definition at line 326 of file bxe.c.

◆ STATS_FLAGS_FUNC

#define STATS_FLAGS_FUNC   2 /* MF only cares about function stats */

Definition at line 325 of file bxe.c.

◆ STATS_FLAGS_PORT

#define STATS_FLAGS_PORT   1

Definition at line 324 of file bxe.c.

◆ STATS_OFFSET32

#define STATS_OFFSET32 (   stat_name)     (offsetof(struct bxe_eth_stats, stat_name) / 4)

Definition at line 314 of file bxe.c.

◆ sysctl_handle_64

#define sysctl_handle_64   sysctl_handle_quad

Definition at line 49 of file bxe.c.

Function Documentation

◆ __bxe_get_page_addr_ar()

static const uint32_t * __bxe_get_page_addr_ar ( struct bxe_softc sc)
static

Definition at line 18702 of file bxe.c.

References CHIP_IS_E2, CHIP_IS_E3, page_vals_e2, and page_vals_e3.

Referenced by bxe_read_pages_regs().

Here is the caller graph for this function:

◆ __bxe_get_page_read_ar()

static const struct reg_addr * __bxe_get_page_read_ar ( struct bxe_softc sc)
static

Definition at line 18746 of file bxe.c.

References CHIP_IS_E2, CHIP_IS_E3, page_read_regs_e2, and page_read_regs_e3.

Referenced by bxe_read_pages_regs().

Here is the caller graph for this function:

◆ __bxe_get_page_read_num()

static uint32_t __bxe_get_page_read_num ( struct bxe_softc sc)
static

Definition at line 18757 of file bxe.c.

References CHIP_IS_E2, CHIP_IS_E3, PAGE_READ_REGS_E2, and PAGE_READ_REGS_E3.

Referenced by bxe_read_pages_regs().

Here is the caller graph for this function:

◆ __bxe_get_page_reg_num()

static uint32_t __bxe_get_page_reg_num ( struct bxe_softc sc)
static

Definition at line 18713 of file bxe.c.

References CHIP_IS_E2, CHIP_IS_E3, PAGE_MODE_VALUES_E2, and PAGE_MODE_VALUES_E3.

Referenced by bxe_read_pages_regs().

Here is the caller graph for this function:

◆ __bxe_get_page_write_ar()

static const uint32_t * __bxe_get_page_write_ar ( struct bxe_softc sc)
static

Definition at line 18724 of file bxe.c.

References CHIP_IS_E2, CHIP_IS_E3, page_write_regs_e2, and page_write_regs_e3.

Referenced by bxe_read_pages_regs().

Here is the caller graph for this function:

◆ __bxe_get_page_write_num()

static uint32_t __bxe_get_page_write_num ( struct bxe_softc sc)
static

Definition at line 18735 of file bxe.c.

References CHIP_IS_E2, CHIP_IS_E3, PAGE_WRITE_REGS_E2, and PAGE_WRITE_REGS_E3.

Referenced by bxe_read_pages_regs().

Here is the caller graph for this function:

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ __storm_memset_dma_mapping()

static void __storm_memset_dma_mapping ( struct bxe_softc sc,
uint32_t  addr,
bus_addr_t  mapping 
)
static

Definition at line 2200 of file bxe.c.

References addr, REG_WR, U64_HI, and U64_LO.

Referenced by storm_memset_spq_addr().

Here is the caller graph for this function:

◆ bxe_acquire_alr()

static int bxe_acquire_alr ( struct bxe_softc sc)
static

Definition at line 6933 of file bxe.c.

References BLOGE, GRCBASE_MCP, REG_RD, and REG_WR.

Referenced by bxe_attn_int_deasserted().

Here is the caller graph for this function:

◆ bxe_acquire_hw_lock()

◆ bxe_acquire_nvram_lock()

static int bxe_acquire_nvram_lock ( struct bxe_softc sc)
static

Definition at line 1117 of file bxe.c.

References BLOGE, bxe_acquire_hw_lock(), CHIP_REV_IS_SLOW, HW_LOCK_RESOURCE_NVRAM, MCP_REG_MCPR_NVM_SW_ARB, MCPR_NVM_SW_ARB_ARB_ARB1, MCPR_NVM_SW_ARB_ARB_REQ_SET1, NVRAM_TIMEOUT_COUNT, REG_RD, REG_WR, bxe_dma::sc, and SC_PORT.

Referenced by bxe_nvram_read(), bxe_nvram_write(), and bxe_nvram_write1().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_acquire_phy_lock()

static void bxe_acquire_phy_lock ( struct bxe_softc sc)
static

◆ bxe_add_cdev()

static int bxe_add_cdev ( struct bxe_softc sc)
static

Definition at line 19099 of file bxe.c.

References BLOGW, bxe_cdevsw, BXE_EEPROM_MAX_DATA_LEN, bxe_softc::eeprom, bxe_softc::ifp, and bxe_softc::ioctl_dev.

Referenced by bxe_attach().

Here is the caller graph for this function:

◆ bxe_add_sysctls()

◆ bxe_alloc_buf_rings()

static int bxe_alloc_buf_rings ( struct bxe_softc sc)
static

Definition at line 16122 of file bxe.c.

References BXE_BR_SIZE, bxe_softc::fp, bxe_softc::num_queues, bxe_fastpath::sc, bxe_fastpath::tx_br, and bxe_fastpath::tx_mtx.

Referenced by bxe_attach().

Here is the caller graph for this function:

◆ bxe_alloc_fp_buffers()

◆ bxe_alloc_fw_stats_mem()

◆ bxe_alloc_hsi_mem()

static int bxe_alloc_hsi_mem ( struct bxe_softc sc)
static

Definition at line 14641 of file bxe.c.

References eth_rx_bd::addr_hi, eth_rx_cqe_next_page::addr_hi, eth_rx_sge::addr_hi, eth_tx_next_bd::addr_hi, eth_rx_bd::addr_lo, eth_rx_cqe_next_page::addr_lo, eth_rx_sge::addr_lo, eth_tx_next_bd::addr_lo, BCM_PAGE_SIZE, bxe_sw_tpa_info::bd, BLOGE, bxe_dma_alloc(), bxe_dma_free(), bxe_init_sge_ring_bit_mask(), BXE_MAX_SEGMENTS, BXE_TSO_MAX_SEG_SIZE, BXE_TSO_MAX_SEGMENTS, BXE_TSO_MAX_SIZE, CHIP_IS_E2E3, bxe_softc::def_sb, bxe_softc::def_sb_dma, bxe_softc::dev, bxe_host_hc_status_block::e1x_sb, bxe_host_hc_status_block::e2_sb, bxe_softc::eq, bxe_softc::eq_dma, bxe_softc::fp, FW_BUF_SIZE, bxe_softc::gz_buf, bxe_softc::gz_buf_dma, bxe_softc::gz_strm, bxe_softc::ifp, bxe_fastpath::index, bxe_sw_tx_bd::m_map, bxe_sw_rx_bd::m_map, MAX_AGG_QS, eth_tx_bd_types::next_bd, bxe_softc::num_queues, bxe_dma::paddr, bxe_softc::parent_dma_tag, bxe_fastpath::rcq_chain, bxe_fastpath::rcq_dma, RCQ_NUM_PAGES, RCQ_TOTAL_PER_PAGE, RX_BD_NUM_PAGES, RX_BD_TOTAL, RX_BD_TOTAL_PER_PAGE, bxe_fastpath::rx_chain, bxe_fastpath::rx_dma, bxe_fastpath::rx_mbuf_chain, bxe_fastpath::rx_mbuf_spare_map, bxe_fastpath::rx_mbuf_tag, bxe_fastpath::rx_sge_chain, bxe_fastpath::rx_sge_dma, bxe_fastpath::rx_sge_mbuf_chain, bxe_fastpath::rx_sge_mbuf_spare_map, bxe_fastpath::rx_sge_mbuf_tag, RX_SGE_NUM_PAGES, RX_SGE_TOTAL, RX_SGE_TOTAL_PER_PAGE, bxe_fastpath::rx_tpa_info, bxe_fastpath::rx_tpa_info_mbuf_spare_map, bxe_fastpath::sb_dma, bxe_fastpath::sc, bxe_softc::sp, bxe_softc::sp_dma, bxe_softc::spq, bxe_softc::spq_dma, bxe_fastpath::status_block, TX_BD_NUM_PAGES, TX_BD_TOTAL, TX_BD_TOTAL_PER_PAGE, bxe_fastpath::tx_chain, bxe_fastpath::tx_dma, bxe_fastpath::tx_mbuf_chain, bxe_fastpath::tx_mbuf_tag, U64_HI, U64_LO, and bxe_dma::vaddr.

Referenced by bxe_attach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_alloc_ilt_lines_mem()

static int bxe_alloc_ilt_lines_mem ( struct bxe_softc sc)
static

Definition at line 5968 of file bxe.c.

References bxe_softc::ilt, ILT_MAX_LINES, and ecore_ilt::lines.

Referenced by bxe_alloc_mem().

Here is the caller graph for this function:

◆ bxe_alloc_ilt_mem()

static int bxe_alloc_ilt_mem ( struct bxe_softc sc)
static

Definition at line 5953 of file bxe.c.

References bxe_softc::ilt.

Referenced by bxe_attach().

Here is the caller graph for this function:

◆ bxe_alloc_mem()

◆ bxe_alloc_rx_bd_mbuf()

◆ bxe_alloc_rx_sge_mbuf()

◆ bxe_alloc_rx_tpa_mbuf()

◆ bxe_allocate_bars()

static int bxe_allocate_bars ( struct bxe_softc sc)
static

Definition at line 13077 of file bxe.c.

References bxe_softc::bar, BLOGI, bxe_softc::dev, flags, bxe_bar::handle, bxe_bar::kva, MAX_BARS, bxe_bar::resource, bxe_bar::rid, and bxe_bar::tag.

Referenced by bxe_attach().

Here is the caller graph for this function:

◆ bxe_attach()

◆ bxe_attn_int()

static void bxe_attn_int ( struct bxe_softc sc)
static

Definition at line 8312 of file bxe.c.

References host_sp_status_block::atten_status_block, atten_sp_status_block::attn_bits, atten_sp_status_block::attn_bits_ack, bxe_softc::attn_state, BLOGD, BLOGE, bxe_attn_int_asserted(), bxe_attn_int_deasserted(), DBG_INTR, and bxe_softc::def_sb.

Referenced by bxe_handle_sp_tq().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_attn_int_asserted()

◆ bxe_attn_int_deasserted()

◆ bxe_attn_int_deasserted0()

◆ bxe_attn_int_deasserted1()

static void bxe_attn_int_deasserted1 ( struct bxe_softc sc,
uint32_t  attn 
)
static

◆ bxe_attn_int_deasserted2()

◆ bxe_attn_int_deasserted3()

◆ bxe_attn_int_deasserted4()

◆ bxe_calc_fc_adv()

static void bxe_calc_fc_adv ( struct bxe_softc sc)
static

◆ bxe_calc_vn_max()

static void bxe_calc_vn_max ( struct bxe_softc sc,
int  vn,
struct cmng_init_input input 
)
static

Definition at line 10060 of file bxe.c.

References BLOGD, bxe_extract_max_cfg(), DBG_LOAD, bxe_softc::devinfo, FUNC_MF_CFG_FUNC_HIDE, IS_MF_SI, elink_vars::line_speed, bxe_softc::link_vars, bxe_mf_info::mf_config, bxe_devinfo::mf_info, and cmng_init_input::vnic_max_rate.

Referenced by bxe_cmng_fns_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_calc_vn_min()

◆ bxe_check_blocks_with_parity0()

static int bxe_check_blocks_with_parity0 ( struct bxe_softc sc,
uint32_t  sig,
int  par_num,
uint8_t  print 
)
static

◆ bxe_check_blocks_with_parity1()

◆ bxe_check_blocks_with_parity2()

static int bxe_check_blocks_with_parity2 ( struct bxe_softc sc,
uint32_t  sig,
int  par_num,
uint8_t  print 
)
static

◆ bxe_check_blocks_with_parity3()

static int bxe_check_blocks_with_parity3 ( struct bxe_softc sc,
uint32_t  sig,
int  par_num,
uint8_t *  global,
uint8_t  print 
)
static

◆ bxe_check_blocks_with_parity4()

static int bxe_check_blocks_with_parity4 ( struct bxe_softc sc,
uint32_t  sig,
int  par_num,
uint8_t  print 
)
static

Definition at line 7450 of file bxe.c.

References AEU_INPUTS_ATTN_BITS_ATC_PARITY_ERROR, AEU_INPUTS_ATTN_BITS_PGLUE_PARITY_ERROR, bxe_print_next_block(), and bxe_fastpath::sc.

Referenced by bxe_parity_attn().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_check_valid_mf_cfg()

◆ bxe_chip_cleanup()

◆ bxe_chk_parity_attn()

◆ bxe_chktso_window()

static int bxe_chktso_window ( struct bxe_softc sc,
int  nsegs,
bus_dma_segment_t *  segs,
struct mbuf *  m 
)
static

Definition at line 4789 of file bxe.c.

Referenced by bxe_tx_encap().

Here is the caller graph for this function:

◆ bxe_cid_ilt_lines()

static uint16_t bxe_cid_ilt_lines ( struct bxe_softc sc)
static

Definition at line 5825 of file bxe.c.

References BXE_FIRST_VF_CID, BXE_VF_CIDS, ILT_PAGE_CIDS, IS_SRIOV, and L2_ILT_LINES.

Referenced by bxe_ilt_set_info().

Here is the caller graph for this function:

◆ bxe_cid_to_q_obj()

static struct ecore_queue_sp_obj * bxe_cid_to_q_obj ( struct bxe_softc sc,
uint32_t  cid 
)
inlinestatic

Definition at line 8365 of file bxe.c.

References BLOGD, CID_TO_FP, DBG_SP, and bxe_softc::sp_objs.

Referenced by bxe_eq_int().

Here is the caller graph for this function:

◆ bxe_clear_bit()

void bxe_clear_bit ( int  nr,
volatile unsigned long *  addr 
)

Definition at line 818 of file bxe.c.

References addr.

Referenced by bxe_handle_rx_mode_eqe().

Here is the caller graph for this function:

◆ bxe_clear_func_ilt()

static void bxe_clear_func_ilt ( struct bxe_softc sc,
uint32_t  func 
)
static

Definition at line 18468 of file bxe.c.

References bxe_ilt_wr(), FUNC_ILT_BASE, and ILT_PER_FUNC.

Referenced by bxe_reset_func().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_clear_pf_load()

static uint8_t bxe_clear_pf_load ( struct bxe_softc sc)
static

Definition at line 6755 of file bxe.c.

References BLOGD, bxe_acquire_hw_lock(), BXE_PATH0_LOAD_CNT_MASK, BXE_PATH0_LOAD_CNT_SHIFT, BXE_PATH1_LOAD_CNT_MASK, BXE_PATH1_LOAD_CNT_SHIFT, BXE_RECOVERY_GLOB_REG, bxe_release_hw_lock(), DBG_LOAD, HW_LOCK_RESOURCE_RECOVERY_REG, REG_RD, REG_WR, SC_ABS_FUNC, and SC_PATH.

Referenced by bxe_nic_load(), and bxe_nic_unload().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_clear_reset_global()

static void bxe_clear_reset_global ( struct bxe_softc sc)
static

Definition at line 6631 of file bxe.c.

References bxe_acquire_hw_lock(), BXE_GLOBAL_RESET_BIT, BXE_RECOVERY_GLOB_REG, bxe_release_hw_lock(), HW_LOCK_RESOURCE_RECOVERY_REG, REG_RD, and REG_WR.

Referenced by bxe_leader_reset().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_clear_sge_mask_next_elems()

static void bxe_clear_sge_mask_next_elems ( struct bxe_fastpath fp)
inlinestatic

Definition at line 2942 of file bxe.c.

References BIT_VEC64_CLEAR_BIT, RX_SGE_NUM_PAGES, RX_SGE_TOTAL_PER_PAGE, and bxe_fastpath::sge_mask.

Referenced by bxe_init_sge_ring_bit_mask(), and bxe_update_sge_prod().

Here is the caller graph for this function:

◆ bxe_clp_reset_done()

static void bxe_clp_reset_done ( struct bxe_softc sc,
uint32_t  magic_val 
)
static

Definition at line 10796 of file bxe.c.

References MFCFG_RD, MFCFG_WR, and SHARED_MF_CLP_MAGIC.

Referenced by bxe_reset_mcp_comp().

Here is the caller graph for this function:

◆ bxe_clp_reset_prep()

static void bxe_clp_reset_prep ( struct bxe_softc sc,
uint32_t *  magic_val 
)
static

Definition at line 10785 of file bxe.c.

References MFCFG_RD, MFCFG_WR, and SHARED_MF_CLP_MAGIC.

Referenced by bxe_reset_mcp_prep().

Here is the caller graph for this function:

◆ bxe_cmng_fns_init()

static void bxe_cmng_fns_init ( struct bxe_softc sc,
uint8_t  read_cfg,
uint8_t  cmng_type 
)
static

◆ bxe_cmpxchg()

int bxe_cmpxchg ( volatile int *  addr,
int  old,
int  new 
)

Definition at line 851 of file bxe.c.

References addr.

◆ bxe_common_init_phy()

static void bxe_common_init_phy ( struct bxe_softc sc)
static

Definition at line 16614 of file bxe.c.

References bxe_acquire_phy_lock(), bxe_release_phy_lock(), bxe_devinfo::chip_id, CHIP_IS_E1x, bxe_softc::devinfo, elink_common_init_phy(), SC_PORT, bxe_devinfo::shmem2_base, SHMEM2_RD, bxe_devinfo::shmem_base, and size.

Referenced by bxe_init_hw_common(), and bxe_init_hw_common_chip().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_config_mf_bw()

static void bxe_config_mf_bw ( struct bxe_softc sc)
static

Definition at line 7661 of file bxe.c.

References bxe_cmng_fns_init(), bxe_softc::cmng, CMNG_FNS_MINMAX, elink_vars::link_up, bxe_softc::link_vars, SC_PORT, and storm_memset_cmng().

Referenced by bxe_dcc_event(), and bxe_set_mf_bw().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_config_rss_eth()

static int bxe_config_rss_eth ( struct bxe_softc sc,
uint8_t  config_hash 
)
static

Definition at line 11541 of file bxe.c.

References bxe_config_rss_pf(), and bxe_softc::rss_conf_obj.

Referenced by bxe_init_rss_pf().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_config_rss_pf()

◆ bxe_dcbx_set_state()

void bxe_dcbx_set_state ( struct bxe_softc sc,
uint8_t  dcb_on,
uint32_t  dcbx_enabled 
)

Definition at line 15773 of file bxe.c.

References BLOGD, BXE_DCBX_ENABLED_INVALID, BXE_DCBX_ENABLED_OFF, BXE_DCBX_ENABLED_ON_NEG_OFF, BXE_DCBX_ENABLED_ON_NEG_ON, CHIP_IS_E1x, DBG_LOAD, bxe_softc::dcb_state, and bxe_softc::dcbx_enabled.

Referenced by bxe_attach().

Here is the caller graph for this function:

◆ bxe_dcc_event()

static void bxe_dcc_event ( struct bxe_softc sc,
uint32_t  dcc_event 
)
static

◆ bxe_deallocate_bars()

static void bxe_deallocate_bars ( struct bxe_softc sc)
static

Definition at line 13060 of file bxe.c.

References bxe_softc::bar, BLOGD, DBG_LOAD, bxe_softc::dev, MAX_BARS, bxe_bar::resource, and bxe_bar::rid.

Referenced by bxe_attach(), and bxe_detach().

Here is the caller graph for this function:

◆ bxe_del_all_macs()

static int bxe_del_all_macs ( struct bxe_softc sc,
struct ecore_vlan_mac_obj mac_obj,
int  mac_type,
uint8_t  wait_for_comp 
)
static

Definition at line 3581 of file bxe.c.

References BLOGE, bxe_set_bit(), ecore_vlan_mac_obj::delete_all, RAMROD_COMP_WAIT, and bxe_fastpath::sc.

Referenced by bxe_chip_cleanup(), and bxe_set_uc_list().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_del_cdev()

static void bxe_del_cdev ( struct bxe_softc sc)
static

Definition at line 19128 of file bxe.c.

References bxe_softc::eeprom, and bxe_softc::ioctl_dev.

Referenced by bxe_attach(), and bxe_detach().

Here is the caller graph for this function:

◆ bxe_destroy_fp_mutexs()

static void bxe_destroy_fp_mutexs ( struct bxe_softc sc)
static

Definition at line 16178 of file bxe.c.

References bxe_softc::fp, bxe_softc::num_queues, bxe_fastpath::rx_mtx, bxe_fastpath::sc, and bxe_fastpath::tx_mtx.

Referenced by bxe_detach().

Here is the caller graph for this function:

◆ bxe_detach()

◆ bxe_disable_close_the_gate()

static void bxe_disable_close_the_gate ( struct bxe_softc sc)
static

◆ bxe_disable_nvram_access()

static void bxe_disable_nvram_access ( struct bxe_softc sc)
static

Definition at line 1207 of file bxe.c.

References MCP_REG_MCPR_NVM_ACCESS_ENABLE, MCPR_NVM_ACCESS_ENABLE_EN, MCPR_NVM_ACCESS_ENABLE_WR_EN, REG_RD, REG_WR, and bxe_dma::sc.

Referenced by bxe_nvram_read(), bxe_nvram_write(), and bxe_nvram_write1().

Here is the caller graph for this function:

◆ bxe_dma_alloc()

int bxe_dma_alloc ( struct bxe_softc sc,
bus_size_t  size,
struct bxe_dma dma,
const char *  msg 
)

Definition at line 898 of file bxe.c.

References BCM_PAGE_SIZE, BLOGE, bxe_dma_map_addr(), bxe_dma::map, bxe_dma::msg, bxe_softc::parent_dma_tag, bxe_dma::sc, size, bxe_dma::size, bxe_dma::tag, and bxe_dma::vaddr.

Referenced by bxe_alloc_fw_stats_mem(), bxe_alloc_hsi_mem(), and bxe_alloc_mem().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_dma_free()

void bxe_dma_free ( struct bxe_softc sc,
struct bxe_dma dma 
)

Definition at line 966 of file bxe.c.

References DBASSERT, bxe_dma::map, bxe_dma::sc, bxe_dma::size, bxe_dma::tag, and bxe_dma::vaddr.

Referenced by bxe_alloc_hsi_mem(), bxe_free_fw_stats_mem(), bxe_free_hsi_mem(), and bxe_free_mem().

Here is the caller graph for this function:

◆ bxe_dma_map_addr()

static void bxe_dma_map_addr ( void *  arg,
bus_dma_segment_t *  segs,
int  nseg,
int  error 
)
static

Definition at line 875 of file bxe.c.

References BLOGE, bxe_dma::msg, bxe_dma::nseg, bxe_dma::paddr, and bxe_dma::sc.

Referenced by bxe_dma_alloc().

Here is the caller graph for this function:

◆ bxe_dmae_opcode()

uint32_t bxe_dmae_opcode ( struct bxe_softc sc,
uint8_t  src_type,
uint8_t  dst_type,
uint8_t  with_comp,
uint8_t  comp_type 
)

◆ bxe_dmae_opcode_add_comp()

uint32_t bxe_dmae_opcode_add_comp ( uint32_t  opcode,
uint8_t  comp_type 
)

Definition at line 1523 of file bxe.c.

References DMAE_CMD_C_DST_SHIFT, DMAE_CMD_C_TYPE_ENABLE, and dmae_cmd::opcode.

Referenced by bxe_dmae_opcode(), bxe_port_stats_stop(), and bxe_stats_pmf_update().

Here is the caller graph for this function:

◆ bxe_dmae_opcode_clr_src_reset()

uint32_t bxe_dmae_opcode_clr_src_reset ( uint32_t  opcode)

Definition at line 1531 of file bxe.c.

References DMAE_CMD_SRC_RESET, and dmae_cmd::opcode.

Referenced by bxe_hw_stats_post().

Here is the caller graph for this function:

◆ bxe_do_flr()

static int bxe_do_flr ( struct bxe_softc sc)
static

Definition at line 15403 of file bxe.c.

References bxe_devinfo::bc_ver, BLOGD, BLOGE, bxe_fw_command(), bxe_is_pcie_pending(), CHIP_IS_E1x, DBG_LOAD, bxe_softc::devinfo, DRV_MSG_CODE_INITIATE_FLR, and REQ_BC_VER_4_INITIATE_FLR.

Referenced by bxe_prev_unload_uncommon().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_drain_tx_queues()

static void bxe_drain_tx_queues ( struct bxe_softc sc)
static

Definition at line 3547 of file bxe.c.

References BLOGE, BXE_FP_TX_LOCK, BXE_FP_TX_UNLOCK, bxe_has_tx_work(), bxe_panic, bxe_txeof(), bxe_softc::fp, bxe_softc::num_queues, and bxe_fastpath::sc.

Referenced by bxe_chip_cleanup(), and bxe_nic_unload().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_drv_info_ether_stat()

◆ bxe_drv_pulse()

static void bxe_drv_pulse ( struct bxe_softc sc)
static

Definition at line 2633 of file bxe.c.

References bxe_softc::fw_drv_pulse_wr_seq, SC_FW_MB_IDX, and SHMEM_WR.

Referenced by bxe_nic_load(), bxe_nic_unload(), and bxe_periodic_callout_func().

Here is the caller graph for this function:

◆ bxe_dump_mbuf()

static __noinline void bxe_dump_mbuf ( struct bxe_softc sc,
struct mbuf *  m,
uint8_t  contents 
)
static

Definition at line 4722 of file bxe.c.

References BLOGD, bxe_dump_mbuf_data(), DBG_MBUF, and bxe_softc::debug.

Referenced by bxe_tx_encap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_e1h_disable()

static void bxe_e1h_disable ( struct bxe_softc sc)
static

Definition at line 7635 of file bxe.c.

References bxe_tx_disable(), NIG_REG_LLH0_FUNC_EN, REG_WR, and SC_PORT.

Referenced by bxe_dcc_event().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_e1h_enable()

static void bxe_e1h_enable ( struct bxe_softc sc)
static

Definition at line 7645 of file bxe.c.

References NIG_REG_LLH0_FUNC_EN, REG_WR, and SC_PORT.

Referenced by bxe_dcc_event().

Here is the caller graph for this function:

◆ bxe_eeprom_rd_wr()

static int bxe_eeprom_rd_wr ( struct bxe_softc sc,
bxe_eeprom_t eeprom 
)
static

Definition at line 19182 of file bxe.c.

References BLOGW, BXE_EEPROM_CMD_GET_EEPROM, BXE_EEPROM_CMD_SET_EEPROM, bxe_rd_eeprom(), bxe_wr_eeprom(), bxe_softc::eeprom, bxe_eeprom::eeprom_cmd, bxe_eeprom::eeprom_data, bxe_eeprom::eeprom_data_len, and bxe_eeprom::eeprom_offset.

Referenced by bxe_eioctl().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_eioctl()

static int bxe_eioctl ( struct cdev *  dev,
u_long  cmd,
caddr_t  data,
int  fflag,
struct thread *  td 
)
static

Definition at line 19278 of file bxe.c.

References bxe_dev_setting::advertising, bxe_dev_setting::autoneg, bxe_devinfo::bc_ver_str, BLOGW, bxe_drvinfo::bus_info, BXE_BUS_INFO_LENGTH, BXE_DEV_SETTING, BXE_DRIVER_VERSION, BXE_DRV_INFO, BXE_DRV_NAME_LENGTH, BXE_DRV_VERSION_LENGTH, BXE_EEPROM, bxe_eeprom_rd_wr(), BXE_GET_REGS, bxe_get_settings(), bxe_get_total_regs_len32(), bxe_grc_dump(), BXE_GRC_DUMP, BXE_GRC_DUMP_SIZE, BXE_MAC_ADDR, BXE_MFW_VERSION_LENGTH, BXE_RDW_PCICFG, BXE_RDW_REG, BXE_READ_PCICFG, BXE_READ_REG_CMD, BXE_REG_ACCESS_DIRECT, BXE_STORMFW_VERSION_LENGTH, BXE_WRITE_PCICFG, BXE_WRITE_REG_CMD, bxe_pcicfg_rdw::cfg_cmd, bxe_pcicfg_rdw::cfg_id, bxe_pcicfg_rdw::cfg_val, bxe_pcicfg_rdw::cfg_width, bxe_softc::dev, bxe_softc::devinfo, bxe_drvinfo::drv_name, bxe_drvinfo::drv_version, bxe_dev_setting::duplex, bxe_drvinfo::eeprom_dump_len, bxe_devinfo::flash_size, bxe_softc::fw_ver_str, bxe_softc::grc_dump, bxe_grcdump::grcdump, bxe_softc::grcdump_done, bxe_grcdump::grcdump_dwords, bxe_grcdump::grcdump_size, bxe_softc::grcdump_started, bxe_softc::mac_addr_str, bxe_perm_mac_addr::mac_addr_str, bxe_drvinfo::mfw_version, bxe_grcdump::pci_func, bxe_softc::pcie_bus, bxe_softc::pcie_device, bxe_softc::pcie_func, bxe_dev_setting::phy_address, bxe_dev_setting::port, bxe_reg_rdw::reg_access_type, bxe_get_regs::reg_buf, bxe_get_regs::reg_buf_len, bxe_reg_rdw::reg_cmd, bxe_drvinfo::reg_dump_len, bxe_reg_rdw::reg_id, REG_RD, bxe_reg_rdw::reg_val, REG_WR, bxe_dev_setting::speed, bxe_drvinfo::stormfw_version, bxe_dev_setting::supported, and bxe_softc::trigger_grcdump.

Here is the call graph for this function:

◆ bxe_enable_blocks_attention()

◆ bxe_enable_nvram_access()

static void bxe_enable_nvram_access ( struct bxe_softc sc)
static

Definition at line 1195 of file bxe.c.

References MCP_REG_MCPR_NVM_ACCESS_ENABLE, MCPR_NVM_ACCESS_ENABLE_EN, MCPR_NVM_ACCESS_ENABLE_WR_EN, REG_RD, REG_WR, and bxe_dma::sc.

Referenced by bxe_nvram_read(), bxe_nvram_write(), and bxe_nvram_write1().

Here is the caller graph for this function:

◆ bxe_eq_int()

static void bxe_eq_int ( struct bxe_softc sc)
static

Definition at line 8463 of file bxe.c.

References BLOGD, BLOGE, bxe_cid_to_q_obj(), bxe_fwd_sp_obj, bxe_handle_classification_eqe(), bxe_handle_mcast_eqe(), bxe_handle_rx_mode_eqe(), BXE_STATE_CLOSING_WAITING_HALT, BXE_STATE_DIAG, BXE_STATE_OPEN, BXE_STATE_OPENING_WAITING_PORT, BXE_SWCID_MASK, bxe_update_eq_prod(), event_data::cfc_del_event, cfc_del_event_data::cid, ecore_raw_obj::cid, ecore_raw_obj::clear_pending, ecore_func_sp_obj::complete_cmd, ecore_queue_sp_obj::complete_cmd, event_ring_msg::data, DBG_SP, eth_event_data::echo, function_update_event_data::echo, ECORE_F_CMD_START, ECORE_F_CMD_STOP, ECORE_F_CMD_SWITCH_UPDATE, ECORE_F_CMD_TX_START, ECORE_F_CMD_TX_STOP, ECORE_Q_CMD_CFC_DEL, ECORE_Q_CMD_SETUP_TX_ONLY, bxe_softc::eq, bxe_softc::eq_cons, bxe_softc::eq_cons_sb, EQ_DESC, EQ_DESC_MAX_PAGE, bxe_softc::eq_prod, bxe_softc::eq_spq_left, event_data::eth_event, EVENT_RING_OPCODE_CFC_DEL, EVENT_RING_OPCODE_CLASSIFICATION_RULES, EVENT_RING_OPCODE_FILTERS_RULES, EVENT_RING_OPCODE_FORWARD_SETUP, EVENT_RING_OPCODE_FUNCTION_START, EVENT_RING_OPCODE_FUNCTION_STOP, EVENT_RING_OPCODE_FUNCTION_UPDATE, EVENT_RING_OPCODE_MULTICAST_RULES, EVENT_RING_OPCODE_RSS_UPDATE_RULES, EVENT_RING_OPCODE_SET_MAC, EVENT_RING_OPCODE_START_TRAFFIC, EVENT_RING_OPCODE_STAT_QUERY, EVENT_RING_OPCODE_STOP_TRAFFIC, bxe_softc::func_obj, event_data::function_update_event, event_ring_elem::message, NEXT_EQ_IDX, event_ring_msg::opcode, ecore_rss_config_obj::raw, bxe_softc::rss_conf_obj, bxe_softc::state, bxe_softc::stats_comp, SW_CID, and SWITCH_UPDATE.

Referenced by bxe_handle_sp_tq().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_er_poll_igu_vq()

static int bxe_er_poll_igu_vq ( struct bxe_softc sc)
static

Definition at line 10759 of file bxe.c.

References BLOGE, IGU_REG_PENDING_BITS_STATUS, and REG_RD.

Referenced by bxe_process_kill().

Here is the caller graph for this function:

◆ bxe_extract_max_cfg()

static uint16_t bxe_extract_max_cfg ( struct bxe_softc sc,
uint32_t  mf_cfg 
)
inlinestatic

Definition at line 10045 of file bxe.c.

References BLOGD, DBG_LOAD, FUNC_MF_CFG_MAX_BW_MASK, and FUNC_MF_CFG_MAX_BW_SHIFT.

Referenced by bxe_calc_vn_max(), and bxe_get_mf_speed().

Here is the caller graph for this function:

◆ bxe_fan_failure()

static void bxe_fan_failure ( struct bxe_softc sc)
static

Definition at line 6962 of file bxe.c.

References BLOGW, bxe_panic, bxe_set_bit(), PORT_HW_CFG_XGXS_EXT_PHY_TYPE_FAILURE, SC_PORT, SHMEM_RD, and SHMEM_WR.

Referenced by bxe_attn_int_deasserted0().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_fill()

static void bxe_fill ( struct bxe_softc sc,
uint32_t  addr,
int  fill,
uint32_t  len 
)
static

Definition at line 9364 of file bxe.c.

References addr, REG_WR, and REG_WR8.

Referenced by bxe_zero_fp_sb(), and bxe_zero_sp_sb().

Here is the caller graph for this function:

◆ bxe_fill_accept_flags()

static int bxe_fill_accept_flags ( struct bxe_softc sc,
uint32_t  rx_mode,
unsigned long *  rx_accept_flags,
unsigned long *  tx_accept_flags 
)
static

◆ bxe_fill_frag_mbuf()

static int bxe_fill_frag_mbuf ( struct bxe_softc sc,
struct bxe_fastpath fp,
struct bxe_sw_tpa_info tpa_info,
uint16_t  queue,
uint16_t  pages,
struct mbuf *  m,
struct eth_end_agg_rx_cqe cqe,
uint16_t  cqe_idx 
)
static

◆ bxe_fill_report_data()

◆ bxe_flr_clnup_poll_count()

static uint32_t bxe_flr_clnup_poll_count ( struct bxe_softc sc)
static

Definition at line 17772 of file bxe.c.

References CHIP_REV_IS_EMUL, CHIP_REV_IS_FPGA, and FLR_POLL_CNT.

Referenced by bxe_pf_flr_clnup().

Here is the caller graph for this function:

◆ bxe_flr_clnup_poll_hw_counter()

static int bxe_flr_clnup_poll_hw_counter ( struct bxe_softc sc,
uint32_t  reg,
char *  msg,
uint32_t  poll_cnt 
)
static

Definition at line 17755 of file bxe.c.

References BLOGE, and bxe_flr_clnup_reg_poll().

Referenced by bxe_poll_hw_usage_counters().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_flr_clnup_reg_poll()

static uint32_t bxe_flr_clnup_reg_poll ( struct bxe_softc sc,
uint32_t  reg,
uint32_t  expected,
uint32_t  poll_count 
)
static

Definition at line 17739 of file bxe.c.

References FLR_WAIT_INTERVAL, and REG_RD.

Referenced by bxe_flr_clnup_poll_hw_counter(), and bxe_send_final_clnup().

Here is the caller graph for this function:

◆ bxe_force_link_reset()

static void bxe_force_link_reset ( struct bxe_softc sc)
static

Definition at line 15923 of file bxe.c.

References bxe_acquire_phy_lock(), bxe_release_phy_lock(), elink_link_reset(), bxe_softc::link_params, and bxe_softc::link_vars.

Referenced by bxe_sysctl_pauseparam().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_fp_qzone_id()

static uint8_t bxe_fp_qzone_id ( struct bxe_fastpath fp)
inlinestatic

Definition at line 9579 of file bxe.c.

References CHIP_IS_E1x, bxe_fastpath::cl_id, ETH_MAX_RX_CLIENTS_E1H, bxe_fastpath::sc, and SC_PORT.

Referenced by bxe_init_eth_fp().

Here is the caller graph for this function:

◆ bxe_free_buf_rings()

static void bxe_free_buf_rings ( struct bxe_softc sc)
static

Definition at line 16141 of file bxe.c.

References bxe_softc::fp, bxe_softc::num_queues, bxe_fastpath::sc, and bxe_fastpath::tx_br.

Referenced by bxe_attach(), and bxe_detach().

Here is the caller graph for this function:

◆ bxe_free_fp_buffers()

◆ bxe_free_fw_stats_mem()

static void bxe_free_fw_stats_mem ( struct bxe_softc sc)
static

◆ bxe_free_hsi_mem()

◆ bxe_free_ilt_lines_mem()

static void bxe_free_ilt_lines_mem ( struct bxe_softc sc)
static

Definition at line 5992 of file bxe.c.

References bxe_softc::ilt, and ecore_ilt::lines.

Referenced by bxe_free_mem().

Here is the caller graph for this function:

◆ bxe_free_ilt_mem()

static void bxe_free_ilt_mem ( struct bxe_softc sc)
static

Definition at line 5983 of file bxe.c.

References bxe_softc::ilt.

Referenced by bxe_attach(), and bxe_detach().

Here is the caller graph for this function:

◆ bxe_free_mcast_macs_list()

static void bxe_free_mcast_macs_list ( struct ecore_mcast_ramrod_params p)
static

Definition at line 12071 of file bxe.c.

References ECORE_LIST_FIRST_ENTRY, ecore_mcast_list_elem::link, and ecore_mcast_ramrod_params::mcast_list.

Referenced by bxe_set_mc_list().

Here is the caller graph for this function:

◆ bxe_free_mem()

static void bxe_free_mem ( struct bxe_softc sc)
static

Definition at line 6001 of file bxe.c.

References bxe_dma_free(), bxe_free_ilt_lines_mem(), bxe_softc::context, ecore_ilt_mem_op(), ILT_MEMOP_FREE, L2_ILT_LINES, hw_context::size, hw_context::vcxt, and hw_context::vcxt_dma.

Referenced by bxe_alloc_mem(), bxe_nic_load(), and bxe_nic_unload().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_free_rx_bd_chain()

static void bxe_free_rx_bd_chain ( struct bxe_fastpath fp)
static

◆ bxe_free_sge_chain()

static void bxe_free_sge_chain ( struct bxe_fastpath fp)
static

◆ bxe_free_tpa_pool()

static void bxe_free_tpa_pool ( struct bxe_fastpath fp)
static

◆ bxe_free_tx_pkt()

static uint16_t bxe_free_tx_pkt ( struct bxe_softc sc,
struct bxe_fastpath fp,
uint16_t  idx 
)
static

◆ bxe_func_init()

static void bxe_func_init ( struct bxe_softc sc,
struct bxe_func_init_params p 
)
static

◆ bxe_func_start()

◆ bxe_func_stop()

static int bxe_func_stop ( struct bxe_softc sc)
static

Definition at line 3967 of file bxe.c.

References BLOGE, bxe_set_bit(), ecore_func_state_params::cmd, ECORE_F_CMD_STOP, ecore_func_state_change(), ecore_func_state_params::f_obj, bxe_softc::func_obj, RAMROD_COMP_WAIT, RAMROD_DRV_CLR_ONLY, and ecore_func_state_params::ramrod_flags.

Referenced by bxe_chip_cleanup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_func_wait_started()

static int bxe_func_wait_started ( struct bxe_softc sc)
static

◆ bxe_fw_command()

static uint32_t bxe_fw_command ( struct bxe_softc sc,
uint32_t  command,
uint32_t  param 
)
static

Definition at line 2192 of file bxe.c.

References elink_cb_fw_command().

Referenced by bxe_dcc_event(), bxe_do_flr(), bxe_handle_drv_info_req(), bxe_handle_eee_event(), bxe_leader_reset(), bxe_nic_load(), bxe_nic_load_request(), bxe_prev_mcp_done(), bxe_prev_unload(), bxe_send_unload_done(), bxe_send_unload_req(), and bxe_set_mf_bw().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_get_cmng_fns_mode()

static int bxe_get_cmng_fns_mode ( struct bxe_softc sc)
static

Definition at line 10127 of file bxe.c.

References CHIP_REV_IS_SLOW, CMNG_FNS_MINMAX, CMNG_FNS_NONE, and IS_MF.

Referenced by bxe_link_attn(), and bxe_pf_init().

Here is the caller graph for this function:

◆ bxe_get_common_flags()

static unsigned long bxe_get_common_flags ( struct bxe_softc sc,
struct bxe_fastpath fp,
uint8_t  zero_stats 
)
static

Definition at line 11223 of file bxe.c.

References bxe_set_bit(), BXE_TX_SWITCHING, ECORE_Q_FLG_ACTIVE, ECORE_Q_FLG_PCSUM_ON_PKT, ECORE_Q_FLG_STATS, ECORE_Q_FLG_TX_SWITCH, ECORE_Q_FLG_ZERO_STATS, flags, and bxe_softc::flags.

Referenced by bxe_get_q_flags().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_get_cur_phy_idx()

◆ bxe_get_device_info()

static int bxe_get_device_info ( struct bxe_softc sc)
static

Definition at line 13988 of file bxe.c.

References BAR_IGU_INTMEM, bxe_softc::base_fw_ndsb, bxe_devinfo::bc_ver, bxe_devinfo::bc_ver_str, BLOGD, BLOGE, BLOGI, bxe_acquire_hw_lock(), BXE_DB_SHIFT, bxe_get_function_num(), bxe_get_igu_cam_info(), bxe_get_shmem_info(), bxe_get_shmem_mf_cfg_base(), BXE_NO_MCP_FLAG, BXE_ONE_PORT_FLAG, bxe_probe_pci_caps(), bxe_release_hw_lock(), bxe_set_power_state(), CHIP_2_PORT_MODE, CHIP_4_PORT_MODE, bxe_devinfo::chip_id, elink_params::chip_id, CHIP_IS_57810, CHIP_IS_57810_MF, CHIP_IS_E1, CHIP_IS_E1H, CHIP_IS_E1x, CHIP_IS_E2E3, CHIP_NUM_57811, CHIP_NUM_57811_MF, bxe_devinfo::chip_port_mode, CHIP_PORT_MODE_NONE, DBG_LOAD, DEF_SB_IGU_ID, bxe_softc::dev, bxe_devinfo::device_id, bxe_softc::devinfo, bxe_softc::doorbell_size, elink_phy_probe(), bxe_softc::flags, bxe_devinfo::flash_size, FP_SB_MAX_E1x, HW_LOCK_RESOURCE_RESET, bxe_softc::igu_base_addr, bxe_softc::igu_base_sb, IGU_BLOCK_CONFIGURATION_REG_BACKWARD_COMP_EN, bxe_softc::igu_dsb_id, IGU_REG_BLOCK_CONFIGURATION, IGU_REG_RESET_MEMORIES, bxe_softc::igu_sb_cnt, bxe_devinfo::int_block, INT_BLOCK_HC, INT_BLOCK_IGU, INT_BLOCK_MODE_BW_COMP, IS_PF, bxe_softc::link_params, MCP_REG_MCPR_NVM_CFG4, MCPR_NVM_CFG4_FLASH_SIZE, bxe_devinfo::mf_cfg_base, MISC_REG_BOND_ID, MISC_REG_CHIP_NUM, MISC_REG_CHIP_REV, MISC_REG_CHIP_TYPE, MISC_REG_CHIP_TYPE_57811_MASK, MISC_REG_GENERIC_CR_0, MISC_REG_GENERIC_CR_1, MISC_REG_PORT4MODE_EN, MISC_REG_PORT4MODE_EN_OVWR, MISC_REG_SHARED_MEM_ADDR, NVRAM_1MB_SIZE, PCI_ID_VAL3, PCI_PM_D0, PCICFG_GRC_ADDRESS, PCICFG_OFFSET, bxe_devinfo::pcie_msix_cap_reg, PGLUE_B_REG_INTERNAL_PFID_ENABLE_TARGET_READ, PXP2_REG_PGL_ADDR_88_F0, PXP2_REG_PGL_ADDR_88_F1, PXP2_REG_PGL_ADDR_8C_F0, PXP2_REG_PGL_ADDR_8C_F1, PXP2_REG_PGL_ADDR_90_F0, PXP2_REG_PGL_ADDR_90_F1, PXP2_REG_PGL_ADDR_94_F0, PXP2_REG_PGL_ADDR_94_F1, REG_RD, REG_WR, SC_L_ID, SC_PATH, SC_PORT, bxe_devinfo::shmem2_base, bxe_devinfo::shmem_base, elink_params::shmem_base, SHMEM_RD, SHR_MEM_VALIDITY_DEV_INFO, SHR_MEM_VALIDITY_MB, bxe_devinfo::subdevice_id, bxe_devinfo::subvendor_id, and bxe_devinfo::vendor_id.

Referenced by bxe_attach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_get_function_num()

static void bxe_get_function_num ( struct bxe_softc sc)
static

◆ bxe_get_igu_cam_info()

◆ bxe_get_leader_lock_resource()

static int bxe_get_leader_lock_resource ( struct bxe_softc sc)
static

Definition at line 10692 of file bxe.c.

References HW_LOCK_RESOURCE_RECOVERY_LEADER_0, HW_LOCK_RESOURCE_RECOVERY_LEADER_1, and SC_PATH.

Referenced by bxe_release_leader_lock(), and bxe_trylock_leader_lock().

Here is the caller graph for this function:

◆ bxe_get_link_cfg_idx()

static int bxe_get_link_cfg_idx ( struct bxe_softc sc)
static

Definition at line 11667 of file bxe.c.

References bxe_get_cur_phy_idx(), ELINK_EXT_PHY1, ELINK_EXT_PHY2, ELINK_LINK_CONFIG_IDX, bxe_softc::link_params, elink_params::multi_phy_config, and PORT_HW_CFG_PHY_SWAPPED_ENABLED.

Referenced by bxe_calc_fc_adv(), bxe_get_settings(), bxe_initial_phy_init(), and bxe_sysctl_pauseparam().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_get_load_status()

static uint8_t bxe_get_load_status ( struct bxe_softc sc,
int  engine 
)
static

Definition at line 6700 of file bxe.c.

References BLOGD, BXE_PATH0_LOAD_CNT_MASK, BXE_PATH0_LOAD_CNT_SHIFT, BXE_PATH1_LOAD_CNT_MASK, BXE_PATH1_LOAD_CNT_SHIFT, BXE_RECOVERY_GLOB_REG, DBG_LOAD, and REG_RD.

Referenced by bxe_init_locked(), and bxe_parity_recover().

Here is the caller graph for this function:

◆ bxe_get_mf_cfg_info()

◆ bxe_get_mf_speed()

static uint16_t bxe_get_mf_speed ( struct bxe_softc sc)
static

Definition at line 11730 of file bxe.c.

References bxe_extract_max_cfg(), bxe_softc::devinfo, IS_MF, IS_MF_SI, elink_vars::line_speed, bxe_softc::link_vars, bxe_mf_info::mf_config, bxe_devinfo::mf_info, and SC_VN.

Referenced by bxe_fill_report_data(), and bxe_get_settings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_get_params()

static void bxe_get_params ( struct bxe_softc sc)
static

Definition at line 14571 of file bxe.c.

References bxe_get_tunable_params(), RX_BD_USABLE, bxe_softc::rx_ring_size, TX_BD_USABLE, bxe_softc::tx_ring_size, and bxe_softc::wol.

Referenced by bxe_attach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_get_phy_info()

◆ bxe_get_preset_regs()

static int bxe_get_preset_regs ( struct bxe_softc sc,
uint32_t *  p,
uint32_t  preset 
)
static

◆ bxe_get_preset_regs_len()

static int bxe_get_preset_regs_len ( struct bxe_softc sc,
uint32_t  preset 
)
static

Definition at line 18670 of file bxe.c.

References CHIP_IS_E1, CHIP_IS_E1H, CHIP_IS_E2, CHIP_IS_E3A0, CHIP_IS_E3B0, and dump_num_registers.

Referenced by bxe_get_total_regs_len32(), and bxe_grc_dump().

Here is the caller graph for this function:

◆ bxe_get_pretend_reg()

static uint32_t bxe_get_pretend_reg ( struct bxe_softc sc)
static

Definition at line 16675 of file bxe.c.

References PXP2_REG_PGL_PRETEND_FUNC_F0, PXP2_REG_PGL_PRETEND_FUNC_F1, and SC_ABS_FUNC.

Referenced by bxe_pretend_func().

Here is the caller graph for this function:

◆ bxe_get_q_flags()

static unsigned long bxe_get_q_flags ( struct bxe_softc sc,
struct bxe_fastpath fp,
uint8_t  leading 
)
static

Definition at line 11257 of file bxe.c.

References bxe_get_common_flags(), bxe_set_bit(), ECORE_Q_FLG_LEADING_RSS, ECORE_Q_FLG_MCAST, ECORE_Q_FLG_OV, ECORE_Q_FLG_TPA, ECORE_Q_FLG_TPA_IPV6, ECORE_Q_FLG_VLAN, flags, bxe_softc::ifp, and IS_MF_SD.

Referenced by bxe_setup_queue().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_get_settings()

◆ bxe_get_shmem_ext_proto_support_flags()

static uint32_t bxe_get_shmem_ext_proto_support_flags ( struct bxe_softc sc)
static

◆ bxe_get_shmem_info()

◆ bxe_get_shmem_mf_cfg_base()

static uint32_t bxe_get_shmem_mf_cfg_base ( struct bxe_softc sc)
static

Definition at line 13153 of file bxe.c.

References bxe_softc::devinfo, MAX_FUNC_NUM, offset, bxe_devinfo::shmem2_base, SHMEM2_RD, SHMEM_MF_CFG_ADDR_NONE, SHMEM_RD, and size.

Referenced by bxe_get_device_info().

Here is the caller graph for this function:

◆ bxe_get_shmem_mf_cfg_info_niv()

◆ bxe_get_shmem_mf_cfg_info_sd()

◆ bxe_get_shmem_mf_cfg_info_si()

static int bxe_get_shmem_mf_cfg_info_si ( struct bxe_softc sc)
static

◆ bxe_get_total_regs_len32()

static int bxe_get_total_regs_len32 ( struct bxe_softc sc)
static

Definition at line 18687 of file bxe.c.

References bxe_get_preset_regs_len(), and DUMP_MAX_PRESETS.

Referenced by bxe_eioctl(), and bxe_grc_dump().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_get_tunable_params()

◆ bxe_gpio_int_write()

static int bxe_gpio_int_write ( struct bxe_softc sc,
int  gpio_num,
uint32_t  mode,
uint8_t  port 
)
static

◆ bxe_gpio_mult_write()

static int bxe_gpio_mult_write ( struct bxe_softc sc,
uint8_t  pins,
uint32_t  mode 
)
static

◆ bxe_gpio_read()

static int bxe_gpio_read ( struct bxe_softc sc,
int  gpio_num,
uint8_t  port 
)
static

Definition at line 1911 of file bxe.c.

References BLOGE, MISC_REG_GPIO, MISC_REGISTERS_GPIO_3, MISC_REGISTERS_GPIO_PORT_SHIFT, NIG_REG_PORT_SWAP, NIG_REG_STRAP_OVERRIDE, and REG_RD.

Referenced by elink_cb_gpio_read().

Here is the caller graph for this function:

◆ bxe_gpio_write()

static int bxe_gpio_write ( struct bxe_softc sc,
int  gpio_num,
uint32_t  mode,
uint8_t  port 
)
static

◆ bxe_grc_dump()

int bxe_grc_dump ( struct bxe_softc sc)

Definition at line 18913 of file bxe.c.

References BCM_PAGE_SIZE, BLOGI, BLOGW, BNX2X_DUMP_VERSION, bxe_get_preset_regs(), bxe_get_preset_regs_len(), bxe_get_total_regs_len32(), BXE_PATH, bxe_pretend_func(), BXE_STATE_OPEN, CHIP_IS_E1, CHIP_IS_E1H, CHIP_IS_E2, CHIP_IS_E3A0, CHIP_IS_E3B0, ecore_ilt::clients, bxe_softc::def_sb, bxe_softc::def_sb_dma, DMAE_REG_CMD_MEM, DUMP_ALL_PRESETS, DUMP_CHIP_E1, DUMP_CHIP_E1H, DUMP_CHIP_E2, DUMP_CHIP_E3A0, DUMP_CHIP_E3B0, DUMP_MAX_PRESETS, dump_header::dump_meta_data, DUMP_PATH_0, DUMP_PATH_1, ecore_clear_blocks_parity(), ecore_disable_blocks_parity(), ecore_enable_blocks_parity(), bxe_softc::eq_dma, bxe_softc::fp, FW_BUF_SIZE, bxe_softc::fw_stats_data_mapping, bxe_softc::fw_stats_data_size, bxe_softc::fw_stats_req, bxe_softc::fw_stats_req_mapping, bxe_softc::fw_stats_req_size, bxe_softc::grc_dump, bxe_softc::grcdump_done, bxe_softc::grcdump_started, bxe_softc::gz_buf_dma, dump_header::header_size, ecore_ilt::lines, bxe_softc::num_queues, bxe_dma::paddr, dump_header::preset, bxe_fastpath::rcq_dma, RCQ_NUM_PAGES, REG_RD, RX_BD_NUM_PAGES, bxe_fastpath::rx_dma, bxe_fastpath::rx_sge_dma, RX_SGE_NUM_PAGES, bxe_fastpath::sb_dma, SC_ABS_FUNC, SC_ILT, size, bxe_softc::sp_dma, bxe_softc::spq_dma, ilt_client_info::start, bxe_softc::state, TX_BD_NUM_PAGES, bxe_fastpath::tx_dma, bxe_dma::vaddr, and dump_header::version.

Referenced by bxe_eioctl(), and bxe_sp_err_timeout_task().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_gunzip_end()

static void bxe_gunzip_end ( struct bxe_softc sc)
static

Definition at line 18564 of file bxe.c.

◆ bxe_gunzip_init()

static int bxe_gunzip_init ( struct bxe_softc sc)
static

Definition at line 18558 of file bxe.c.

◆ bxe_handle_chip_tq()

static void bxe_handle_chip_tq ( void *  context,
int  pending 
)
static

Definition at line 4474 of file bxe.c.

References BLOGD, BXE_CORE_LOCK, BXE_CORE_UNLOCK, bxe_init_locked(), bxe_periodic_stop(), bxe_stop_locked(), bxe_softc::chip_tq_flags, CHIP_TQ_REINIT, bxe_softc::context, DBG_LOAD, and bxe_softc::ifp.

Referenced by bxe_attach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_handle_classification_eqe()

static void bxe_handle_classification_eqe ( struct bxe_softc sc,
union event_ring_elem elem 
)
static

◆ bxe_handle_drv_info_req()

◆ bxe_handle_eee_event()

static void bxe_handle_eee_event ( struct bxe_softc sc)
static

Definition at line 7679 of file bxe.c.

References BLOGD, bxe_fw_command(), DBG_INTR, and DRV_MSG_CODE_EEE_RESULTS_ACK.

Referenced by bxe_attn_int_deasserted3().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_handle_error()

void bxe_handle_error ( struct bxe_softc sc)

Definition at line 12558 of file bxe.c.

References BLOGI, bxe_int_disable(), bxe_parity_recover(), BXE_RECOVERY_INIT, BXE_RECOVERY_WAIT, BXE_STATE_OPEN, bxe_softc::error_status, bxe_softc::ifp, elink_vars::link_up, bxe_softc::link_vars, bxe_softc::recovery_state, bxe_softc::state, and bxe_softc::unit.

Referenced by bxe_sp_err_timeout_task().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_handle_fp_tq()

static void bxe_handle_fp_tq ( void *  context,
int  pending 
)
static

◆ bxe_handle_mcast_eqe()

static void bxe_handle_mcast_eqe ( struct bxe_softc sc)
static

◆ bxe_handle_rx_mode_eqe()

static void bxe_handle_rx_mode_eqe ( struct bxe_softc sc,
union event_ring_elem elem 
)
static

Definition at line 8442 of file bxe.c.

References bxe_clear_bit(), bxe_set_storm_rx_mode(), bxe_test_and_clear_bit(), ECORE_FILTER_RX_MODE_PENDING, ECORE_FILTER_RX_MODE_SCHED, and bxe_softc::sp_state.

Referenced by bxe_eq_int().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_handle_sp_tq()

static void bxe_handle_sp_tq ( void *  context,
int  pending 
)
static

Definition at line 8636 of file bxe.c.

References ATTENTION_ID, BLOGD, BLOGE, bxe_ack_sb(), bxe_attn_int(), BXE_DEF_SB_ATT_IDX, BXE_DEF_SB_IDX, bxe_eq_int(), bxe_update_dsb_idx(), bxe_softc::context, DBG_SP, bxe_softc::def_att_idx, bxe_softc::def_idx, bxe_softc::igu_dsb_id, IGU_INT_ENABLE, IGU_INT_NOP, and USTORM_ID.

Referenced by bxe_interrupt_attach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_has_rx_work()

static int bxe_has_rx_work ( struct bxe_fastpath fp)
inlinestatic

Definition at line 2673 of file bxe.c.

References RCQ_MAX, bxe_fastpath::rx_cq_cons, and bxe_fastpath::rx_cq_cons_sb.

Referenced by bxe_handle_fp_tq(), and bxe_task_fp().

Here is the caller graph for this function:

◆ bxe_has_tx_work()

static uint8_t bxe_has_tx_work ( struct bxe_fastpath fp)
inlinestatic

Definition at line 2666 of file bxe.c.

References bxe_tx_queue_has_work().

Referenced by bxe_drain_tx_queues(), bxe_handle_fp_tq(), and bxe_task_fp().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_hc_int_disable()

static void bxe_hc_int_disable ( struct bxe_softc sc)
static

◆ bxe_hc_int_enable()

◆ bxe_hw_enable_status()

static void bxe_hw_enable_status ( struct bxe_softc sc)
static

◆ bxe_ifmedia_status()

static void bxe_ifmedia_status ( struct ifnet *  ifp,
struct ifmediareq *  ifmr 
)
static

Definition at line 4434 of file bxe.c.

References BLOGD, DBG_PHY, bxe_softc::ifp, elink_vars::link_up, bxe_softc::link_vars, and bxe_softc::media.

Referenced by bxe_init_ifnet().

Here is the caller graph for this function:

◆ bxe_ifmedia_update()

static int bxe_ifmedia_update ( struct ifnet *  ifp)
static

Definition at line 4401 of file bxe.c.

References BLOGD, DBG_LOAD, bxe_softc::ifmedia, and bxe_softc::ifp.

Referenced by bxe_init_ifnet().

Here is the caller graph for this function:

◆ bxe_igu_ack_sb()

void bxe_igu_ack_sb ( struct bxe_softc sc,
uint8_t  igu_sb_id,
uint8_t  segment,
uint16_t  index,
uint8_t  op,
uint8_t  update 
)

Definition at line 16511 of file bxe.c.

References bxe_igu_ack_sb_gen(), bxe_softc::igu_base_addr, and IGU_CMD_INT_ACK_BASE.

Referenced by bxe_ack_sb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_igu_clear_sb()

static void bxe_igu_clear_sb ( struct bxe_softc sc,
uint8_t  idu_sb_id 
)
static

Definition at line 16581 of file bxe.c.

References bxe_igu_clear_sb_gen(), and SC_FUNC.

Referenced by bxe_init_hw_func().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_igu_clear_sb_gen()

◆ bxe_igu_int_disable()

static void bxe_igu_int_disable ( struct bxe_softc sc)
static

Definition at line 10425 of file bxe.c.

References BLOGD, BLOGE, DBG_INTR, IGU_PF_CONF_ATTN_BIT_EN, IGU_PF_CONF_INT_LINE_EN, IGU_PF_CONF_MSI_MSIX_EN, IGU_REG_PF_CONFIGURATION, REG_RD, and REG_WR.

Referenced by bxe_int_disable().

Here is the caller graph for this function:

◆ bxe_igu_int_enable()

◆ bxe_ilt_set_info()

◆ bxe_ilt_wr()

static void bxe_ilt_wr ( struct bxe_softc sc,
uint32_t  index,
bus_addr_t  addr 
)
static

Definition at line 18449 of file bxe.c.

References addr, CHIP_IS_E1, ONCHIP_ADDR1, ONCHIP_ADDR2, PXP2_REG_RQ_ONCHIP_AT, PXP2_REG_RQ_ONCHIP_AT_B0, and REG_WR_DMAE.

Referenced by bxe_clear_func_ilt().

Here is the caller graph for this function:

◆ bxe_init()

static void bxe_init ( void *  xsc)
static

Definition at line 12977 of file bxe.c.

References BXE_CORE_LOCK, BXE_CORE_UNLOCK, and bxe_init_locked().

Referenced by bxe_init_ifnet().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_init_def_sb()

◆ bxe_init_eq_ring()

◆ bxe_init_eth_fp()

◆ bxe_init_firmware()

static int bxe_init_firmware ( struct bxe_softc sc)
static

◆ bxe_init_fp_mutexs()

static void bxe_init_fp_mutexs ( struct bxe_softc sc)
static

Definition at line 16158 of file bxe.c.

References bxe_softc::fp, bxe_softc::num_queues, bxe_fastpath::rx_mtx, bxe_fastpath::rx_mtx_name, bxe_fastpath::sc, bxe_fastpath::tx_mtx, bxe_fastpath::tx_mtx_name, and bxe_softc::unit.

Referenced by bxe_attach().

Here is the caller graph for this function:

◆ bxe_init_func_obj()

static void bxe_init_func_obj ( struct bxe_softc sc)
static

Definition at line 9326 of file bxe.c.

References bxe_func_sp_drv, BXE_SP, BXE_SP_MAPPING, bxe_softc::dmae_ready, ecore_init_func_obj(), bxe_softc::func_obj, and bxe_fastpath::sc.

Referenced by bxe_nic_load().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_init_hw()

static int bxe_init_hw ( struct bxe_softc sc,
uint32_t  load_code 
)
static

◆ bxe_init_hw_common()

static int bxe_init_hw_common ( struct bxe_softc sc)
static

bxe_init_hw_common - initialize the HW at the COMMON phase.

@sc: driver handle

Definition at line 17011 of file bxe.c.

References ATC_REG_ATC_INIT_DONE, BLOCK_ATC, BLOCK_BRB1, BLOCK_CCM, BLOCK_CDU, BLOCK_CFC, BLOCK_CSDM, BLOCK_CSEM, BLOCK_DMAE, BLOCK_DORQ, BLOCK_HC, BLOCK_IGU, BLOCK_MISC, BLOCK_MISC_AEU, BLOCK_NIG, BLOCK_PBF, BLOCK_PGLUE_B, BLOCK_PRS, BLOCK_PXP, BLOCK_PXP2, BLOCK_QM, BLOCK_SRC, BLOCK_TCM, BLOCK_TM, BLOCK_TSDM, BLOCK_TSEM, BLOCK_UCM, BLOCK_UPB, BLOCK_USDM, BLOCK_USEM, BLOCK_XCM, BLOCK_XPB, BLOCK_XSDM, BLOCK_XSEM, BLOGD, BLOGE, bxe_acquire_hw_lock(), bxe_common_init_phy(), BXE_DB_SHIFT, bxe_enable_blocks_attention(), bxe_init_pxp(), bxe_int_mem_test(), bxe_iov_init_dmae(), BXE_NOMCP, bxe_pf_disable(), bxe_pretend_func(), BXE_PXP_DRAM_ALIGN, bxe_read_dmae(), bxe_release_hw_lock(), bxe_reset_common(), bxe_setup_fan_failure_detection(), BXE_SP, CDU_REG_CDU_GLOBAL_PARAMS, CFC_REG_AC_INIT_DONE, CFC_REG_CAM_INIT_DONE, CFC_REG_CFC_INT_MASK, CFC_REG_DEBUG0, CFC_REG_INIT_REG, CFC_REG_LL_INIT_DONE, CHIP_IS_E1, CHIP_IS_E1H, CHIP_IS_E1x, CHIP_IS_E3, CHIP_IS_E3B0, CHIP_REV_IS_EMUL, CHIP_REV_IS_FPGA, CHIP_REV_IS_SLOW, ilt_client_info::client_num, CNIC_SUPPORT, CSEM_REG_PASSIVE_BUFFER, DBG_LOAD, bxe_softc::devinfo, bxe_softc::dmae_ready, DORQ_REG_DORQ_INT_MASK, DORQ_REG_DPM_CID_OFST, E2_FUNC_MAX, ecore_enable_blocks_parity(), ecore_ilt_client_init_op_ilt(), ecore_ilt_init_page_size(), ecore_init_block(), ecore_init_fill(), ecore_qm_init_ptr_table(), ilt_client_info::end, GRCBASE_MISC, HW_LOCK_RESOURCE_RESET, IGU_REG_RESET_MEMORIES, ILT_CLIENT_TM, ILT_NUM_PAGE_ENTRIES, INITOP_CLEAR, INITOP_SET, IS_MF, IS_MF_AFEX, IS_MF_SD, bxe_devinfo::mf_info, MISC_REGISTERS_RESET_REG_1_CLEAR, MISC_REGISTERS_RESET_REG_1_SET, MISC_REGISTERS_RESET_REG_2_MSTAT0, MISC_REGISTERS_RESET_REG_2_MSTAT1, MISC_REGISTERS_RESET_REG_2_SET, NIG_REG_LLH_E1HOV_MODE, NIG_REG_LLH_MF_MODE, NIG_REG_STAT2_BRB_OCTET, bxe_mf_info::path_has_ovlan, PBF_REG_HDRS_AFTER_BASIC, PBF_REG_HDRS_AFTER_TAG_0, PBF_REG_MUST_HAVE_HDRS, PBF_REG_TAG_ETHERTYPE_0, PBF_REG_TAG_LEN_0, PCICFG_OFFSET, PGLUE_B_REG_INTERNAL_PFID_ENABLE_MASTER, PHASE_COMMON, PRS_REG_A_PRSU_20, PRS_REG_E1HOV_MODE, PRS_REG_HDRS_AFTER_BASIC, PRS_REG_HDRS_AFTER_TAG_0, PRS_REG_MUST_HAVE_HDRS, PRS_REG_TAG_ETHERTYPE_0, PRS_REG_TAG_LEN_0, PXP2_REG_PGL_TAGS_LIMIT, PXP2_REG_PXP2_INT_STS_CLR_0, PXP2_REG_RD_CDURD_SWAP_MODE, PXP2_REG_RD_DISABLE_INPUTS, PXP2_REG_RD_INIT_DONE, PXP2_REG_RD_QM_SWAP_MODE, PXP2_REG_RD_SRC_SWAP_MODE, PXP2_REG_RD_TM_SWAP_MODE, PXP2_REG_RQ_CDU_ENDIAN_M, PXP2_REG_RQ_CFG_DONE, PXP2_REG_RQ_DBG_ENDIAN_M, PXP2_REG_RQ_DISABLE_INPUTS, PXP2_REG_RQ_DRAM_ALIGN, PXP2_REG_RQ_DRAM_ALIGN_RD, PXP2_REG_RQ_DRAM_ALIGN_SEL, PXP2_REG_RQ_HC_ENDIAN_M, PXP2_REG_RQ_QM_ENDIAN_M, PXP2_REG_RQ_SRC_ENDIAN_M, PXP2_REG_RQ_TM_ENDIAN_M, PXP_REG_PXP_INT_MASK_0, PXPCS_TL_CONTROL_5, PXPCS_TL_CONTROL_5_ERR_UNSPPORT, PXPCS_TL_CONTROL_5_ERR_UNSPPORT1, PXPCS_TL_FUNC345_STAT, PXPCS_TL_FUNC345_STAT_ERR_UNSPPORT2, PXPCS_TL_FUNC345_STAT_ERR_UNSPPORT3, PXPCS_TL_FUNC345_STAT_ERR_UNSPPORT4, PXPCS_TL_FUNC678_STAT, PXPCS_TL_FUNC678_STAT_ERR_UNSPPORT5, PXPCS_TL_FUNC678_STAT_ERR_UNSPPORT6, PXPCS_TL_FUNC678_STAT_ERR_UNSPPORT7, bxe_softc::qm_cid_count, QM_REG_SOFT_RESET, reg_poll(), REG_RD, REG_WR, SC_ABS_FUNC, SC_PATH, SRC_REG_KEYSEARCH_0, SRC_REG_KEYSEARCH_1, SRC_REG_KEYSEARCH_2, SRC_REG_KEYSEARCH_3, SRC_REG_KEYSEARCH_4, SRC_REG_KEYSEARCH_5, SRC_REG_KEYSEARCH_6, SRC_REG_KEYSEARCH_7, SRC_REG_KEYSEARCH_8, SRC_REG_KEYSEARCH_9, SRC_REG_SOFT_RST, ilt_client_info::start, TSEM_REG_FAST_MEMORY, TSEM_REG_PASSIVE_BUFFER, TSEM_REG_PRAM, USEM_REG_PASSIVE_BUFFER, VFC_MEMORIES_RST_REG_CAM_RST, VFC_MEMORIES_RST_REG_RAM_RST, VFC_REG_MEMORIES_RST, XSEM_REG_FAST_MEMORY, and XSEM_REG_PASSIVE_BUFFER.

Referenced by bxe_init_hw_common_chip().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_init_hw_common_chip()

static int bxe_init_hw_common_chip ( struct bxe_softc sc)
static

bxe_init_hw_common_chip - init HW at the COMMON_CHIP phase.

@sc: driver handle

Definition at line 17502 of file bxe.c.

References BLOGE, bxe_common_init_phy(), bxe_init_hw_common(), and BXE_NOMCP.

Here is the call graph for this function:

◆ bxe_init_hw_func()

static int bxe_init_hw_func ( struct bxe_softc sc)
static

Producer memory: E2 mode: address 0-135 match to the mapping memory; 136 - PF0 default prod; 137 - PF1 default prod; 138 - PF2 default prod; 139 - PF3 default prod; 140 - PF0 attn prod; 141 - PF1 attn prod; 142 - PF2 attn prod; 143 - PF3 attn prod; 144-147 reserved.

E1.5 mode - In backward compatible mode; for non default SB; each even line in the memory holds the U producer and each odd line hold the C producer. The first 128 producers are for NDSB (PF0 - 0-31; PF1 - 32-63 and so on). The last 20 producers are for the DSB for each PF. Each PF has five segments: (the order inside each segment is PF0; PF1; PF2; PF3) - 128-131 U prods; 132-135 C prods; 136-139 X prods; 140-143 T prods; 144-147 attn prods;

Definition at line 18097 of file bxe.c.

References addr, ATTENTION_ID, BAR_CSTRORM_INTMEM, BAR_TSTRORM_INTMEM, BAR_USTRORM_INTMEM, BAR_XSTRORM_INTMEM, BLOCK_ATC, BLOCK_BRB1, BLOCK_CCM, BLOCK_CDU, BLOCK_CFC, BLOCK_CSDM, BLOCK_CSEM, BLOCK_DMAE, BLOCK_DORQ, BLOCK_HC, BLOCK_IGU, BLOCK_MISC, BLOCK_MISC_AEU, BLOCK_NIG, BLOCK_PBF, BLOCK_PGLUE_B, BLOCK_PRS, BLOCK_PXP, BLOCK_PXP2, BLOCK_QM, BLOCK_SRC, BLOCK_TCM, BLOCK_TM, BLOCK_TSDM, BLOCK_TSEM, BLOCK_UCM, BLOCK_UPB, BLOCK_USDM, BLOCK_USEM, BLOCK_XCM, BLOCK_XPB, BLOCK_XSDM, BLOCK_XSEM, BLOGD, BLOGE, bxe_ack_sb(), bxe_igu_clear_sb(), bxe_iov_init_dq(), BXE_MAX_NUM_OF_VFS, bxe_pf_flr_clnup(), bxe_read_dmae(), BXE_SP_MAPPING, bxe_write_dmae(), CFC_REG_WEAK_ENABLE_PF, CHIP_INT_MODE_IS_BC, CHIP_IS_E1H, CHIP_IS_E1x, CHIP_IS_MODE_4_PORT, ecore_ilt::clients, bxe_softc::context, CSEM_REG_VFPF_ERR_NUM, CSTORM_ID, CSTORM_RECORD_SLOW_PATH_OFFSET, DBG_LOAD, bxe_softc::devinfo, bxe_softc::dmae_ready, E1HVN_MAX, ecore_ilt_init_op(), ecore_init_block(), elink_phy_probe(), HC_CONFIG_0_REG_MSI_ATTN_EN_0, HC_REG_CONFIG_0, HC_REG_CONFIG_1, HC_REG_HC_PRTY_STS_CLR, HC_REG_LEADING_EDGE_0, HC_REG_MAIN_MEMORY, HC_REG_MAIN_MEMORY_SIZE, HC_REG_TRAILING_EDGE_0, bxe_softc::igu_base_sb, IGU_BC_BASE_DSB_PROD, IGU_BC_DSB_NUM_SEGS, IGU_BC_NDSB_NUM_SEGS, bxe_softc::igu_dsb_id, IGU_INT_NOP, IGU_NORM_BASE_DSB_PROD, IGU_NORM_DSB_NUM_SEGS, IGU_NORM_NDSB_NUM_SEGS, IGU_PF_CONF_FUNC_EN, IGU_PF_CONF_SINGLE_ISR_EN, IGU_REG_LEADING_EDGE_LATCH, IGU_REG_PBA_STATUS_LSB, IGU_REG_PBA_STATUS_MSB, IGU_REG_PF_CONFIGURATION, IGU_REG_PROD_CONS_MEMORY, IGU_REG_SB_INT_BEFORE_MASK_LSB, IGU_REG_SB_INT_BEFORE_MASK_MSB, IGU_REG_SB_MASK_LSB, IGU_REG_SB_MASK_MSB, IGU_REG_TRAILING_EDGE_LATCH, bxe_softc::igu_sb_cnt, bxe_softc::ilt, ILT_CLIENT_CDU, INITOP_SET, bxe_devinfo::int_block, INT_BLOCK_HC, bxe_softc::interrupt_mode, INTR_MODE_MSIX, IS_MF, L2_ILT_LINES, ecore_ilt::lines, bxe_softc::link_params, MISC_REG_AEU_GENERAL_ATTN_12, NIG_REG_LLH0_FUNC_EN, NIG_REG_LLH0_FUNC_VLAN_ID, OVLAN, bxe_dma::paddr, ilt_line::page, ilt_line::page_mapping, PBF_REG_DISABLE_PF, PGLUE_B_REG_INTERNAL_PFID_ENABLE_MASTER, PGLUE_B_REG_WAS_ERROR_PF_7_0_CLR, PHASE_PF0, PRS_REG_NIC_MODE, QM_REG_PF_EN, REG_RD, REG_WR, REG_WR8, SC_FUNC, SC_PORT, SC_VN, hw_context::size, ilt_line::size, ilt_client_info::start, TSEM_REG_VFPF_ERR_NUM, TSTORM_ID, TSTORM_RECORD_SLOW_PATH_OFFSET, USEM_REG_VFPF_ERR_NUM, USTORM_ID, USTORM_RECORD_SLOW_PATH_OFFSET, hw_context::vcxt, hw_context::vcxt_dma, XSEM_REG_VFPF_ERR_NUM, XSTORM_ID, and XSTORM_RECORD_SLOW_PATH_OFFSET.

Here is the call graph for this function:

◆ bxe_init_hw_port()

static int bxe_init_hw_port ( struct bxe_softc sc)
static

Definition at line 17520 of file bxe.c.

References AEU_INPUTS_ATTN_BITS_SPIO5, BLOCK_ATC, BLOCK_BRB1, BLOCK_CCM, BLOCK_CDU, BLOCK_CFC, BLOCK_CSDM, BLOCK_CSEM, BLOCK_DMAE, BLOCK_DORQ, BLOCK_HC, BLOCK_IGU, BLOCK_MISC, BLOCK_MISC_AEU, BLOCK_NIG, BLOCK_PBF, BLOCK_PGLUE_B, BLOCK_PRS, BLOCK_PXP, BLOCK_PXP2, BLOCK_QM, BLOCK_SRC, BLOCK_TCM, BLOCK_TM, BLOCK_TSDM, BLOCK_TSEM, BLOCK_UCM, BLOCK_UPB, BLOCK_USDM, BLOCK_USEM, BLOCK_XCM, BLOCK_XPB, BLOCK_XSDM, BLOCK_XSEM, BLOGD, BRB1_REG_MAC_GUARANTIED_0, BRB1_REG_MAC_GUARANTIED_1, BRB1_REG_PAUSE_HIGH_THRESHOLD_0, BRB1_REG_PAUSE_LOW_THRESHOLD_0, BXE_ONE_PORT, CHIP_IS_E1, CHIP_IS_E1H, CHIP_IS_E1x, CHIP_IS_E3, CHIP_IS_E3B0, CHIP_IS_MODE_4_PORT, CNIC_SUPPORT, DBG_LOAD, bxe_softc::devinfo, ecore_init_block(), ecore_qm_init_cid_count(), HC_REG_LEADING_EDGE_0, HC_REG_TRAILING_EDGE_0, INITOP_SET, IS_MF, IS_MF_AFEX, IS_MF_SD, bxe_devinfo::mf_info, bxe_mf_info::mf_mode, MISC_REG_AEU_ENABLE1_FUNC_0_OUT_0, MISC_REG_AEU_ENABLE1_FUNC_1_OUT_0, MISC_REG_AEU_MASK_ATTN_FUNC_0, MISC_REG_SPIO_EVENT_EN, MISC_SPIO_SPIO5, bxe_softc::mtu, MULTI_FUNCTION_AFEX, MULTI_FUNCTION_SD, MULTI_FUNCTION_SI, NIG_REG_LLFC_ENABLE_0, NIG_REG_LLFC_OUT_EN_0, NIG_REG_LLH0_BRB1_DRV_MASK_MF, NIG_REG_LLH0_CLS_TYPE, NIG_REG_LLH1_CLS_TYPE, NIG_REG_LLH1_MF_MODE, NIG_REG_LLH_MF_MODE, NIG_REG_MASK_INTERRUPT_PORT0, NIG_REG_P0_HDRS_AFTER_BASIC, NIG_REG_P1_HDRS_AFTER_BASIC, NIG_REG_PAUSE_ENABLE_0, NIG_REG_XGXS_SERDES0_MODE_SEL, bxe_mf_info::path_has_ovlan, PBF_REG_INIT_P0, PBF_REG_P0_ARB_THRSH, PBF_REG_P0_INIT_CRD, PBF_REG_P0_PAUSE_ENABLE, PGLUE_B_REG_INTERNAL_PFID_ENABLE_MASTER, PHASE_PORT0, PHASE_PORT1, PRS_REG_HDRS_AFTER_BASIC_PORT_0, PRS_REG_HDRS_AFTER_BASIC_PORT_1, PRS_REG_HDRS_AFTER_TAG_0_PORT_0, PRS_REG_HDRS_AFTER_TAG_0_PORT_1, PRS_REG_MUST_HAVE_HDRS_PORT_0, PRS_REG_MUST_HAVE_HDRS_PORT_1, bxe_softc::qm_cid_count, REG_RD, REG_WR, SC_PORT, TM_REG_LIN0_MAX_ACTIVE_CID, and TM_REG_LIN0_SCAN_TIME.

Here is the call graph for this function:

◆ bxe_init_ifnet()

static int bxe_init_ifnet ( struct bxe_softc sc)
static

◆ bxe_init_internal()

static void bxe_init_internal ( struct bxe_softc sc,
uint32_t  load_code 
)
static

Definition at line 9934 of file bxe.c.

References BLOGE, bxe_init_internal_common(), FW_MSG_CODE_DRV_LOAD_COMMON, FW_MSG_CODE_DRV_LOAD_COMMON_CHIP, FW_MSG_CODE_DRV_LOAD_FUNCTION, and FW_MSG_CODE_DRV_LOAD_PORT.

Referenced by bxe_nic_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_init_internal_common()

static void bxe_init_internal_common ( struct bxe_softc sc)
static

◆ bxe_init_locked()

◆ bxe_init_mcast_macs_list()

static int bxe_init_mcast_macs_list ( struct bxe_softc sc,
struct ecore_mcast_ramrod_params p 
)
static

Definition at line 12030 of file bxe.c.

References BLOGD, BLOGE, bxe_push_maddr(), DBG_LOAD, ECORE_LIST_INIT, ECORE_LIST_PUSH_TAIL, bxe_softc::ifp, ecore_mcast_list_elem::link, ecore_mcast_list_elem::mac, ecore_mcast_ramrod_params::mcast_list, and ecore_mcast_ramrod_params::mcast_list_len.

Referenced by bxe_set_mc_list().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_init_multi_cos()

static void bxe_init_multi_cos ( struct bxe_softc sc)
static

Definition at line 15811 of file bxe.c.

References BLOGW, BXE_MAX_PRIORITY, bxe_softc::max_cos, and bxe_softc::prio_to_cos.

Referenced by bxe_attach().

Here is the caller graph for this function:

◆ bxe_init_mutexes()

◆ bxe_init_objs()

◆ bxe_init_pxp()

static void bxe_init_pxp ( struct bxe_softc sc)
static

Definition at line 16653 of file bxe.c.

References BLOGD, bxe_pcie_capability_read(), DBG_LOAD, ecore_init_pxp_arb(), and bxe_softc::mrrs.

Referenced by bxe_init_hw_common().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_init_rss_pf()

static int bxe_init_rss_pf ( struct bxe_softc sc)
static

◆ bxe_init_rx_rings()

static void bxe_init_rx_rings ( struct bxe_softc sc)
static

◆ bxe_init_sb()

static void bxe_init_sb ( struct bxe_softc sc,
bus_addr_t  busaddr,
int  vfid,
uint8_t  vf_valid,
int  fw_sb_id,
int  igu_sb_id 
)
static

◆ bxe_init_sge_ring_bit_mask()

static void bxe_init_sge_ring_bit_mask ( struct bxe_fastpath fp)
inlinestatic

Definition at line 2957 of file bxe.c.

References bxe_clear_sge_mask_next_elems(), and bxe_fastpath::sge_mask.

Referenced by bxe_alloc_hsi_mem().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_init_shmem()

static int bxe_init_shmem ( struct bxe_softc sc)
static

Definition at line 10845 of file bxe.c.

References BLOGE, bxe_mcp_wait_one(), bxe_softc::devinfo, bxe_softc::link_params, MCP_ONE_TIMEOUT, MCP_TIMEOUT, MISC_REG_SHARED_MEM_ADDR, REG_RD, SC_PORT, bxe_devinfo::shmem_base, elink_params::shmem_base, SHMEM_RD, and SHR_MEM_VALIDITY_MB.

Referenced by bxe_reset_mcp_comp().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_init_sp_ring()

◆ bxe_init_tx_ring_one()

static void bxe_init_tx_ring_one ( struct bxe_fastpath fp)
static

◆ bxe_init_tx_rings()

static void bxe_init_tx_rings ( struct bxe_softc sc)
inlinestatic

Definition at line 9779 of file bxe.c.

References bxe_init_tx_ring_one(), bxe_softc::fp, bxe_softc::num_queues, and bxe_fastpath::sc.

Referenced by bxe_nic_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_initial_phy_init()

◆ bxe_int_disable()

static void bxe_int_disable ( struct bxe_softc sc)
static

Definition at line 10445 of file bxe.c.

References bxe_hc_int_disable(), bxe_igu_int_disable(), bxe_softc::devinfo, bxe_devinfo::int_block, and INT_BLOCK_HC.

Referenced by bxe_attn_int_deasserted(), bxe_attn_int_deasserted3(), bxe_handle_error(), and bxe_int_disable_sync().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_int_disable_sync()

static void bxe_int_disable_sync ( struct bxe_softc sc,
int  disable_hw 
)
static

Definition at line 4012 of file bxe.c.

References bxe_int_disable().

Referenced by bxe_chip_cleanup(), bxe_nic_load(), and bxe_nic_unload().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_int_enable()

static void bxe_int_enable ( struct bxe_softc sc)
static

Definition at line 10375 of file bxe.c.

References bxe_hc_int_enable(), bxe_igu_int_enable(), bxe_softc::devinfo, bxe_devinfo::int_block, and INT_BLOCK_HC.

Referenced by bxe_nic_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_int_mem_test()

◆ bxe_interrupt_alloc()

◆ bxe_interrupt_attach()

◆ bxe_interrupt_detach()

◆ bxe_interrupt_free()

static void bxe_interrupt_free ( struct bxe_softc sc)
static

Definition at line 8872 of file bxe.c.

References BLOGD, DBG_LOAD, bxe_softc::dev, bxe_softc::interrupt_mode, bxe_softc::intr, bxe_softc::intr_count, INTR_MODE_INTX, INTR_MODE_MSI, INTR_MODE_MSIX, bxe_intr::resource, and bxe_intr::rid.

Referenced by bxe_attach(), and bxe_detach().

Here is the caller graph for this function:

◆ bxe_intr_fp()

static void bxe_intr_fp ( void *  xfp)
static

Definition at line 8853 of file bxe.c.

References BLOGD, bxe_ack_sb(), bxe_task_fp(), DBG_INTR, bxe_softc::fp, bxe_fastpath::fw_sb_id, IGU_INT_DISABLE, bxe_fastpath::igu_sb_id, bxe_fastpath::index, bxe_fastpath::sc, and USTORM_ID.

Referenced by bxe_interrupt_attach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_intr_legacy()

static void bxe_intr_legacy ( void *  xsc)
static

Definition at line 8782 of file bxe.c.

References BLOGD, BLOGW, bxe_ack_int(), bxe_ack_sb(), bxe_task_fp(), CNIC_SUPPORT, DBG_INTR, FOR_EACH_ETH_QUEUE, bxe_softc::fp, bxe_softc::igu_dsb_id, IGU_INT_DISABLE, bxe_fastpath::igu_sb_id, bxe_fastpath::index, bxe_fastpath::sc, bxe_softc::sp_tq, bxe_softc::sp_tq_task, and USTORM_ID.

Referenced by bxe_interrupt_attach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_intr_sp()

static void bxe_intr_sp ( void *  xsc)
static

Definition at line 8838 of file bxe.c.

References BLOGD, bxe_ack_sb(), DBG_INTR, DBG_SP, bxe_softc::igu_dsb_id, IGU_INT_DISABLE, bxe_softc::sp_tq, bxe_softc::sp_tq_task, and USTORM_ID.

Referenced by bxe_interrupt_attach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_ioctl()

static int bxe_ioctl ( if_t  ifp,
u_long  command,
caddr_t  data 
)
static

◆ bxe_iov_init_dmae()

static void bxe_iov_init_dmae ( struct bxe_softc sc)
static

Definition at line 16706 of file bxe.c.

Referenced by bxe_init_hw_common().

Here is the caller graph for this function:

◆ bxe_iov_init_dq()

static void bxe_iov_init_dq ( struct bxe_softc sc)
static

Definition at line 16712 of file bxe.c.

Referenced by bxe_init_hw_func().

Here is the caller graph for this function:

◆ bxe_is_contextless_ramrod()

static int bxe_is_contextless_ramrod ( int  cmd,
int  cmd_type 
)
inlinestatic

bxe_is_contextless_ramrod - check if the current command ends on EQ

@cmd: command to check @cmd_type: command type

Definition at line 2368 of file bxe.c.

References NONE_CONNECTION_TYPE, RAMROD_CMD_ID_ETH_CLASSIFICATION_RULES, RAMROD_CMD_ID_ETH_FILTER_RULES, RAMROD_CMD_ID_ETH_FORWARD_SETUP, RAMROD_CMD_ID_ETH_MULTICAST_RULES, RAMROD_CMD_ID_ETH_RSS_UPDATE, and RAMROD_CMD_ID_ETH_SET_MAC.

Referenced by bxe_sp_post().

Here is the caller graph for this function:

◆ bxe_is_nvram_accessible()

static bool bxe_is_nvram_accessible ( struct bxe_softc sc)
static

Definition at line 19142 of file bxe.c.

References bxe_softc::ifp.

Referenced by bxe_rd_eeprom(), and bxe_wr_eeprom().

Here is the caller graph for this function:

◆ bxe_is_pcie_pending()

static uint8_t bxe_is_pcie_pending ( struct bxe_softc sc)
static

Definition at line 13198 of file bxe.c.

References bxe_pcie_capability_read().

Referenced by bxe_do_flr(), and bxe_pf_flr_clnup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_is_reg_in_chip()

static bool bxe_is_reg_in_chip ( struct bxe_softc sc,
const struct reg_addr reg_info 
)
static

Definition at line 18768 of file bxe.c.

References CHIP_IS_E1, CHIP_IS_E1H, CHIP_IS_E2, CHIP_IS_E3A0, CHIP_IS_E3B0, reg_addr::chips, IS_E1_REG, IS_E1H_REG, IS_E2_REG, IS_E3A0_REG, and IS_E3B0_REG.

Referenced by bxe_get_preset_regs().

Here is the caller graph for this function:

◆ bxe_is_wreg_in_chip()

static bool bxe_is_wreg_in_chip ( struct bxe_softc sc,
const struct wreg_addr wreg_info 
)
static

Definition at line 18785 of file bxe.c.

References CHIP_IS_E1, CHIP_IS_E1H, CHIP_IS_E2, CHIP_IS_E3A0, CHIP_IS_E3B0, wreg_addr::chips, IS_E1_REG, IS_E1H_REG, IS_E2_REG, IS_E3A0_REG, and IS_E3B0_REG.

Referenced by bxe_get_preset_regs().

Here is the caller graph for this function:

◆ bxe_issue_dmae_with_comp()

static int bxe_issue_dmae_with_comp ( struct bxe_softc sc,
struct dmae_cmd dmae 
)
static

Definition at line 1590 of file bxe.c.

References BLOGE, BXE_DMAE_LOCK, BXE_DMAE_UNLOCK, bxe_post_dmae(), BXE_RECOVERY_DONE, BXE_RECOVERY_NIC_LOADING, BXE_SP, CHIP_REV_IS_SLOW, DMAE_COMP_VAL, DMAE_PCI_ERR_FLAG, DMAE_PCI_ERROR, DMAE_TIMEOUT, INIT_DMAE_C, and bxe_softc::recovery_state.

Referenced by bxe_read_dmae(), and bxe_write_dmae().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_lb_pckt()

static void bxe_lb_pckt ( struct bxe_softc sc)
static

Definition at line 16719 of file bxe.c.

References NIG_REG_DEBUG_PACKET_LB, and REG_WR_DMAE.

Referenced by bxe_int_mem_test().

Here is the caller graph for this function:

◆ bxe_leader_reset()

◆ bxe_link_attn()

◆ bxe_link_report()

static void bxe_link_report ( struct bxe_softc sc)
static

Definition at line 11866 of file bxe.c.

References bxe_acquire_phy_lock(), bxe_link_report_locked(), and bxe_release_phy_lock().

Referenced by bxe_attn_int_deasserted3(), bxe_initial_phy_init(), bxe_link_status_update(), and bxe_nic_unload().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_link_report_locked()

◆ bxe_link_reset()

static void bxe_link_reset ( struct bxe_softc sc)
static

Definition at line 18402 of file bxe.c.

References BLOGW, bxe_acquire_phy_lock(), BXE_NOMCP, bxe_release_phy_lock(), CHIP_REV_IS_SLOW, elink_lfa_reset(), bxe_softc::link_params, and bxe_softc::link_vars.

Referenced by bxe_reset_port().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_link_settings_requested()

static void bxe_link_settings_requested ( struct bxe_softc sc)
static

Definition at line 14347 of file bxe.c.

References ADVERTISED_10000baseT_Full, ADVERTISED_1000baseT_Full, ADVERTISED_100baseT_Full, ADVERTISED_100baseT_Half, ADVERTISED_10baseT_Full, ADVERTISED_10baseT_Half, ADVERTISED_2500baseX_Full, ADVERTISED_FIBRE, ADVERTISED_TP, bxe_port::advertising, BLOGD, BLOGE, bxe_set_requested_fc(), DBG_LOAD, DUPLEX_FULL, DUPLEX_HALF, ELINK_DEBUG_P1, ELINK_DEBUG_P3, ELINK_EXT_PHY1, ELINK_FLOW_CTRL_AUTO, ELINK_FLOW_CTRL_NONE, ELINK_SPEED_10, ELINK_SPEED_100, ELINK_SPEED_1000, ELINK_SPEED_10000, ELINK_SPEED_20000, ELINK_SPEED_2500, ELINK_SPEED_AUTO_NEG, ELINK_SUPPORTED_10000baseT_Full, ELINK_SUPPORTED_1000baseT_Full, ELINK_SUPPORTED_100baseT_Full, ELINK_SUPPORTED_100baseT_Half, ELINK_SUPPORTED_10baseT_Full, ELINK_SUPPORTED_10baseT_Half, ELINK_SUPPORTED_2500baseX_Full, ELINK_SUPPORTED_Autoneg, bxe_port::link_config, bxe_softc::link_params, elink_params::num_phys, elink_params::phy, bxe_softc::port, PORT_FEATURE_FLOW_CONTROL_MASK, PORT_FEATURE_LINK_SPEED_100M_FULL, PORT_FEATURE_LINK_SPEED_100M_HALF, PORT_FEATURE_LINK_SPEED_10G_CX4, PORT_FEATURE_LINK_SPEED_10M_FULL, PORT_FEATURE_LINK_SPEED_10M_HALF, PORT_FEATURE_LINK_SPEED_1G, PORT_FEATURE_LINK_SPEED_20G, PORT_FEATURE_LINK_SPEED_2_5G, PORT_FEATURE_LINK_SPEED_AUTO, PORT_FEATURE_LINK_SPEED_MASK, PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM84833, elink_params::req_duplex, elink_params::req_flow_ctrl, elink_params::req_line_speed, elink_params::speed_cap_mask, bxe_port::supported, and elink_phy::type.

Referenced by bxe_get_phy_info().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_link_settings_supported()

◆ bxe_link_status_update()

static void bxe_link_status_update ( struct bxe_softc sc)
static

◆ bxe_map_sb_state_machines()

static void bxe_map_sb_state_machines ( struct hc_index_data index_data)
static

Definition at line 9484 of file bxe.c.

References HC_INDEX_ETH_RX_CQ_CONS, HC_INDEX_ETH_TX_CQ_CONS_COS0, HC_INDEX_ETH_TX_CQ_CONS_COS1, HC_INDEX_ETH_TX_CQ_CONS_COS2, HC_INDEX_OOO_TX_CQ_CONS, SM_RX_ID, and SM_TX_ID.

Referenced by bxe_init_sb().

Here is the caller graph for this function:

◆ bxe_mc_assert()

◆ bxe_mcp_wait_one()

static void bxe_mcp_wait_one ( struct bxe_softc sc)
static

Definition at line 10833 of file bxe.c.

References CHIP_REV_IS_SLOW, and MCP_ONE_TIMEOUT.

Referenced by bxe_init_shmem().

Here is the caller graph for this function:

◆ bxe_media_detect()

◆ bxe_mq_flush()

static void bxe_mq_flush ( struct ifnet *  ifp)
static

Definition at line 5795 of file bxe.c.

References BLOGD, BXE_FP_STATE_IRQ, BXE_FP_TX_LOCK, BXE_FP_TX_UNLOCK, DBG_LOAD, bxe_softc::fp, bxe_softc::ifp, bxe_fastpath::index, bxe_softc::num_queues, bxe_fastpath::state, and bxe_fastpath::tx_br.

Referenced by bxe_init_ifnet().

Here is the caller graph for this function:

◆ bxe_nic_init()

◆ bxe_nic_load()

static __noinline int bxe_nic_load ( struct bxe_softc sc,
int  load_mode 
)
static

Definition at line 12608 of file bxe.c.

References bxe_mf_info::afex_def_vlan_tag, BLOGD, BLOGE, BLOGI, bxe_alloc_fp_buffers(), bxe_alloc_fw_stats_mem(), bxe_alloc_mem(), bxe_clear_pf_load(), BXE_CORE_LOCK_ASSERT, bxe_drv_pulse(), bxe_free_fp_buffers(), bxe_free_fw_stats_mem(), bxe_free_mem(), bxe_func_start(), bxe_fw_command(), bxe_ilt_set_info(), bxe_init_func_obj(), bxe_init_hw(), bxe_init_objs(), bxe_init_rss_pf(), bxe_initial_phy_init(), bxe_int_disable_sync(), bxe_interrupt_attach(), bxe_interrupt_detach(), bxe_link_status_update(), bxe_nic_init(), bxe_nic_load_analyze_req(), bxe_nic_load_no_mcp(), bxe_nic_load_pmf(), bxe_nic_load_request(), bxe_nic_unload(), BXE_NO_PULSE, BXE_NOMCP, bxe_periodic_start(), bxe_periodic_stop(), bxe_set_eth_mac(), bxe_set_fp_rx_buf_size(), bxe_set_pf_load(), bxe_set_rx_mode(), bxe_setup_leading(), bxe_setup_queue(), bxe_squeeze_objects(), BXE_STATE_CLOSED, BXE_STATE_DIAG, BXE_STATE_ERROR, BXE_STATE_OPEN, BXE_STATE_OPENING_WAITING_LOAD, BXE_STATE_OPENING_WAITING_PORT, bxe_update_drv_flags(), bxe_wait_sp_comp(), DBG_LOAD, bxe_softc::devinfo, DRV_FLAGS_CAPABILITIES_LOADED_L2, DRV_FLAGS_CAPABILITIES_LOADED_SUPPORTED, DRV_FLAGS_PORT_MASK, DRV_MSG_CODE_LOAD_DONE, DRV_MSG_CODE_UNLOAD_DONE, DRV_MSG_CODE_UNLOAD_REQ_WOL_MCP, DRV_PULSE_ALWAYS_ALIVE, elink_params::feature_config_flags, bxe_softc::flags, FOR_EACH_NONDEFAULT_ETH_QUEUE, bxe_softc::fp, bxe_softc::fw_drv_pulse_wr_seq, bxe_softc::ifp, IS_PF, bxe_softc::last_reported_link_state, bxe_softc::link_params, LOAD_DIAG, LOAD_LOOPBACK_EXT, LOAD_NORMAL, LOAD_OPEN, bxe_devinfo::mf_info, bxe_port::pmf, bxe_softc::port, SC_FW_MB_IDX, SHMEM2_HAS, SHMEM2_RD, SHMEM2_WR, bxe_softc::state, and UNLOAD_CLOSE.

Referenced by bxe_init_locked(), and bxe_parity_recover().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_nic_load_analyze_req()

static int bxe_nic_load_analyze_req ( struct bxe_softc sc,
uint32_t  load_code 
)
static

◆ bxe_nic_load_no_mcp()

static int bxe_nic_load_no_mcp ( struct bxe_softc sc)
static

Definition at line 3755 of file bxe.c.

References BLOGI, FW_MSG_CODE_DRV_LOAD_COMMON, FW_MSG_CODE_DRV_LOAD_FUNCTION, FW_MSG_CODE_DRV_LOAD_PORT, SC_PATH, and SC_PORT.

Referenced by bxe_nic_load().

Here is the caller graph for this function:

◆ bxe_nic_load_pmf()

static void bxe_nic_load_pmf ( struct bxe_softc sc,
uint32_t  load_code 
)
static

Definition at line 6861 of file bxe.c.

References BLOGD, DBG_LOAD, FW_MSG_CODE_DRV_LOAD_COMMON, FW_MSG_CODE_DRV_LOAD_COMMON_CHIP, FW_MSG_CODE_DRV_LOAD_PORT, bxe_port::pmf, bxe_softc::port, REG_WR, SHMEM2_HAS, and SHMEM2_RD.

Referenced by bxe_nic_load().

Here is the caller graph for this function:

◆ bxe_nic_load_request()

static int bxe_nic_load_request ( struct bxe_softc sc,
uint32_t *  load_code 
)
static

Definition at line 6786 of file bxe.c.

References BLOGD, BLOGE, bxe_fw_command(), DBG_LOAD, DRV_MSG_CODE_LOAD_REQ, DRV_MSG_CODE_LOAD_REQ_WITH_LFA, DRV_MSG_SEQ_NUMBER_MASK, DRV_PULSE_SEQ_MASK, bxe_softc::fw_drv_pulse_wr_seq, FW_MSG_CODE_DRV_LOAD_REFUSED, bxe_softc::fw_seq, SC_FW_MB_IDX, and SHMEM_RD.

Referenced by bxe_nic_load().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_nic_unload()

static __noinline int bxe_nic_unload ( struct bxe_softc sc,
uint32_t  unload_mode,
uint8_t  keep_link 
)
static

◆ bxe_nic_unload_no_mcp()

static int bxe_nic_unload_no_mcp ( struct bxe_softc sc)
static

Definition at line 3779 of file bxe.c.

References BLOGI, FW_MSG_CODE_DRV_UNLOAD_COMMON, FW_MSG_CODE_DRV_UNLOAD_FUNCTION, FW_MSG_CODE_DRV_UNLOAD_PORT, SC_PATH, and SC_PORT.

Referenced by bxe_send_unload_req().

Here is the caller graph for this function:

◆ bxe_nvram_read()

static int bxe_nvram_read ( struct bxe_softc sc,
uint32_t  offset,
uint8_t *  ret_buf,
int  buf_size 
)
static

Definition at line 1276 of file bxe.c.

References BLOGE, bxe_acquire_nvram_lock(), bxe_disable_nvram_access(), bxe_enable_nvram_access(), bxe_nvram_read_dword(), bxe_release_nvram_lock(), bxe_softc::devinfo, bxe_devinfo::flash_size, MCPR_NVM_COMMAND_FIRST, MCPR_NVM_COMMAND_LAST, offset, and bxe_dma::sc.

Referenced by bxe_rd_eeprom().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_nvram_read_dword()

static int bxe_nvram_read_dword ( struct bxe_softc sc,
uint32_t  offset,
uint32_t *  ret_val,
uint32_t  cmd_flags 
)
static

◆ bxe_nvram_write()

static int bxe_nvram_write ( struct bxe_softc sc,
uint32_t  offset,
uint8_t *  data_buf,
int  buf_size 
)
static

◆ bxe_nvram_write1()

static int bxe_nvram_write1 ( struct bxe_softc sc,
uint32_t  offset,
uint8_t *  data_buf,
int  buf_size 
)
static

◆ bxe_nvram_write_dword()

static int bxe_nvram_write_dword ( struct bxe_softc sc,
uint32_t  offset,
uint32_t  val,
uint32_t  cmd_flags 
)
static

◆ bxe_parity_attn()

static uint8_t bxe_parity_attn ( struct bxe_softc sc,
uint8_t *  global,
uint8_t  print,
uint32_t *  sig 
)
static

◆ bxe_parity_recover()

◆ bxe_pbf_pN_buf_flushed()

static void bxe_pbf_pN_buf_flushed ( struct bxe_softc sc,
struct pbf_pN_buf_regs regs,
uint32_t  poll_count 
)
static

Definition at line 17885 of file bxe.c.

References BLOGD, pbf_pN_buf_regs::crd, pbf_pN_buf_regs::crd_freed, DBG_LOAD, FLR_WAIT_INTERVAL, pbf_pN_buf_regs::init_crd, pbf_pN_buf_regs::pN, and REG_RD.

Referenced by bxe_tx_hw_flushed().

Here is the caller graph for this function:

◆ bxe_pbf_pN_cmd_flushed()

static void bxe_pbf_pN_cmd_flushed ( struct bxe_softc sc,
struct pbf_pN_cmd_regs regs,
uint32_t  poll_count 
)
static

Definition at line 17920 of file bxe.c.

References BLOGD, DBG_LOAD, FLR_WAIT_INTERVAL, pbf_pN_cmd_regs::lines_freed, pbf_pN_cmd_regs::lines_occup, pbf_pN_cmd_regs::pN, and REG_RD.

Referenced by bxe_tx_hw_flushed().

Here is the caller graph for this function:

◆ bxe_pcie_capability_read()

static uint32_t bxe_pcie_capability_read ( struct bxe_softc sc,
int  reg,
int  width 
)
static

Definition at line 13178 of file bxe.c.

References BLOGD, BLOGE, DBG_LOAD, and bxe_softc::dev.

Referenced by bxe_init_pxp(), bxe_is_pcie_pending(), and bxe_probe_pci_caps().

Here is the caller graph for this function:

◆ bxe_periodic_callout_func()

◆ bxe_periodic_start()

static void bxe_periodic_start ( struct bxe_softc sc)
static

Definition at line 12340 of file bxe.c.

References bxe_periodic_callout_func(), bxe_softc::periodic_callout, bxe_softc::periodic_flags, and PERIODIC_GO.

Referenced by bxe_initial_phy_init(), and bxe_nic_load().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_periodic_stop()

static void bxe_periodic_stop ( struct bxe_softc sc)
static

Definition at line 12347 of file bxe.c.

References bxe_softc::periodic_callout, bxe_softc::periodic_flags, and PERIODIC_STOP.

Referenced by bxe_detach(), bxe_handle_chip_tq(), bxe_ioctl(), bxe_nic_load(), bxe_parity_recover(), and bxe_shutdown().

Here is the caller graph for this function:

◆ bxe_pf_disable()

static void bxe_pf_disable ( struct bxe_softc sc)
static

Definition at line 16641 of file bxe.c.

References CFC_REG_WEAK_ENABLE_PF, IGU_REG_PF_CONFIGURATION, PGLUE_B_REG_INTERNAL_PFID_ENABLE_MASTER, REG_RD, and REG_WR.

Referenced by bxe_init_hw_common(), bxe_nic_unload(), and bxe_reset_func().

Here is the caller graph for this function:

◆ bxe_pf_flr_clnup()

static int bxe_pf_flr_clnup ( struct bxe_softc sc)
static

◆ bxe_pf_init()

◆ bxe_pf_q_prep_general()

static void bxe_pf_q_prep_general ( struct bxe_softc sc,
struct bxe_fastpath fp,
struct ecore_general_setup_params gen_init,
uint8_t  cos 
)
static

Definition at line 11284 of file bxe.c.

References bxe_stats_id(), bxe_fastpath::cl_id, ecore_general_setup_params::cos, bxe_softc::mtu, ecore_general_setup_params::mtu, ecore_general_setup_params::spcl_id, and ecore_general_setup_params::stat_id.

Referenced by bxe_setup_queue().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_pf_q_prep_init()

◆ bxe_pf_rx_q_prep()

static void bxe_pf_rx_q_prep ( struct bxe_softc sc,
struct bxe_fastpath fp,
struct rxq_pause_params pause,
struct ecore_rxq_setup_params rxq_init 
)
static

Definition at line 11296 of file bxe.c.

References bxe_mf_info::afex_def_vlan_tag, BCM_PAGE_SIZE, BD_TH_HI, rxq_pause_params::bd_th_hi, BD_TH_LO, rxq_pause_params::bd_th_lo, BLOGW, ecore_rxq_setup_params::buf_sz, BXE_RX_ALIGN_SHIFT, ecore_rxq_setup_params::cache_line_log, CHIP_IS_E1, bxe_fastpath::cl_qzone_id, ecore_rxq_setup_params::cl_qzone_id, bxe_softc::devinfo, bxe_softc::dropless_fc, ecore_rxq_setup_params::dscr_map, FW_PREFETCH_CNT, bxe_fastpath::fw_sb_id, ecore_rxq_setup_params::fw_sb_id, HC_INDEX_ETH_RX_CQ_CONS, IP_HEADER_ALIGNMENT_PADDING, IS_MF_AFEX, MAX_AGG_QS, bxe_softc::max_aggregation_size, ecore_rxq_setup_params::max_sges_pkt, ecore_rxq_setup_params::max_tpa_queues, ecore_rxq_setup_params::mcast_engine_id, bxe_devinfo::mf_info, bxe_softc::mtu, bxe_dma::paddr, PAGES_PER_SGE, PAGES_PER_SGE_SHIFT, rxq_pause_params::pri_map, bxe_fastpath::rcq_dma, ecore_rxq_setup_params::rcq_map, ecore_rxq_setup_params::rcq_np_map, RCQ_NUM_PAGES, RCQ_TH_HI, rxq_pause_params::rcq_th_hi, RCQ_TH_LO, rxq_pause_params::rcq_th_lo, RCQ_USABLE_PER_PAGE, ecore_rxq_setup_params::rss_engine_id, bxe_fastpath::rx_buf_size, bxe_fastpath::rx_dma, bxe_softc::rx_ring_size, bxe_fastpath::rx_sge_dma, RX_SGE_NUM_PAGES, RX_SGE_USABLE_PER_PAGE, ecore_rxq_setup_params::sb_cq_index, SC_FUNC, ecore_rxq_setup_params::sge_buf_sz, ecore_rxq_setup_params::sge_map, SGE_PAGE_ALIGN, SGE_PAGE_SHIFT, SGE_PAGES, SGE_TH_HI, rxq_pause_params::sge_th_hi, SGE_TH_LO, rxq_pause_params::sge_th_lo, ecore_rxq_setup_params::silent_removal_mask, ecore_rxq_setup_params::silent_removal_value, and ecore_rxq_setup_params::tpa_agg_sz.

Referenced by bxe_setup_queue().

Here is the caller graph for this function:

◆ bxe_pf_tx_q_prep()

static void bxe_pf_tx_q_prep ( struct bxe_softc sc,
struct bxe_fastpath fp,
struct ecore_txq_setup_params txq_init,
uint8_t  cos 
)
static

◆ bxe_pmf_update()

static void bxe_pmf_update ( struct bxe_softc sc)
static

◆ bxe_poll_hw_usage_counters()

static int bxe_poll_hw_usage_counters ( struct bxe_softc sc,
uint32_t  poll_cnt 
)
static

Definition at line 17787 of file bxe.c.

References bxe_flr_clnup_poll_hw_counter(), CFC_REG_NUM_LCIDS_INSIDE_PF, dmae_reg_go_c, DORQ_REG_PF_USAGE_CNT, INIT_DMAE_C, QM_REG_PF_USG_CNT_0, SC_FUNC, SC_PORT, TM_REG_LIN0_NUM_SCANS, and TM_REG_LIN0_VNIC_UC.

Referenced by bxe_pf_flr_clnup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_post_dmae()

void bxe_post_dmae ( struct bxe_softc sc,
struct dmae_cmd dmae,
int  idx 
)

Definition at line 1507 of file bxe.c.

References DMAE_REG_CMD_MEM, dmae_reg_go_c, and REG_WR.

Referenced by bxe_hw_stats_post(), and bxe_issue_dmae_with_comp().

Here is the caller graph for this function:

◆ bxe_prep_dmae_with_comp()

static void bxe_prep_dmae_with_comp ( struct bxe_softc sc,
struct dmae_cmd dmae,
uint8_t  src_type,
uint8_t  dst_type 
)
static

Definition at line 1571 of file bxe.c.

References bxe_dmae_opcode(), BXE_SP_MAPPING, dmae_cmd::comp_addr_hi, dmae_cmd::comp_addr_lo, dmae_cmd::comp_val, DMAE_COMP_PCI, DMAE_COMP_VAL, dmae_cmd::opcode, U64_HI, and U64_LO.

Referenced by bxe_read_dmae(), and bxe_write_dmae().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_pretend_func()

static int bxe_pretend_func ( struct bxe_softc sc,
uint16_t  pretend_func_val 
)
static

Definition at line 16689 of file bxe.c.

References bxe_get_pretend_reg(), CHIP_IS_E1H, E1H_FUNC_MAX, REG_RD, and REG_WR.

Referenced by bxe_grc_dump(), and bxe_init_hw_common().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_prev_interrupted_dmae()

static void bxe_prev_interrupted_dmae ( struct bxe_softc sc)
static

Definition at line 15278 of file bxe.c.

References BLOGD, CHIP_IS_E1x, DBG_LOAD, PGLUE_B_PGLUE_B_INT_STS_REG_WAS_ERROR_ATTN, PGLUE_B_REG_PGLUE_B_INT_STS, PGLUE_B_REG_WAS_ERROR_PF_7_0_CLR, REG_RD, REG_WR, bxe_fastpath::sc, and SC_FUNC.

Referenced by bxe_prev_unload().

Here is the caller graph for this function:

◆ bxe_prev_is_path_marked()

static uint8_t bxe_prev_is_path_marked ( struct bxe_softc sc)
static

Definition at line 15322 of file bxe.c.

References BLOGD, bxe_prev_mtx, bxe_prev_path_get_entry(), DBG_LOAD, bxe_softc::pcie_bus, bxe_softc::pcie_device, and SC_PATH.

Referenced by bxe_prev_unload_common(), and bxe_prev_unload_uncommon().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_prev_mark_path()

static int bxe_prev_mark_path ( struct bxe_softc sc,
uint8_t  after_undi 
)
static

Definition at line 15349 of file bxe.c.

References BLOGD, BLOGE, bxe_prev_mtx, bxe_prev_path_get_entry(), DBG_LOAD, bxe_softc::pcie_bus, bxe_softc::pcie_device, SC_PATH, and SC_PORT.

Referenced by bxe_prev_unload_common().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_prev_mcp_done()

static int bxe_prev_mcp_done ( struct bxe_softc sc)
static

Definition at line 15293 of file bxe.c.

References BLOGE, bxe_fw_command(), DRV_MSG_CODE_UNLOAD_DONE, DRV_MSG_CODE_UNLOAD_SKIP_LINK_RESET, and bxe_fastpath::sc.

Referenced by bxe_prev_unload_common(), and bxe_prev_unload_uncommon().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_prev_path_get_entry()

static struct bxe_prev_list_node * bxe_prev_path_get_entry ( struct bxe_softc sc)
static

Definition at line 15306 of file bxe.c.

References bxe_softc::pcie_bus, bxe_softc::pcie_device, and SC_PATH.

Referenced by bxe_prev_is_path_marked(), and bxe_prev_mark_path().

Here is the caller graph for this function:

◆ bxe_prev_unload()

◆ bxe_prev_unload_close_mac()

◆ bxe_prev_unload_common()

◆ bxe_prev_unload_uncommon()

static int bxe_prev_unload_uncommon ( struct bxe_softc sc)
static

Definition at line 15661 of file bxe.c.

References BLOGD, bxe_do_flr(), bxe_nic_load_analyze_req(), bxe_prev_is_path_marked(), bxe_prev_mcp_done(), BXE_PREV_WAIT_NEEDED, DBG_LOAD, and FW_MSG_CODE_DRV_LOAD_FUNCTION.

Referenced by bxe_prev_unload().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_prev_unload_undi_inc()

static void bxe_prev_unload_undi_inc ( struct bxe_softc sc,
uint8_t  port,
uint8_t  inc 
)
static

Definition at line 15536 of file bxe.c.

References BLOGD, BXE_PREV_UNDI_BD, BXE_PREV_UNDI_PROD, BXE_PREV_UNDI_PROD_ADDR, BXE_PREV_UNDI_RCQ, DBG_LOAD, REG_RD, and REG_WR.

Referenced by bxe_prev_unload_common().

Here is the caller graph for this function:

◆ bxe_print_next_block()

static void bxe_print_next_block ( struct bxe_softc sc,
int  idx,
const char *  blk 
)
static

◆ bxe_probe()

static int bxe_probe ( device_t  dev)
static

bxe_debug_print_ind_table - prints the indirection table configuration.

@sc: driver hanlde : pointer to rss configuration

Definition at line 2497 of file bxe.c.

References BXE_DEVDESC_MAX, bxe_devs, bxe_device_type::bxe_did, BXE_DRIVER_VERSION, bxe_device_type::bxe_name, bxe_device_type::bxe_sdid, bxe_device_type::bxe_svid, bxe_device_type::bxe_vid, and PCI_ANY_ID.

◆ bxe_probe_pci_caps()

◆ bxe_process_kill()

static int bxe_process_kill ( struct bxe_softc sc,
uint8_t  global 
)
static

◆ bxe_process_kill_chip_reset()

◆ bxe_push_maddr()

static u_int bxe_push_maddr ( void *  arg,
struct sockaddr_dl *  sdl,
u_int  cnt 
)
static

Definition at line 12019 of file bxe.c.

References ecore_mcast_list_elem::mac.

Referenced by bxe_init_mcast_macs_list().

Here is the caller graph for this function:

◆ bxe_pxp_prep()

static void bxe_pxp_prep ( struct bxe_softc sc)
static

Definition at line 10885 of file bxe.c.

References CHIP_IS_E1, PXP2_REG_RD_START_INIT, PXP2_REG_RQ_RBC_DONE, and REG_WR.

Referenced by bxe_process_kill().

Here is the caller graph for this function:

◆ bxe_rd_eeprom()

static int bxe_rd_eeprom ( struct bxe_softc sc,
void *  data,
uint32_t  offset,
uint32_t  len 
)
static

Definition at line 19168 of file bxe.c.

References BLOGW, bxe_is_nvram_accessible(), bxe_nvram_read(), and offset.

Referenced by bxe_eeprom_rd_wr().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_read_dmae()

void bxe_read_dmae ( struct bxe_softc sc,
uint32_t  src_addr,
uint32_t  len32 
)

◆ bxe_read_mf_cfg()

static void bxe_read_mf_cfg ( struct bxe_softc sc)
static

◆ bxe_read_pages_regs()

static void bxe_read_pages_regs ( struct bxe_softc sc,
uint32_t *  p,
uint32_t  preset 
)
static

bxe_read_pages_regs - read "paged" registers

@bp device handle output buffer

Reads "paged" memories: memories that may only be read by first writing to a specific address ("write address") and then reading from a specific address ("read address"). There may be more than one write address per "page" and more than one read address per write address.

Definition at line 18813 of file bxe.c.

References __bxe_get_page_addr_ar(), __bxe_get_page_read_ar(), __bxe_get_page_read_num(), __bxe_get_page_reg_num(), __bxe_get_page_write_ar(), __bxe_get_page_write_num(), reg_addr::addr, addr, IS_REG_IN_PRESET, reg_addr::presets, REG_RD, REG_WR, size, and reg_addr::size.

Referenced by bxe_get_preset_regs().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_reg_rd_ind()

uint32_t bxe_reg_rd_ind ( struct bxe_softc sc,
uint32_t  addr 
)

Definition at line 998 of file bxe.c.

References addr, bxe_softc::dev, PCICFG_GRC_ADDRESS, PCICFG_GRC_DATA, and bxe_dma::sc.

Referenced by bxe_read_dmae().

Here is the caller graph for this function:

◆ bxe_reg_wr_ind()

void bxe_reg_wr_ind ( struct bxe_softc sc,
uint32_t  addr,
uint32_t  val 
)

Definition at line 988 of file bxe.c.

References addr, bxe_softc::dev, PCICFG_GRC_ADDRESS, PCICFG_GRC_DATA, and bxe_dma::sc.

Referenced by ecore_reg_wr_ind().

Here is the caller graph for this function:

◆ bxe_release_alr()

static void bxe_release_alr ( struct bxe_softc sc)
static

Definition at line 6956 of file bxe.c.

References GRCBASE_MCP, and REG_WR.

Referenced by bxe_attn_int_deasserted().

Here is the caller graph for this function:

◆ bxe_release_firmware()

static void bxe_release_firmware ( struct bxe_softc sc)
static

Definition at line 18590 of file bxe.c.

◆ bxe_release_hw_lock()

◆ bxe_release_leader_lock()

static int bxe_release_leader_lock ( struct bxe_softc sc)
static

Definition at line 10709 of file bxe.c.

References bxe_get_leader_lock_resource(), and bxe_release_hw_lock().

Referenced by bxe_leader_reset(), and bxe_nic_unload().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_release_mutexes()

static void bxe_release_mutexes ( struct bxe_softc sc)
static

◆ bxe_release_nvram_lock()

static int bxe_release_nvram_lock ( struct bxe_softc sc)
static

Definition at line 1156 of file bxe.c.

References BLOGE, bxe_release_hw_lock(), CHIP_REV_IS_SLOW, HW_LOCK_RESOURCE_NVRAM, MCP_REG_MCPR_NVM_SW_ARB, MCPR_NVM_SW_ARB_ARB_ARB1, MCPR_NVM_SW_ARB_ARB_REQ_CLR1, NVRAM_TIMEOUT_COUNT, REG_RD, REG_WR, bxe_dma::sc, and SC_PORT.

Referenced by bxe_nvram_read(), bxe_nvram_write(), and bxe_nvram_write1().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_release_phy_lock()

static void bxe_release_phy_lock ( struct bxe_softc sc)
static

◆ bxe_reset_common()

static void bxe_reset_common ( struct bxe_softc sc)
static

◆ bxe_reset_func()

◆ bxe_reset_hw()

static int bxe_reset_hw ( struct bxe_softc sc,
uint32_t  load_code 
)
static

◆ bxe_reset_is_done()

static uint8_t bxe_reset_is_done ( struct bxe_softc sc,
int  engine 
)
static

Definition at line 6687 of file bxe.c.

References BXE_PATH0_RST_IN_PROG_BIT, BXE_PATH1_RST_IN_PROG_BIT, BXE_RECOVERY_GLOB_REG, and REG_RD.

Referenced by bxe_init_locked(), bxe_nic_unload(), and bxe_parity_recover().

Here is the caller graph for this function:

◆ bxe_reset_is_global()

static uint8_t bxe_reset_is_global ( struct bxe_softc sc)
static

Definition at line 6642 of file bxe.c.

References BLOGD, BXE_GLOBAL_RESET_BIT, BXE_RECOVERY_GLOB_REG, DBG_LOAD, and REG_RD.

Referenced by bxe_leader_reset(), and bxe_parity_recover().

Here is the caller graph for this function:

◆ bxe_reset_mcp_comp()

static int bxe_reset_mcp_comp ( struct bxe_softc sc,
uint32_t  magic_val 
)
static

Definition at line 10871 of file bxe.c.

References bxe_clp_reset_done(), bxe_init_shmem(), and CHIP_IS_E1.

Referenced by bxe_process_kill().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_reset_mcp_prep()

static void bxe_reset_mcp_prep ( struct bxe_softc sc,
uint32_t *  magic_val 
)
static

Definition at line 10807 of file bxe.c.

References bxe_clp_reset_prep(), CHIP_IS_E1, MISC_REG_SHARED_MEM_ADDR, REG_RD, REG_WR, and SC_PORT.

Referenced by bxe_process_kill().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_reset_port()

static void bxe_reset_port ( struct bxe_softc sc)
static

◆ bxe_rx_ustorm_prods_offset()

static uint32_t bxe_rx_ustorm_prods_offset ( struct bxe_softc sc,
struct bxe_fastpath fp 
)
inlinestatic

Definition at line 9589 of file bxe.c.

References BAR_USTRORM_INTMEM, CHIP_IS_E1x, bxe_fastpath::cl_id, bxe_fastpath::cl_qzone_id, offset, SC_PORT, USTORM_RX_PRODS_E1X_OFFSET, and USTORM_RX_PRODS_E2_OFFSET.

Referenced by bxe_init_eth_fp().

Here is the caller graph for this function:

◆ bxe_rxeof()

static uint8_t bxe_rxeof ( struct bxe_softc sc,
struct bxe_fastpath fp 
)
static

Definition at line 3169 of file bxe.c.

References BLOGD, BLOGE, bxe_alloc_rx_bd_mbuf(), BXE_FP_RX_LOCK, BXE_FP_RX_UNLOCK, bxe_service_rxsgl(), BXE_SET_FLOWID, bxe_sp_event(), bxe_tpa_start(), bxe_tpa_stop(), bxe_update_rx_prod(), bxe_update_sge_prod(), CQE_TYPE, CQE_TYPE_FAST, CQE_TYPE_SLOW, CQE_TYPE_START, CQE_TYPE_STOP, DBG_LRO, DBG_RX, eth_rx_cqe::end_agg_cqe, ETH_FAST_PATH_RX_CQE_IP_BAD_XSUM_FLG, ETH_FAST_PATH_RX_CQE_IP_XSUM_NO_VALIDATION_FLG, ETH_FAST_PATH_RX_CQE_L4_BAD_XSUM_FLG, ETH_FAST_PATH_RX_CQE_L4_XSUM_NO_VALIDATION_FLG, ETH_FAST_PATH_RX_CQE_PHY_DECODE_ERR_FLG, ETH_FAST_PATH_RX_CQE_TYPE, bxe_fastpath::eth_q_stats, eth_rx_cqe::fast_path_cqe, parsing_flags::flags, bxe_softc::ifp, bxe_fastpath::index, bxe_sw_tpa_info::len_on_bd, eth_fast_path_rx_cqe::len_on_bd, bxe_sw_rx_bd::m, bxe_softc::max_rx_bufs, bxe_eth_q_stats::mbuf_alloc_rx, eth_fast_path_rx_cqe::pars_flags, PARSING_FLAGS_INNER_VLAN_EXIST, eth_end_agg_rx_cqe::pkt_len, eth_fast_path_rx_cqe::pkt_len_or_gro_seg_len, eth_fast_path_rx_cqe::placement_offset, eth_end_agg_rx_cqe::queue_index, eth_fast_path_rx_cqe::queue_index, RCQ, bxe_fastpath::rcq_chain, RCQ_NEXT, RCQ_USABLE_PER_PAGE, eth_fast_path_rx_cqe::rss_hash_result, RX_BD, bxe_fastpath::rx_bd_cons, RX_BD_NEXT, bxe_fastpath::rx_bd_prod, RX_BD_USABLE, bxe_softc::rx_budget, bxe_eth_q_stats::rx_budget_reached, bxe_eth_q_stats::rx_bxe_service_rxsgl, bxe_eth_q_stats::rx_calls, bxe_fastpath::rx_cq_cons, bxe_fastpath::rx_cq_cons_sb, bxe_fastpath::rx_cq_prod, bxe_eth_q_stats::rx_erroneous_jumbo_sge_pkts, bxe_eth_q_stats::rx_hw_csum_errors, bxe_eth_q_stats::rx_jumbo_sge_pkts, bxe_fastpath::rx_mbuf_chain, bxe_eth_q_stats::rx_ofld_frames_csum_ip, bxe_eth_q_stats::rx_ofld_frames_csum_tcp_udp, bxe_eth_q_stats::rx_pkts, bxe_fastpath::rx_sge_prod, bxe_eth_q_stats::rx_soft_errors, bxe_fastpath::rx_tpa_info, SGE_PAGE_ALIGN, SGE_PAGE_SHIFT, eth_end_agg_rx_cqe::sgl_or_raw_data, eth_fast_path_rx_cqe::status_flags, eth_fast_path_rx_cqe::type_error_flags, and eth_fast_path_rx_cqe::vlan_tag.

Referenced by bxe_handle_fp_tq(), and bxe_task_fp().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_send_final_clnup()

static int bxe_send_final_clnup ( struct bxe_softc sc,
uint8_t  clnup_func,
uint32_t  poll_cnt 
)
static

◆ bxe_send_unload_done()

static void bxe_send_unload_done ( struct bxe_softc sc,
uint8_t  keep_link 
)
static

Definition at line 3827 of file bxe.c.

References bxe_fw_command(), BXE_NOMCP, DRV_MSG_CODE_UNLOAD_DONE, and DRV_MSG_CODE_UNLOAD_SKIP_LINK_RESET.

Referenced by bxe_chip_cleanup(), and bxe_nic_unload().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_send_unload_req()

static uint32_t bxe_send_unload_req ( struct bxe_softc sc,
int  unload_mode 
)
static

Definition at line 3803 of file bxe.c.

References bxe_fw_command(), bxe_nic_unload_no_mcp(), BXE_NOMCP, DRV_MSG_CODE_UNLOAD_REQ_WOL_DIS, and UNLOAD_NORMAL.

Referenced by bxe_chip_cleanup(), and bxe_nic_unload().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_service_rxsgl()

static uint8_t bxe_service_rxsgl ( struct bxe_fastpath fp,
uint16_t  len,
uint16_t  lenonbd,
struct mbuf *  m,
struct eth_fast_path_rx_cqe cqe_fp 
)
static

◆ bxe_set_234_gates()

static void bxe_set_234_gates ( struct bxe_softc sc,
uint8_t  close 
)
static

◆ bxe_set_addr()

static u_int bxe_set_addr ( void *  arg,
struct sockaddr_dl *  sdl,
u_int  cnt 
)
static

Definition at line 12130 of file bxe.c.

References BLOGD, BLOGE, bxe_set_mac_one(), DBG_SP, ECORE_UC_LIST_MAC, bxe_sp_objs::mac_obj, bxe_set_addr_ctx::ramrod_flags, bxe_set_addr_ctx::rc, bxe_set_addr_ctx::sc, and bxe_softc::sp_objs.

Referenced by bxe_set_uc_list().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_set_bit()

◆ bxe_set_ctx_validation()

void bxe_set_ctx_validation ( struct bxe_softc sc,
struct eth_context cxt,
uint32_t  cid 
)

◆ bxe_set_eth_mac()

static int bxe_set_eth_mac ( struct bxe_softc sc,
uint8_t  set 
)
static

Definition at line 11618 of file bxe.c.

References BLOGD, bxe_set_bit(), bxe_set_mac_one(), DBG_LOAD, ECORE_ETH_MAC, bxe_softc::link_params, elink_params::mac_addr, bxe_sp_objs::mac_obj, RAMROD_COMP_WAIT, ecore_vlan_mac_ramrod_params::ramrod_flags, and bxe_softc::sp_objs.

Referenced by bxe_nic_load().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_set_fp_rx_buf_size()

static void bxe_set_fp_rx_buf_size ( struct bxe_softc sc)
static

Definition at line 5925 of file bxe.c.

References ETH_OVERHEAD, bxe_softc::fp, IP_HEADER_ALIGNMENT_PADDING, bxe_fastpath::mbuf_alloc_size, bxe_softc::mtu, bxe_softc::num_queues, and bxe_fastpath::rx_buf_size.

Referenced by bxe_nic_load().

Here is the caller graph for this function:

◆ bxe_set_mac_one()

static int bxe_set_mac_one ( struct bxe_softc sc,
uint8_t *  mac,
struct ecore_vlan_mac_obj obj,
uint8_t  set,
int  mac_type,
unsigned long *  ramrod_flags 
)
static

◆ bxe_set_mc_list()

static int bxe_set_mc_list ( struct bxe_softc sc)
static

Definition at line 12084 of file bxe.c.

References BLOGE, bxe_free_mcast_macs_list(), bxe_init_mcast_macs_list(), BXE_MCAST_LOCK, BXE_MCAST_UNLOCK, ecore_config_mcast(), ECORE_MCAST_CMD_ADD, ECORE_MCAST_CMD_DEL, bxe_softc::mcast_obj, and ecore_mcast_ramrod_params::mcast_obj.

Referenced by bxe_set_rx_mode().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_set_mf_bw()

static void bxe_set_mf_bw ( struct bxe_softc sc)
static

Definition at line 7672 of file bxe.c.

References bxe_config_mf_bw(), bxe_fw_command(), and DRV_MSG_CODE_SET_MF_BW_ACK.

Referenced by bxe_attn_int_deasserted3().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_set_modes_bitmap()

◆ bxe_set_pbd_csum()

◆ bxe_set_pbd_csum_e2()

static uint8_t bxe_set_pbd_csum_e2 ( struct bxe_fastpath fp,
struct mbuf *  m,
uint32_t *  parsing_data 
)
static

◆ bxe_set_pbd_lso()

static void bxe_set_pbd_lso ( struct mbuf *  m,
struct eth_tx_parse_bd_e1x pbd 
)
static

◆ bxe_set_pbd_lso_e2()

static void bxe_set_pbd_lso_e2 ( struct mbuf *  m,
uint32_t *  parsing_data 
)
static

Definition at line 5040 of file bxe.c.

References ETH_TX_PARSE_BD_E2_LSO_MSS, and ETH_TX_PARSE_BD_E2_LSO_MSS_SHIFT.

Referenced by bxe_tx_encap().

Here is the caller graph for this function:

◆ bxe_set_pf_load()

static void bxe_set_pf_load ( struct bxe_softc sc)
static

Definition at line 6721 of file bxe.c.

References BLOGD, bxe_acquire_hw_lock(), BXE_PATH0_LOAD_CNT_MASK, BXE_PATH0_LOAD_CNT_SHIFT, BXE_PATH1_LOAD_CNT_MASK, BXE_PATH1_LOAD_CNT_SHIFT, BXE_RECOVERY_GLOB_REG, bxe_release_hw_lock(), DBG_LOAD, HW_LOCK_RESOURCE_RECOVERY_REG, REG_RD, REG_WR, SC_ABS_FUNC, and SC_PATH.

Referenced by bxe_nic_load().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_set_power_state()

static int bxe_set_power_state ( struct bxe_softc sc,
uint8_t  state 
)
static

◆ bxe_set_q_rx_mode()

◆ bxe_set_qm_cid_count()

static int bxe_set_qm_cid_count ( struct bxe_softc sc)
static

Definition at line 15795 of file bxe.c.

References BXE_L2_MAX_CID, BXE_VF_CIDS, CNIC_CID_MAX, CNIC_SUPPORT, IS_SRIOV, QM_CID_ROUND, and roundup.

Referenced by bxe_attach().

Here is the caller graph for this function:

◆ bxe_set_requested_fc()

static void bxe_set_requested_fc ( struct bxe_softc sc)
static

Definition at line 11688 of file bxe.c.

References CHIP_IS_E1x, ELINK_FLOW_CTRL_BOTH, ELINK_FLOW_CTRL_TX, bxe_softc::link_params, bxe_softc::mtu, and elink_params::req_fc_auto_adv.

Referenced by bxe_initial_phy_init(), and bxe_link_settings_requested().

Here is the caller graph for this function:

◆ bxe_set_reset_done()

static void bxe_set_reset_done ( struct bxe_softc sc)
static

Definition at line 6651 of file bxe.c.

References bxe_acquire_hw_lock(), BXE_PATH0_RST_IN_PROG_BIT, BXE_PATH1_RST_IN_PROG_BIT, BXE_RECOVERY_GLOB_REG, bxe_release_hw_lock(), HW_LOCK_RESOURCE_RECOVERY_REG, REG_RD, REG_WR, and SC_PATH.

Referenced by bxe_leader_reset().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_set_reset_global()

static void bxe_set_reset_global ( struct bxe_softc sc)
static

Definition at line 6620 of file bxe.c.

References bxe_acquire_hw_lock(), BXE_GLOBAL_RESET_BIT, BXE_RECOVERY_GLOB_REG, bxe_release_hw_lock(), HW_LOCK_RESOURCE_RECOVERY_REG, REG_RD, and REG_WR.

Referenced by bxe_init_locked(), bxe_nic_unload(), and bxe_parity_recover().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_set_reset_in_progress()

static void bxe_set_reset_in_progress ( struct bxe_softc sc)
static

Definition at line 6669 of file bxe.c.

References bxe_acquire_hw_lock(), BXE_PATH0_RST_IN_PROG_BIT, BXE_PATH1_RST_IN_PROG_BIT, BXE_RECOVERY_GLOB_REG, bxe_release_hw_lock(), HW_LOCK_RESOURCE_RECOVERY_REG, REG_RD, REG_WR, and SC_PATH.

Referenced by bxe_nic_unload(), and bxe_parity_recover().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_set_rx_mode()

◆ bxe_set_spio()

static int bxe_set_spio ( struct bxe_softc sc,
int  spio,
uint32_t  mode 
)
static

◆ bxe_set_storm_rx_mode()

◆ bxe_set_uc_list()

static int bxe_set_uc_list ( struct bxe_softc sc)
static

Definition at line 12154 of file bxe.c.

References BLOGE, bxe_del_all_macs(), bxe_set_addr(), bxe_set_mac_one(), ECORE_UC_LIST_MAC, bxe_softc::ifp, bxe_sp_objs::mac_obj, RAMROD_CONT, bxe_set_addr_ctx::ramrod_flags, bxe_set_addr_ctx::rc, bxe_set_addr_ctx::sc, and bxe_softc::sp_objs.

Referenced by bxe_set_rx_mode().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_setup_fan_failure_detection()

◆ bxe_setup_leading()

static int bxe_setup_leading ( struct bxe_softc sc)
static

Definition at line 11487 of file bxe.c.

References bxe_setup_queue(), and bxe_softc::fp.

Referenced by bxe_nic_load().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_setup_ndsb_state_machine()

static void bxe_setup_ndsb_state_machine ( struct hc_status_block_sm hc_sm,
int  igu_sb_id,
int  igu_seg_id 
)
static

Definition at line 9473 of file bxe.c.

References hc_status_block_sm::time_to_expire.

Referenced by bxe_init_sb().

Here is the caller graph for this function:

◆ bxe_setup_queue()

◆ bxe_shutdown()

static int bxe_shutdown ( device_t  dev)
static

Definition at line 16490 of file bxe.c.

References BLOGD, BXE_CORE_LOCK, BXE_CORE_UNLOCK, bxe_nic_unload(), bxe_periodic_stop(), BXE_STATE_CLOSED, DBG_LOAD, bxe_softc::dev, bxe_softc::state, and UNLOAD_NORMAL.

Here is the call graph for this function:

◆ bxe_sp_err_timeout_task()

static void bxe_sp_err_timeout_task ( void *  arg,
int  pending 
)
static

Definition at line 12579 of file bxe.c.

References BLOGD, bxe_grc_dump(), bxe_handle_error(), bxe_parity_recover(), BXE_RECOVERY_DONE, BXE_RECOVERY_FAILED, BXE_STATE_ERROR, DBG_SP, bxe_softc::error_status, bxe_softc::recovery_state, bxe_softc::state, and bxe_softc::trigger_grcdump.

Referenced by bxe_attach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_sp_event()

◆ bxe_sp_get_next()

static struct eth_spe * bxe_sp_get_next ( struct bxe_softc sc)
inlinestatic

Definition at line 2325 of file bxe.c.

References bxe_softc::spq, bxe_softc::spq_last_bd, bxe_softc::spq_prod_bd, and bxe_softc::spq_prod_idx.

Referenced by bxe_sp_post().

Here is the caller graph for this function:

◆ bxe_sp_post()

int bxe_sp_post ( struct bxe_softc sc,
int  command,
int  cid,
uint32_t  data_hi,
uint32_t  data_lo,
int  cmd_type 
)

bxe_sp_post - place a single command on an SP ring

@sc: driver handle @command: command to place (e.g. SETUP, FILTER_RULES, etc.) @cid: SW CID the command is related to @data_hi: command private data address (high 32 bits) @data_lo: command private data address (low 32 bits) @cmd_type: command type (e.g. NONE, ETH)

SP data is handled as if it's always an address pair, thus data fields are not swapped to little endian in upper functions. Instead this function swaps data as if it's two uint32 fields.

Definition at line 2399 of file bxe.c.

References BLOGD, BLOGE, bxe_is_contextless_ramrod(), BXE_SP, bxe_sp_get_next(), BXE_SP_LOCK, BXE_SP_MAPPING, bxe_sp_prod_update(), BXE_SP_UNLOCK, spe_hdr_t::conn_and_cmd_data, bxe_softc::cq_spq_left, eth_spe::data, DBG_SP, bxe_softc::eq_spq_left, eth_spe::hdr, regpair_t::hi, HW_CID, regpair_t::lo, bxe_dma::paddr, SC_FUNC, SPE_HDR_T_CMD_ID_SHIFT, SPE_HDR_T_CONN_TYPE, SPE_HDR_T_CONN_TYPE_SHIFT, SPE_HDR_T_FUNCTION_ID, SPE_HDR_T_FUNCTION_ID_SHIFT, bxe_softc::spq, bxe_softc::spq_dma, bxe_softc::spq_prod_bd, bxe_softc::spq_prod_idx, spe_hdr_t::type, U64_HI, U64_LO, and eth_specific_data::update_data_addr.

Referenced by bxe_storm_stats_post().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_sp_prod_update()

static void bxe_sp_prod_update ( struct bxe_softc sc)
inlinestatic

Definition at line 2343 of file bxe.c.

References bxe_softc::bar, BAR0, BAR_XSTRORM_INTMEM, bxe_bar::handle, REG_WR16, SC_FUNC, bxe_softc::spq_prod_idx, bxe_bar::tag, and XSTORM_SPQ_PROD_OFFSET.

Referenced by bxe_sp_post().

Here is the caller graph for this function:

◆ bxe_squeeze_objects()

static void bxe_squeeze_objects ( struct bxe_softc sc)
static

◆ bxe_stop_locked()

static int bxe_stop_locked ( struct bxe_softc sc)
static

Definition at line 12963 of file bxe.c.

References BXE_CORE_LOCK_ASSERT, bxe_nic_unload(), and UNLOAD_NORMAL.

Referenced by bxe_handle_chip_tq(), and bxe_ioctl().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_stop_queue()

◆ bxe_storm_memset_hc_disable()

static void bxe_storm_memset_hc_disable ( struct bxe_softc sc,
uint8_t  port,
uint16_t  fw_sb_id,
uint8_t  sb_index,
uint8_t  disable 
)
static

Definition at line 1766 of file bxe.c.

References addr, BAR_CSTRORM_INTMEM, BLOGD, CSTORM_STATUS_BLOCK_DATA_FLAGS_OFFSET, DBG_LOAD, flags, REG_RD8, and REG_WR8.

Referenced by bxe_update_coalesce_sb_index().

Here is the caller graph for this function:

◆ bxe_storm_memset_hc_timeout()

static void bxe_storm_memset_hc_timeout ( struct bxe_softc sc,
uint8_t  port,
uint8_t  fw_sb_id,
uint8_t  sb_index,
uint8_t  ticks 
)
static

Definition at line 1748 of file bxe.c.

References addr, BAR_CSTRORM_INTMEM, BLOGD, CSTORM_STATUS_BLOCK_DATA_TIMEOUT_OFFSET, DBG_LOAD, and REG_WR8.

Referenced by bxe_update_coalesce_sb_index().

Here is the caller graph for this function:

◆ bxe_sysctl_eth_q_stat()

static int bxe_sysctl_eth_q_stat ( SYSCTL_HANDLER_ARGS  )
static

Definition at line 15888 of file bxe.c.

References BLOGE, bxe_eth_q_stats_arr, BXE_NUM_ETH_Q_STATS, bxe_fastpath::eth_q_stats, bxe_softc::eth_stats, bxe_softc::fp, HILO_U64, offset, size, and sysctl_handle_64.

Referenced by bxe_add_sysctls().

Here is the caller graph for this function:

◆ bxe_sysctl_eth_stat()

static int bxe_sysctl_eth_stat ( SYSCTL_HANDLER_ARGS  )
static

Definition at line 15856 of file bxe.c.

References BLOGE, bxe_eth_stats_arr, BXE_NUM_ETH_STATS, bxe_softc::eth_stats, HILO_U64, offset, size, and sysctl_handle_64.

Referenced by bxe_add_sysctls().

Here is the caller graph for this function:

◆ bxe_sysctl_pauseparam()

◆ bxe_sysctl_state()

static int bxe_sysctl_state ( SYSCTL_HANDLER_ARGS  )
static

Definition at line 15831 of file bxe.c.

References BLOGI, and SHMEM2_RD.

Referenced by bxe_add_sysctls().

Here is the caller graph for this function:

◆ bxe_task_fp()

static void bxe_task_fp ( struct bxe_fastpath fp)
static

◆ bxe_test_and_clear_bit()

int bxe_test_and_clear_bit ( int  nr,
volatile unsigned long *  addr 
)

Definition at line 838 of file bxe.c.

References addr.

Referenced by bxe_handle_rx_mode_eqe(), and bxe_link_report_locked().

Here is the caller graph for this function:

◆ bxe_test_and_set_bit()

int bxe_test_and_set_bit ( int  nr,
volatile unsigned long *  addr 
)

Definition at line 825 of file bxe.c.

References addr.

◆ bxe_test_bit()

int bxe_test_bit ( int  nr,
volatile unsigned long *  addr 
)

Definition at line 804 of file bxe.c.

References addr.

Referenced by bxe_chip_cleanup(), bxe_link_report_locked(), bxe_set_mac_one(), and bxe_set_rx_mode().

Here is the caller graph for this function:

◆ bxe_tpa_start()

◆ bxe_tpa_stop()

◆ bxe_trylock_hw_lock()

static uint8_t bxe_trylock_hw_lock ( struct bxe_softc sc,
uint32_t  resource 
)
static

Definition at line 10649 of file bxe.c.

References BLOGD, BLOGE, DBG_LOAD, HW_LOCK_MAX_RESOURCE_VALUE, MISC_REG_DRIVER_CONTROL_1, MISC_REG_DRIVER_CONTROL_7, REG_RD, REG_WR, and SC_FUNC.

Referenced by bxe_trylock_leader_lock().

Here is the caller graph for this function:

◆ bxe_trylock_leader_lock()

static uint8_t bxe_trylock_leader_lock ( struct bxe_softc sc)
static

Definition at line 10703 of file bxe.c.

References bxe_get_leader_lock_resource(), and bxe_trylock_hw_lock().

Referenced by bxe_init_locked(), and bxe_parity_recover().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_tx_avail()

static uint16_t bxe_tx_avail ( struct bxe_softc sc,
struct bxe_fastpath fp 
)
inlinestatic

Definition at line 2640 of file bxe.c.

References SUB_S16, bxe_fastpath::tx_bd_cons, bxe_fastpath::tx_bd_prod, and bxe_softc::tx_ring_size.

Referenced by bxe_tx_encap(), bxe_tx_mq_start_locked(), bxe_tx_start_locked(), and bxe_txeof().

Here is the caller graph for this function:

◆ bxe_tx_disable()

static void bxe_tx_disable ( struct bxe_softc sc)
static

Definition at line 2622 of file bxe.c.

References bxe_softc::ifp.

Referenced by bxe_e1h_disable(), and bxe_nic_unload().

Here is the caller graph for this function:

◆ bxe_tx_encap()

static int bxe_tx_encap ( struct bxe_fastpath fp,
struct mbuf **  m_head 
)
static

Definition at line 5107 of file bxe.c.

References eth_tx_bd::addr_hi, eth_tx_start_bd::addr_hi, eth_tx_bd::addr_lo, eth_tx_start_bd::addr_lo, eth_tx_bd_flags::as_bitfield, bxe_softc::bar, BAR0, BAR2, eth_tx_start_bd::bd_flags, BLOGD, BLOGE, BROADCAST_ADDRESS, bxe_chktso_window(), bxe_dump_mbuf(), BXE_MAX_SEGMENTS, bxe_set_pbd_csum(), bxe_set_pbd_csum_e2(), bxe_set_pbd_lso(), bxe_set_pbd_lso_e2(), BXE_TSO_MAX_SEGMENTS, bxe_tx_avail(), CHIP_IS_E1x, CSUM_TCP_IPV6, CSUM_UDP_IPV6, bxe_db_prod::data, eth_tx_parse_bd_e2::data, DBG_TX, bxe_softc::debug, DOORBELL, bxe_fastpath::eth_q_stats, ETH_TX_BD_FLAGS_IP_CSUM, ETH_TX_BD_FLAGS_IPV6, ETH_TX_BD_FLAGS_IS_UDP, ETH_TX_BD_FLAGS_L4_CSUM, ETH_TX_BD_FLAGS_START_BD, ETH_TX_BD_FLAGS_SW_LSO, ETH_TX_BD_FLAGS_VLAN_MODE_SHIFT, ETH_TX_PARSE_BD_E1X_ETH_ADDR_TYPE, ETH_TX_PARSE_BD_E2_ETH_ADDR_TYPE, ETH_TX_START_BD_HDR_NBDS, ETH_TX_START_BD_HDR_NBDS_SHIFT, bxe_sw_tx_bd::first_bd, bxe_sw_tx_bd::flags, eth_tx_start_bd::general_data, eth_tx_parse_bd_e1x::global_data, bxe_bar::handle, bxe_fastpath::index, eth_tx_parse_bd_e1x::ip_hlen_w, eth_tx_parse_bd_e1x::ip_id, IS_VF, eth_tx_parse_bd_e1x::lso_mss, bxe_sw_tx_bd::m, bxe_sw_tx_bd::m_map, eth_mac_addr_or_tunnel_data::mac_addr, bxe_eth_q_stats::mbuf_alloc_tx, bxe_eth_q_stats::mbuf_defrag_attempts, bxe_eth_q_stats::mbuf_defrag_failures, MULTICAST_ADDRESS, eth_tx_start_bd::nbd, eth_tx_bd::nbytes, eth_tx_start_bd::nbytes, bxe_eth_q_stats::nsegs_path1_errors, bxe_eth_q_stats::nsegs_path2_errors, eth_tx_bd_types::parse_bd_e1x, eth_tx_bd_types::parse_bd_e2, eth_tx_parse_bd_e2::parsing_data, bxe_db_prod::raw, eth_tx_bd_types::reg_bd, bxe_fastpath::sc, SET_FLAG, eth_tx_bd_types::start_bd, bxe_bar::tag, eth_tx_parse_bd_e1x::tcp_flags, eth_tx_parse_bd_e1x::tcp_pseudo_csum, eth_tx_parse_bd_e1x::tcp_send_seq, eth_tx_parse_bd_e1x::total_hlen_w, eth_tx_bd::total_pkt_bytes, TX_BD, TX_BD_IDX, TX_BD_NEXT, bxe_fastpath::tx_bd_prod, TX_BD_USABLE, bxe_fastpath::tx_chain, bxe_fastpath::tx_db, bxe_eth_q_stats::tx_dma_mapping_failure, bxe_eth_q_stats::tx_hw_max_queue_depth, bxe_eth_q_stats::tx_hw_queue_full, bxe_fastpath::tx_mbuf_chain, bxe_fastpath::tx_mbuf_tag, bxe_eth_q_stats::tx_ofld_frames_csum_ip, bxe_eth_q_stats::tx_ofld_frames_lso, bxe_eth_q_stats::tx_ofld_frames_lso_hdr_splits, bxe_fastpath::tx_pkt_prod, bxe_eth_q_stats::tx_pkts, bxe_eth_q_stats::tx_soft_errors, bxe_eth_q_stats::tx_window_violation_std, bxe_eth_q_stats::tx_window_violation_tso, U64_HI, U64_LO, UNICAST_ADDRESS, eth_tx_start_bd::vlan_or_ethertype, and X_ETH_OUTBAND_VLAN.

Referenced by bxe_tx_mq_start_locked(), and bxe_tx_start_locked().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_tx_hw_flushed()

◆ bxe_tx_mq_start()

static int bxe_tx_mq_start ( struct ifnet *  ifp,
struct mbuf *  m 
)
static

◆ bxe_tx_mq_start_deferred()

static void bxe_tx_mq_start_deferred ( void *  arg,
int  pending 
)
static

Definition at line 5748 of file bxe.c.

References BXE_FP_TX_LOCK, BXE_FP_TX_UNLOCK, bxe_tx_mq_start_locked(), bxe_softc::fp, bxe_softc::ifp, and bxe_fastpath::sc.

Referenced by bxe_interrupt_attach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_tx_mq_start_locked()

◆ bxe_tx_queue_has_work()

static int bxe_tx_queue_has_work ( struct bxe_fastpath fp)
inlinestatic

Definition at line 2656 of file bxe.c.

References bxe_fastpath::tx_cons_sb, and bxe_fastpath::tx_pkt_cons.

Referenced by bxe_has_tx_work().

Here is the caller graph for this function:

◆ bxe_tx_start()

static void bxe_tx_start ( if_t  ifp)
static

Definition at line 5608 of file bxe.c.

References BLOGW, BXE_FP_TX_LOCK, BXE_FP_TX_UNLOCK, bxe_tx_start_locked(), bxe_fastpath::eth_q_stats, bxe_softc::fp, elink_vars::link_up, bxe_softc::link_vars, bxe_fastpath::sc, and bxe_eth_q_stats::tx_queue_full_return.

Referenced by bxe_init_ifnet().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_tx_start_locked()

static void bxe_tx_start_locked ( struct bxe_softc sc,
if_t  ifp,
struct bxe_fastpath fp 
)
static

◆ bxe_txeof()

◆ bxe_update_coalesce_sb_index()

void bxe_update_coalesce_sb_index ( struct bxe_softc sc,
uint8_t  fw_sb_id,
uint8_t  sb_index,
uint8_t  disable,
uint16_t  usec 
)

Definition at line 1791 of file bxe.c.

References bxe_storm_memset_hc_disable(), bxe_storm_memset_hc_timeout(), and SC_PORT.

Here is the call graph for this function:

◆ bxe_update_drv_flags()

static void bxe_update_drv_flags ( struct bxe_softc sc,
uint32_t  flags,
uint32_t  set 
)
static

Definition at line 12226 of file bxe.c.

References BLOGD, bxe_acquire_hw_lock(), bxe_release_hw_lock(), DBG_LOAD, flags, HW_LOCK_RESOURCE_DRV_FLAGS, RESET_FLAGS, bxe_set_addr_ctx::sc, SET_FLAGS, SHMEM2_HAS, SHMEM2_RD, and SHMEM2_WR.

Referenced by bxe_nic_load().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_update_dsb_idx()

static uint16_t bxe_update_dsb_idx ( struct bxe_softc sc)
static

◆ bxe_update_eq_prod()

static void bxe_update_eq_prod ( struct bxe_softc sc,
uint16_t  prod 
)
static

Definition at line 8455 of file bxe.c.

References SC_FUNC, and storm_memset_eq_prod().

Referenced by bxe_eq_int().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_update_last_max_sge()

static void bxe_update_last_max_sge ( struct bxe_fastpath fp,
uint16_t  idx 
)
inlinestatic

Definition at line 2971 of file bxe.c.

References bxe_fastpath::last_max_sge, and SUB_S16.

Referenced by bxe_update_sge_prod().

Here is the caller graph for this function:

◆ bxe_update_rx_prod()

static void bxe_update_rx_prod ( struct bxe_softc sc,
struct bxe_fastpath fp,
uint16_t  rx_bd_prod,
uint16_t  rx_cq_prod,
uint16_t  rx_sge_prod 
)
inlinestatic

Definition at line 9689 of file bxe.c.

References BLOGD, DBG_RX, bxe_fastpath::index, REG_WR, and bxe_fastpath::ustorm_rx_prods_offset.

Referenced by bxe_init_rx_rings(), and bxe_rxeof().

Here is the caller graph for this function:

◆ bxe_update_sge_prod()

static void bxe_update_sge_prod ( struct bxe_softc sc,
struct bxe_fastpath fp,
uint16_t  sge_len,
union eth_sgl_or_raw_data cqe 
)
inlinestatic

◆ bxe_wait_sp_comp()

static uint8_t bxe_wait_sp_comp ( struct bxe_softc sc,
unsigned long  mask 
)
inlinestatic

Definition at line 3938 of file bxe.c.

References BLOGE, and bxe_softc::sp_state.

Referenced by bxe_chip_cleanup(), and bxe_nic_load().

Here is the caller graph for this function:

◆ bxe_watchdog()

static int bxe_watchdog ( struct bxe_softc sc,
struct bxe_fastpath fp 
)
static

Definition at line 3471 of file bxe.c.

References BLOGE, BXE_ERR_TXQ_STUCK, BXE_FP_TX_LOCK, BXE_FP_TX_UNLOCK, BXE_SET_ERROR_BIT, bxe_fastpath::index, bxe_softc::sp_err_timeout_task, and bxe_fastpath::watchdog_timer.

Referenced by bxe_periodic_callout_func().

Here is the caller graph for this function:

◆ bxe_wr_eeprom()

static int bxe_wr_eeprom ( struct bxe_softc sc,
void *  data,
uint32_t  offset,
uint32_t  len 
)
static

Definition at line 19153 of file bxe.c.

References BLOGW, bxe_is_nvram_accessible(), bxe_nvram_write(), and offset.

Referenced by bxe_eeprom_rd_wr().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_wr_fp_sb_data()

static void bxe_wr_fp_sb_data ( struct bxe_softc sc,
int  fw_sb_id,
uint32_t *  sb_data_p,
uint32_t  data_size 
)
static

Definition at line 9384 of file bxe.c.

References BAR_CSTRORM_INTMEM, CSTORM_STATUS_BLOCK_DATA_OFFSET, and REG_WR.

Referenced by bxe_init_sb(), and bxe_zero_fp_sb().

Here is the caller graph for this function:

◆ bxe_wr_sp_sb_data()

static void bxe_wr_sp_sb_data ( struct bxe_softc sc,
struct hc_sp_status_block_data sp_sb_data 
)
static

Definition at line 9434 of file bxe.c.

References BAR_CSTRORM_INTMEM, CSTORM_SP_STATUS_BLOCK_DATA_OFFSET, REG_WR, and SC_FUNC.

Referenced by bxe_init_def_sb(), and bxe_zero_sp_sb().

Here is the caller graph for this function:

◆ bxe_write_dmae()

void bxe_write_dmae ( struct bxe_softc sc,
bus_addr_t  dma_addr,
uint32_t  dst_addr,
uint32_t  len32 
)

◆ bxe_write_dmae_phys_len()

void bxe_write_dmae_phys_len ( struct bxe_softc sc,
bus_addr_t  phys_addr,
uint32_t  addr,
uint32_t  len 
)

Definition at line 1709 of file bxe.c.

References addr, bxe_write_dmae(), DMAE_LEN32_WR_MAX, and offset.

Referenced by ecore_write_dmae_phys_len().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_zero_fp_sb()

static void bxe_zero_fp_sb ( struct bxe_softc sc,
int  fw_sb_id 
)
static

◆ bxe_zero_sp_sb()

static void bxe_zero_sp_sb ( struct bxe_softc sc)
static

Definition at line 9451 of file bxe.c.

References BAR_CSTRORM_INTMEM, bxe_fill(), bxe_wr_sp_sb_data(), CSTORM_SP_STATUS_BLOCK_OFFSET, CSTORM_SP_STATUS_BLOCK_SIZE, CSTORM_SP_SYNC_BLOCK_OFFSET, CSTORM_SP_SYNC_BLOCK_SIZE, hc_sp_status_block_data::p_func, SB_DISABLED, and SC_FUNC.

Referenced by bxe_init_def_sb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calc_crc32()

uint32_t calc_crc32 ( uint8_t *  crc32_packet,
uint32_t  crc32_length,
uint32_t  crc32_seed,
uint8_t  complement 
)

Definition at line 722 of file bxe.c.

Referenced by ECORE_CRC32_LE().

Here is the caller graph for this function:

◆ DEBUGNET_DEFINE()

DEBUGNET_DEFINE ( bxe  )

◆ DRIVER_MODULE()

DRIVER_MODULE ( bxe  ,
pci  ,
bxe_driver  ,
bxe_devclass  ,
,
 
)

◆ ecore_gunzip()

static int ecore_gunzip ( struct bxe_softc sc,
const uint8_t *  zbuf,
int  len 
)
static

Definition at line 18597 of file bxe.c.

References BLOGD, and DBG_LOAD.

◆ ecore_reg_wr_ind()

static void ecore_reg_wr_ind ( struct bxe_softc sc,
uint32_t  addr,
uint32_t  val 
)
static

Definition at line 18607 of file bxe.c.

References addr, and bxe_reg_wr_ind().

Here is the call graph for this function:

◆ ecore_storm_memset_struct()

void ecore_storm_memset_struct ( struct bxe_softc sc,
uint32_t  addr,
size_t  size,
uint32_t *  data 
)

Definition at line 18624 of file bxe.c.

References addr, REG_WR, and size.

Referenced by __storm_memset_mac_filters(), storm_memset_cmng(), storm_memset_eq_data(), and storm_memset_func_cfg().

Here is the caller graph for this function:

◆ ecore_write_dmae_phys_len()

static void ecore_write_dmae_phys_len ( struct bxe_softc sc,
bus_addr_t  phys_addr,
uint32_t  addr,
uint32_t  len 
)
static

Definition at line 18615 of file bxe.c.

References addr, and bxe_write_dmae_phys_len().

Here is the call graph for this function:

◆ elink_cb_event_log()

void elink_cb_event_log ( struct bxe_softc sc,
const elink_log_id_t  elink_log_id,
  ... 
)

◆ elink_cb_fw_command()

uint32_t elink_cb_fw_command ( struct bxe_softc sc,
uint32_t  command,
uint32_t  param 
)

◆ elink_cb_gpio_int_write()

uint8_t elink_cb_gpio_int_write ( struct bxe_softc sc,
uint16_t  gpio_num,
uint8_t  mode,
uint8_t  port 
)

Definition at line 2130 of file bxe.c.

References bxe_gpio_int_write().

Referenced by elink_handle_module_detect_int().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ elink_cb_gpio_mult_write()

uint8_t elink_cb_gpio_mult_write ( struct bxe_softc sc,
uint8_t  pins,
uint8_t  mode 
)

Definition at line 2122 of file bxe.c.

References bxe_gpio_mult_write().

Referenced by elink_84833_common_init_phy(), and elink_84833_hw_reset_phy().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ elink_cb_gpio_read()

uint32_t elink_cb_gpio_read ( struct bxe_softc sc,
uint16_t  gpio_num,
uint8_t  port 
)

Definition at line 2105 of file bxe.c.

References bxe_gpio_read().

Referenced by elink_get_cfg_pin(), elink_handle_module_detect_int(), and elink_is_sfp_module_plugged().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ elink_cb_gpio_write()

◆ elink_cb_notify_link_changed()

void elink_cb_notify_link_changed ( struct bxe_softc sc)

Definition at line 2139 of file bxe.c.

References MISC_REG_AEU_GENERAL_ATTN_12, REG_WR, and SC_FUNC.

Referenced by elink_analyze_link_error().

Here is the caller graph for this function:

◆ elink_cb_path_id()

uint8_t elink_cb_path_id ( struct bxe_softc sc)

Definition at line 1847 of file bxe.c.

References SC_PATH.

◆ elink_cb_reg_read()

uint32_t elink_cb_reg_read ( struct bxe_softc sc,
uint32_t  reg_addr 
)

Definition at line 1814 of file bxe.c.

References REG_RD.

Referenced by elink_set_led().

Here is the caller graph for this function:

◆ elink_cb_reg_wb_read()

void elink_cb_reg_wb_read ( struct bxe_softc sc,
uint32_t  offset,
uint32_t *  wb_write,
uint16_t  len 
)

Definition at line 1838 of file bxe.c.

References offset, and REG_RD_DMAE.

◆ elink_cb_reg_wb_write()

void elink_cb_reg_wb_write ( struct bxe_softc sc,
uint32_t  offset,
uint32_t *  wb_write,
uint16_t  len 
)

Definition at line 1829 of file bxe.c.

References offset, and REG_WR_DMAE.

◆ elink_cb_reg_write()

void elink_cb_reg_write ( struct bxe_softc sc,
uint32_t  reg_addr,
uint32_t  val 
)

Definition at line 1821 of file bxe.c.

References REG_WR.

Referenced by elink_emac_enable(), elink_emac_init(), and elink_set_led().

Here is the caller graph for this function:

◆ elink_cb_udelay()

void elink_cb_udelay ( struct bxe_softc sc,
uint32_t  usecs 
)

Definition at line 1807 of file bxe.c.

◆ LIST_HEAD()

static LIST_HEAD ( bxe_prev_list_node  )
static

Definition at line 247 of file bxe.c.

◆ MALLOC_DECLARE()

MALLOC_DECLARE ( M_BXE_ILT  )

◆ MALLOC_DEFINE()

MALLOC_DEFINE ( M_BXE_ILT  ,
"bxe_ilt"  ,
"bxe ILT pointer"   
)

◆ MODULE_DEPEND() [1/2]

MODULE_DEPEND ( bxe  ,
ether  ,
,
,
 
)

◆ MODULE_DEPEND() [2/2]

MODULE_DEPEND ( bxe  ,
pci  ,
,
,
 
)

◆ MTX_SYSINIT()

MTX_SYSINIT ( bxe_prev_mtx  ,
bxe_prev_mtx,
"bxe_prev_lock"  ,
MTX_DEF   
)

◆ storm_memset_cmng()

static void storm_memset_cmng ( struct bxe_softc sc,
struct cmng_init cmng,
uint8_t  port 
)
static

◆ storm_memset_eq_data()

static void storm_memset_eq_data ( struct bxe_softc sc,
struct event_ring_data eq_data,
uint16_t  pfid 
)
static

Definition at line 2241 of file bxe.c.

References addr, BAR_CSTRORM_INTMEM, CSTORM_EVENT_RING_DATA_OFFSET, ecore_storm_memset_struct(), and size.

Referenced by bxe_pf_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ storm_memset_eq_prod()

static void storm_memset_eq_prod ( struct bxe_softc sc,
uint16_t  eq_prod,
uint16_t  pfid 
)
static

Definition at line 2254 of file bxe.c.

References addr, BAR_CSTRORM_INTMEM, CSTORM_EVENT_RING_PROD_OFFSET, and REG_WR16.

Referenced by bxe_update_eq_prod().

Here is the caller graph for this function:

◆ storm_memset_func_cfg()

static void storm_memset_func_cfg ( struct bxe_softc sc,
struct tstorm_eth_function_common_config tcfg,
uint16_t  abs_fid 
)
static

Definition at line 9958 of file bxe.c.

References addr, BAR_TSTRORM_INTMEM, ecore_storm_memset_struct(), size, and TSTORM_FUNCTION_COMMON_CONFIG_OFFSET.

Referenced by bxe_func_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ storm_memset_func_en()

static void storm_memset_func_en ( struct bxe_softc sc,
uint16_t  abs_fid,
uint8_t  enable 
)
static

◆ storm_memset_spq_addr()

static void storm_memset_spq_addr ( struct bxe_softc sc,
bus_addr_t  mapping,
uint16_t  abs_fid 
)
static

Definition at line 2209 of file bxe.c.

References __storm_memset_dma_mapping(), addr, XSEM_REG_FAST_MEMORY, and XSTORM_SPQ_PAGE_BASE_OFFSET.

Referenced by bxe_func_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ storm_memset_vf_to_pf()

static void storm_memset_vf_to_pf ( struct bxe_softc sc,
uint16_t  abs_fid,
uint16_t  pf_id 
)
static

◆ SYSCTL_INT() [1/10]

SYSCTL_INT ( _hw_bxe  ,
OID_AUTO  ,
autogreeen  ,
CTLFLAG_RDTUN  ,
bxe_autogreeen,
,
"AutoGrEEEn support"   
)

◆ SYSCTL_INT() [2/10]

SYSCTL_INT ( _hw_bxe  ,
OID_AUTO  ,
hc_rx_ticks  ,
CTLFLAG_RDTUN  ,
bxe_hc_rx_ticks,
,
"Host Coalescing Rx ticks"   
)

◆ SYSCTL_INT() [3/10]

SYSCTL_INT ( _hw_bxe  ,
OID_AUTO  ,
hc_tx_ticks  ,
CTLFLAG_RDTUN  ,
bxe_hc_tx_ticks,
,
"Host Coalescing Tx ticks"   
)

◆ SYSCTL_INT() [4/10]

SYSCTL_INT ( _hw_bxe  ,
OID_AUTO  ,
interrupt_mode  ,
CTLFLAG_RDTUN  ,
bxe_interrupt_mode,
,
"Interrupt (MSI-X/MSI/INTx) mode"   
)

◆ SYSCTL_INT() [5/10]

SYSCTL_INT ( _hw_bxe  ,
OID_AUTO  ,
max_aggregation_size  ,
CTLFLAG_TUN  ,
bxe_max_aggregation_size,
,
"max aggregation size  
)

◆ SYSCTL_INT() [6/10]

SYSCTL_INT ( _hw_bxe  ,
OID_AUTO  ,
max_rx_bufs  ,
CTLFLAG_RDTUN  ,
bxe_max_rx_bufs,
,
"Maximum Number of Rx Buffers Per Queue"   
)

◆ SYSCTL_INT() [7/10]

SYSCTL_INT ( _hw_bxe  ,
OID_AUTO  ,
mrrs  ,
CTLFLAG_RDTUN  ,
bxe_mrrs,
,
"PCIe maximum read request size  
)

◆ SYSCTL_INT() [8/10]

SYSCTL_INT ( _hw_bxe  ,
OID_AUTO  ,
queue_count  ,
CTLFLAG_RDTUN  ,
bxe_queue_count,
,
"Multi-Queue queue count"   
)

◆ SYSCTL_INT() [9/10]

SYSCTL_INT ( _hw_bxe  ,
OID_AUTO  ,
rx_budget  ,
CTLFLAG_TUN  ,
bxe_rx_budget,
,
"Rx processing budget"   
)

◆ SYSCTL_INT() [10/10]

SYSCTL_INT ( _hw_bxe  ,
OID_AUTO  ,
udp_rss  ,
CTLFLAG_RDTUN  ,
bxe_udp_rss,
,
"UDP RSS support"   
)

◆ SYSCTL_NODE()

SYSCTL_NODE ( _hw  ,
OID_AUTO  ,
bxe  ,
CTLFLAG_RD|  CTLFLAG_MPSAFE,
,
"bxe driver parameters"   
)

◆ SYSCTL_ULONG()

SYSCTL_ULONG ( _hw_bxe  ,
OID_AUTO  ,
debug  ,
CTLFLAG_RDTUN  ,
bxe_debug,
,
"Debug logging mode"   
)

Variable Documentation

◆ bxe_autogreeen

int bxe_autogreeen = 0
static

Definition at line 302 of file bxe.c.

Referenced by bxe_get_tunable_params().

◆ bxe_cdevsw

struct cdevsw bxe_cdevsw
static
Initial value:
= {
.d_version = D_VERSION,
.d_ioctl = bxe_eioctl,
.d_name = "bxecnic",
}
static int bxe_eioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, struct thread *td)
Definition: bxe.c:19278

Definition at line 18648 of file bxe.c.

Referenced by bxe_add_cdev().

◆ bxe_debug

unsigned long bxe_debug = 0

Definition at line 257 of file bxe.c.

Referenced by bxe_add_sysctls(), and bxe_get_tunable_params().

◆ bxe_devclass

devclass_t bxe_devclass
static

Definition at line 226 of file bxe.c.

◆ bxe_devs

struct bxe_device_type bxe_devs[]
static

Definition at line 90 of file bxe.c.

Referenced by bxe_probe().

◆ bxe_driver

driver_t bxe_driver
static
Initial value:
= {
"bxe",
sizeof(struct bxe_softc)
}
static device_method_t bxe_methods[]
Definition: bxe.c:201

Definition at line 216 of file bxe.c.

◆ 

const struct { ... } bxe_eth_q_stats_arr[]

◆ 

const struct { ... } bxe_eth_stats_arr[]

◆ bxe_func_sp_drv

struct ecore_func_sp_drv_ops bxe_func_sp_drv
static
Initial value:
= {
.init_hw_cmn_chip = bxe_init_hw_common_chip,
.init_hw_cmn = bxe_init_hw_common,
.init_hw_port = bxe_init_hw_port,
.init_hw_func = bxe_init_hw_func,
.reset_hw_cmn = bxe_reset_common,
.reset_hw_port = bxe_reset_port,
.reset_hw_func = bxe_reset_func,
.gunzip_init = bxe_gunzip_init,
.gunzip_end = bxe_gunzip_end,
.init_fw = bxe_init_firmware,
.release_fw = bxe_release_firmware,
}
static int bxe_init_hw_port(struct bxe_softc *sc)
Definition: bxe.c:17520
static int bxe_init_hw_common(struct bxe_softc *sc)
Definition: bxe.c:17011
static void bxe_gunzip_end(struct bxe_softc *sc)
Definition: bxe.c:18564
static int bxe_init_hw_common_chip(struct bxe_softc *sc)
Definition: bxe.c:17502
static void bxe_reset_common(struct bxe_softc *sc)
Definition: bxe.c:16598
static void bxe_reset_port(struct bxe_softc *sc)
Definition: bxe.c:18416
static int bxe_gunzip_init(struct bxe_softc *sc)
Definition: bxe.c:18558
static int bxe_init_firmware(struct bxe_softc *sc)
Definition: bxe.c:18570
static void bxe_reset_func(struct bxe_softc *sc)
Definition: bxe.c:18478
static int bxe_init_hw_func(struct bxe_softc *sc)
Definition: bxe.c:18097
static void bxe_release_firmware(struct bxe_softc *sc)
Definition: bxe.c:18590

Definition at line 9308 of file bxe.c.

Referenced by bxe_init_func_obj().

◆ bxe_hc_rx_ticks

int bxe_hc_rx_ticks = 25
static

Definition at line 277 of file bxe.c.

Referenced by bxe_get_tunable_params().

◆ bxe_hc_tx_ticks

int bxe_hc_tx_ticks = 50
static

Definition at line 282 of file bxe.c.

Referenced by bxe_get_tunable_params().

◆ bxe_interrupt_mode

int bxe_interrupt_mode = INTR_MODE_MSIX
static

Definition at line 262 of file bxe.c.

Referenced by bxe_get_tunable_params().

◆ bxe_max_aggregation_size

int bxe_max_aggregation_size = 0
static

Definition at line 292 of file bxe.c.

Referenced by bxe_get_tunable_params().

◆ bxe_max_rx_bufs

int bxe_max_rx_bufs = 0
static

Definition at line 272 of file bxe.c.

Referenced by bxe_get_tunable_params().

◆ bxe_methods

device_method_t bxe_methods[]
static
Initial value:
= {
DEVMETHOD(device_probe, bxe_probe),
DEVMETHOD(device_attach, bxe_attach),
DEVMETHOD(device_detach, bxe_detach),
DEVMETHOD(device_shutdown, bxe_shutdown),
DEVMETHOD(bus_print_child, bus_generic_print_child),
DEVMETHOD(bus_driver_added, bus_generic_driver_added),
KOBJMETHOD_END
}
static int bxe_detach(device_t)
Definition: bxe.c:16406
static int bxe_attach(device_t)
Definition: bxe.c:16209
static int bxe_shutdown(device_t)
Definition: bxe.c:16490
static int bxe_probe(device_t)
Definition: bxe.c:2497

Definition at line 201 of file bxe.c.

◆ bxe_mrrs

int bxe_mrrs = -1
static

Definition at line 297 of file bxe.c.

Referenced by bxe_get_tunable_params().

◆ bxe_prev_mtx

struct mtx bxe_prev_mtx

◆ bxe_queue_count

int bxe_queue_count = 4
static

Definition at line 267 of file bxe.c.

Referenced by bxe_get_tunable_params().

◆ bxe_rx_budget

int bxe_rx_budget = 0xffffffff
static

Definition at line 287 of file bxe.c.

Referenced by bxe_add_sysctls(), and bxe_get_tunable_params().

◆ bxe_udp_rss

int bxe_udp_rss = 0
static

Definition at line 307 of file bxe.c.

Referenced by bxe_get_tunable_params().

◆ flags

◆ offset

◆ size

◆ string

char string[STAT_NAME_LEN]

Definition at line 327 of file bxe.c.