FreeBSD kernel BXE device code
|
#include <sys/cdefs.h>
Go to the source code of this file.
Data Structures | |
struct | arb_line |
Macros | |
#define | ECORE_INIT_OPS_H |
#define | IF_IS_INT_TABLE_ADDR(base, addr) if (((base) <= (addr)) && ((base) + 0x400 >= (addr))) |
#define | IF_IS_PRAM_ADDR(base, addr) if (((base) <= (addr)) && ((base) + 0x40000 >= (addr))) |
#define | NUM_WR_Q 13 |
#define | NUM_RD_Q 29 |
#define | MAX_RD_ORD 3 |
#define | MAX_WR_ORD 2 |
#define | PCIE_REG_PCIER_TL_HDR_FC_ST 0x2980 |
#define | ILT_MEMOP_ALLOC 0 |
#define | ILT_MEMOP_FREE 1 |
#define | ILT_ADDR1(x) ((uint32_t)(((uint64_t)x >> 12) & 0xFFFFFFFF)) |
#define | ILT_ADDR2(x) ((uint32_t)((1 << 20) | ((uint64_t)x >> 44))) |
#define | ILT_RANGE(f, l) (((l) << 10) | f) |
#define | QM_QUEUES_PER_FUNC 16 /* E1 has 32, but only 16 are used */ |
#define | QM_INIT_MIN_CID_COUNT 31 |
#define | QM_INIT(cid_cnt) (cid_cnt > QM_INIT_MIN_CID_COUNT) |
Functions | |
__FBSDID ("$FreeBSD$") | |
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, ecore_dma_addr_t phys_addr, uint32_t addr, uint32_t len) |
static void | ecore_init_str_wr (struct bxe_softc *sc, uint32_t addr, const uint32_t *data, uint32_t len) |
static void | ecore_init_ind_wr (struct bxe_softc *sc, uint32_t addr, const uint32_t *data, uint32_t len) |
static void | ecore_write_big_buf (struct bxe_softc *sc, uint32_t addr, uint32_t len, uint8_t wb) |
static void | ecore_init_fill (struct bxe_softc *sc, uint32_t addr, int fill, uint32_t len, uint8_t wb) |
static void | ecore_write_big_buf_wb (struct bxe_softc *sc, uint32_t addr, uint32_t len) |
static void | ecore_init_wr_64 (struct bxe_softc *sc, uint32_t addr, const uint32_t *data, uint32_t len64) |
static const uint8_t * | ecore_sel_blob (struct bxe_softc *sc, uint32_t addr, const uint8_t *data) |
static void | ecore_init_wr_wb (struct bxe_softc *sc, uint32_t addr, const uint32_t *data, uint32_t len) |
static void | ecore_init_fw (struct bxe_softc *sc, uint32_t addr, uint32_t len) |
static void | ecore_wr_64 (struct bxe_softc *sc, uint32_t reg, uint32_t val_lo, uint32_t val_hi) |
static void | ecore_init_wr_zp (struct bxe_softc *sc, uint32_t addr, uint32_t len, uint32_t blob_off) |
static void | ecore_init_block (struct bxe_softc *sc, uint32_t block, uint32_t stage) |
static void | ecore_init_pxp_arb (struct bxe_softc *sc, int r_order, int w_order) |
static int | ecore_ilt_line_mem_op (struct bxe_softc *sc, struct ilt_line *line, uint32_t size, uint8_t memop) |
static int | ecore_ilt_client_mem_op (struct bxe_softc *sc, int cli_num, uint8_t memop) |
static int | ecore_ilt_mem_op_cnic (struct bxe_softc *sc, uint8_t memop) |
static int | ecore_ilt_mem_op (struct bxe_softc *sc, uint8_t memop) |
static void | ecore_ilt_line_wr (struct bxe_softc *sc, int abs_idx, ecore_dma_addr_t page_mapping) |
static void | ecore_ilt_line_init_op (struct bxe_softc *sc, struct ecore_ilt *ilt, int idx, uint8_t initop) |
static void | ecore_ilt_boundry_init_op (struct bxe_softc *sc, struct ilt_client_info *ilt_cli, uint32_t ilt_start, uint8_t initop) |
static void | ecore_ilt_client_init_op_ilt (struct bxe_softc *sc, struct ecore_ilt *ilt, struct ilt_client_info *ilt_cli, uint8_t initop) |
static void | ecore_ilt_client_init_op (struct bxe_softc *sc, struct ilt_client_info *ilt_cli, uint8_t initop) |
static void | ecore_ilt_client_id_init_op (struct bxe_softc *sc, int cli_num, uint8_t initop) |
static void | ecore_ilt_init_op_cnic (struct bxe_softc *sc, uint8_t initop) |
static void | ecore_ilt_init_op (struct bxe_softc *sc, uint8_t initop) |
static void | ecore_ilt_init_client_psz (struct bxe_softc *sc, int cli_num, uint32_t psz_reg, uint8_t initop) |
static void | ecore_ilt_init_page_size (struct bxe_softc *sc, uint8_t initop) |
static void | ecore_qm_init_cid_count (struct bxe_softc *sc, int qm_cid_count, uint8_t initop) |
static void | ecore_qm_set_ptr_table (struct bxe_softc *sc, int qm_cid_count, uint32_t base_reg, uint32_t reg) |
static void | ecore_qm_init_ptr_table (struct bxe_softc *sc, int qm_cid_count, uint8_t initop) |
Variables | |
static const struct arb_line | read_arb_data [NUM_RD_Q][MAX_RD_ORD+1] |
static const struct arb_line | write_arb_data [NUM_WR_Q][MAX_WR_ORD+1] |
static const struct arb_line | read_arb_addr [NUM_RD_Q-1] |
static const struct arb_line | write_arb_addr [NUM_WR_Q-1] |
#define ECORE_INIT_OPS_H |
Definition at line 33 of file ecore_init_ops.h.
Definition at line 146 of file ecore_init_ops.h.
Definition at line 149 of file ecore_init_ops.h.
#define ILT_ADDR1 | ( | x | ) | ((uint32_t)(((uint64_t)x >> 12) & 0xFFFFFFFF)) |
Definition at line 645 of file ecore_init_ops.h.
#define ILT_ADDR2 | ( | x | ) | ((uint32_t)((1 << 20) | ((uint64_t)x >> 44))) |
Definition at line 646 of file ecore_init_ops.h.
#define ILT_MEMOP_ALLOC 0 |
Definition at line 637 of file ecore_init_ops.h.
#define ILT_MEMOP_FREE 1 |
Definition at line 638 of file ecore_init_ops.h.
#define ILT_RANGE | ( | f, | |
l | |||
) | (((l) << 10) | f) |
Definition at line 647 of file ecore_init_ops.h.
#define MAX_RD_ORD 3 |
Definition at line 358 of file ecore_init_ops.h.
#define MAX_WR_ORD 2 |
Definition at line 359 of file ecore_init_ops.h.
#define NUM_RD_Q 29 |
Definition at line 357 of file ecore_init_ops.h.
#define NUM_WR_Q 13 |
Definition at line 356 of file ecore_init_ops.h.
#define PCIE_REG_PCIER_TL_HDR_FC_ST 0x2980 |
#define QM_INIT | ( | cid_cnt | ) | (cid_cnt > QM_INIT_MIN_CID_COUNT) |
Definition at line 883 of file ecore_init_ops.h.
#define QM_INIT_MIN_CID_COUNT 31 |
Definition at line 882 of file ecore_init_ops.h.
#define QM_QUEUES_PER_FUNC 16 /* E1 has 32, but only 16 are used */ |
Definition at line 881 of file ecore_init_ops.h.
__FBSDID | ( | "$FreeBSD$" | ) |
|
static |
|
static |
Definition at line 740 of file ecore_init_ops.h.
References CHIP_IS_E1, ilt_client_info::client_num, ilt_client_info::end, ILT_CLIENT_CDU, ILT_CLIENT_QM, ILT_CLIENT_SRC, ILT_CLIENT_TM, ILT_RANGE, PXP2_REG_PSWRQ_CDU0_L2P, PXP2_REG_PSWRQ_QM0_L2P, PXP2_REG_PSWRQ_SRC0_L2P, PXP2_REG_PSWRQ_TM0_L2P, PXP2_REG_RQ_CDU_FIRST_ILT, PXP2_REG_RQ_CDU_LAST_ILT, PXP2_REG_RQ_QM_FIRST_ILT, PXP2_REG_RQ_QM_LAST_ILT, PXP2_REG_RQ_SRC_FIRST_ILT, PXP2_REG_RQ_SRC_LAST_ILT, PXP2_REG_RQ_TM_FIRST_ILT, PXP2_REG_RQ_TM_LAST_ILT, REG_WR, SC_FUNC, and ilt_client_info::start.
Referenced by bxe_reset_func(), and ecore_ilt_client_init_op_ilt().
|
static |
Definition at line 818 of file ecore_init_ops.h.
References ecore_ilt::clients, ecore_ilt_client_init_op(), and SC_ILT.
Referenced by ecore_ilt_init_op(), and ecore_ilt_init_op_cnic().
|
static |
Definition at line 810 of file ecore_init_ops.h.
References ecore_ilt_client_init_op_ilt(), and SC_ILT.
Referenced by ecore_ilt_client_id_init_op().
|
static |
Definition at line 793 of file ecore_init_ops.h.
References ecore_ilt_boundry_init_op(), ecore_ilt_line_init_op(), ilt_client_info::end, ilt_client_info::flags, ILT_CLIENT_SKIP_INIT, ilt_client_info::start, and ecore_ilt::start_line.
Referenced by bxe_init_hw_common(), and ecore_ilt_client_init_op().
|
static |
Definition at line 664 of file ecore_init_ops.h.
References ecore_ilt::clients, ecore_ilt_line_mem_op(), ilt_client_info::end, ilt_client_info::flags, ILT_CLIENT_SKIP_INIT, ILT_CLIENT_SKIP_MEM, ecore_ilt::lines, ilt_client_info::page_size, SC_ILT, and ilt_client_info::start.
Referenced by ecore_ilt_mem_op(), and ecore_ilt_mem_op_cnic().
|
static |
Definition at line 842 of file ecore_init_ops.h.
References ecore_ilt::clients, ilt_client_info::flags, ILOG2, ILT_CLIENT_SKIP_INIT, INITOP_CLEAR, INITOP_INIT, INITOP_SET, ilt_client_info::page_size, REG_WR, and SC_ILT.
Referenced by ecore_ilt_init_page_size().
|
static |
Definition at line 834 of file ecore_init_ops.h.
References CNIC_SUPPORT, CONFIGURE_NIC_MODE, ecore_ilt_client_id_init_op(), ILT_CLIENT_CDU, ILT_CLIENT_QM, and ILT_CLIENT_SRC.
Referenced by bxe_init_hw_func().
|
inlinestatic |
Definition at line 827 of file ecore_init_ops.h.
References CONFIGURE_NIC_MODE, ecore_ilt_client_id_init_op(), ILT_CLIENT_SRC, and ILT_CLIENT_TM.
|
static |
Definition at line 866 of file ecore_init_ops.h.
References ecore_ilt_init_client_psz(), ILT_CLIENT_CDU, ILT_CLIENT_QM, ILT_CLIENT_SRC, ILT_CLIENT_TM, PXP2_REG_RQ_CDU_P_SIZE, PXP2_REG_RQ_QM_P_SIZE, PXP2_REG_RQ_SRC_P_SIZE, and PXP2_REG_RQ_TM_P_SIZE.
Referenced by bxe_init_hw_common().
|
static |
Definition at line 720 of file ecore_init_ops.h.
References ecore_ilt_line_wr(), INITOP_CLEAR, INITOP_INIT, INITOP_SET, ecore_ilt::lines, ilt_line::page_mapping, and ecore_ilt::start_line.
Referenced by ecore_ilt_client_init_op_ilt().
|
static |
Definition at line 649 of file ecore_init_ops.h.
References ECORE_ILT_FREE, ECORE_ILT_ZALLOC, ILT_MEMOP_FREE, ilt_line::page, ilt_line::page_mapping, size, and ilt_line::size.
Referenced by ecore_ilt_client_mem_op().
|
static |
Definition at line 707 of file ecore_init_ops.h.
References CHIP_IS_E1, ecore_wr_64(), ILT_ADDR1, ILT_ADDR2, PXP2_REG_RQ_ONCHIP_AT, and PXP2_REG_RQ_ONCHIP_AT_B0.
Referenced by ecore_ilt_line_init_op().
|
static |
Definition at line 696 of file ecore_init_ops.h.
References CNIC_SUPPORT, CONFIGURE_NIC_MODE, ecore_ilt_client_mem_op(), ILT_CLIENT_CDU, ILT_CLIENT_QM, and ILT_CLIENT_SRC.
Referenced by bxe_alloc_mem(), and bxe_free_mem().
|
inlinestatic |
Definition at line 684 of file ecore_init_ops.h.
References CONFIGURE_NIC_MODE, ecore_ilt_client_mem_op(), ILT_CLIENT_SRC, and ILT_CLIENT_TM.
|
static |
Definition at line 250 of file ecore_init_ops.h.
References addr, init_op::arr_wr, BLOCK_OPS_IDX, op_if_mode::cmd_offset, op_arr_write::data_len, op_arr_write::data_off, ecore_init_fill(), ecore_init_fw(), ecore_init_str_wr(), ecore_init_wr_64(), ecore_init_wr_wb(), ecore_init_wr_zp(), init_op::if_mode, INIT_DATA, INIT_MODE_FLAGS, INIT_OPS, INIT_OPS_OFFSETS, op_zero::len, op_if_mode::mode_bit_map, raw_op::offset, raw_op::op, OP_DELAY, OP_FW, OP_IF_MODE_AND, OP_IF_MODE_OR, OP_IF_PHASE, OP_RD, OP_RT, OP_SW, OP_VERIFY, OP_WB, OP_WB_ZR, OP_WR, OP_WR_64, OP_ZP, OP_ZR, init_op::raw, REG_RD, REG_WR, STAGE_END, STAGE_START, op_write::val, init_op::write, and init_op::zero.
Referenced by bxe_init_hw_common(), bxe_init_hw_func(), bxe_init_hw_port(), and bxe_int_mem_test().
|
static |
Definition at line 83 of file ecore_init_ops.h.
References addr, ECORE_MEMSET, ecore_write_big_buf(), FW_BUF_SIZE, and GUNZIP_BUF.
Referenced by bxe_init_hw_common(), and ecore_init_block().
|
static |
Definition at line 198 of file ecore_init_ops.h.
References addr, CHIP_IS_E1, DMAE_READY, ecore_init_ind_wr(), ecore_init_str_wr(), ecore_sel_blob(), and VIRT_WR_DMAE_LEN.
Referenced by ecore_init_block().
|
static |
Definition at line 59 of file ecore_init_ops.h.
References addr, and ecore_reg_wr_ind().
Referenced by bxe_write_dmae(), ecore_init_fw(), ecore_init_wr_wb(), ecore_write_big_buf(), and ecore_write_big_buf_wb().
|
static |
Definition at line 506 of file ecore_init_ops.h.
References arb_line::add, CHIP_IS_E1, CHIP_IS_E1H, CHIP_IS_E2, CHIP_IS_E3, CHIP_REV_IS_FPGA, ECORE_MSG, arb_line::l, MAX_RD_ORD, MAX_WR_ORD, NUM_RD_Q, NUM_WR_Q, PCIE_REG_PCIER_TL_HDR_FC_ST, PXP2_REG_PGL_TAGS_LIMIT, PXP2_REG_PSWRQ_BW_RD, PXP2_REG_PSWRQ_BW_WR, PXP2_REG_RQ_BW_WR_L29, PXP2_REG_RQ_BW_WR_L30, PXP2_REG_RQ_PDR_LIMIT, PXP2_REG_RQ_RD_MBS0, PXP2_REG_RQ_RD_MBS1, PXP2_REG_RQ_WR_MBS0, PXP2_REG_RQ_WR_MBS1, PXP2_REG_WR_CDU_MPS, PXP2_REG_WR_CSDM_MPS, PXP2_REG_WR_DBG_MPS, PXP2_REG_WR_DMAE_MPS, PXP2_REG_WR_HC_MPS, PXP2_REG_WR_QM_MPS, PXP2_REG_WR_SRC_MPS, PXP2_REG_WR_TM_MPS, PXP2_REG_WR_TSDM_MPS, PXP2_REG_WR_USDM_MPS, PXP2_REG_WR_USDMDP_TH, PXP2_REG_WR_XSDM_MPS, read_arb_addr, read_arb_data, REG_RD, REG_WR, arb_line::ubound, write_arb_addr, and write_arb_data.
Referenced by bxe_init_pxp().
|
static |
Definition at line 50 of file ecore_init_ops.h.
Referenced by bxe_write_dmae(), ecore_init_block(), ecore_init_fw(), ecore_init_wr_wb(), ecore_write_big_buf(), and ecore_write_big_buf_wb().
|
static |
Definition at line 113 of file ecore_init_ops.h.
References addr, ecore_write_big_buf_wb(), FW_BUF_SIZE, GUNZIP_BUF, and HILO_U64.
Referenced by ecore_init_block().
|
static |
Definition at line 182 of file ecore_init_ops.h.
References addr, CHIP_IS_E1, DMAE_READY, ecore_init_ind_wr(), ecore_init_str_wr(), and VIRT_WR_DMAE_LEN.
Referenced by ecore_init_block(), and ecore_qm_set_ptr_table().
|
static |
Definition at line 228 of file ecore_init_ops.h.
References addr, ECORE_CPU_TO_LE32, ecore_gunzip(), ecore_sel_blob(), ecore_write_big_buf_wb(), GUNZIP_BUF, and GUNZIP_OUTLEN.
Referenced by ecore_init_block().
|
static |
Definition at line 886 of file ecore_init_ops.h.
References INITOP_CLEAR, INITOP_INIT, INITOP_SET, QM_INIT, QM_REG_CONNNUM_0, REG_WR, and SC_PORT.
Referenced by bxe_init_hw_port().
|
static |
Definition at line 919 of file ecore_init_ops.h.
References CHIP_IS_E1H, ecore_qm_set_ptr_table(), INITOP_CLEAR, INITOP_INIT, INITOP_SET, QM_INIT, QM_REG_BASEADDR, QM_REG_BASEADDR_EXT_A, QM_REG_PTRTBL, and QM_REG_PTRTBL_EXT_A.
Referenced by bxe_init_hw_common().
|
static |
Definition at line 905 of file ecore_init_ops.h.
References ecore_init_wr_wb(), QM_QUEUES_PER_FUNC, and REG_WR.
Referenced by ecore_qm_init_ptr_table().
|
static |
|
static |
Definition at line 152 of file ecore_init_ops.h.
References addr, CSEM_REG_INT_TABLE, CSEM_REG_PRAM, IF_IS_INT_TABLE_ADDR, IF_IS_PRAM_ADDR, INIT_CSEM_INT_TABLE_DATA, INIT_CSEM_PRAM_DATA, INIT_TSEM_INT_TABLE_DATA, INIT_TSEM_PRAM_DATA, INIT_USEM_INT_TABLE_DATA, INIT_USEM_PRAM_DATA, INIT_XSEM_INT_TABLE_DATA, INIT_XSEM_PRAM_DATA, TSEM_REG_INT_TABLE, TSEM_REG_PRAM, USEM_REG_INT_TABLE, USEM_REG_PRAM, XSEM_REG_INT_TABLE, and XSEM_REG_PRAM.
Referenced by ecore_init_fw(), and ecore_init_wr_zp().
|
static |
Definition at line 218 of file ecore_init_ops.h.
References REG_WR_DMAE_LEN.
Referenced by ecore_ilt_line_wr().
|
static |
Definition at line 68 of file ecore_init_ops.h.
References addr, CHIP_IS_E1, DMAE_READY, ecore_init_ind_wr(), ecore_init_str_wr(), ecore_write_dmae_phys_len(), GUNZIP_BUF, and GUNZIP_PHYS.
Referenced by ecore_init_fill().
|
static |
Definition at line 99 of file ecore_init_ops.h.
References addr, CHIP_IS_E1, DMAE_READY, ecore_init_ind_wr(), ecore_init_str_wr(), ecore_write_dmae_phys_len(), GUNZIP_BUF, and GUNZIP_PHYS.
Referenced by ecore_init_wr_64(), and ecore_init_wr_zp().
|
static |
Referenced by ecore_write_big_buf(), and ecore_write_big_buf_wb().
Definition at line 419 of file ecore_init_ops.h.
Referenced by ecore_init_pxp_arb().
|
static |
Definition at line 369 of file ecore_init_ops.h.
Referenced by ecore_init_pxp_arb().
Definition at line 479 of file ecore_init_ops.h.
Referenced by ecore_init_pxp_arb().
|
static |
Definition at line 402 of file ecore_init_ops.h.
Referenced by ecore_init_pxp_arb().