iPXE
|
#include "mlx_nodnic/include/mlx_nodnic_data_structures.h"
#include "nodnic_prm.h"
#include <ipxe/io.h>
#include <ipxe/infiniband.h>
#include <ipxe/netdevice.h>
#include "mlx_utils/mlx_lib/mlx_nvconfig/mlx_nvconfig.h"
Go to the source code of this file.
Data Structures | |
struct | flexboot_nodnic_port |
A flexboot nodnic port. More... | |
struct | flexboot_nodnic_queue_pair |
A flexboot nodnic queue pair. More... | |
struct | flexboot_nodnic_completion_queue |
A flexboot nodnic cq. More... | |
struct | flexboot_nodnic |
A flexboot_nodnic device. More... | |
struct | flexboot_nodnic_port_type |
A flexboot_nodnic port type. More... | |
struct | cqe_data |
union | arm_cq_uar |
struct | flexboot_nodnic_callbacks |
Macros | |
#define | NODNIC_IRQ_ENABLED |
#define | FLEXBOOT_NODNIC_MAX_PORTS 2 |
#define | FLEXBOOT_NODNIC_PORT_BASE 1 |
#define | FLEXBOOT_NODNIC_OPCODE_SEND 0xa |
#define | FLEXBOOT_NODNIC_HCA_BAR PCI_BASE_ADDRESS_0 |
#define | FLEXBOOT_NODNIC_PAGE_SHIFT 12 |
#define | FLEXBOOT_NODNIC_PAGE_SIZE (1 << FLEXBOOT_NODNIC_PAGE_SHIFT) |
#define | FLEXBOOT_NODNIC_PAGE_MASK (FLEXBOOT_NODNIC_PAGE_SIZE - 1) |
#define | EN_DEFAULT_ADMIN_MTU 1522 |
Enumerations | |
enum | flexboot_nodnic_protocol { FLEXBOOT_NODNIC_PROT_IB_IPV6 = 0, FLEXBOOT_NODNIC_PROT_ETH, FLEXBOOT_NODNIC_PROT_IB_IPV4, FLEXBOOT_NODNIC_PROT_FCOE } |
Functions | |
FILE_LICENCE (GPL2_OR_LATER) | |
int | flexboot_nodnic_probe (struct pci_device *pci, struct flexboot_nodnic_callbacks *callbacks, void *drv_priv) |
void | flexboot_nodnic_remove (struct pci_device *pci) |
void | flexboot_nodnic_eth_irq (struct net_device *netdev, int enable) |
int | flexboot_nodnic_is_supported (struct pci_device *pci) |
void | flexboot_nodnic_copy_mac (uint8_t mac_addr[], uint32_t low_byte, uint16_t high_byte) |
int | init_mlx_utils (mlx_utils **utils, struct pci_device *pci) |
void | free_mlx_utils (mlx_utils **utils) |
#define NODNIC_IRQ_ENABLED |
Definition at line 35 of file flexboot_nodnic.h.
#define FLEXBOOT_NODNIC_MAX_PORTS 2 |
Definition at line 37 of file flexboot_nodnic.h.
#define FLEXBOOT_NODNIC_PORT_BASE 1 |
Definition at line 38 of file flexboot_nodnic.h.
#define FLEXBOOT_NODNIC_OPCODE_SEND 0xa |
Definition at line 40 of file flexboot_nodnic.h.
#define FLEXBOOT_NODNIC_HCA_BAR PCI_BASE_ADDRESS_0 |
Definition at line 41 of file flexboot_nodnic.h.
#define FLEXBOOT_NODNIC_PAGE_SHIFT 12 |
Definition at line 42 of file flexboot_nodnic.h.
#define FLEXBOOT_NODNIC_PAGE_SIZE (1 << FLEXBOOT_NODNIC_PAGE_SHIFT) |
Definition at line 43 of file flexboot_nodnic.h.
#define FLEXBOOT_NODNIC_PAGE_MASK (FLEXBOOT_NODNIC_PAGE_SIZE - 1) |
Definition at line 44 of file flexboot_nodnic.h.
#define EN_DEFAULT_ADMIN_MTU 1522 |
Definition at line 45 of file flexboot_nodnic.h.
Enumerator | |
---|---|
FLEXBOOT_NODNIC_PROT_IB_IPV6 | |
FLEXBOOT_NODNIC_PROT_ETH | |
FLEXBOOT_NODNIC_PROT_IB_IPV4 | |
FLEXBOOT_NODNIC_PROT_FCOE |
Definition at line 48 of file flexboot_nodnic.h.
FILE_LICENCE | ( | GPL2_OR_LATER | ) |
int flexboot_nodnic_probe | ( | struct pci_device * | pci, |
struct flexboot_nodnic_callbacks * | callbacks, | ||
void * | drv_priv | ||
) |
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().
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.
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().
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().