iPXE
|
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <ipxe/pci.h>
#include <ipxe/malloc.h>
#include <ipxe/umalloc.h>
#include <ipxe/if_ether.h>
#include <ipxe/ethernet.h>
#include <ipxe/vlan.h>
#include <ipxe/io.h>
#include "flexboot_nodnic.h"
#include "mlx_utils/include/public/mlx_types.h"
#include "mlx_utils/include/public/mlx_utils.h"
#include "mlx_utils/include/public/mlx_bail.h"
#include "mlx_nodnic/include/mlx_cmd.h"
#include "mlx_utils/include/public/mlx_memory.h"
#include "mlx_utils/include/public/mlx_pci.h"
#include "mlx_nodnic/include/mlx_device.h"
#include "mlx_nodnic/include/mlx_port.h"
#include <byteswap.h>
#include <usr/ifmgmt.h>
#include "mlx_utils/mlx_lib/mlx_nvconfig/mlx_nvconfig.h"
#include "mlx_utils/mlx_lib/mlx_nvconfig/mlx_nvconfig_defaults.h"
#include "mlx_utils/include/public/mlx_pci_gw.h"
#include "mlx_utils/mlx_lib/mlx_vmac/mlx_vmac.h"
#include "mlx_utils/mlx_lib/mlx_mtu/mlx_mtu.h"
Go to the source code of this file.
Macros | |
#define | ARM_CQ_UAR_CQ_CI_MASK 0xffffff |
#define | ARM_CQ_UAR_CMDSN_MASK 3 |
#define | ARM_CQ_UAR_CMDSN_OFFSET 28 |
#define | ARM_CQ_UAR_CQ_CI_OFFSET 0x20 |
#define | FLEX_NODNIC_TX_POLL_TOUT 500000 |
#define | FLEX_NODNIC_TX_POLL_USLEEP 10 |
#define | FLEXBOOT_NODNIC_ETH_NUM_SEND_WQES 64 |
Number of flexboot_nodnic Ethernet send work queue entries. More... | |
#define | FLEXBOOT_NODNIC_ETH_NUM_RECV_WQES 64 |
Number of flexboot_nodnic Ethernet receive work queue entries. More... | |
Variables | |
static struct ib_device_operations | flexboot_nodnic_ib_operations |
flexboot_nodnic Infiniband operations More... | |
static struct ib_queue_pair_operations | flexboot_nodnic_eth_qp_op |
flexboot nodnic Ethernet queue pair operations More... | |
static struct ib_completion_queue_operations | flexboot_nodnic_eth_cq_op |
flexboot_nodnic Ethernet device completion operations More... | |
static struct net_device_operations | flexboot_nodnic_eth_operations |
flexboot_nodnic Ethernet network device operations More... | |
static struct flexboot_nodnic_port_type | flexboot_nodnic_port_type_eth |
flexboot_nodnic Ethernet port type More... | |
#define ARM_CQ_UAR_CQ_CI_MASK 0xffffff |
#define ARM_CQ_UAR_CMDSN_MASK 3 |
#define ARM_CQ_UAR_CMDSN_OFFSET 28 |
#define ARM_CQ_UAR_CQ_CI_OFFSET 0x20 |
#define FLEX_NODNIC_TX_POLL_TOUT 500000 |
Definition at line 703 of file flexboot_nodnic.c.
#define FLEX_NODNIC_TX_POLL_USLEEP 10 |
Definition at line 704 of file flexboot_nodnic.c.
#define FLEXBOOT_NODNIC_ETH_NUM_SEND_WQES 64 |
Number of flexboot_nodnic Ethernet send work queue entries.
Definition at line 750 of file flexboot_nodnic.c.
#define FLEXBOOT_NODNIC_ETH_NUM_RECV_WQES 64 |
Number of flexboot_nodnic Ethernet receive work queue entries.
Definition at line 753 of file flexboot_nodnic.c.
FILE_LICENCE | ( | GPL2_OR_LATER | ) |
|
static |
Definition at line 55 of file flexboot_nodnic.c.
References ARM_CQ_UAR_CMDSN_MASK, ARM_CQ_UAR_CMDSN_OFFSET, ARM_CQ_UAR_CQ_CI_MASK, ARM_CQ_UAR_CQ_CI_OFFSET, cpu_to_be32, data, arm_cq_uar::dword, MLX_DEBUG_ERROR, MLX_FAILED, mlx_pci_mem_write(), MlxPciWidthUint32, nodnic_port_option_arm_cq, nodnic_port_set(), port, arm_cq_uar::qword, val, wmb(), and writeq().
Referenced by flexboot_nodnic_eth_irq().
|
static |
Create completion queue.
ibdev | Infiniband device |
cq | Completion queue |
rc | Return status code |
Definition at line 112 of file flexboot_nodnic.c.
References flexboot_nodnic::callbacks, _nodnic_cq::cq_virt, flexboot_nodnic_callbacks::cqe_set_owner, cqn, ib_completion_queue::cqn, _nodnic_device_priv::device_cap, flexboot_nodnic::device_priv, free, flexboot_nodnic_callbacks::get_cqe_size, ib_cq_set_drvdata(), ib_get_drvdata(), flexboot_nodnic_port::ibdev, MLX_FATAL_CHECK_STATUS, MLX_OUT_OF_RESOURCES, MLX_SUCCESS, flexboot_nodnic_completion_queue::nodnic_completion_queue, nodnic_port_create_cq(), nodnic_port_option_cq_n_index, nodnic_port_query(), NULL, ib_completion_queue::num_cqes, port, flexboot_nodnic::port, ib_device::port, status, _nodnic_device_capabilites::support_bar_cq_ctrl, and zalloc().
|
static |
Destroy completion queue.
ibdev | Infiniband device |
cq | Completion queue |
Definition at line 161 of file flexboot_nodnic.c.
References free, ib_cq_get_drvdata(), ib_get_drvdata(), flexboot_nodnic_port::ibdev, flexboot_nodnic_completion_queue::nodnic_completion_queue, nodnic_port_destroy_cq(), port, flexboot_nodnic::port, and ib_device::port.
|
static |
Definition at line 174 of file flexboot_nodnic.c.
References FALSE, ib_get_drvdata(), ib_qp_get_drvdata(), flexboot_nodnic_port::ibdev, ib_work_queue::is_send, list_for_each_entry, nodnic_port_get_qpn(), flexboot_nodnic_queue_pair::nodnic_queue_pair, nodnic_send_ring::nodnic_ring, nodnic_recv_ring::nodnic_ring, NULL, port, flexboot_nodnic::port, ib_device::port, ib_work_queue::qp, qpn, _nodnic_qp::receive, _nodnic_qp::send, TRUE, and ib_completion_queue::work_queues.
Referenced by flexboot_nodnic_complete().
|
static |
Handle completion.
ibdev | Infiniband device |
cq | Completion queue |
cqe | Hardware completion queue entry |
rc | Return status code |
Definition at line 207 of file flexboot_nodnic.c.
References assert(), cqe_data::byte_cnt, ib_completion_queue::cqn, DBGC, DBGCP, EINVAL, EIO, flexboot_nodnic_find_wq(), ib_complete_recv(), ib_complete_send(), ib_get_drvdata(), IB_QPT_ETH, IB_QPT_GSI, IB_QPT_RC, IB_QPT_SMI, IB_QPT_UD, iob_put, iob_tailroom(), ib_work_queue::iobufs, cqe_data::is_error, cqe_data::is_send, len, memset(), NULL, ib_work_queue::num_wqes, qp, ib_work_queue::qp, qpn, ib_address_vector::qpn, cqe_data::qpn, rc, cqe_data::syndrome, TRUE, cqe_data::vendor_err_syndrome, and cqe_data::wqe_counter.
Referenced by flexboot_nodnic_poll_cq().
|
static |
Poll completion queue.
ibdev | Infiniband device |
cq | Completion queues |
Definition at line 303 of file flexboot_nodnic.c.
References flexboot_nodnic::callbacks, _nodnic_cq::cq_virt, ib_completion_queue::cqn, DBGC, DBGC_HDA, flexboot_nodnic_callbacks::fill_completion, flexboot_nodnic_complete(), flexboot_nodnic_callbacks::get_cqe_size, ib_cq_get_drvdata(), ib_get_drvdata(), ib_completion_queue::next_idx, flexboot_nodnic_completion_queue::nodnic_completion_queue, ib_completion_queue::num_cqes, cqe_data::owner, rc, strerror(), TRUE, and virt_to_phys().
|
static |
Create queue pair.
ibdev | Infiniband device |
qp | Queue pair |
rc | Return status code |
Definition at line 355 of file flexboot_nodnic.c.
References free, ib_get_drvdata(), ib_qp_set_drvdata(), flexboot_nodnic_port::ibdev, MLX_FATAL_CHECK_STATUS, MLX_OUT_OF_RESOURCES, MLX_SUCCESS, nodnic_port_create_qp(), flexboot_nodnic_queue_pair::nodnic_queue_pair, NULL, port, flexboot_nodnic::port, ib_device::port, qp, status, and zalloc().
|
static |
Modify queue pair.
ibdev | Infiniband device |
qp | Queue pair |
rc | Return status code |
Definition at line 392 of file flexboot_nodnic.c.
|
static |
Destroy queue pair.
ibdev | Infiniband device |
qp | Queue pair |
Definition at line 404 of file flexboot_nodnic.c.
References free, ib_get_drvdata(), ib_qp_get_drvdata(), flexboot_nodnic_port::ibdev, nodnic_port_destroy_qp(), flexboot_nodnic_queue_pair::nodnic_queue_pair, port, flexboot_nodnic::port, ib_device::port, and qp.
|
static |
Post send work queue entry.
ibdev | Infiniband device |
qp | Queue pair |
av | Address vector |
iobuf | I/O buffer |
rc | Return status code |
Definition at line 433 of file flexboot_nodnic.c.
References assert(), flexboot_nodnic::callbacks, DBGC, ENETDOWN, ENOBUFS, FALSE, ib_get_drvdata(), ib_qp_get_drvdata(), flexboot_nodnic_port::ibdev, ib_work_queue::iobufs, MLX_SUCCESS, ib_work_queue::next_idx, NODNIC_PORT_DISABLING_DMA, flexboot_nodnic_queue_pair::nodnic_queue_pair, nodnic_send_ring::nodnic_ring, NULL, ib_work_queue::num_wqes, port, flexboot_nodnic::port, ib_device::port, qp, _nodnic_qp::send, status, flexboot_nodnic_callbacks::tx_uar_send_doorbell_fn, and nodnic_send_ring::wqe_virt.
|
static |
Post receive work queue entry.
ibdev | Infiniband device |
qp | Queue pair |
iobuf | I/O buffer |
rc | Return status code |
Definition at line 502 of file flexboot_nodnic.c.
References byte_count, nodnic_recv_wqe::data, io_buffer::data, DBGC, flexboot_nodnic::device_priv, ENOBUFS, ib_get_drvdata(), ib_qp_get_drvdata(), flexboot_nodnic_port::ibdev, iob_tailroom(), ib_work_queue::iobufs, _nodnic_device_priv::lkey, MLX_FILL_1, MLX_FILL_H, MLX_SUCCESS, ib_work_queue::next_idx, flexboot_nodnic_queue_pair::nodnic_queue_pair, nodnic_recv_ring::nodnic_ring, ib_work_queue::num_wqes, port, flexboot_nodnic::port, ib_device::port, qp, _nodnic_qp::receive, status, virt_to_bus(), and nodnic_recv_ring::wqe_virt.
|
static |
Definition at line 552 of file flexboot_nodnic.c.
References DBG, DBG2, ib_get_drvdata(), MLX_FATAL_CHECK_STATUS, netdev, netdev_is_open(), netdev_link_ok(), nodnic_port_get_state(), nodnic_port_state_active, port, flexboot_nodnic::port, ib_device::port, state, and status.
|
static |
Definition at line 594 of file flexboot_nodnic.c.
References flexboot_nodnic::device_priv, gid, ib_get_drvdata(), IB_QPT_ETH, flexboot_nodnic_port::ibdev, mac, memcpy(), MLX_CHECK_STATUS, MLX_SUCCESS, nodnic_port_add_mac_filter(), port, flexboot_nodnic::port, ib_device::port, qp, and status.
|
static |
Definition at line 615 of file flexboot_nodnic.c.
References flexboot_nodnic::device_priv, gid, ib_get_drvdata(), IB_QPT_ETH, flexboot_nodnic_port::ibdev, mac, memcpy(), MLX_CHECK_STATUS, MLX_SUCCESS, nodnic_port_remove_mac_filter(), port, flexboot_nodnic::port, ib_device::port, qp, and status.
|
static |
Initialise Infiniband link.
ibdev | Infiniband device |
rc | Return status code |
Definition at line 649 of file flexboot_nodnic.c.
References rc.
|
static |
Close Infiniband link.
ibdev | Infiniband device |
Definition at line 661 of file flexboot_nodnic.c.
|
static |
Inform embedded subnet management agent of a received MAD.
ibdev | Infiniband device |
mad | MAD |
rc | Return status code |
Definition at line 672 of file flexboot_nodnic.c.
|
static |
Definition at line 706 of file flexboot_nodnic.c.
References ib_work_queue::cq, ib_device::cqs, ib_work_queue::fill, FLEX_NODNIC_TX_POLL_TOUT, FLEX_NODNIC_TX_POLL_USLEEP, ib_poll_cq(), ib_work_queue::is_send, ib_work_queue::list, list_for_each_entry, port, timeout(), udelay(), and ib_completion_queue::work_queues.
Referenced by flexboot_nodnic_port_disable_dma().
|
static |
Definition at line 726 of file flexboot_nodnic.c.
References flexboot_nodnic_complete_all_tx(), MLX_DEBUG_WARN, nodnic_port_disable_dma(), NODNIC_PORT_DISABLING_DMA, NODNIC_PORT_OPENED, port, _nodnic_port_priv::port_state, and status.
Referenced by flexboot_nodnic_eth_close().
|
static |
Transmit packet via flexboot_nodnic Ethernet device.
netdev | Network device |
iobuf | I/O buffer |
rc | Return status code |
Definition at line 766 of file flexboot_nodnic.c.
References DBGC, ib_get_drvdata(), ib_post_send(), netdev, NULL, port, ib_device::port, net_device::priv, rc, and strerror().
|
static |
Handle flexboot_nodnic Ethernet device send completion.
ibdev | Infiniband device |
qp | Queue pair |
iobuf | I/O buffer |
rc | Completion status code |
Definition at line 792 of file flexboot_nodnic.c.
References ib_qp_get_ownerdata(), netdev, netdev_tx_complete_err(), qp, and rc.
|
static |
Handle flexboot_nodnic Ethernet device receive completion.
ibdev | Infiniband device |
qp | Queue pair |
av | Address vector, or NULL |
iobuf | I/O buffer |
rc | Completion status code |
Definition at line 810 of file flexboot_nodnic.c.
References DBG, ENOTTY, ib_qp_get_ownerdata(), netdev, netdev_rx(), netdev_rx_err(), NULL, qp, and rc.
|
static |
Poll flexboot_nodnic Ethernet device.
netdev | Network device |
Definition at line 844 of file flexboot_nodnic.c.
References ib_poll_eq(), netdev, port, and net_device::priv.
|
static |
Open flexboot_nodnic Ethernet device.
netdev | Network device |
rc | Return status code |
Definition at line 857 of file flexboot_nodnic.c.
References DBGC, _nodnic_device_priv::device_cap, flexboot_nodnic::device_priv, flexboot_nodnic_eth_cq_op, FLEXBOOT_NODNIC_ETH_NUM_RECV_WQES, FLEXBOOT_NODNIC_ETH_NUM_SEND_WQES, flexboot_nodnic_eth_qp_op, free, ib_create_cq(), ib_create_qp(), ib_destroy_qp(), ib_get_drvdata(), ib_qp_get_drvdata(), ib_qp_set_ownerdata(), IB_QPT_ETH, ib_refill_recv(), INIT_LIST_HEAD, list_add, list_del, _nodnic_device_capabilites::log_working_buffer_size, MLX_FATAL_CHECK_STATUS, MLX_OUT_OF_RESOURCES, MLX_SUCCESS, net_device::name, netdev, nodnic_port_allocate_eq(), nodnic_port_close(), nodnic_port_enable_dma(), nodnic_port_free_eq(), nodnic_port_get_cq_size(), nodnic_port_get_qpn(), nodnic_port_get_state(), nodnic_port_init(), NODNIC_PORT_OPENED, nodnic_port_set_promisc(), nodnic_port_state_active, nodnic_port_state_down, flexboot_nodnic_queue_pair::nodnic_queue_pair, nodnic_send_ring::nodnic_ring, NULL, port, ib_device::port, net_device::priv, qpn, rc, _nodnic_qp::send, state, status, _nodnic_device_capabilites::support_promisc_filter, TRUE, ib_completion_queue::work_queues, and zalloc().
|
static |
Close flexboot_nodnic Ethernet device.
netdev | Network device |
Definition at line 985 of file flexboot_nodnic.c.
References DBGC, _nodnic_device_priv::device_cap, flexboot_nodnic::device_priv, FALSE, flexboot_nodnic_port_disable_dma(), ib_destroy_cq(), ib_destroy_qp(), ib_get_drvdata(), MLX_SUCCESS, netdev, nodnic_port_close(), nodnic_port_free_eq(), NODNIC_PORT_OPENED, nodnic_port_set_promisc(), NULL, port, ib_device::port, net_device::priv, status, strerror(), and _nodnic_device_capabilites::support_promisc_filter.
void flexboot_nodnic_eth_irq | ( | struct net_device * | netdev, |
int | enable | ||
) |
Definition at line 1028 of file flexboot_nodnic.c.
References flexboot_nodnic_arm_cq(), netdev, nodnic_device_clear_int(), NODNIC_PORT_DISABLING_DMA, NODNIC_PORT_OPENED, port, and net_device::priv.
|
static |
Register flexboot_nodnic Ethernet device.
Definition at line 1054 of file flexboot_nodnic.c.
References alloc_etherdev(), bytes, DBGC, net_device::dev, ib_device::dev, ETH_ALEN, flexboot_nodnic_eth_operations, htonl, net_device::hw_addr, mac, memcpy(), MLX_FATAL_CHECK_STATUS, MLX_OUT_OF_RESOURCES, MLX_SUCCESS, netdev, netdev_init(), netdev_put(), nodnic_port_option_mac_high, nodnic_port_option_mac_low, nodnic_port_query(), NULL, port, ib_device::port, net_device::priv, register_netdev(), status, and strerror().
|
static |
Handle flexboot_nodnic Ethernet device port state change.
Definition at line 1110 of file flexboot_nodnic.c.
References netdev, netdev_link_down(), netdev_link_up(), and port.
|
static |
Unregister flexboot_nodnic Ethernet device.
Definition at line 1125 of file flexboot_nodnic.c.
References netdev, netdev_nullify(), netdev_put(), port, and unregister_netdev().
|
static |
Definition at line 1148 of file flexboot_nodnic.c.
References alloc_ibdev(), pci_device::dev, ib_device::dev, _nodnic_device_priv::device_cap, flexboot_nodnic::device_priv, flexboot_nodnic_ib_operations, FLEXBOOT_NODNIC_PORT_BASE, ib_set_drvdata(), flexboot_nodnic_port::ibdev, ibdev_put(), MLX_OUT_OF_RESOURCES, MLX_SUCCESS, NULL, _nodnic_device_capabilites::num_ports, ib_device::op, flexboot_nodnic::pci, flexboot_nodnic::port, ib_device::port, flexboot_nodnic::port_mask, ib_device::ports, and status.
Referenced by flexboot_nodnic_probe().
|
static |
Definition at line 1180 of file flexboot_nodnic.c.
References _nodnic_device_priv::device_cap, flexboot_nodnic::device_priv, MLX_FATAL_CHECK_STATUS, MLX_SUCCESS, nodnic_port_thin_init(), NULL, _nodnic_device_capabilites::num_ports, flexboot_nodnic::port, flexboot_nodnic::port_mask, flexboot_nodnic_port::port_priv, and status.
Referenced by flexboot_nodnic_probe().
|
static |
Definition at line 1201 of file flexboot_nodnic.c.
References DBGC, _nodnic_device_priv::device_cap, flexboot_nodnic::device_priv, flexboot_nodnic_port_type_eth, MLX_FATAL_CHECK_STATUS, MLX_SUCCESS, MLX_UNSUPPORTED, nodnic_port_get_type(), NODNIC_PORT_TYPE_ETH, NODNIC_PORT_TYPE_IB, NODNIC_PORT_TYPE_UNKNOWN, NULL, _nodnic_device_capabilites::num_ports, flexboot_nodnic::port, flexboot_nodnic::port_mask, flexboot_nodnic_port::port_priv, status, type, and flexboot_nodnic_port::type.
Referenced by flexboot_nodnic_probe().
|
static |
Definition at line 1236 of file flexboot_nodnic.c.
References _nodnic_device_priv::device_cap, flexboot_nodnic::device_priv, MLX_FATAL_CHECK_STATUS, MLX_SUCCESS, NULL, _nodnic_device_capabilites::num_ports, port, flexboot_nodnic::port, flexboot_nodnic::port_mask, and status.
Referenced by flexboot_nodnic_probe().
|
static |
Definition at line 1256 of file flexboot_nodnic.c.
References _nodnic_device_priv::device_cap, flexboot_nodnic::device_priv, flexboot_nodnic_port::ibdev, ibdev_put(), MLX_SUCCESS, _nodnic_device_capabilites::num_ports, port, flexboot_nodnic::port, and flexboot_nodnic::port_mask.
Referenced by flexboot_nodnic_probe(), and flexboot_nodnic_remove().
__attribute__ | ( | (unused) | ) |
Definition at line 1277 of file flexboot_nodnic.c.
References _nodnic_device_priv::device_cap, flexboot_nodnic::device_priv, MLX_DEBUG_WARN, nodnic_port_enable_dma(), NODNIC_PORT_OPENED, _nodnic_device_capabilites::num_ports, flexboot_nodnic::port, flexboot_nodnic::port_mask, flexboot_nodnic_port::port_priv, _nodnic_port_priv::port_state, and status.
int flexboot_nodnic_is_supported | ( | struct pci_device * | pci | ) |
Definition at line 1305 of file flexboot_nodnic.c.
References buffer, DBG, memset(), MLX_CHECK_STATUS, mlx_pci_gw_init(), mlx_pci_gw_read(), mlx_pci_gw_teardown(), MLX_SUCCESS, mlx_utils_init(), mlx_utils_teardown(), NODNIC_NIC_INTERFACE_SUPPORTED_BIT, NODNIC_NIC_INTERFACE_SUPPORTED_OFFSET, PCI_GW_SPACE_NODNIC, and status.
Referenced by shomron_nodnic_is_supported().
|
static |
Definition at line 1361 of file flexboot_nodnic.c.
References DBGC, flexboot_nodnic::device_priv, memset(), mlx_vmac_query_virt_mac(), status, and _nodnic_device_priv::utils.
Referenced by flexboot_nodnic_probe().
|
static |
Set port masking.
flexboot_nodnic | nodnic device |
rc | Return status code |
Definition at line 1384 of file flexboot_nodnic.c.
References DBGC, _nodnic_device_priv::device_cap, flexboot_nodnic::device_priv, ENETUNREACH, _nodnic_device_capabilites::num_ports, and flexboot_nodnic::port_mask.
Referenced by flexboot_nodnic_probe().
int init_mlx_utils | ( | mlx_utils ** | utils, |
struct pci_device * | pci | ||
) |
Definition at line 1403 of file flexboot_nodnic.c.
References DBGC, free, mlx_pci_gw_init(), mlx_pci_gw_teardown(), mlx_utils_init(), mlx_utils_teardown(), NULL, rc, and zalloc().
Referenced by flexboot_nodnic_probe(), golan_probe_normal(), and golan_set_link_speed().
void free_mlx_utils | ( | mlx_utils ** | utils | ) |
Definition at line 1436 of file flexboot_nodnic.c.
References free, mlx_pci_gw_teardown(), mlx_utils_teardown(), and NULL.
Referenced by flexboot_nodnic_probe(), flexboot_nodnic_remove(), golan_probe_normal(), golan_remove_normal(), and golan_set_link_speed().
|
static |
Initialise Nodnic PCI parameters.
hermon | Nodnic device |
Definition at line 1449 of file flexboot_nodnic.c.
References DBGC, _nodnic_port_priv::device, _nodnic_device_priv::device_cap, flexboot_nodnic::device_priv, EINVAL, ENOTSUP, FLEXBOOT_NODNIC_HCA_BAR, FLEXBOOT_NODNIC_PAGE_SIZE, MLX_SUCCESS, nodnic_port_set_send_uar_offset(), _nodnic_uar_priv::offset, flexboot_nodnic::pci, pci_bar_start(), pci_ioremap(), _nodnic_uar_priv::phys, flexboot_nodnic::port, flexboot_nodnic_port::port_priv, status, _nodnic_device_capabilites::support_uar_tx_db, _nodnic_device_priv::uar, and _nodnic_uar_priv::virt.
Referenced by flexboot_nodnic_probe().
|
static |
Definition at line 1470 of file flexboot_nodnic.c.
References _nodnic_port_priv::device, iounmap(), MLX_SUCCESS, NULL, flexboot_nodnic::port, flexboot_nodnic_port::port_priv, _nodnic_device_priv::uar, and _nodnic_uar_priv::virt.
Referenced by flexboot_nodnic_probe(), and flexboot_nodnic_remove().
int flexboot_nodnic_probe | ( | struct pci_device * | pci, |
struct flexboot_nodnic_callbacks * | callbacks, | ||
void *drv_priv | __attribute__(unused) | ||
) |
Definition at line 1482 of file flexboot_nodnic.c.
References flexboot_nodnic::callbacks, DBGC, _nodnic_device_priv::device_cap, flexboot_nodnic::device_priv, EINVAL, EN_DEFAULT_ADMIN_MTU, flexboot_nodnic_alloc_uar(), flexboot_nodnic_allocate_infiniband_devices(), flexboot_nodnic_dealloc_uar(), flexboot_nodnic_eth_operations, flexboot_nodnic_get_factory_mac(), flexboot_nodnic_ports_register_dev(), flexboot_nodnic_ports_unregister_dev(), flexboot_nodnic_set_port_masking(), flexboot_nodnic_set_ports_type(), flexboot_nodnic_thin_init_ports(), free, free_mlx_utils(), init_mlx_utils(), flexboot_nodnic_callbacks::irq, net_device_operations::irq, MLX_CHECK_STATUS, MLX_DEBUG_ERROR, MLX_FATAL_CHECK_STATUS, MLX_OUT_OF_RESOURCES, mlx_set_admin_mtu(), MLX_SUCCESS, nodnic_device_get_cap(), nodnic_device_init(), nodnic_device_teardown(), NULL, _nodnic_device_capabilites::num_ports, flexboot_nodnic::pci, pci_set_drvdata(), flexboot_nodnic::port_mask, status, _nodnic_device_priv::utils, and zalloc().
Referenced by golan_probe().
void flexboot_nodnic_remove | ( | struct pci_device * | pci | ) |
Definition at line 1583 of file flexboot_nodnic.c.
References flexboot_nodnic::device_priv, flexboot_nodnic_dealloc_uar(), flexboot_nodnic_ports_unregister_dev(), free, free_mlx_utils(), nodnic_device_teardown(), flexboot_nodnic::pci, pci_get_drvdata(), and _nodnic_device_priv::utils.
Referenced by golan_remove().
|
static |
flexboot_nodnic Infiniband operations
Definition at line 679 of file flexboot_nodnic.c.
Referenced by flexboot_nodnic_allocate_infiniband_devices().
|
static |
flexboot nodnic Ethernet queue pair operations
Definition at line 755 of file flexboot_nodnic.c.
Referenced by flexboot_nodnic_eth_open().
|
static |
flexboot_nodnic Ethernet device completion operations
Definition at line 834 of file flexboot_nodnic.c.
Referenced by flexboot_nodnic_eth_open().
|
static |
flexboot_nodnic Ethernet network device operations
Definition at line 1044 of file flexboot_nodnic.c.
Referenced by flexboot_nodnic_probe(), and flexboot_nodnic_register_netdev().
|
static |
flexboot_nodnic Ethernet port type
Definition at line 1134 of file flexboot_nodnic.c.
Referenced by flexboot_nodnic_set_ports_type().