|
iPXE
|
QLogic QIB7322 Infiniband HCA. More...
Go to the source code of this file.
Data Structures | |
| struct | QIB_7322_GPIO_pb |
| A QIB7322 GPIO register. More... | |
| struct | QIB_7322_GPIO |
| struct | QIB_7322_scalar_pb |
| A QIB7322 general scalar register. More... | |
| struct | QIB_7322_scalar |
| struct | QIB_7322_feature_mask_pb |
| QIB7322 feature mask. More... | |
| struct | QIB_7322_feature_mask |
| struct | QIB_7322_SendPbc_pb |
| QIB7322 send per-buffer control word. More... | |
| struct | QIB_7322_SendPbc |
| struct | QIB_7322_SendBufAvail_pb |
| QIB7322 send buffer availability. More... | |
| struct | QIB_7322_SendBufAvail |
| struct | QIB_7322_RcvCtrl_P_pb |
| QIB7322 port-specific receive control. More... | |
| struct | QIB_7322_RcvCtrl_P |
| struct | QIB_7322_RcvEgr_pb |
| A QIB7322 eager receive descriptor. More... | |
| struct | QIB_7322_RcvEgr |
| struct | QIB_7322_RcvHdrFlags_pb |
| QIB7322 receive header flags. More... | |
| struct | QIB_7322_RcvHdrFlags |
| struct | QIB_7322_IBSD_DDS_MAP_TABLE_pb |
| QIB7322 DDS tuning parameters. More... | |
| struct | QIB_7322_IBSD_DDS_MAP_TABLE |
Macros | |
| #define | PSEUDOBIT_LITTLE_ENDIAN |
| #define | QIB7322_SENDBUFAVAIL_ALIGN 64 |
| DMA alignment for send buffer availability. | |
| #define | QIB7322_BAR0_SIZE 0x400000 |
| QIB7322 memory BAR size. | |
| #define | QIB7322_PORT_BASE 1 |
| QIB7322 base port number. | |
| #define | QIB7322_MAX_PORTS 2 |
| QIB7322 maximum number of ports. | |
| #define | QIB7322_MAX_WIDTH 4 |
| QIB7322 maximum width. | |
| #define | QIB7322_GPIO_SCL 0 |
| QIB7322 I2C SCL line GPIO number. | |
| #define | QIB7322_GPIO_SDA 1 |
| QIB7322 I2C SDA line GPIO number. | |
| #define | QIB7322_EEPROM_GUID_OFFSET 3 |
| GUID offset within EEPROM. | |
| #define | QIB7322_EEPROM_GUID_SIZE 8 |
| GUID size within EEPROM. | |
| #define | QIB7322_EEPROM_SERIAL_OFFSET 12 |
| Board serial number offset within EEPROM. | |
| #define | QIB7322_EEPROM_SERIAL_SIZE 12 |
| Board serial number size within EEPROM. | |
| #define | QIB7322_SMALL_SEND_BUF_SIZE 4096 |
| QIB7322 small send buffer size. | |
| #define | QIB7322_SMALL_SEND_BUF_START 0 |
| QIB7322 small send buffer starting index. | |
| #define | QIB7322_SMALL_SEND_BUF_COUNT 128 |
| QIB7322 small send buffer count. | |
| #define | QIB7322_LARGE_SEND_BUF_SIZE 8192 |
| QIB7322 large send buffer size. | |
| #define | QIB7322_LARGE_SEND_BUF_START 128 |
| QIB7322 large send buffer starting index. | |
| #define | QIB7322_LARGE_SEND_BUF_COUNT 32 |
| QIB7322 large send buffer count. | |
| #define | QIB7322_VL15_PORT0_SEND_BUF_START 160 |
| QIB7322 VL15 port 0 send buffer starting index. | |
| #define | QIB7322_VL15_PORT0_SEND_BUF_COUNT 1 |
| QIB7322 VL15 port 0 send buffer count. | |
| #define | QIB7322_VL15_PORT0_SEND_BUF_SIZE 8192 |
| QIB7322 VL15 port 0 send buffer size. | |
| #define | QIB7322_VL15_PORT1_SEND_BUF_START 161 |
| QIB7322 VL15 port 0 send buffer starting index. | |
| #define | QIB7322_VL15_PORT1_SEND_BUF_COUNT 1 |
| QIB7322 VL15 port 0 send buffer count. | |
| #define | QIB7322_VL15_PORT1_SEND_BUF_SIZE 8192 |
| QIB7322 VL15 port 0 send buffer size. | |
| #define | QIB7322_SMALL_SEND_BUF_USED 32 |
| Number of small send buffers used. | |
| #define | QIB7322_NUM_CONTEXTS 6 |
| Number of contexts (including kernel context) | |
| #define | QIB7322_EAGER_ARRAY_SIZE_6CTX_KERNEL 1024 |
| ContextCfg values for different numbers of contexts. | |
| #define | QIB7322_EAGER_ARRAY_SIZE_6CTX_USER 4096 |
| #define | QIB7322_EAGER_ARRAY_SIZE_10CTX_KERNEL 1024 |
| #define | QIB7322_EAGER_ARRAY_SIZE_10CTX_USER 2048 |
| #define | QIB7322_EAGER_ARRAY_SIZE_18CTX_KERNEL 1024 |
| #define | QIB7322_EAGER_ARRAY_SIZE_18CTX_USER 1024 |
| #define | QIB7322_EAGER_BUFFER_ALIGN 2048 |
| Eager buffer required alignment. | |
| #define | QIB7322_RECV_HEADER_COUNT 8 |
| Number of RX headers per context. | |
| #define | QIB7322_RECV_HEADER_SIZE 96 |
| Maximum size of each RX header. | |
| #define | QIB7322_RECV_HEADERS_SIZE ( QIB7322_RECV_HEADER_SIZE * QIB7322_RECV_HEADER_COUNT ) |
| Total size of an RX header ring. | |
| #define | QIB7322_RECV_HEADERS_ALIGN 64 |
| RX header alignment. | |
| #define | QIB7322_RECV_PAYLOAD_SIZE 2048 |
| RX payload size. | |
| #define | QIB7322_MAX_CREDITS ( ( 65536 / 64 ) / QIB7322_MAX_PORTS ) |
| Maximum number of credits per port. | |
| #define | QIB7322_MAX_CREDITS_VL15 9 |
| Number of credits to advertise for VL15. | |
| #define | QIB7322_MAX_CREDITS_VL0 ( QIB7322_MAX_CREDITS - QIB7322_MAX_CREDITS_VL15 ) |
| Number of credits to advertise for VL0. | |
| #define | QIB7322_QP_IDETH 0xdead0 |
| QPN used for Infinipath Packets. | |
| #define | QIB7322_AHB_MAX_WAIT_US 500 |
| Maximum time for wait for AHB, in us. | |
| #define | QIB7322_AHB_LOC_ADDRESS(_location) |
| QIB7322 AHB locations. | |
| #define | QIB7322_AHB_LOC_TARGET(_location) |
| #define | QIB7322_AHB_CHAN_0 0 |
| #define | QIB7322_AHB_CHAN_1 1 |
| #define | QIB7322_AHB_PLL 2 |
| #define | QIB7322_AHB_CHAN_2 3 |
| #define | QIB7322_AHB_CHAN_3 4 |
| #define | QIB7322_AHB_SUBSYS 5 |
| #define | QIB7322_AHB_CHAN(_channel) |
| #define | QIB7322_AHB_TARGET_0 2 |
| #define | QIB7322_AHB_TARGET_1 3 |
| #define | QIB7322_AHB_TARGET(_port) |
| #define | QIB7322_AHB_LOCATION(_port, _channel, _register) |
| #define | QIB7322_LINK_STATE_MAX_WAIT_US 20 |
| Maximum time to wait for link state changes, in us. | |
Enumerations | |
| enum | qib7322_board_id { QIB7322_BOARD_QLE7342_EMULATION = 0 , QIB7322_BOARD_QLE7340 = 1 , QIB7322_BOARD_QLE7342 = 2 , QIB7322_BOARD_QMI7342 = 3 , QIB7322_BOARD_QMH7342_UNSUPPORTED = 4 , QIB7322_BOARD_QME7342 = 5 , QIB7322_BOARD_QMH7342 = 6 , QIB7322_BOARD_QLE7342_TEST = 15 } |
| QIB7322 board identifiers. More... | |
| enum | qib7322_contextcfg { QIB7322_CONTEXTCFG_6CTX = 0 , QIB7322_CONTEXTCFG_10CTX = 1 , QIB7322_CONTEXTCFG_18CTX = 2 } |
| ContextCfg values for different numbers of contexts. More... | |
| enum | qib7322_eager_buffer_size { QIB7322_EAGER_BUFFER_NONE = 0 , QIB7322_EAGER_BUFFER_2K = 1 , QIB7322_EAGER_BUFFER_4K = 2 , QIB7322_EAGER_BUFFER_8K = 3 , QIB7322_EAGER_BUFFER_16K = 4 , QIB7322_EAGER_BUFFER_32K = 5 , QIB7322_EAGER_BUFFER_64K = 6 } |
| Eager buffer size encodings. More... | |
| enum | qib7322_link_state { QIB7322_LINK_STATE_DOWN = 0 , QIB7322_LINK_STATE_INIT = 1 , QIB7322_LINK_STATE_ARM = 2 , QIB7322_LINK_STATE_ACTIVE = 3 , QIB7322_LINK_STATE_ACT_DEFER = 4 } |
| QIB7322 link states. More... | |
Functions | |
| FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
QLogic QIB7322 Infiniband HCA.
Definition in file qib7322.h.
| #define QIB7322_SENDBUFAVAIL_ALIGN 64 |
DMA alignment for send buffer availability.
Definition at line 97 of file qib7322.h.
Referenced by qib7322_init_send().
| #define QIB7322_BAR0_SIZE 0x400000 |
| #define QIB7322_PORT_BASE 1 |
QIB7322 base port number.
Definition at line 166 of file qib7322.h.
Referenced by qib7322_alloc_ctx(), qib7322_close(), qib7322_create_recv_wq(), qib7322_create_send_wq(), qib7322_ctx(), qib7322_destroy_recv_wq(), qib7322_free_ctx(), qib7322_link_state_changed(), qib7322_link_state_check(), qib7322_open(), qib7322_poll_eq(), qib7322_post_send(), qib7322_probe(), and qib7322_set_port_info().
| #define QIB7322_MAX_PORTS 2 |
QIB7322 maximum number of ports.
Definition at line 169 of file qib7322.h.
Referenced by qib7322_ahb_mod_reg_all(), qib7322_init_recv(), qib7322_probe(), and qib7322_remove().
| #define QIB7322_MAX_WIDTH 4 |
QIB7322 maximum width.
Definition at line 172 of file qib7322.h.
Referenced by qib7322_ahb_mod_reg_all().
| #define QIB7322_GPIO_SCL 0 |
| #define QIB7322_GPIO_SDA 1 |
| #define QIB7322_EEPROM_GUID_OFFSET 3 |
GUID offset within EEPROM.
Definition at line 193 of file qib7322.h.
Referenced by qib7322_read_eeprom().
| #define QIB7322_EEPROM_GUID_SIZE 8 |
| #define QIB7322_EEPROM_SERIAL_OFFSET 12 |
Board serial number offset within EEPROM.
Definition at line 199 of file qib7322.h.
Referenced by qib7322_read_eeprom().
| #define QIB7322_EEPROM_SERIAL_SIZE 12 |
Board serial number size within EEPROM.
Definition at line 202 of file qib7322.h.
Referenced by qib7322_read_eeprom().
| #define QIB7322_SMALL_SEND_BUF_SIZE 4096 |
QIB7322 small send buffer size.
Definition at line 205 of file qib7322.h.
Referenced by qib7322_init_send().
| #define QIB7322_SMALL_SEND_BUF_START 0 |
QIB7322 small send buffer starting index.
Definition at line 208 of file qib7322.h.
Referenced by qib7322_init_send().
| #define QIB7322_SMALL_SEND_BUF_COUNT 128 |
| #define QIB7322_LARGE_SEND_BUF_SIZE 8192 |
QIB7322 large send buffer size.
Definition at line 214 of file qib7322.h.
Referenced by qib7322_init_send().
| #define QIB7322_LARGE_SEND_BUF_START 128 |
| #define QIB7322_LARGE_SEND_BUF_COUNT 32 |
QIB7322 large send buffer count.
Definition at line 220 of file qib7322.h.
Referenced by qib7322_init_send().
| #define QIB7322_VL15_PORT0_SEND_BUF_START 160 |
QIB7322 VL15 port 0 send buffer starting index.
Definition at line 223 of file qib7322.h.
Referenced by qib7322_init_send().
| #define QIB7322_VL15_PORT0_SEND_BUF_COUNT 1 |
QIB7322 VL15 port 0 send buffer count.
Definition at line 226 of file qib7322.h.
Referenced by qib7322_init_send().
| #define QIB7322_VL15_PORT0_SEND_BUF_SIZE 8192 |
QIB7322 VL15 port 0 send buffer size.
Definition at line 229 of file qib7322.h.
Referenced by qib7322_init_send().
| #define QIB7322_VL15_PORT1_SEND_BUF_START 161 |
QIB7322 VL15 port 0 send buffer starting index.
Definition at line 232 of file qib7322.h.
Referenced by qib7322_init_send().
| #define QIB7322_VL15_PORT1_SEND_BUF_COUNT 1 |
QIB7322 VL15 port 0 send buffer count.
Definition at line 235 of file qib7322.h.
Referenced by qib7322_init_send().
| #define QIB7322_VL15_PORT1_SEND_BUF_SIZE 8192 |
QIB7322 VL15 port 0 send buffer size.
Definition at line 238 of file qib7322.h.
Referenced by qib7322_init_send().
| #define QIB7322_SMALL_SEND_BUF_USED 32 |
Number of small send buffers used.
This is a policy decision. Must be less than or equal to the total number of small send buffers supported by the hardware (QIB7322_SMALL_SEND_BUF_COUNT).
Definition at line 246 of file qib7322.h.
Referenced by qib7322_init_send().
| #define QIB7322_NUM_CONTEXTS 6 |
Number of contexts (including kernel context)
This is a policy decision. Must be 6, 10 or 18.
Definition at line 252 of file qib7322.h.
Referenced by qib7322_alloc_ctx(), and qib7322_init_recv().
| #define QIB7322_EAGER_ARRAY_SIZE_6CTX_KERNEL 1024 |
ContextCfg values for different numbers of contexts.
Definition at line 262 of file qib7322.h.
Referenced by qib7322_init_recv().
| #define QIB7322_EAGER_ARRAY_SIZE_6CTX_USER 4096 |
Definition at line 263 of file qib7322.h.
Referenced by qib7322_init_recv().
| #define QIB7322_EAGER_ARRAY_SIZE_10CTX_KERNEL 1024 |
Definition at line 264 of file qib7322.h.
Referenced by qib7322_init_recv().
| #define QIB7322_EAGER_ARRAY_SIZE_10CTX_USER 2048 |
Definition at line 265 of file qib7322.h.
Referenced by qib7322_init_recv().
| #define QIB7322_EAGER_ARRAY_SIZE_18CTX_KERNEL 1024 |
Definition at line 266 of file qib7322.h.
Referenced by qib7322_init_recv().
| #define QIB7322_EAGER_ARRAY_SIZE_18CTX_USER 1024 |
Definition at line 267 of file qib7322.h.
Referenced by qib7322_init_recv().
| #define QIB7322_EAGER_BUFFER_ALIGN 2048 |
Eager buffer required alignment.
Definition at line 270 of file qib7322.h.
Referenced by qib7322_post_recv().
| #define QIB7322_RECV_HEADER_COUNT 8 |
Number of RX headers per context.
This is a policy decision.
Definition at line 287 of file qib7322.h.
Referenced by qib7322_init_recv().
| #define QIB7322_RECV_HEADER_SIZE 96 |
Maximum size of each RX header.
This is a policy decision. Must be divisible by 4.
Definition at line 293 of file qib7322.h.
Referenced by qib7322_complete_recv(), qib7322_init_ib_serdes(), qib7322_init_recv(), and qib7322_poll_recv_wq().
| #define QIB7322_RECV_HEADERS_SIZE ( QIB7322_RECV_HEADER_SIZE * QIB7322_RECV_HEADER_COUNT ) |
Total size of an RX header ring.
Definition at line 296 of file qib7322.h.
Referenced by qib7322_create_recv_wq(), qib7322_destroy_recv_wq(), and qib7322_poll_recv_wq().
| #define QIB7322_RECV_HEADERS_ALIGN 64 |
RX header alignment.
Definition at line 300 of file qib7322.h.
Referenced by qib7322_create_recv_wq().
| #define QIB7322_RECV_PAYLOAD_SIZE 2048 |
RX payload size.
This is a policy decision. Must be a valid eager buffer size.
Definition at line 306 of file qib7322.h.
Referenced by qib7322_init_ib_serdes(), and qib7322_post_recv().
| #define QIB7322_MAX_CREDITS ( ( 65536 / 64 ) / QIB7322_MAX_PORTS ) |
| #define QIB7322_MAX_CREDITS_VL15 9 |
Number of credits to advertise for VL15.
This is a policy decision. Using 9 credits allows for 9*64=576 bytes, which is enough for two MADs.
Definition at line 320 of file qib7322.h.
Referenced by qib7322_init_recv().
| #define QIB7322_MAX_CREDITS_VL0 ( QIB7322_MAX_CREDITS - QIB7322_MAX_CREDITS_VL15 ) |
Number of credits to advertise for VL0.
This is a policy decision.
Definition at line 326 of file qib7322.h.
Referenced by qib7322_init_recv().
| #define QIB7322_QP_IDETH 0xdead0 |
QPN used for Infinipath Packets.
This is a policy decision. Must have bit 0 clear. Must not be a QPN that we will use.
Definition at line 334 of file qib7322.h.
Referenced by qib7322_init_recv().
| #define QIB7322_AHB_MAX_WAIT_US 500 |
Maximum time for wait for AHB, in us.
Definition at line 337 of file qib7322.h.
Referenced by qib7322_ahb_wait().
| #define QIB7322_AHB_LOC_ADDRESS | ( | _location | ) |
QIB7322 AHB locations.
Definition at line 340 of file qib7322.h.
Referenced by qib7322_ahb_read(), and qib7322_ahb_write().
| #define QIB7322_AHB_LOC_TARGET | ( | _location | ) |
Definition at line 341 of file qib7322.h.
Referenced by qib7322_ahb_request().
| #define QIB7322_AHB_CHAN | ( | _channel | ) |
| #define QIB7322_AHB_LOCATION | ( | _port, | |
| _channel, | |||
| _register ) |
Definition at line 352 of file qib7322.h.
Referenced by qib7322_ahb_mod_reg_all().
| #define QIB7322_LINK_STATE_MAX_WAIT_US 20 |
Maximum time to wait for link state changes, in us.
Definition at line 367 of file qib7322.h.
Referenced by qib7322_link_state_check().
| enum qib7322_board_id |
QIB7322 board identifiers.
Definition at line 175 of file qib7322.h.
| enum qib7322_contextcfg |
ContextCfg values for different numbers of contexts.
| Enumerator | |
|---|---|
| QIB7322_CONTEXTCFG_6CTX | |
| QIB7322_CONTEXTCFG_10CTX | |
| QIB7322_CONTEXTCFG_18CTX | |
Definition at line 255 of file qib7322.h.
Eager buffer size encodings.
| Enumerator | |
|---|---|
| QIB7322_EAGER_BUFFER_NONE | |
| QIB7322_EAGER_BUFFER_2K | |
| QIB7322_EAGER_BUFFER_4K | |
| QIB7322_EAGER_BUFFER_8K | |
| QIB7322_EAGER_BUFFER_16K | |
| QIB7322_EAGER_BUFFER_32K | |
| QIB7322_EAGER_BUFFER_64K | |
Definition at line 273 of file qib7322.h.
| enum qib7322_link_state |
QIB7322 link states.
| Enumerator | |
|---|---|
| QIB7322_LINK_STATE_DOWN | |
| QIB7322_LINK_STATE_INIT | |
| QIB7322_LINK_STATE_ARM | |
| QIB7322_LINK_STATE_ACTIVE | |
| QIB7322_LINK_STATE_ACT_DEFER | |
Definition at line 358 of file qib7322.h.
| FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |