arbel.h File Reference

Mellanox Arbel Infiniband HCA driver. More...

#include <stdint.h>
#include <gpxe/uaccess.h>
#include "mlx_bitops.h"
#include "MT25218_PRM.h"

Go to the source code of this file.

Data Structures

struct  arbelprm_mgm_hash_st
struct  arbelprm_scalar_parameter_st
struct  arbelprm_event_mask_st
struct  arbelprm_eq_set_ci_st
struct  arbelprm_port_state_change_event_st
struct  arbelprm_ud_send_wqe
struct  arbelprm_recv_wqe
union  arbelprm_completion_entry
union  arbelprm_event_entry
union  arbelprm_doorbell_record
union  arbelprm_doorbell_register
union  arbelprm_eq_doorbell_register
union  arbelprm_mad
struct  arbel_dev_limits
 Arbel device limits. More...
union  arbel_send_wqe
 An Arbel send work queue entry. More...
struct  arbel_send_work_queue
 An Arbel send work queue. More...
union  arbel_recv_wqe
 An Arbel receive work queue entry. More...
struct  arbel_recv_work_queue
 An Arbel receive work queue. More...
struct  arbel_queue_pair
 An Arbel queue pair. More...
struct  arbel_completion_queue
 An Arbel completion queue. More...
struct  arbel_event_queue
 A Arbel event queue. More...
struct  arbel
 An Arbel device. More...

Defines

#define ARBEL_NUM_PORTS   2
#define ARBEL_PORT_BASE   1
#define ARBEL_PCI_CONFIG_BAR   PCI_BASE_ADDRESS_0
#define ARBEL_PCI_CONFIG_BAR_SIZE   0x100000
#define ARBEL_PCI_UAR_BAR   PCI_BASE_ADDRESS_2
#define ARBEL_PCI_UAR_IDX   1
#define ARBEL_PCI_UAR_SIZE   0x1000
#define ARBEL_UAR_RES_NONE   0x00
#define ARBEL_UAR_RES_CQ_CI   0x01
#define ARBEL_UAR_RES_CQ_ARM   0x02
#define ARBEL_UAR_RES_SQ   0x03
#define ARBEL_UAR_RES_RQ   0x04
#define ARBEL_UAR_RES_GROUP_SEP   0x07
#define ARBEL_OPCODE_SEND   0x0a
#define ARBEL_OPCODE_RECV_ERROR   0xfe
#define ARBEL_OPCODE_SEND_ERROR   0xff
#define ARBEL_HCR_QUERY_DEV_LIM   0x0003
#define ARBEL_HCR_QUERY_FW   0x0004
#define ARBEL_HCR_INIT_HCA   0x0007
#define ARBEL_HCR_CLOSE_HCA   0x0008
#define ARBEL_HCR_INIT_IB   0x0009
#define ARBEL_HCR_CLOSE_IB   0x000a
#define ARBEL_HCR_SW2HW_MPT   0x000d
#define ARBEL_HCR_MAP_EQ   0x0012
#define ARBEL_HCR_SW2HW_EQ   0x0013
#define ARBEL_HCR_HW2SW_EQ   0x0014
#define ARBEL_HCR_SW2HW_CQ   0x0016
#define ARBEL_HCR_HW2SW_CQ   0x0017
#define ARBEL_HCR_RST2INIT_QPEE   0x0019
#define ARBEL_HCR_INIT2RTR_QPEE   0x001a
#define ARBEL_HCR_RTR2RTS_QPEE   0x001b
#define ARBEL_HCR_RTS2RTS_QPEE   0x001c
#define ARBEL_HCR_2RST_QPEE   0x0021
#define ARBEL_HCR_MAD_IFC   0x0024
#define ARBEL_HCR_READ_MGM   0x0025
#define ARBEL_HCR_WRITE_MGM   0x0026
#define ARBEL_HCR_MGID_HASH   0x0027
#define ARBEL_HCR_RUN_FW   0x0ff6
#define ARBEL_HCR_DISABLE_LAM   0x0ff7
#define ARBEL_HCR_ENABLE_LAM   0x0ff8
#define ARBEL_HCR_UNMAP_ICM   0x0ff9
#define ARBEL_HCR_MAP_ICM   0x0ffa
#define ARBEL_HCR_UNMAP_ICM_AUX   0x0ffb
#define ARBEL_HCR_MAP_ICM_AUX   0x0ffc
#define ARBEL_HCR_SET_ICM_SIZE   0x0ffd
#define ARBEL_HCR_UNMAP_FA   0x0ffe
#define ARBEL_HCR_MAP_FA   0x0fff
#define ARBEL_ST_UD   0x03
#define ARBEL_MTU_2048   0x04
#define ARBEL_NO_EQ   64
#define ARBEL_INVALID_LKEY   0x00000100UL
#define ARBEL_PAGE_SIZE   4096
#define ARBEL_DB_POST_SND_OFFSET   0x10
#define ARBEL_DB_EQ_OFFSET(_eqn)   ( 0x08 * (_eqn) )
#define ARBEL_QPEE_OPT_PARAM_QKEY   0x00000020UL
#define ARBEL_MAP_EQ   ( 0UL << 31 )
#define ARBEL_UNMAP_EQ   ( 1UL << 31 )
#define ARBEL_EV_PORT_STATE_CHANGE   0x09
#define ARBEL_MAX_GATHER   1
#define ARBEL_MAX_SCATTER   1
#define ARBEL_SEND_WQE_ALIGN   128
 Alignment of Arbel send work queue entries.
