igb(4): Update and fix HW errata
- HW errata workaround for IPv6 offload w/ extension headers - Edited start of if_igb.c (Device IDs / #includes) to match ixgbe/ixl Differential Revision: https://reviews.freebsd.org/D3165 Submitted by: erj MFC after: 1 month Sponsored by: Intel Corporation
This commit is contained in:
parent
24067db8ca
commit
02415af2ee
@ -42,71 +42,12 @@
|
||||
#include "opt_altq.h"
|
||||
#endif
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
#ifndef IGB_LEGACY_TX
|
||||
#include <sys/buf_ring.h>
|
||||
#endif
|
||||
#include <sys/bus.h>
|
||||
#include <sys/endian.h>
|
||||
#include <sys/kernel.h>
|
||||
#include <sys/kthread.h>
|
||||
#include <sys/malloc.h>
|
||||
#include <sys/mbuf.h>
|
||||
#include <sys/module.h>
|
||||
#include <sys/rman.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/sockio.h>
|
||||
#include <sys/sysctl.h>
|
||||
#include <sys/taskqueue.h>
|
||||
#include <sys/eventhandler.h>
|
||||
#include <sys/pcpu.h>
|
||||
#include <sys/smp.h>
|
||||
#include <machine/smp.h>
|
||||
#include <machine/bus.h>
|
||||
#include <machine/resource.h>
|
||||
|
||||
#include <net/bpf.h>
|
||||
#include <net/ethernet.h>
|
||||
#include <net/if.h>
|
||||
#include <net/if_var.h>
|
||||
#include <net/if_arp.h>
|
||||
#include <net/if_dl.h>
|
||||
#include <net/if_media.h>
|
||||
#ifdef RSS
|
||||
#include <net/rss_config.h>
|
||||
#endif
|
||||
|
||||
#include <net/if_types.h>
|
||||
#include <net/if_vlan_var.h>
|
||||
|
||||
#include <netinet/in_systm.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/if_ether.h>
|
||||
#include <netinet/ip.h>
|
||||
#include <netinet/ip6.h>
|
||||
#include <netinet/tcp.h>
|
||||
#include <netinet/tcp_lro.h>
|
||||
#include <netinet/udp.h>
|
||||
|
||||
#include <machine/in_cksum.h>
|
||||
#include <dev/led/led.h>
|
||||
#include <dev/pci/pcivar.h>
|
||||
#include <dev/pci/pcireg.h>
|
||||
|
||||
#include "e1000_api.h"
|
||||
#include "e1000_82575.h"
|
||||
#include "if_igb.h"
|
||||
|
||||
/*********************************************************************
|
||||
* Set this to one to display debug statistics
|
||||
*********************************************************************/
|
||||
int igb_display_debug_stats = 0;
|
||||
|
||||
/*********************************************************************
|
||||
* Driver version:
|
||||
*********************************************************************/
|
||||
char igb_driver_version[] = "version - 2.4.0";
|
||||
char igb_driver_version[] = "2.5.2";
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
@ -121,60 +62,47 @@ char igb_driver_version[] = "version - 2.4.0";
|
||||
|
||||
static igb_vendor_info_t igb_vendor_info_array[] =
|
||||
{
|
||||
{ 0x8086, E1000_DEV_ID_82575EB_COPPER, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_82575EB_FIBER_SERDES,
|
||||
PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_82575GB_QUAD_COPPER,
|
||||
PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_82576, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_82576_NS, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_82576_NS_SERDES, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_82576_FIBER, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_82576_SERDES, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_82576_SERDES_QUAD,
|
||||
PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_82576_QUAD_COPPER,
|
||||
PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_82576_QUAD_COPPER_ET2,
|
||||
PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_82576_VF, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_82580_COPPER, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_82580_FIBER, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_82580_SERDES, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_82580_SGMII, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_82580_COPPER_DUAL,
|
||||
PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_82580_QUAD_FIBER,
|
||||
PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_DH89XXCC_SERDES, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_DH89XXCC_SGMII, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_DH89XXCC_SFP, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_DH89XXCC_BACKPLANE,
|
||||
PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_I350_COPPER, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_I350_FIBER, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_I350_SERDES, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_I350_SGMII, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_I350_VF, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_I210_COPPER, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_I210_COPPER_IT, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_I210_COPPER_OEM1,
|
||||
PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_I210_COPPER_FLASHLESS,
|
||||
PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_I210_SERDES_FLASHLESS,
|
||||
PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_I210_FIBER, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_I210_SERDES, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_I210_SGMII, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_I211_COPPER, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_I354_BACKPLANE_1GBPS,
|
||||
PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_I354_BACKPLANE_2_5GBPS,
|
||||
PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{ 0x8086, E1000_DEV_ID_I354_SGMII, PCI_ANY_ID, PCI_ANY_ID, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_82575EB_COPPER, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_82575EB_FIBER_SERDES, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_82575GB_QUAD_COPPER, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_82576, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_82576_NS, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_82576_NS_SERDES, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_82576_FIBER, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_82576_SERDES, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_82576_SERDES_QUAD, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_82576_QUAD_COPPER, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_82576_QUAD_COPPER_ET2, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_82576_VF, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_82580_COPPER, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_82580_FIBER, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_82580_SERDES, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_82580_SGMII, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_82580_COPPER_DUAL, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_82580_QUAD_FIBER, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_DH89XXCC_SERDES, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_DH89XXCC_SGMII, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_DH89XXCC_SFP, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_DH89XXCC_BACKPLANE, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_I350_COPPER, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_I350_FIBER, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_I350_SERDES, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_I350_SGMII, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_I350_VF, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_I210_COPPER, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_I210_COPPER_IT, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_I210_COPPER_OEM1, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_I210_COPPER_FLASHLESS, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_I210_SERDES_FLASHLESS, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_I210_FIBER, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_I210_SERDES, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_I210_SGMII, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_I211_COPPER, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_I354_BACKPLANE_1GBPS, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_I354_BACKPLANE_2_5GBPS, 0, 0, 0},
|
||||
{IGB_INTEL_VENDOR_ID, E1000_DEV_ID_I354_SGMII, 0, 0, 0},
|
||||
/* required last entry */
|
||||
{ 0, 0, 0, 0, 0}
|
||||
{0, 0, 0, 0, 0}
|
||||
};
|
||||
|
||||
/*********************************************************************
|
||||
@ -423,7 +351,7 @@ SYSCTL_INT(_hw_igb, OID_AUTO, rx_process_limit, CTLFLAG_RDTUN,
|
||||
static int
|
||||
igb_probe(device_t dev)
|
||||
{
|
||||
char adapter_name[60];
|
||||
char adapter_name[256];
|
||||
uint16_t pci_vendor_id = 0;
|
||||
uint16_t pci_device_id = 0;
|
||||
uint16_t pci_subvendor_id = 0;
|
||||
@ -433,7 +361,7 @@ igb_probe(device_t dev)
|
||||
INIT_DEBUGOUT("igb_probe: begin");
|
||||
|
||||
pci_vendor_id = pci_get_vendor(dev);
|
||||
if (pci_vendor_id != IGB_VENDOR_ID)
|
||||
if (pci_vendor_id != IGB_INTEL_VENDOR_ID)
|
||||
return (ENXIO);
|
||||
|
||||
pci_device_id = pci_get_device(dev);
|
||||
@ -446,11 +374,11 @@ igb_probe(device_t dev)
|
||||
(pci_device_id == ent->device_id) &&
|
||||
|
||||
((pci_subvendor_id == ent->subvendor_id) ||
|
||||
(ent->subvendor_id == PCI_ANY_ID)) &&
|
||||
(ent->subvendor_id == 0)) &&
|
||||
|
||||
((pci_subdevice_id == ent->subdevice_id) ||
|
||||
(ent->subdevice_id == PCI_ANY_ID))) {
|
||||
sprintf(adapter_name, "%s %s",
|
||||
(ent->subdevice_id == 0))) {
|
||||
sprintf(adapter_name, "%s, Version - %s",
|
||||
igb_strings[ent->index],
|
||||
igb_driver_version);
|
||||
device_set_desc_copy(dev, adapter_name);
|
||||
@ -458,7 +386,6 @@ igb_probe(device_t dev)
|
||||
}
|
||||
ent++;
|
||||
}
|
||||
|
||||
return (ENXIO);
|
||||
}
|
||||
|
||||
@ -490,7 +417,7 @@ igb_attach(device_t dev)
|
||||
adapter->dev = adapter->osdep.dev = dev;
|
||||
IGB_CORE_LOCK_INIT(adapter, device_get_nameunit(dev));
|
||||
|
||||
/* SYSCTL stuff */
|
||||
/* SYSCTLs */
|
||||
SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev),
|
||||
SYSCTL_CHILDREN(device_get_sysctl_tree(dev)),
|
||||
OID_AUTO, "nvm", CTLTYPE_INT|CTLFLAG_RW, adapter, 0,
|
||||
@ -1030,7 +957,6 @@ igb_mq_start_locked(struct ifnet *ifp, struct tx_ring *txr)
|
||||
adapter->link_active == 0)
|
||||
return (ENETDOWN);
|
||||
|
||||
|
||||
/* Process the queue */
|
||||
while ((next = drbr_peek(ifp, txr->br)) != NULL) {
|
||||
if ((err = igb_xmit(txr, &next)) != 0) {
|
||||
@ -1367,6 +1293,7 @@ igb_init_locked(struct adapter *adapter)
|
||||
return;
|
||||
}
|
||||
igb_initialize_receive_units(adapter);
|
||||
e1000_rx_fifo_flush_82575(&adapter->hw);
|
||||
|
||||
/* Enable VLAN support */
|
||||
if (ifp->if_capenable & IFCAP_VLAN_HWTAGGING)
|
||||
@ -3008,21 +2935,6 @@ igb_init_dmac(struct adapter *adapter, u32 pba)
|
||||
|
||||
E1000_WRITE_REG(hw, E1000_DMACR, reg);
|
||||
|
||||
#ifdef I210_OBFF_SUPPORT
|
||||
/*
|
||||
* Set the OBFF Rx threshold to DMA Coalescing Rx
|
||||
* threshold - 2KB and enable the feature in the
|
||||
* hardware for I210.
|
||||
*/
|
||||
if (hw->mac.type == e1000_i210) {
|
||||
int obff = dmac - 2;
|
||||
reg = E1000_READ_REG(hw, E1000_DOBFFCTL);
|
||||
reg &= ~E1000_DOBFFCTL_OBFFTHR_MASK;
|
||||
reg |= (obff & E1000_DOBFFCTL_OBFFTHR_MASK)
|
||||
| E1000_DOBFFCTL_EXIT_ACT_MASK;
|
||||
E1000_WRITE_REG(hw, E1000_DOBFFCTL, reg);
|
||||
}
|
||||
#endif
|
||||
E1000_WRITE_REG(hw, E1000_DMCRTRH, 0);
|
||||
|
||||
/* Set the interval before transition */
|
||||
@ -5675,7 +5587,7 @@ igb_update_stats_counters(struct adapter *adapter)
|
||||
|
||||
stats = (struct e1000_hw_stats *)adapter->stats;
|
||||
|
||||
if(adapter->hw.phy.media_type == e1000_media_type_copper ||
|
||||
if (adapter->hw.phy.media_type == e1000_media_type_copper ||
|
||||
(E1000_READ_REG(hw, E1000_STATUS) & E1000_STATUS_LU)) {
|
||||
stats->symerrs +=
|
||||
E1000_READ_REG(hw,E1000_SYMERRS);
|
||||
@ -6140,18 +6052,18 @@ igb_add_hw_stats(struct adapter *adapter)
|
||||
"1023-1522 byte frames received");
|
||||
SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_octets_recvd",
|
||||
CTLFLAG_RD, &stats->gorc,
|
||||
"Good Octets Received");
|
||||
SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "total_octets_recvd",
|
||||
CTLFLAG_RD, &stats->tor,
|
||||
"Total Octets Received");
|
||||
"Good Octets Received");
|
||||
SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "total_octets_recvd",
|
||||
CTLFLAG_RD, &stats->tor,
|
||||
"Total Octets Received");
|
||||
|
||||
/* Packet Transmission Stats */
|
||||
SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "good_octets_txd",
|
||||
CTLFLAG_RD, &stats->gotc,
|
||||
"Good Octets Transmitted");
|
||||
SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "total_octets_txd",
|
||||
CTLFLAG_RD, &stats->tot,
|
||||
"Total Octets Transmitted");
|
||||
SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "total_octets_txd",
|
||||
CTLFLAG_RD, &stats->tot,
|
||||
"Total Octets Transmitted");
|
||||
SYSCTL_ADD_QUAD(ctx, stat_list, OID_AUTO, "total_pkts_txd",
|
||||
CTLFLAG_RD, &stats->tpt,
|
||||
"Total Packets Transmitted");
|
||||
@ -6412,7 +6324,7 @@ igb_sysctl_dmac(SYSCTL_HANDLER_ARGS)
|
||||
|
||||
switch (adapter->dmac) {
|
||||
case 0:
|
||||
/*Disabling */
|
||||
/* Disabling */
|
||||
break;
|
||||
case 1: /* Just enable and use default */
|
||||
adapter->dmac = 1000;
|
||||
|
@ -32,11 +32,66 @@
|
||||
******************************************************************************/
|
||||
/*$FreeBSD$*/
|
||||
|
||||
#ifndef _IGB_H_DEFINED_
|
||||
#define _IGB_H_DEFINED_
|
||||
#ifndef _IF_IGB_H_
|
||||
#define _IF_IGB_H_
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
#ifndef IGB_LEGACY_TX
|
||||
#include <sys/buf_ring.h>
|
||||
#endif
|
||||
#include <sys/bus.h>
|
||||
#include <sys/endian.h>
|
||||
#include <sys/kernel.h>
|
||||
#include <sys/kthread.h>
|
||||
#include <sys/malloc.h>
|
||||
#include <sys/mbuf.h>
|
||||
#include <sys/module.h>
|
||||
#include <sys/rman.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/sockio.h>
|
||||
#include <sys/sysctl.h>
|
||||
#include <sys/taskqueue.h>
|
||||
#include <sys/eventhandler.h>
|
||||
#include <sys/pcpu.h>
|
||||
#include <sys/smp.h>
|
||||
#include <machine/smp.h>
|
||||
#include <machine/bus.h>
|
||||
#include <machine/resource.h>
|
||||
|
||||
#include <net/bpf.h>
|
||||
#include <net/ethernet.h>
|
||||
#include <net/if.h>
|
||||
#include <net/if_var.h>
|
||||
#include <net/if_arp.h>
|
||||
#include <net/if_dl.h>
|
||||
#include <net/if_media.h>
|
||||
#ifdef RSS
|
||||
#include <net/rss_config.h>
|
||||
#include <netinet/in_rss.h>
|
||||
#endif
|
||||
|
||||
#include <net/if_types.h>
|
||||
#include <net/if_vlan_var.h>
|
||||
|
||||
#include <netinet/in_systm.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/if_ether.h>
|
||||
#include <netinet/ip.h>
|
||||
#include <netinet/ip6.h>
|
||||
#include <netinet/tcp.h>
|
||||
#include <netinet/tcp_lro.h>
|
||||
#include <netinet/udp.h>
|
||||
|
||||
#include <machine/in_cksum.h>
|
||||
#include <dev/led/led.h>
|
||||
#include <dev/pci/pcivar.h>
|
||||
#include <dev/pci/pcireg.h>
|
||||
|
||||
#include "e1000_api.h"
|
||||
#include "e1000_82575.h"
|
||||
|
||||
/* Tunables */
|
||||
|
||||
/*
|
||||
* IGB_TXD: Maximum number of Transmit Descriptors
|
||||
*
|
||||
@ -168,7 +223,7 @@
|
||||
/*
|
||||
* Micellaneous constants
|
||||
*/
|
||||
#define IGB_VENDOR_ID 0x8086
|
||||
#define IGB_INTEL_VENDOR_ID 0x8086
|
||||
|
||||
#define IGB_JUMBO_PBA 0x00000028
|
||||
#define IGB_DEFAULT_PBA 0x00000030
|
||||
@ -567,6 +622,6 @@ drbr_needs_enqueue(struct ifnet *ifp, struct buf_ring *br)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _IGB_H_DEFINED_ */
|
||||
#endif /* _IF_IGB_H_ */
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user