|
iPXE
|
#include <stdio.h>#include <string.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 704 of file flexboot_nodnic.c.
| #define FLEX_NODNIC_TX_POLL_USLEEP 10 |
Definition at line 705 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 751 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 754 of file flexboot_nodnic.c.
| FILE_LICENCE | ( | GPL2_OR_LATER | ) |
|
static |
Definition at line 56 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 113 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 162 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 175 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 208 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 304 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(), and TRUE.
|
static |
Create queue pair.
| ibdev | Infiniband device |
| qp | Queue pair |
| rc | Return status code |
Definition at line 356 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 393 of file flexboot_nodnic.c.
|
static |
Destroy queue pair.
| ibdev | Infiniband device |
| qp | Queue pair |
Definition at line 405 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 434 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 503 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 553 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 595 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 616 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 650 of file flexboot_nodnic.c.
References rc.
|
static |
Close Infiniband link.
| ibdev | Infiniband device |
Definition at line 662 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 673 of file flexboot_nodnic.c.
|
static |
Definition at line 707 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 727 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 767 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 793 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 811 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 845 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 858 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 986 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 1029 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 1055 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 1111 of file flexboot_nodnic.c.
References netdev, netdev_link_down(), netdev_link_up(), and port.
|
static |
Unregister flexboot_nodnic Ethernet device.
Definition at line 1126 of file flexboot_nodnic.c.
References netdev, netdev_nullify(), netdev_put(), port, and unregister_netdev().
|
static |
Definition at line 1149 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 1181 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 1202 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 1237 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 1257 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 1278 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 1306 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 1362 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 1385 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 1404 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 1437 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 1450 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 1471 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 1483 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 1584 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 680 of file flexboot_nodnic.c.
Referenced by flexboot_nodnic_allocate_infiniband_devices().
|
static |
flexboot nodnic Ethernet queue pair operations
Definition at line 756 of file flexboot_nodnic.c.
Referenced by flexboot_nodnic_eth_open().
|
static |
flexboot_nodnic Ethernet device completion operations
Definition at line 835 of file flexboot_nodnic.c.
Referenced by flexboot_nodnic_eth_open().
|
static |
flexboot_nodnic Ethernet network device operations
Definition at line 1045 of file flexboot_nodnic.c.
Referenced by flexboot_nodnic_probe(), and flexboot_nodnic_register_netdev().
|
static |
flexboot_nodnic Ethernet port type
Definition at line 1135 of file flexboot_nodnic.c.
Referenced by flexboot_nodnic_set_ports_type().
1.8.15