#define ARBEL_RECV_WQE_ALIGN   64
 Alignment of Arbel receive work queue entries.
#define ARBEL_MAX_QPS   8
 Maximum number of allocatable queue pairs.
#define ARBEL_QPN_BASE   0x550000
 Base queue pair number.
#define ARBEL_MAX_CQS   8
 Maximum number of allocatable completion queues.
#define ARBEL_MAX_EQS   64
 Maximum number of allocatable event queues.
#define ARBEL_NUM_EQES   4
 Number of event queue entries.
#define ARBEL_BITMASK_SIZE(max_entries)
 Size of an Arbel resource bitmask.
#define ARBEL_GLOBAL_PD   0x123456
 Global protection domain.
#define ARBEL_MKEY_PREFIX   0x77000000UL
 Memory key prefix.
#define ARBEL_HCR_BASE   0x80680
#define ARBEL_HCR_REG(x)   ( ARBEL_HCR_BASE + 4 * (x) )
#define ARBEL_HCR_MAX_WAIT_MS   2000
#define ARBEL_MBOX_ALIGN   4096
#define ARBEL_MBOX_SIZE   512
#define ARBEL_HCR_IN_MBOX   0x00001000UL
#define ARBEL_HCR_OUT_MBOX   0x00002000UL
#define ARBEL_HCR_OPCODE(_command)   ( (_command) & 0xfff )
#define ARBEL_HCR_IN_LEN(_command)   ( ( (_command) >> 12 ) & 0x7fc )
#define ARBEL_HCR_OUT_LEN(_command)   ( ( (_command) >> 21 ) & 0x7fc )
#define ARBEL_HCR_INOUT_CMD(_opcode, _in_mbox, _in_len,_out_mbox, _out_len)
 Build HCR command from component parts.
#define ARBEL_HCR_IN_CMD(_opcode, _in_mbox, _in_len)   ARBEL_HCR_INOUT_CMD ( _opcode, _in_mbox, _in_len, 0, 0 )
#define ARBEL_HCR_OUT_CMD(_opcode, _out_mbox, _out_len)   ARBEL_HCR_INOUT_CMD ( _opcode, 0, 0, _out_mbox, _out_len )
#define ARBEL_HCR_VOID_CMD(_opcode)   ARBEL_HCR_INOUT_CMD ( _opcode, 0, 0, 0, 0 )
#define ARBEL_MAX_DOORBELL_RECORDS   512
#define ARBEL_GROUP_SEPARATOR_DOORBELL   ( ARBEL_MAX_CQS + ARBEL_MAX_QPS )

Typedefs

typedef uint32_t arbel_bitmask_t
 An Arbel resource bitmask.

Functions

 FILE_LICENCE (GPL2_OR_LATER)
