37 "Single Function - 1 func, 17 vpath",
38 "Multi Function 8 - 8 func, 2 vpath per func",
39 "SRIOV 17 - 17 VF, 1 vpath per VF",
40 "WLPEX/SharedIO 17 - 17 VH, 1 vpath/func/hierarchy",
41 "WLPEX/SharedIO 8 - 8 VH, 2 vpath/func/hierarchy",
42 "Multi Function 17 - 17 func, 1 vpath per func",
43 "SRIOV 8 - 1 PF, 7 VF, 2 vpath per VF",
44 "SRIOV 4 - 1 PF, 3 VF, 4 vpath per VF",
45 "Multi Function 2 - 2 func, 8 vpath per func",
46 "Multi Function 4 - 4 func, 4 vpath per func",
47 "WLPEX/SharedIO 4 - 17 func, 1 vpath per func (PCIe ARI)",
48 "Multi Function 8 - For ESX DirectIO - 8 func, 2 vpath per func",
106 "from_reset failed\n");
112 "__vxge_hw_vpath_reset_check error\n");
156 "%s: vpath: %d failed to open " 193 "%s: vdev not initialized\n", dev->
name);
199 "%s: Link down, transmit failed\n", dev->
name);
209 "%s: Out of tx descriptors\n", dev->
name);
264 "%s:%d action(%d)\n", __func__, __LINE__, action);
321 "%s: fatal: can not set new MTU\n", dev->
name);
349 dev->
name, __func__, __LINE__);
370 dev->
name, __func__, __LINE__);
399 "%s: %s:%d Exiting...\n", dev->
name, __func__, __LINE__);
504 unsigned long mmio_start, mmio_len;
518 mmio_start, mmio_len);
526 "%s : cannot remap io memory bar0\n", __func__);
534 "%s: Reading of hardware info failed.\n",
549 if (vpath_mask == 0) {
551 "%s: No vpaths available in device\n",
557 "%s:%d Vpath mask = %llx\n", __func__, __LINE__,
558 (
unsigned long long)vpath_mask);
564 printf(
"%s: Adapter's current firmware version: %d.%d.%d\n",
568 printf(
"%s: Upgrade firmware to version %d.%d.%d\n",
579 "Failed to initialize device (%d)\n",
status);
595 "%s: FCS stripping is not disabled in MAC" 660 printf(
"%s: WARNING!! Driver loading failed!!\n",
680 "%s:%d\n", __func__, __LINE__);
693 "%s:%d Device unregistered\n", __func__, __LINE__);
710 PCI_ID(0x17d5, 0x5833,
"vxge-x3100",
"Neterion X3100 Series", 0),
#define EINVAL
Invalid argument.
#define is_titan1(dev_id, rev)
static void netdev_tx_complete(struct net_device *netdev, struct io_buffer *iobuf)
Complete network transmission.
#define VXGE_CERT_FW_VER_BUILD
struct vxge_hw_device_date fw_date
int printf(const char *fmt,...)
Write a formatted string to the console.
struct __vxge_hw_virtualpath * vpathh
void vxge_hw_vpath_enable(struct __vxge_hw_virtualpath *vpath)
static void vxge_poll(struct net_device *ndev)
int vxge_open_vpaths(struct vxgedev *vdev)
struct vxge_hw_fifo_txd - Transmit Descriptor
#define VXGE_HW_DEFAULT_MTU
int(* open)(struct net_device *netdev)
Open network device.
struct vxge_hw_device_version fw_version
char date[VXGE_HW_FW_STRLEN]
struct pci_device_id * ids
PCI ID table.
struct __vxge_hw_virtualpath virtual_path
enum vxge_hw_status vxge_hw_vpath_reset(struct __vxge_hw_virtualpath *vpath)
static enum vxge_hw_device_link_state vxge_hw_device_link_state_get(struct __vxge_hw_device *devh)
vxge_hw_device_link_state_get - Get link state.
#define PCI_BASE_ADDRESS_0
struct __vxge_hw_fifo * fifoh
void netdev_link_down(struct net_device *netdev)
Mark network device as having link down.
#define EACCES
Permission denied.
void adjust_pci_device(struct pci_device *pci)
Enable PCI device.
struct device dev
Generic device.
struct pci_driver vxge_driver __pci_driver
static int is_vxge_card_up(struct vxgedev *vdev)
void vxge_device_unregister(struct __vxge_hw_device *hldev)
struct __vxge_hw_device * devh
#define vxge_debug(mask, fmt...)
Dynamic memory allocation.
struct vxge_hw_device_hw_info - Device information @host_type: Host Type @func_id: Function Id @vpath...
static void vxge_close(struct net_device *dev)
vxge_close @dev: device pointer.
void vxge_hw_device_intr_disable(struct __vxge_hw_device *hldev)
vxge_hw_device_intr_disable - Disable Titan interrupts.
struct vxge_hw_fifo_txd * vxge_hw_fifo_free_txdl_get(struct __vxge_hw_fifo *fifo)
vxge_hw_fifo_free_txdl_get: fetch next available txd in the fifo
enum vxge_hw_status vxge_hw_vpath_poll_tx(struct __vxge_hw_fifo *fifo)
vxge_hw_vpath_poll_tx - Poll Tx for completed descriptors and process the same.
static void netdev_init(struct net_device *netdev, struct net_device_operations *op)
Initialise a network device.
static void pci_set_drvdata(struct pci_device *pci, void *priv)
Set PCI driver-private data.
void * memcpy(void *dest, const void *src, size_t len) __nonnull
void vxge_hw_device_unmask_all(struct __vxge_hw_device *hldev)
vxge_hw_device_unmask_all - Unmask all device interrupts.
static int vxge_probe(struct pci_device *pdev)
vxge_probe @pdev : structure containing the PCI related information of the device.
uint16_t device
Device ID.
enum vxge_hw_status vxge_hw_device_initialize(struct __vxge_hw_device **devh, void *bar0, struct pci_device *pdev, u8 titan1)
enum vxge_hw_status vxge_hw_vpath_poll_rx(struct __vxge_hw_ring *ring)
int vxge_device_register(struct __vxge_hw_device *hldev, struct vxgedev **vdev_out)
static void netdev_put(struct net_device *netdev)
Drop reference to network device.
void vxge_hw_fifo_txdl_buffer_set(struct __vxge_hw_fifo *fifo, struct vxge_hw_fifo_txd *txdp, struct io_buffer *iob)
vxge_hw_fifo_txdl_buffer_set - Set transmit buffer pointer in the descriptor.
void vxge_hw_fifo_txdl_post(struct __vxge_hw_fifo *fifo, struct vxge_hw_fifo_txd *txdp)
vxge_hw_fifo_txdl_post - Post descriptor on the fifo channel.
int vxge_open(struct net_device *dev)
vxge_open @dev: pointer to the device structure.
void * priv
Driver private data.
u8 serial_number[VXGE_HW_INFO_LEN]
#define __unused
Declare a variable or data structure as unused.
#define is_mf(function_mode)
static void netdev_link_up(struct net_device *netdev)
Mark network device as having link up.
void vxge_hw_device_intr_enable(struct __vxge_hw_device *hldev)
vxge_hw_device_intr_enable - Enable interrupts.
#define VXGE_HW_MAX_VIRTUAL_PATHS
enum vxge_hw_status vxge_hw_get_func_mode(struct __vxge_hw_device *hldev, u32 *func_mode)
static int netdev_link_ok(struct net_device *netdev)
Check link state of network device.
static struct net_device * netdev
unsigned long pci_bar_start(struct pci_device *pci, unsigned int reg)
Find the start of a PCI BAR.
void unregister_netdev(struct net_device *netdev)
Unregister network device.
static struct net_device_operations vxge_operations
enum vxge_hw_status vxge_hw_vpath_recover_from_reset(struct __vxge_hw_virtualpath *vpath)
uint32_t revision
Entry point revision.
static void vxge_irq(struct net_device *netdev __unused, int action)
#define test_bit(bit, loc)
#define PCI_FMT
PCI device debug message format.
static void vxge_remove(struct pci_device *pdev)
vxge_remove - Free the PCI device @pdev: structure containing the PCI related information of the devi...
int register_netdev(struct net_device *netdev)
Register network device.
const char * eth_ntoa(const void *ll_addr)
Transcribe Ethernet address.
enum vxge_hw_status vxge_reset_all_vpaths(struct vxgedev *vdev)
enum vxge_hw_status vxge_hw_device_hw_info_get(struct pci_device *pdev, void __iomem *bar0, struct vxge_hw_device_hw_info *hw_info)
vxge_hw_device_hw_info_get - Get the hw information Returns the vpath mask that has the bits set for ...
#define ENODEV
No such device.
enum vxge_hw_status vxge_hw_vpath_mtu_set(struct __vxge_hw_virtualpath *vpath, u32 new_mtu)
static void netdev_nullify(struct net_device *netdev)
Stop using a network device.
u8 product_desc[VXGE_HW_INFO_LEN]
void set_bit(unsigned int bit, volatile void *bits)
void vxge_hw_vpath_rx_doorbell_init(struct __vxge_hw_virtualpath *vpath)
enum vxge_hw_status __vxge_hw_vpath_reset_check(struct __vxge_hw_virtualpath *vpath)
enum vxge_hw_status vxge_hw_vpath_strip_fcs_check(struct __vxge_hw_device *hldev, u64 vpath_mask)
A PCI device ID list entry.
void vxge_close_vpaths(struct vxgedev *vdev)
#define ENETDOWN
Network is down.
static struct xen_remove_from_physmap * remove
static char * vxge_func_mode_names[]
#define VXGE_CERT_FW_VER_MAJOR
Network device operations.
struct device * dev
Underlying hardware device.
#define EPERM
Operation not permitted.
Network device management.
static void * pci_get_drvdata(struct pci_device *pci)
Get PCI driver-private data.
struct __vxge_hw_device - Hal device object @magic: Magic Number @bar0: BAR0 virtual address.
struct vxge_hw_device_hw_info hw_info
void netdev_tx_complete_err(struct net_device *netdev, struct io_buffer *iobuf, int rc)
Complete network transmission.
char name[NETDEV_NAME_LEN]
Name of this network device.
enum vxge_hw_status vxge_hw_device_begin_irq(struct __vxge_hw_device *hldev)
vxge_hw_device_begin_irq - Begin IRQ processing.
#define ENOBUFS
No buffer space available.
#define VXGE_CERT_FW_VER_MINOR
u8 part_number[VXGE_HW_INFO_LEN]
int(* probe)(struct pci_device *pci)
Probe device.
struct __vxge_hw_ring ringh
#define EIO
Input/output error.
static int vxge_xmit(struct net_device *dev, struct io_buffer *iobuf)
Functions that implement the iPXE driver API.
#define PCI_ID(_vendor, _device, _name, _description, _data)
struct net_device * alloc_etherdev(size_t priv_size)
Allocate Ethernet device.
#define PCI_ARGS(pci)
PCI device debug message arguments.
static struct pci_device_id vxge_main_nics[]
#define __VXGE_STATE_CARD_UP
void iounmap(volatile const void *io_addr)
Unmap I/O address.
#define PCI_REVISION
PCI revision.
struct __vxge_hw_ring * ringh
struct __vxge_hw_device * hldev
struct __vxge_hw_fifo fifoh
void vxge_hw_vpath_set_zero_rx_frm_len(struct __vxge_hw_device *hldev)
enum vxge_hw_status vxge_xmit_compl(struct __vxge_hw_fifo *fifo_hw, struct vxge_hw_fifo_txd *txdp, enum vxge_hw_fifo_tcode tcode)
void * pci_ioremap(struct pci_device *pci, unsigned long bus_addr, size_t len)
Map PCI bus address as an I/O address.
void vxge_hw_device_terminate(struct __vxge_hw_device *hldev)
enum vxge_hw_status vxge_hw_vpath_open(struct __vxge_hw_device *hldev, struct vxge_vpath *vpath)
enum vxge_hw_status vxge_hw_vpath_close(struct __vxge_hw_virtualpath *vpath)
uint8_t hw_addr[MAX_HW_ADDR_LEN]
Hardware address.
#define NULL
NULL pointer (VOID *)
void clear_bit(unsigned int bit, volatile void *bits)
struct __vxge_hw_virtualpath * vpathh
vxge_hw_fifo_tcode
enum enum vxge_hw_fifo_tcode - tcodes used in fifo @VXGE_HW_FIFO_T_CODE_OK: Transfer OK @VXGE_HW_FIFO...
void vxge_hw_device_mask_all(struct __vxge_hw_device *hldev)
vxge_hw_device_mask_all - Mask all device interrupts.
if(natsemi->flags &NATSEMI_64BIT) return 1
void * memset(void *dest, int character, size_t len) __nonnull
int pci_read_config_byte(struct pci_device *pci, unsigned int where, uint8_t *value)
Read byte from PCI configuration space.
char version[VXGE_HW_FW_STRLEN]