|
iPXE
|
Mellanox Hermon Infiniband HCA driver. More...
#include <stdint.h>#include <ipxe/ib_packet.h>#include <ipxe/bofm.h>#include <ipxe/nvsvpd.h>#include <ipxe/nvo.h>#include "mlx_bitops.h"#include "MT25408_PRM.h"Go to the source code of this file.
Macros | |
| #define | HERMON_MAX_PORTS 2 |
| #define | HERMON_PORT_BASE 1 |
| #define | HERMON_PCI_CONFIG_BAR PCI_BASE_ADDRESS_0 |
| #define | HERMON_PCI_CONFIG_BAR_SIZE 0x100000 |
| #define | HERMON_PCI_UAR_BAR PCI_BASE_ADDRESS_2 |
| #define | HERMON_RESET_OFFSET 0x0f0010 |
| #define | HERMON_RESET_MAGIC 0x01000001UL |
| #define | HERMON_RESET_MAX_WAIT_MS 1000 |
| #define | HERMON_OPCODE_NOP 0x00 |
| #define | HERMON_OPCODE_SEND 0x0a |
| #define | HERMON_OPCODE_RECV_ERROR 0xfe |
| #define | HERMON_OPCODE_SEND_ERROR 0xff |
| #define | HERMON_HCR_QUERY_DEV_CAP 0x0003 |
| #define | HERMON_HCR_QUERY_FW 0x0004 |
| #define | HERMON_HCR_INIT_HCA 0x0007 |
| #define | HERMON_HCR_CLOSE_HCA 0x0008 |
| #define | HERMON_HCR_INIT_PORT 0x0009 |
| #define | HERMON_HCR_CLOSE_PORT 0x000a |
| #define | HERMON_HCR_SET_PORT 0x000c |
| #define | HERMON_HCR_SW2HW_MPT 0x000d |
| #define | HERMON_HCR_HW2SW_MPT 0x000f |
| #define | HERMON_HCR_WRITE_MTT 0x0011 |
| #define | HERMON_HCR_MAP_EQ 0x0012 |
| #define | HERMON_HCR_SW2HW_EQ 0x0013 |
| #define | HERMON_HCR_HW2SW_EQ 0x0014 |
| #define | HERMON_HCR_QUERY_EQ 0x0015 |
| #define | HERMON_HCR_SW2HW_CQ 0x0016 |
| #define | HERMON_HCR_HW2SW_CQ 0x0017 |
| #define | HERMON_HCR_QUERY_CQ 0x0018 |
| #define | HERMON_HCR_RST2INIT_QP 0x0019 |
| #define | HERMON_HCR_INIT2RTR_QP 0x001a |
| #define | HERMON_HCR_RTR2RTS_QP 0x001b |
| #define | HERMON_HCR_RTS2RTS_QP 0x001c |
| #define | HERMON_HCR_2RST_QP 0x0021 |
| #define | HERMON_HCR_QUERY_QP 0x0022 |
| #define | HERMON_HCR_CONF_SPECIAL_QP 0x0023 |
| #define | HERMON_HCR_MAD_IFC 0x0024 |
| #define | HERMON_HCR_READ_MCG 0x0025 |
| #define | HERMON_HCR_WRITE_MCG 0x0026 |
| #define | HERMON_HCR_MGID_HASH 0x0027 |
| #define | HERMON_HCR_MOD_STAT_CFG 0x0034 |
| #define | HERMON_HCR_QUERY_PORT 0x0043 |
| #define | HERMON_HCR_SENSE_PORT 0x004d |
| #define | HERMON_HCR_RUN_FW 0x0ff6 |
| #define | HERMON_HCR_DISABLE_LAM 0x0ff7 |
| #define | HERMON_HCR_ENABLE_LAM 0x0ff8 |
| #define | HERMON_HCR_UNMAP_ICM 0x0ff9 |
| #define | HERMON_HCR_MAP_ICM 0x0ffa |
| #define | HERMON_HCR_UNMAP_ICM_AUX 0x0ffb |
| #define | HERMON_HCR_MAP_ICM_AUX 0x0ffc |
| #define | HERMON_HCR_SET_ICM_SIZE 0x0ffd |
| #define | HERMON_HCR_UNMAP_FA 0x0ffe |
| #define | HERMON_HCR_MAP_FA 0x0fff |
| #define | HERMON_ST_RC 0x00 |
| #define | HERMON_ST_UD 0x03 |
| #define | HERMON_ST_MLX 0x07 |
| #define | HERMON_PORT_TYPE_UNKNOWN 0 |
| #define | HERMON_PORT_TYPE_IB 1 |
| #define | HERMON_PORT_TYPE_ETH 2 |
| #define | HERMON_MTU_2048 0x04 |
| #define | HERMON_MTU_ETH 0x07 |
| #define | HERMON_INVALID_LKEY 0x00000100UL |
| #define | HERMON_PAGE_SIZE ( ( size_t ) 4096 ) |
| #define | HERMON_DB_POST_SND_OFFSET 0x14 |
| #define | HERMON_DB_EQ_OFFSET(_eqn) |
| #define | HERMON_QP_OPT_PARAM_PM_STATE 0x00000400UL |
| #define | HERMON_QP_OPT_PARAM_QKEY 0x00000020UL |
| #define | HERMON_QP_OPT_PARAM_ALT_PATH 0x00000001UL |
| #define | HERMON_MAP_EQ ( 0UL << 31 ) |
| #define | HERMON_UNMAP_EQ ( 1UL << 31 ) |
| #define | HERMON_SET_PORT_GENERAL_PARAM 0x0000 |
| #define | HERMON_SET_PORT_RECEIVE_QP 0x0100 |
| #define | HERMON_SET_PORT_MAC_TABLE 0x0200 |
| #define | HERMON_SET_PORT_VLAN_TABLE 0x0300 |
| #define | HERMON_SET_PORT_PRIORITY_TABLE 0x0400 |
| #define | HERMON_SET_PORT_GID_TABLE 0x0500 |
| #define | HERMON_EV_PORT_STATE_CHANGE 0x09 |
| #define | HERMON_EV_PORT_MGMNT_CHANGE 0x1d |
| #define | HERMON_SCHED_QP0 0x3f |
| #define | HERMON_SCHED_DEFAULT 0x83 |
| #define | HERMON_LOG_MULTICAST_HASH_SIZE 7 |
| #define | HERMON_PM_STATE_ARMED 0x00 |
| #define | HERMON_PM_STATE_REARM 0x01 |
| #define | HERMON_PM_STATE_MIGRATED 0x03 |
| #define | HERMON_RETRY_MAX 0x07 |
| #define | HERMON_MOD_STAT_CFG_SET 0x01 |
| #define | HERMON_MOD_STAT_CFG_QUERY 0x03 |
| #define | HERMON_VPD_FIELD(port) |
| #define | HERMON_MAX_GATHER 2 |
| #define | HERMON_MAX_SCATTER 2 |
| #define | HERMON_CMPT_MAX_ENTRIES ( 1 << 24 ) |
| Number of cMPT entries of each type. | |
| #define | HERMON_UAR_NON_EQ_PAGE 128 |
| UAR page for doorbell accesses. | |
| #define | HERMON_MAX_MTTS 64 |
| Maximum number of allocatable MTT entries. | |
| #define | HERMON_SEND_WQE_ALIGN 128 |
| Alignment of Hermon send work queue entries. | |
| #define | HERMON_RECV_WQE_ALIGN 16 |
| Alignment of Hermon receive work queue entries. | |
| #define | HERMON_NUM_SPECIAL_QPS 8 |
| Number of special queue pairs. | |
| #define | HERMON_RSVD_SPECIAL_QPS ( ( HERMON_NUM_SPECIAL_QPS << 1 ) - 1 ) |
| Number of queue pairs reserved for the "special QP" block. | |
| #define | HERMON_MAX_QPS 8 |
| Maximum number of allocatable queue pairs. | |
| #define | HERMON_QPN_RANDOM_MASK 0xfff000 |
| Queue pair number randomisation mask. | |
| #define | HERMON_MAX_CQS 8 |
| Maximum number of allocatable completion queues. | |
| #define | HERMON_MAX_EQS 8 |
| Maximum number of allocatable event queues. | |
| #define | HERMON_NUM_EQES 8 |
| Number of event queue entries. | |
| #define | HERMON_BITMASK_SIZE(max_entries) |
| Size of a hermon resource bitmask. | |
| #define | HERMON_GLOBAL_PD 0x123456 |
| Global protection domain. | |
| #define | HERMON_MKEY_PREFIX 0x77000000UL |
| Memory key prefix. | |
| #define | HERMON_LINK_POLL_INTERVAL ( TICKS_PER_SEC / 2 ) |
| Link poll interval. | |
| #define | HERMON_HCR_BASE 0x80680 |
| #define | HERMON_HCR_REG(x) |
| #define | HERMON_HCR_MAX_WAIT_MS 10000 |
| #define | HERMON_MBOX_ALIGN 4096 |
| #define | HERMON_MBOX_SIZE 1024 |
| #define | HERMON_HCR_IN_MBOX 0x00001000UL |
| #define | HERMON_HCR_OUT_MBOX 0x00002000UL |
| #define | HERMON_HCR_OPCODE(_command) |
| #define | HERMON_HCR_IN_LEN(_command) |
| #define | HERMON_HCR_OUT_LEN(_command) |
| #define | HERMON_HCR_INOUT_CMD(_opcode, _in_mbox, _in_len, _out_mbox, _out_len) |
| Build HCR command from component parts. | |
| #define | HERMON_HCR_IN_CMD(_opcode, _in_mbox, _in_len) |
| #define | HERMON_HCR_OUT_CMD(_opcode, _out_mbox, _out_len) |
| #define | HERMON_HCR_VOID_CMD(_opcode) |
Typedefs | |
| typedef uint32_t | hermon_bitmask_t |
| A Hermon resource bitmask. | |
Enumerations | |
| enum | hermon_icm_map_regions { HERMON_ICM_QP_CMPT = 0 , HERMON_ICM_SRQ_CMPT , HERMON_ICM_CQ_CMPT , HERMON_ICM_EQ_CMPT , HERMON_ICM_OTHER , HERMON_ICM_NUM_REGIONS } |
| Discontiguous regions within Hermon ICM. More... | |
| enum | hermon_queue_pair_state { HERMON_QP_ST_RST = 0 , HERMON_QP_ST_INIT , HERMON_QP_ST_RTR , HERMON_QP_ST_RTS } |
| Hermon queue pair state. More... | |
Functions | |
| FILE_LICENCE (GPL2_OR_LATER) | |
| struct | MLX_DECLARE_STRUCT (hermonprm_completion_queue_context) |
| struct | MLX_DECLARE_STRUCT (hermonprm_completion_queue_entry) |
| struct | MLX_DECLARE_STRUCT (hermonprm_completion_with_error) |
| struct | MLX_DECLARE_STRUCT (hermonprm_cq_db_record) |
| struct | MLX_DECLARE_STRUCT (hermonprm_eqc) |
| struct | MLX_DECLARE_STRUCT (hermonprm_event_db_register) |
| struct | MLX_DECLARE_STRUCT (hermonprm_event_mask) |
| struct | MLX_DECLARE_STRUCT (hermonprm_event_queue_entry) |
| struct | MLX_DECLARE_STRUCT (hermonprm_hca_command_register) |
| struct | MLX_DECLARE_STRUCT (hermonprm_init_hca) |
| struct | MLX_DECLARE_STRUCT (hermonprm_mad_ifc) |
| struct | MLX_DECLARE_STRUCT (hermonprm_mcg_entry) |
| struct | MLX_DECLARE_STRUCT (hermonprm_mgm_hash) |
| struct | MLX_DECLARE_STRUCT (hermonprm_mod_stat_cfg) |
| struct | MLX_DECLARE_STRUCT (hermonprm_mod_stat_cfg_input_mod) |
| struct | MLX_DECLARE_STRUCT (hermonprm_mpt) |
| struct | MLX_DECLARE_STRUCT (hermonprm_mtt) |
| struct | MLX_DECLARE_STRUCT (hermonprm_port_state_change_event) |
| struct | MLX_DECLARE_STRUCT (hermonprm_port_mgmnt_change_event) |
| struct | MLX_DECLARE_STRUCT (hermonprm_qp_db_record) |
| struct | MLX_DECLARE_STRUCT (hermonprm_qp_ee_state_transitions) |
| struct | MLX_DECLARE_STRUCT (hermonprm_query_dev_cap) |
| struct | MLX_DECLARE_STRUCT (hermonprm_query_fw) |
| struct | MLX_DECLARE_STRUCT (hermonprm_query_port_cap) |
| struct | MLX_DECLARE_STRUCT (hermonprm_queue_pair_ee_context_entry) |
| struct | MLX_DECLARE_STRUCT (hermonprm_scalar_parameter) |
| struct | MLX_DECLARE_STRUCT (hermonprm_sense_port) |
| struct | MLX_DECLARE_STRUCT (hermonprm_send_db_register) |
| struct | MLX_DECLARE_STRUCT (hermonprm_set_port_ib) |
| struct | MLX_DECLARE_STRUCT (hermonprm_set_port_general_context) |
| struct | MLX_DECLARE_STRUCT (hermonprm_set_port_mac_table) |
| struct | MLX_DECLARE_STRUCT (hermonprm_set_port_rqp_calc) |
| struct | MLX_DECLARE_STRUCT (hermonprm_set_port_vlan) |
| struct | MLX_DECLARE_STRUCT (hermonprm_ud_address_vector) |
| struct | MLX_DECLARE_STRUCT (hermonprm_virtual_physical_mapping) |
| struct | MLX_DECLARE_STRUCT (hermonprm_wqe_segment_ctrl_mlx) |
| struct | MLX_DECLARE_STRUCT (hermonprm_wqe_segment_ctrl_send) |
| struct | MLX_DECLARE_STRUCT (hermonprm_wqe_segment_data_ptr) |
| struct | MLX_DECLARE_STRUCT (hermonprm_wqe_segment_ud) |
Mellanox Hermon Infiniband HCA driver.
Definition in file hermon.h.
| #define HERMON_MAX_PORTS 2 |
Definition at line 26 of file hermon.h.
Referenced by hermon_get_cap().
| #define HERMON_PORT_BASE 1 |
Definition at line 27 of file hermon.h.
Referenced by hermon_alloc_qpn(), and hermon_probe().
| #define HERMON_PCI_CONFIG_BAR PCI_BASE_ADDRESS_0 |
Definition at line 30 of file hermon.h.
Referenced by hermon_bofm_probe(), and hermon_probe().
| #define HERMON_PCI_CONFIG_BAR_SIZE 0x100000 |
Definition at line 31 of file hermon.h.
Referenced by hermon_bofm_probe(), and hermon_probe().
| #define HERMON_PCI_UAR_BAR PCI_BASE_ADDRESS_2 |
Definition at line 32 of file hermon.h.
Referenced by hermon_probe().
| #define HERMON_RESET_OFFSET 0x0f0010 |
Definition at line 35 of file hermon.h.
Referenced by hermon_reset().
| #define HERMON_RESET_MAGIC 0x01000001UL |
Definition at line 36 of file hermon.h.
Referenced by hermon_reset().
| #define HERMON_RESET_MAX_WAIT_MS 1000 |
Definition at line 37 of file hermon.h.
Referenced by hermon_reset().
| #define HERMON_OPCODE_NOP 0x00 |
Definition at line 40 of file hermon.h.
Referenced by hermon_fill_nop_send_wqe().
| #define HERMON_OPCODE_SEND 0x0a |
Definition at line 41 of file hermon.h.
Referenced by hermon_fill_eth_send_wqe(), hermon_fill_mlx_send_wqe(), hermon_fill_rc_send_wqe(), and hermon_fill_ud_send_wqe().
| #define HERMON_OPCODE_RECV_ERROR 0xfe |
Definition at line 42 of file hermon.h.
Referenced by hermon_complete().
| #define HERMON_OPCODE_SEND_ERROR 0xff |
Definition at line 43 of file hermon.h.
Referenced by hermon_complete().
| #define HERMON_HCR_QUERY_DEV_CAP 0x0003 |
Definition at line 46 of file hermon.h.
Referenced by hermon_cmd_query_dev_cap().
| #define HERMON_HCR_QUERY_FW 0x0004 |
Definition at line 47 of file hermon.h.
Referenced by hermon_cmd_query_fw().
| #define HERMON_HCR_INIT_HCA 0x0007 |
Definition at line 48 of file hermon.h.
Referenced by hermon_cmd_init_hca().
| #define HERMON_HCR_CLOSE_HCA 0x0008 |
Definition at line 49 of file hermon.h.
Referenced by hermon_cmd_close_hca().
| #define HERMON_HCR_INIT_PORT 0x0009 |
Definition at line 50 of file hermon.h.
Referenced by hermon_cmd_init_port().
| #define HERMON_HCR_CLOSE_PORT 0x000a |
Definition at line 51 of file hermon.h.
Referenced by hermon_cmd_close_port().
| #define HERMON_HCR_SET_PORT 0x000c |
Definition at line 52 of file hermon.h.
Referenced by hermon_cmd_set_port().
| #define HERMON_HCR_SW2HW_MPT 0x000d |
Definition at line 53 of file hermon.h.
Referenced by hermon_cmd_sw2hw_mpt().
| #define HERMON_HCR_HW2SW_MPT 0x000f |
Definition at line 54 of file hermon.h.
Referenced by hermon_cmd_hw2sw_mpt().
| #define HERMON_HCR_WRITE_MTT 0x0011 |
Definition at line 55 of file hermon.h.
Referenced by hermon_cmd_write_mtt().
| #define HERMON_HCR_MAP_EQ 0x0012 |
Definition at line 56 of file hermon.h.
Referenced by hermon_cmd_map_eq().
| #define HERMON_HCR_SW2HW_EQ 0x0013 |
Definition at line 57 of file hermon.h.
Referenced by hermon_cmd_sw2hw_eq().
| #define HERMON_HCR_HW2SW_EQ 0x0014 |
Definition at line 58 of file hermon.h.
Referenced by hermon_cmd_hw2sw_eq().
| #define HERMON_HCR_QUERY_EQ 0x0015 |
Definition at line 59 of file hermon.h.
Referenced by hermon_cmd_query_eq().
| #define HERMON_HCR_SW2HW_CQ 0x0016 |
Definition at line 60 of file hermon.h.
Referenced by hermon_cmd_sw2hw_cq().
| #define HERMON_HCR_HW2SW_CQ 0x0017 |
Definition at line 61 of file hermon.h.
Referenced by hermon_cmd_hw2sw_cq().
| #define HERMON_HCR_QUERY_CQ 0x0018 |
Definition at line 62 of file hermon.h.
Referenced by hermon_cmd_query_cq().
| #define HERMON_HCR_RST2INIT_QP 0x0019 |
Definition at line 63 of file hermon.h.
Referenced by hermon_cmd_rst2init_qp().
| #define HERMON_HCR_INIT2RTR_QP 0x001a |
Definition at line 64 of file hermon.h.
Referenced by hermon_cmd_init2rtr_qp().
| #define HERMON_HCR_RTR2RTS_QP 0x001b |
Definition at line 65 of file hermon.h.
Referenced by hermon_cmd_rtr2rts_qp().
| #define HERMON_HCR_RTS2RTS_QP 0x001c |
Definition at line 66 of file hermon.h.
Referenced by hermon_cmd_rts2rts_qp().
| #define HERMON_HCR_2RST_QP 0x0021 |
Definition at line 67 of file hermon.h.
Referenced by hermon_cmd_2rst_qp().
| #define HERMON_HCR_QUERY_QP 0x0022 |
Definition at line 68 of file hermon.h.
Referenced by hermon_cmd_query_qp().
| #define HERMON_HCR_CONF_SPECIAL_QP 0x0023 |
Definition at line 69 of file hermon.h.
Referenced by hermon_cmd_conf_special_qp().
| #define HERMON_HCR_MAD_IFC 0x0024 |
Definition at line 70 of file hermon.h.
Referenced by hermon_cmd_mad_ifc().
| #define HERMON_HCR_READ_MCG 0x0025 |
Definition at line 71 of file hermon.h.
Referenced by hermon_cmd_read_mcg().
| #define HERMON_HCR_WRITE_MCG 0x0026 |
Definition at line 72 of file hermon.h.
Referenced by hermon_cmd_write_mcg().
| #define HERMON_HCR_MGID_HASH 0x0027 |
Definition at line 73 of file hermon.h.
Referenced by hermon_cmd_mgid_hash().
| #define HERMON_HCR_MOD_STAT_CFG 0x0034 |
Definition at line 74 of file hermon.h.
Referenced by hermon_cmd_mod_stat_cfg().
| #define HERMON_HCR_QUERY_PORT 0x0043 |
Definition at line 75 of file hermon.h.
Referenced by hermon_cmd_query_port().
| #define HERMON_HCR_SENSE_PORT 0x004d |
Definition at line 76 of file hermon.h.
Referenced by hermon_cmd_sense_port().
| #define HERMON_HCR_RUN_FW 0x0ff6 |
Definition at line 77 of file hermon.h.
Referenced by hermon_cmd_run_fw().
| #define HERMON_HCR_UNMAP_ICM 0x0ff9 |
Definition at line 80 of file hermon.h.
Referenced by hermon_cmd_unmap_icm().
| #define HERMON_HCR_MAP_ICM 0x0ffa |
Definition at line 81 of file hermon.h.
Referenced by hermon_cmd_map_icm().
| #define HERMON_HCR_UNMAP_ICM_AUX 0x0ffb |
Definition at line 82 of file hermon.h.
Referenced by hermon_cmd_unmap_icm_aux().
| #define HERMON_HCR_MAP_ICM_AUX 0x0ffc |
Definition at line 83 of file hermon.h.
Referenced by hermon_cmd_map_icm_aux().
| #define HERMON_HCR_SET_ICM_SIZE 0x0ffd |
Definition at line 84 of file hermon.h.
Referenced by hermon_cmd_set_icm_size().
| #define HERMON_HCR_UNMAP_FA 0x0ffe |
Definition at line 85 of file hermon.h.
Referenced by hermon_cmd_unmap_fa().
| #define HERMON_HCR_MAP_FA 0x0fff |
Definition at line 86 of file hermon.h.
Referenced by hermon_cmd_map_fa().
| #define HERMON_PORT_TYPE_UNKNOWN 0 |
Definition at line 94 of file hermon.h.
Referenced by hermon_name_port_type(), and hermon_set_port_type().
| #define HERMON_PORT_TYPE_IB 1 |
Definition at line 95 of file hermon.h.
Referenced by hermon_name_port_type(), hermon_sense_port_type(), and hermon_set_port_type().
| #define HERMON_PORT_TYPE_ETH 2 |
Definition at line 96 of file hermon.h.
Referenced by hermon_name_port_type(), and hermon_set_port_type().
| #define HERMON_MTU_2048 0x04 |
Definition at line 99 of file hermon.h.
Referenced by hermon_modify_qp().
| #define HERMON_MTU_ETH 0x07 |
Definition at line 100 of file hermon.h.
Referenced by hermon_modify_qp().
| #define HERMON_INVALID_LKEY 0x00000100UL |
Definition at line 102 of file hermon.h.
Referenced by hermon_create_qp().
| #define HERMON_PAGE_SIZE ( ( size_t ) 4096 ) |
Definition at line 104 of file hermon.h.
Referenced by hermon_alloc_mtt(), hermon_create_qp(), hermon_map_icm(), hermon_map_vpm(), hermon_probe(), hermon_start_firmware(), and hermon_unmap_icm().
| #define HERMON_DB_POST_SND_OFFSET 0x14 |
Definition at line 106 of file hermon.h.
Referenced by hermon_create_qp().
| #define HERMON_DB_EQ_OFFSET | ( | _eqn | ) |
Definition at line 107 of file hermon.h.
Referenced by hermon_create_eq().
| #define HERMON_QP_OPT_PARAM_QKEY 0x00000020UL |
Definition at line 111 of file hermon.h.
Referenced by hermon_modify_qp().
| #define HERMON_MAP_EQ ( 0UL << 31 ) |
Definition at line 114 of file hermon.h.
Referenced by hermon_create_eq().
| #define HERMON_UNMAP_EQ ( 1UL << 31 ) |
Definition at line 115 of file hermon.h.
Referenced by hermon_destroy_eq().
| #define HERMON_SET_PORT_GENERAL_PARAM 0x0000 |
Definition at line 117 of file hermon.h.
Referenced by hermon_eth_open().
| #define HERMON_SET_PORT_RECEIVE_QP 0x0100 |
Definition at line 118 of file hermon.h.
Referenced by hermon_eth_open().
| #define HERMON_EV_PORT_STATE_CHANGE 0x09 |
Definition at line 124 of file hermon.h.
Referenced by hermon_poll_eq().
| #define HERMON_EV_PORT_MGMNT_CHANGE 0x1d |
Definition at line 125 of file hermon.h.
Referenced by hermon_poll_eq().
| #define HERMON_SCHED_QP0 0x3f |
Definition at line 127 of file hermon.h.
Referenced by hermon_sched_queue().
| #define HERMON_SCHED_DEFAULT 0x83 |
Definition at line 128 of file hermon.h.
Referenced by hermon_sched_queue().
| #define HERMON_LOG_MULTICAST_HASH_SIZE 7 |
Definition at line 130 of file hermon.h.
Referenced by hermon_map_icm().
| #define HERMON_PM_STATE_MIGRATED 0x03 |
Definition at line 134 of file hermon.h.
Referenced by hermon_create_qp().
| #define HERMON_RETRY_MAX 0x07 |
Definition at line 136 of file hermon.h.
Referenced by hermon_modify_qp().
| #define HERMON_MOD_STAT_CFG_SET 0x01 |
Definition at line 138 of file hermon.h.
Referenced by hermon_bofm_update().
| #define HERMON_MOD_STAT_CFG_QUERY 0x03 |
Definition at line 139 of file hermon.h.
Referenced by hermon_bofm_harvest().
| #define HERMON_VPD_FIELD | ( | port | ) |
Definition at line 141 of file hermon.h.
Referenced by hermon_probe().
| #define HERMON_CMPT_MAX_ENTRIES ( 1 << 24 ) |
Number of cMPT entries of each type.
Definition at line 609 of file hermon.h.
Referenced by hermon_map_icm().
| #define HERMON_UAR_NON_EQ_PAGE 128 |
UAR page for doorbell accesses.
Pages 0-127 are reserved for event queue doorbells only, so we use page 128.
Definition at line 634 of file hermon.h.
Referenced by hermon_create_cq(), hermon_create_qp(), and hermon_probe().
| #define HERMON_MAX_MTTS 64 |
Maximum number of allocatable MTT entries.
This is a policy decision, not a device limit.
Definition at line 640 of file hermon.h.
Referenced by hermon_alloc_mtt(), and hermon_map_icm().
| #define HERMON_SEND_WQE_ALIGN 128 |
| #define HERMON_RECV_WQE_ALIGN 16 |
| #define HERMON_NUM_SPECIAL_QPS 8 |
Number of special queue pairs.
Definition at line 708 of file hermon.h.
Referenced by hermon_configure_special_qps().
| #define HERMON_RSVD_SPECIAL_QPS ( ( HERMON_NUM_SPECIAL_QPS << 1 ) - 1 ) |
Number of queue pairs reserved for the "special QP" block.
The special QPs must be within a contiguous block aligned on its own size.
Definition at line 715 of file hermon.h.
Referenced by hermon_map_icm().
| #define HERMON_MAX_QPS 8 |
Maximum number of allocatable queue pairs.
This is a policy decision, not a device limit.
Definition at line 721 of file hermon.h.
Referenced by hermon_alloc_qpn(), and hermon_map_icm().
| #define HERMON_QPN_RANDOM_MASK 0xfff000 |
Queue pair number randomisation mask.
Definition at line 724 of file hermon.h.
Referenced by hermon_alloc_qpn(), and hermon_free_qpn().
| #define HERMON_MAX_CQS 8 |
Maximum number of allocatable completion queues.
This is a policy decision, not a device limit.
Definition at line 754 of file hermon.h.
Referenced by hermon_create_cq(), and hermon_map_icm().
| #define HERMON_MAX_EQS 8 |
Maximum number of allocatable event queues.
This is a policy decision, not a device limit.
Definition at line 772 of file hermon.h.
Referenced by hermon_map_icm().
| #define HERMON_NUM_EQES 8 |
Number of event queue entries.
This is a policy decision.
Definition at line 794 of file hermon.h.
Referenced by hermon_create_eq(), hermon_dump_eqes(), and hermon_poll_eq().
| #define HERMON_BITMASK_SIZE | ( | max_entries | ) |
Size of a hermon resource bitmask.
Definition at line 800 of file hermon.h.
| #define HERMON_GLOBAL_PD 0x123456 |
Global protection domain.
Definition at line 939 of file hermon.h.
Referenced by hermon_create_qp(), hermon_fill_ud_send_wqe(), and hermon_setup_mpt().
| #define HERMON_MKEY_PREFIX 0x77000000UL |
| #define HERMON_LINK_POLL_INTERVAL ( TICKS_PER_SEC / 2 ) |
Link poll interval.
Used when we need to poll for link state (rather than relying upon receiving an event).
Definition at line 949 of file hermon.h.
Referenced by hermon_poll_eq().
| #define HERMON_HCR_BASE 0x80680 |
Definition at line 956 of file hermon.h.
Referenced by hermon_cmd().
| #define HERMON_HCR_REG | ( | x | ) |
Definition at line 957 of file hermon.h.
Referenced by hermon_cmd(), and hermon_cmd_wait().
| #define HERMON_HCR_MAX_WAIT_MS 10000 |
Definition at line 958 of file hermon.h.
Referenced by hermon_cmd_wait().
| #define HERMON_MBOX_ALIGN 4096 |
Definition at line 959 of file hermon.h.
Referenced by hermon_alloc().
| #define HERMON_MBOX_SIZE 1024 |
Definition at line 960 of file hermon.h.
Referenced by hermon_alloc(), hermon_cmd(), and hermon_free().
| #define HERMON_HCR_IN_MBOX 0x00001000UL |
Definition at line 973 of file hermon.h.
Referenced by hermon_cmd().
| #define HERMON_HCR_OUT_MBOX 0x00002000UL |
Definition at line 974 of file hermon.h.
Referenced by hermon_cmd().
| #define HERMON_HCR_OPCODE | ( | _command | ) |
| #define HERMON_HCR_IN_LEN | ( | _command | ) |
Definition at line 976 of file hermon.h.
Referenced by hermon_cmd().
| #define HERMON_HCR_OUT_LEN | ( | _command | ) |
Definition at line 977 of file hermon.h.
Referenced by hermon_cmd().
| #define HERMON_HCR_INOUT_CMD | ( | _opcode, | |
| _in_mbox, | |||
| _in_len, | |||
| _out_mbox, | |||
| _out_len ) |
Build HCR command from component parts.
Definition at line 980 of file hermon.h.
Referenced by hermon_cmd_mad_ifc(), hermon_cmd_mgid_hash(), hermon_cmd_mod_stat_cfg(), and hermon_cmd_set_icm_size().
| #define HERMON_HCR_IN_CMD | ( | _opcode, | |
| _in_mbox, | |||
| _in_len ) |
Definition at line 988 of file hermon.h.
Referenced by hermon_cmd_init2rtr_qp(), hermon_cmd_init_hca(), hermon_cmd_map_eq(), hermon_cmd_map_fa(), hermon_cmd_map_icm(), hermon_cmd_map_icm_aux(), hermon_cmd_rst2init_qp(), hermon_cmd_rtr2rts_qp(), hermon_cmd_rts2rts_qp(), hermon_cmd_set_port(), hermon_cmd_sw2hw_cq(), hermon_cmd_sw2hw_eq(), hermon_cmd_sw2hw_mpt(), hermon_cmd_unmap_icm(), hermon_cmd_write_mcg(), and hermon_cmd_write_mtt().
| #define HERMON_HCR_OUT_CMD | ( | _opcode, | |
| _out_mbox, | |||
| _out_len ) |
Definition at line 991 of file hermon.h.
Referenced by hermon_cmd_hw2sw_cq(), hermon_cmd_hw2sw_eq(), hermon_cmd_query_cq(), hermon_cmd_query_dev_cap(), hermon_cmd_query_eq(), hermon_cmd_query_fw(), hermon_cmd_query_port(), hermon_cmd_query_qp(), hermon_cmd_read_mcg(), and hermon_cmd_sense_port().
| #define HERMON_HCR_VOID_CMD | ( | _opcode | ) |
Definition at line 994 of file hermon.h.
Referenced by hermon_cmd_2rst_qp(), hermon_cmd_close_hca(), hermon_cmd_close_port(), hermon_cmd_conf_special_qp(), hermon_cmd_hw2sw_mpt(), hermon_cmd_init_port(), hermon_cmd_run_fw(), hermon_cmd_unmap_fa(), and hermon_cmd_unmap_icm_aux().
| typedef uint32_t hermon_bitmask_t |
Discontiguous regions within Hermon ICM.
| Enumerator | |
|---|---|
| HERMON_ICM_QP_CMPT | |
| HERMON_ICM_SRQ_CMPT | |
| HERMON_ICM_CQ_CMPT | |
| HERMON_ICM_EQ_CMPT | |
| HERMON_ICM_OTHER | |
| HERMON_ICM_NUM_REGIONS | |
Definition at line 620 of file hermon.h.
Hermon queue pair state.
| Enumerator | |
|---|---|
| HERMON_QP_ST_RST | |
| HERMON_QP_ST_INIT | |
| HERMON_QP_ST_RTR | |
| HERMON_QP_ST_RTS | |
Definition at line 727 of file hermon.h.
| FILE_LICENCE | ( | GPL2_OR_LATER | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_completion_queue_context | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_completion_queue_entry | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_completion_with_error | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_cq_db_record | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_eqc | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_event_db_register | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_event_mask | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_event_queue_entry | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_hca_command_register | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_init_hca | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_mad_ifc | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_mcg_entry | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_mgm_hash | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_mod_stat_cfg | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_mod_stat_cfg_input_mod | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_mpt | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_mtt | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_port_state_change_event | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_port_mgmnt_change_event | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_qp_db_record | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_qp_ee_state_transitions | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_query_dev_cap | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_query_fw | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_query_port_cap | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_queue_pair_ee_context_entry | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_scalar_parameter | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_sense_port | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_send_db_register | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_set_port_ib | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_set_port_general_context | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_set_port_mac_table | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_set_port_rqp_calc | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_set_port_vlan | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_ud_address_vector | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_virtual_physical_mapping | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_wqe_segment_ctrl_mlx | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_wqe_segment_ctrl_send | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_wqe_segment_data_ptr | ) |
| struct MLX_DECLARE_STRUCT | ( | hermonprm_wqe_segment_ud | ) |