struct MLX_DECLARE_STRUCT (arbelprm_access_lam)
struct MLX_DECLARE_STRUCT (arbelprm_completion_queue_context)
struct MLX_DECLARE_STRUCT (arbelprm_completion_queue_entry)
struct MLX_DECLARE_STRUCT (arbelprm_completion_with_error)
struct MLX_DECLARE_STRUCT (arbelprm_cq_arm_db_record)
struct MLX_DECLARE_STRUCT (arbelprm_cq_ci_db_record)
struct MLX_DECLARE_STRUCT (arbelprm_event_mask)
struct MLX_DECLARE_STRUCT (arbelprm_event_queue_entry)
struct MLX_DECLARE_STRUCT (arbelprm_eq_set_ci)
struct MLX_DECLARE_STRUCT (arbelprm_eqc)
struct MLX_DECLARE_STRUCT (arbelprm_hca_command_register)
struct MLX_DECLARE_STRUCT (arbelprm_init_hca)
struct MLX_DECLARE_STRUCT (arbelprm_init_ib)
struct MLX_DECLARE_STRUCT (arbelprm_mad_ifc)
struct MLX_DECLARE_STRUCT (arbelprm_mgm_entry)
struct MLX_DECLARE_STRUCT (arbelprm_mgm_hash)
struct MLX_DECLARE_STRUCT (arbelprm_mpt)
struct MLX_DECLARE_STRUCT (arbelprm_port_state_change_event)
struct MLX_DECLARE_STRUCT (arbelprm_qp_db_record)
struct MLX_DECLARE_STRUCT (arbelprm_qp_ee_state_transitions)
struct MLX_DECLARE_STRUCT (arbelprm_query_dev_lim)
struct MLX_DECLARE_STRUCT (arbelprm_query_fw)
struct MLX_DECLARE_STRUCT (arbelprm_queue_pair_ee_context_entry)
struct MLX_DECLARE_STRUCT (arbelprm_recv_wqe_segment_next)
struct MLX_DECLARE_STRUCT (arbelprm_scalar_parameter)
struct MLX_DECLARE_STRUCT (arbelprm_send_doorbell)
struct MLX_DECLARE_STRUCT (arbelprm_ud_address_vector)
struct MLX_DECLARE_STRUCT (arbelprm_virtual_physical_mapping)
struct MLX_DECLARE_STRUCT (arbelprm_wqe_segment_ctrl_send)
struct MLX_DECLARE_STRUCT (arbelprm_wqe_segment_data_ptr)
struct MLX_DECLARE_STRUCT (arbelprm_wqe_segment_next)
struct MLX_DECLARE_STRUCT (arbelprm_wqe_segment_ud)
static unsigned int arbel_cq_arm_doorbell_idx (unsigned int cqn_offset)
 Get arm completion queue doorbell index.
static unsigned int arbel_send_doorbell_idx (unsigned int qpn_offset)
 Get send work request doorbell index.
static unsigned int arbel_recv_doorbell_idx (unsigned int qpn_offset)
 Get receive work request doorbell index.
static unsigned int arbel_cq_ci_doorbell_idx (unsigned int cqn_offset)
 Get completion queue consumer counter doorbell index.

Variables

struct arbelprm_mgm_hash_st packed
 An Arbel send work queue entry.


Detailed Description

Mellanox Arbel Infiniband HCA driver.

Definition in file arbel.h.


Define Documentation

#define ARBEL_NUM_PORTS   2

Definition at line 23 of file arbel.h.

Referenced by arbel_event_port_state_change(), arbel_probe(), and arbel_remove().

#define ARBEL_PORT_BASE   1

Definition at line 24 of file arbel.h.

Referenced by arbel_probe().

#define ARBEL_PCI_CONFIG_BAR   PCI_BASE_ADDRESS_0

Definition at line 27 of file arbel.h.

Referenced by arbel_probe().

#define ARBEL_PCI_CONFIG_BAR_SIZE   0x100000

Definition at line 28 of file arbel.h.

Referenced by arbel_probe().

#define ARBEL_PCI_UAR_BAR   PCI_BASE_ADDRESS_2

Definition at line 29 of file arbel.h.

Referenced by arbel_probe().

#define ARBEL_PCI_UAR_IDX   1

Definition at line 30 of file arbel.h.

Referenced by arbel_probe().

#define ARBEL_PCI_UAR_SIZE   0x1000

Definition at line 31 of file arbel.h.

Referenced by arbel_probe().

#define ARBEL_UAR_RES_NONE   0x00

Definition at line 34 of file arbel.h.

Referenced by arbel_create_cq(), arbel_create_qp(), arbel_destroy_cq(), and arbel_destroy_qp().

#define ARBEL_UAR_RES_CQ_CI   0x01

Definition at line 35 of file arbel.h.

Referenced by arbel_create_cq().

#define ARBEL_UAR_RES_CQ_ARM   0x02

Definition at line 36 of file arbel.h.

Referenced by arbel_create_cq().

#define ARBEL_UAR_RES_SQ   0x03

Definition at line 37 of file arbel.h.

Referenced by arbel_create_qp().

#define ARBEL_UAR_RES_RQ   0x04

Definition at line 38 of file arbel.h.

Referenced by arbel_create_qp().

#define ARBEL_UAR_RES_GROUP_SEP   0x07

Definition at line 39 of file arbel.h.

Referenced by arbel_alloc_icm().

#define ARBEL_OPCODE_SEND   0x0a

Definition at line 42 of file arbel.h.

Referenced by arbel_post_send().

#define ARBEL_OPCODE_RECV_ERROR   0xfe

Definition at line 43 of file arbel.h.

Referenced by arbel_complete().

#define ARBEL_OPCODE_SEND_ERROR   0xff

Definition at line 44 of file arbel.h.

Referenced by arbel_complete().

#define ARBEL_HCR_QUERY_DEV_LIM   0x0003

Definition at line 47 of file arbel.h.

Referenced by arbel_cmd_query_dev_lim().

#define ARBEL_HCR_QUERY_FW   0x0004

Definition at line 48 of file arbel.h.

Referenced by arbel_cmd_query_fw().

#define ARBEL_HCR_INIT_HCA   0x0007

Definition at line 49 of file arbel.h.

Referenced by arbel_cmd_init_hca().

#define ARBEL_HCR_CLOSE_HCA   0x0008

Definition at line 50 of file arbel.h.

Referenced by arbel_cmd_close_hca().

#define ARBEL_HCR_INIT_IB   0x0009

Definition at line 51 of file arbel.h.

Referenced by arbel_cmd_init_ib().

#define ARBEL_HCR_CLOSE_IB   0x000a

Definition at line 52 of file arbel.h.

Referenced by arbel_cmd_close_ib().

#define ARBEL_HCR_SW2HW_MPT   0x000d

Definition at line 53 of file arbel.h.

Referenced by arbel_cmd_sw2hw_mpt().

#define ARBEL_HCR_MAP_EQ   0x0012

Definition at line 54 of file arbel.h.

Referenced by arbel_cmd_map_eq().

#define ARBEL_HCR_SW2HW_EQ   0x0013

Definition at line 55 of file arbel.h.

Referenced by arbel_cmd_sw2hw_eq().

#define ARBEL_HCR_HW2SW_EQ   0x0014

Definition at line 56 of file arbel.h.

Referenced by arbel_cmd_hw2sw_eq().

#define ARBEL_HCR_SW2HW_CQ   0x0016

Definition at line 57 of file arbel.h.

Referenced by arbel_cmd_sw2hw_cq().

#define ARBEL_HCR_HW2SW_CQ   0x0017

Definition at line 58 of file arbel.h.

Referenced by arbel_cmd_hw2sw_cq().

#define ARBEL_HCR_RST2INIT_QPEE   0x0019

Definition at line 59 of file arbel.h.

Referenced by arbel_cmd_rst2init_qpee().

#define ARBEL_HCR_INIT2RTR_QPEE   0x001a

Definition at line 60 of file arbel.h.

Referenced by arbel_cmd_init2rtr_qpee().

#define ARBEL_HCR_RTR2RTS_QPEE   0x001b

Definition at line 61 of file arbel.h.

Referenced by arbel_cmd_rtr2rts_qpee().

#define ARBEL_HCR_RTS2RTS_QPEE   0x001c

Definition at line 62 of file arbel.h.

Referenced by arbel_cmd_rts2rts_qp().

#define ARBEL_HCR_2RST_QPEE   0x0021

Definition at line 63 of file arbel.h.

Referenced by arbel_cmd_2rst_qpee().

#define ARBEL_HCR_MAD_IFC   0x0024

Definition at line 64 of file arbel.h.

Referenced by arbel_cmd_mad_ifc().

#define ARBEL_HCR_READ_MGM   0x0025

Definition at line 65 of file arbel.h.

Referenced by arbel_cmd_read_mgm().

#define ARBEL_HCR_WRITE_MGM   0x0026

Definition at line 66 of file arbel.h.

Referenced by arbel_cmd_write_mgm().

#define ARBEL_HCR_MGID_HASH   0x0027

Definition at line 67 of file arbel.h.

Referenced by arbel_cmd_mgid_hash().

#define ARBEL_HCR_RUN_FW   0x0ff6

Definition at line 68 of file arbel.h.

Referenced by arbel_cmd_run_fw().

#define ARBEL_HCR_DISABLE_LAM   0x0ff7

Definition at line 69 of file arbel.h.

Referenced by arbel_cmd_disable_lam().

#define ARBEL_HCR_ENABLE_LAM   0x0ff8

Definition at line 70 of file arbel.h.

Referenced by arbel_cmd_enable_lam().

#define ARBEL_HCR_UNMAP_ICM   0x0ff9

Definition at line 71 of file arbel.h.

Referenced by arbel_cmd_unmap_icm().

#define ARBEL_HCR_MAP_ICM   0x0ffa

Definition at line 72 of file arbel.h.

Referenced by arbel_cmd_map_icm().

#define ARBEL_HCR_UNMAP_ICM_AUX   0x0ffb

Definition at line 73 of file arbel.h.

Referenced by arbel_cmd_unmap_icm_aux().

#define ARBEL_HCR_MAP_ICM_AUX   0x0ffc

Definition at line 74 of file arbel.h.

Referenced by arbel_cmd_map_icm_aux().

#define ARBEL_HCR_SET_ICM_SIZE   0x0ffd

Definition at line 75 of file arbel.h.

Referenced by arbel_cmd_set_icm_size().

#define ARBEL_HCR_UNMAP_FA   0x0ffe

Definition at line 76 of file arbel.h.

Referenced by arbel_cmd_unmap_fa().

#define ARBEL_HCR_MAP_FA   0x0fff

Definition at line 77 of file arbel.h.

Referenced by arbel_cmd_map_fa().

#define ARBEL_ST_UD   0x03

Definition at line 80 of file arbel.h.

Referenced by arbel_create_qp().

#define ARBEL_MTU_2048   0x04

Definition at line 83 of file arbel.h.

Referenced by arbel_create_qp(), and arbel_open().

#define ARBEL_NO_EQ   64

Definition at line 85 of file arbel.h.

Referenced by arbel_create_cq().

#define ARBEL_INVALID_LKEY   0x00000100UL

Definition at line 87 of file arbel.h.

Referenced by arbel_complete(), and arbel_create_recv_wq().

#define ARBEL_PAGE_SIZE   4096

Definition at line 89 of file arbel.h.

Referenced by arbel_alloc_icm().

#define ARBEL_DB_POST_SND_OFFSET   0x10

Definition at line 91 of file arbel.h.

Referenced by arbel_post_send().

#define ARBEL_DB_EQ_OFFSET ( _eqn   )     ( 0x08 * (_eqn) )

Definition at line 92 of file arbel.h.

Referenced by arbel_create_eq().

#define ARBEL_QPEE_OPT_PARAM_QKEY   0x00000020UL

Definition at line 94 of file arbel.h.

Referenced by arbel_modify_qp().

#define ARBEL_MAP_EQ   ( 0UL << 31 )

Definition at line 96 of file arbel.h.

Referenced by arbel_create_eq().

#define ARBEL_UNMAP_EQ   ( 1UL << 31 )

Definition at line 97 of file arbel.h.

Referenced by arbel_destroy_eq().

#define ARBEL_EV_PORT_STATE_CHANGE   0x09

Definition at line 99 of file arbel.h.

Referenced by arbel_poll_eq().

#define ARBEL_MAX_GATHER   1

Definition at line 179 of file arbel.h.

#define ARBEL_MAX_SCATTER   1

Definition at line 188 of file arbel.h.

#define ARBEL_SEND_WQE_ALIGN   128

Alignment of Arbel send work queue entries.

Definition at line 280 of file arbel.h.

#define ARBEL_RECV_WQE_ALIGN   64

Alignment of Arbel receive work queue entries.

Definition at line 299 of file arbel.h.

#define ARBEL_MAX_QPS   8

Maximum number of allocatable queue pairs.

This is a policy decision, not a device limit.

Definition at line 321 of file arbel.h.

Referenced by arbel_alloc_icm(), and arbel_create_qp().

#define ARBEL_QPN_BASE   0x550000

Base queue pair number.

Definition at line 324 of file arbel.h.

Referenced by arbel_create_qp(), and arbel_destroy_qp().

#define ARBEL_MAX_CQS   8

Maximum number of allocatable completion queues.

This is a policy decision, not a device limit.

Definition at line 338 of file arbel.h.

Referenced by arbel_alloc_icm(), arbel_create_cq(), arbel_recv_doorbell_idx(), and arbel_send_doorbell_idx().

#define ARBEL_MAX_EQS   64

Maximum number of allocatable event queues.

This is a policy decision, not a device limit.

Definition at line 356 of file arbel.h.

Referenced by arbel_alloc_icm().

#define ARBEL_NUM_EQES   4

Number of event queue entries.

This is a policy decision.

Definition at line 376 of file arbel.h.

Referenced by arbel_create_eq(), and arbel_poll_eq().

#define ARBEL_BITMASK_SIZE ( max_entries   ) 

Value:

( ( (max_entries) + ( 8 * sizeof ( arbel_bitmask_t ) ) - 1 ) /       \
          ( 8 * sizeof ( arbel_bitmask_t ) ) )
Size of an Arbel resource bitmask.

Definition at line 383 of file arbel.h.

#define ARBEL_GLOBAL_PD   0x123456

Global protection domain.

Definition at line 433 of file arbel.h.

Referenced by arbel_create_cq(), arbel_create_eq(), arbel_create_qp(), arbel_post_send(), and arbel_setup_mpt().

#define ARBEL_MKEY_PREFIX   0x77000000UL

Memory key prefix.

Definition at line 436 of file arbel.h.

Referenced by arbel_setup_mpt().

#define ARBEL_HCR_BASE   0x80680

Definition at line 443 of file arbel.h.

#define ARBEL_HCR_REG (  )     ( ARBEL_HCR_BASE + 4 * (x) )

Definition at line 444 of file arbel.h.

Referenced by arbel_cmd(), and arbel_cmd_wait().

#define ARBEL_HCR_MAX_WAIT_MS   2000

Definition at line 445 of file arbel.h.

Referenced by arbel_cmd_wait().

#define ARBEL_MBOX_ALIGN   4096

Definition at line 446 of file arbel.h.

Referenced by arbel_probe().

#define ARBEL_MBOX_SIZE   512

Definition at line 447 of file arbel.h.

Referenced by arbel_cmd(), arbel_probe(), and arbel_remove().

#define ARBEL_HCR_IN_MBOX   0x00001000UL

Definition at line 460 of file arbel.h.

Referenced by arbel_cmd().

#define ARBEL_HCR_OUT_MBOX   0x00002000UL

Definition at line 461 of file arbel.h.

Referenced by arbel_cmd().

#define ARBEL_HCR_OPCODE ( _command   )     ( (_command) & 0xfff )

Definition at line 462 of file arbel.h.

Referenced by arbel_cmd().

#define ARBEL_HCR_IN_LEN ( _command   )     ( ( (_command) >> 12 ) & 0x7fc )

Definition at line 463 of file arbel.h.

Referenced by arbel_cmd().

#define ARBEL_HCR_OUT_LEN ( _command   )     ( ( (_command) >> 21 ) & 0x7fc )

Definition at line 464 of file arbel.h.

Referenced by arbel_cmd().

#define ARBEL_HCR_INOUT_CMD ( _opcode,
_in_mbox,
_in_len,
_out_mbox,
_out_len   ) 

Value:

( (_opcode) |                                                        \
          ( (_in_mbox) ? ARBEL_HCR_IN_MBOX : 0 ) |                           \
          ( ( (_in_len) / 4 ) << 14 ) |                                      \
          ( (_out_mbox) ? ARBEL_HCR_OUT_MBOX : 0 ) |                         \
          ( ( (_out_len) / 4 ) << 23 ) )
Build HCR command from component parts.

Definition at line 468 of file arbel.h.

Referenced by arbel_cmd_mad_ifc(), arbel_cmd_mgid_hash(), and arbel_cmd_set_icm_size().

#define ARBEL_HCR_IN_CMD ( _opcode,
_in_mbox,
_in_len   )     ARBEL_HCR_INOUT_CMD ( _opcode, _in_mbox, _in_len, 0, 0 )

#define ARBEL_HCR_OUT_CMD ( _opcode,
_out_mbox,
_out_len   )     ARBEL_HCR_INOUT_CMD ( _opcode, 0, 0, _out_mbox, _out_len )

#define ARBEL_HCR_VOID_CMD ( _opcode   )     ARBEL_HCR_INOUT_CMD ( _opcode, 0, 0, 0, 0 )

#define ARBEL_MAX_DOORBELL_RECORDS   512

Definition at line 497 of file arbel.h.

Referenced by arbel_cq_ci_doorbell_idx(), and arbel_recv_doorbell_idx().

#define ARBEL_GROUP_SEPARATOR_DOORBELL   ( ARBEL_MAX_CQS + ARBEL_MAX_QPS )

Definition at line 498 of file arbel.h.

Referenced by arbel_alloc_icm().


Typedef Documentation

An Arbel resource bitmask.

Definition at line 380 of file arbel.h.


Function Documentation

FILE_LICENCE ( GPL2_OR_LATER   ) 

struct MLX_DECLARE_STRUCT ( arbelprm_access_lam   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_completion_queue_context   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_completion_queue_entry   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_completion_with_error   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_cq_arm_db_record   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_cq_ci_db_record   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_event_mask   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_event_queue_entry   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_eq_set_ci   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_eqc   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_hca_command_register   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_init_hca   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_init_ib   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_mad_ifc   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_mgm_entry   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_mgm_hash   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_mpt   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_port_state_change_event   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_qp_db_record   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_qp_ee_state_transitions   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_query_dev_lim   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_query_fw   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_queue_pair_ee_context_entry   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_recv_wqe_segment_next   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_scalar_parameter   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_send_doorbell   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_ud_address_vector   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_virtual_physical_mapping   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_wqe_segment_ctrl_send   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_wqe_segment_data_ptr   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_wqe_segment_next   )  [read]

struct MLX_DECLARE_STRUCT ( arbelprm_wqe_segment_ud   )  [read]

static unsigned int arbel_cq_arm_doorbell_idx ( unsigned int  cqn_offset  )  [inline, static]

Get arm completion queue doorbell index.

Parameters:
cqn_offset Completion queue number offset
Return values:
doorbell_idx Doorbell index

Definition at line 507 of file arbel.h.

Referenced by arbel_create_cq().

00507                                                       {
00508         return cqn_offset;
00509 }

static unsigned int arbel_send_doorbell_idx ( unsigned int  qpn_offset  )  [inline, static]

Get send work request doorbell index.

Parameters:
qpn_offset Queue pair number offset
Return values:
doorbell_idx Doorbell index

Definition at line 518 of file arbel.h.

References ARBEL_MAX_CQS.

Referenced by arbel_create_qp().

00518                                                     {
00519         return ( ARBEL_MAX_CQS + qpn_offset );
00520 }

static unsigned int arbel_recv_doorbell_idx ( unsigned int  qpn_offset  )  [inline, static]

Get receive work request doorbell index.

Parameters:
qpn_offset Queue pair number offset
Return values:
doorbell_idx Doorbell index

Definition at line 529 of file arbel.h.

References ARBEL_MAX_CQS, and ARBEL_MAX_DOORBELL_RECORDS.

Referenced by arbel_create_qp().

00529                                                     {
00530         return ( ARBEL_MAX_DOORBELL_RECORDS - ARBEL_MAX_CQS - qpn_offset - 1 );
00531 }

static unsigned int arbel_cq_ci_doorbell_idx ( unsigned int  cqn_offset  )  [inline, static]

Get completion queue consumer counter doorbell index.

Parameters:
cqn_offset Completion queue number offset
Return values:
doorbell_idx Doorbell index

Definition at line 540 of file arbel.h.

References ARBEL_MAX_DOORBELL_RECORDS.

Referenced by arbel_create_cq().

00540                                                      {
00541         return ( ARBEL_MAX_DOORBELL_RECORDS - cqn_offset - 1 );
00542 }


Variable Documentation

An Arbel send work queue entry.

An Arbel receive work queue entry.


Generated on Tue Apr 6 20:01:16 2010 for gPXE by  doxygen 1.5.7.1