FreeBSD kernel E1000 device code
if_em.h File Reference
#include "opt_ddb.h"
#include "opt_inet.h"
#include "opt_inet6.h"
#include "opt_rss.h"
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/buf_ring.h>
#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/smp.h>
#include <sys/socket.h>
#include <sys/sockio.h>
#include <sys/sysctl.h>
#include <sys/taskqueue.h>
#include <sys/eventhandler.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>
#include <net/iflib.h>
#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/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_82571.h"
#include "ifdi_if.h"
Include dependency graph for if_em.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  em_int_delay_info
 
struct  tx_ring
 
struct  rx_ring
 
struct  em_tx_queue
 
struct  em_rx_queue
 
struct  e1000_softc
 
struct  _em_vendor_info_t
 

Macros

#define EM_MIN_TXD   128
 
#define EM_MAX_TXD   4096
 
#define EM_DEFAULT_TXD   1024
 
#define EM_DEFAULT_MULTI_TXD   4096
 
#define IGB_MAX_TXD   4096
 
#define EM_MIN_RXD   128
 
#define EM_MAX_RXD   4096
 
#define EM_DEFAULT_RXD   1024
 
#define EM_DEFAULT_MULTI_RXD   4096
 
#define IGB_MAX_RXD   4096
 
#define EM_TIDV   64
 
#define EM_TADV   64
 
#define EM_RDTR   0
 
#define EM_RADV   64
 
#define DO_AUTO_NEG   1
 
#define WAIT_FOR_AUTO_NEG_DEFAULT   0
 
#define AUTONEG_ADV_DEFAULT
 
#define AUTO_ALL_MODES   0
 
#define EM_MASTER_SLAVE   e1000_ms_hw_default
 
#define EM_VENDOR_ID   0x8086
 
#define EM_FLASH   0x0014
 
#define EM_JUMBO_PBA   0x00000028
 
#define EM_DEFAULT_PBA   0x00000030
 
#define EM_SMARTSPEED_DOWNSHIFT   3
 
#define EM_SMARTSPEED_MAX   15
 
#define EM_MAX_LOOP   10
 
#define MAX_NUM_MULTICAST_ADDRESSES   128
 
#define PCI_ANY_ID   (~0U)
 
#define ETHER_ALIGN   2
 
#define EM_FC_PAUSE_TIME   0x0680
 
#define EM_EEPROM_APME   0x400;
 
#define EM_82544_APME   0x0004;
 
#define IGB_MEDIA_RESET   (1 << 0)
 
#define IGB_INTS_PER_SEC   8000
 
#define IGB_DEFAULT_ITR   ((1000000/IGB_INTS_PER_SEC) << 2)
 
#define IGB_LINK_ITR   2000
 
#define I210_LINK_DELAY   1000
 
#define IGB_TXPBSIZE   20408
 
#define IGB_HDR_BUF   128
 
#define IGB_PKTTYPE_MASK   0x0000FFF0
 
#define IGB_DMCTLX_DCFLUSH_DIS   0x80000000 /* Disable DMA Coalesce Flush */
 
#define EM_TX_IDLE   0x00000000
 
#define EM_TX_BUSY   0x00000001
 
#define EM_TX_HUNG   0x80000000
 
#define EM_TX_MAXTRIES   10
 
#define PCICFG_DESC_RING_STATUS   0xe4
 
#define FLUSH_DESC_REQUIRED   0x100
 
#define IGB_RX_PTHRESH
 
#define IGB_RX_HTHRESH   8
 
#define IGB_RX_WTHRESH
 
#define IGB_TX_PTHRESH   ((hw->mac.type == e1000_i354) ? 20 : 8)
 
#define IGB_TX_HTHRESH   1
 
#define IGB_TX_WTHRESH
 
#define EM_DBA_ALIGN   128
 
#define TARC_COMPENSATION_MODE   (1 << 7) /* Compensation Mode */
 
#define TARC_SPEED_MODE_BIT   (1 << 21) /* On PCI-E MACs only */
 
#define TARC_MQ_FIX
 
#define TARC_ERRATA_BIT   (1 << 26) /* Note from errata on 82574 */
 
#define EM_BAR_TYPE(v)   ((v) & EM_BAR_TYPE_MASK)
 
#define EM_BAR_TYPE_MASK   0x00000001
 
#define EM_BAR_TYPE_MMEM   0x00000000
 
#define EM_BAR_TYPE_IO   0x00000001
 
#define EM_BAR_TYPE_FLASH   0x0014
 
#define EM_BAR_MEM_TYPE(v)   ((v) & EM_BAR_MEM_TYPE_MASK)
 
#define EM_BAR_MEM_TYPE_MASK   0x00000006
 
#define EM_BAR_MEM_TYPE_32BIT   0x00000000
 
#define EM_BAR_MEM_TYPE_64BIT   0x00000004
 
#define DEBUG_INIT   0
 
#define DEBUG_IOCTL   0
 
#define DEBUG_HW   0
 
#define INIT_DEBUGOUT(S)   if (DEBUG_INIT) printf(S "\n")
 
#define INIT_DEBUGOUT1(S, A)   if (DEBUG_INIT) printf(S "\n", A)
 
#define INIT_DEBUGOUT2(S, A, B)   if (DEBUG_INIT) printf(S "\n", A, B)
 
#define IOCTL_DEBUGOUT(S)   if (DEBUG_IOCTL) printf(S "\n")
 
#define IOCTL_DEBUGOUT1(S, A)   if (DEBUG_IOCTL) printf(S "\n", A)
 
#define IOCTL_DEBUGOUT2(S, A, B)   if (DEBUG_IOCTL) printf(S "\n", A, B)
 
#define HW_DEBUGOUT(S)   if (DEBUG_HW) printf(S "\n")
 
#define HW_DEBUGOUT1(S, A)   if (DEBUG_HW) printf(S "\n", A)
 
#define HW_DEBUGOUT2(S, A, B)   if (DEBUG_HW) printf(S "\n", A, B)
 
#define EM_MAX_SCATTER   40
 
#define EM_VFTA_SIZE   128
 
#define EM_TSO_SIZE   65535
 
#define EM_TSO_SEG_SIZE   4096 /* Max dma segment size */
 
#define ETH_ZLEN   60
 
#define EM_CSUM_OFFLOAD   (CSUM_IP | CSUM_IP_UDP | CSUM_IP_TCP) /* Offload bits in mbuf flag */
 
#define IGB_CSUM_OFFLOAD
 
#define IGB_PKTTYPE_MASK   0x0000FFF0
 
#define IGB_DMCTLX_DCFLUSH_DIS   0x80000000 /* Disable DMA Coalesce Flush */
 
#define EM_EIAC   0x000DC
 
#define EM_NVM_PCIE_CTRL   0x1B
 
#define EM_NVM_MSIX_N_MASK   (0x7 << EM_NVM_MSIX_N_SHIFT)
 
#define EM_NVM_MSIX_N_SHIFT   7
 
#define tx_num_queues   shared->isc_ntxqsets
 
#define rx_num_queues   shared->isc_nrxqsets
 
#define intr_type   shared->isc_intr
 
#define EM_RSSRK_SIZE   4
 
#define EM_RSSRK_VAL(key, i)
 

Typedefs

typedef struct _em_vendor_info_t em_vendor_info_t
 

Functions

void em_dump_rs (struct e1000_softc *)
 

Macro Definition Documentation

◆ AUTO_ALL_MODES

#define AUTO_ALL_MODES   0

Definition at line 220 of file if_em.h.

◆ AUTONEG_ADV_DEFAULT

#define AUTONEG_ADV_DEFAULT
Value:
ADVERTISE_100_HALF | ADVERTISE_100_FULL | \
ADVERTISE_1000_FULL)
#define ADVERTISE_10_FULL
#define ADVERTISE_10_HALF
#define ADVERTISE_100_FULL

Definition at line 216 of file if_em.h.

◆ DEBUG_HW

#define DEBUG_HW   0

Definition at line 319 of file if_em.h.

◆ DEBUG_INIT

#define DEBUG_INIT   0

Definition at line 317 of file if_em.h.

◆ DEBUG_IOCTL

#define DEBUG_IOCTL   0

Definition at line 318 of file if_em.h.

◆ DO_AUTO_NEG

#define DO_AUTO_NEG   1

Definition at line 204 of file if_em.h.

◆ EM_82544_APME

#define EM_82544_APME   0x0004;

Definition at line 242 of file if_em.h.

◆ EM_BAR_MEM_TYPE

#define EM_BAR_MEM_TYPE (   v)    ((v) & EM_BAR_MEM_TYPE_MASK)

Definition at line 311 of file if_em.h.

◆ EM_BAR_MEM_TYPE_32BIT

#define EM_BAR_MEM_TYPE_32BIT   0x00000000

Definition at line 313 of file if_em.h.

◆ EM_BAR_MEM_TYPE_64BIT

#define EM_BAR_MEM_TYPE_64BIT   0x00000004

Definition at line 314 of file if_em.h.

◆ EM_BAR_MEM_TYPE_MASK

#define EM_BAR_MEM_TYPE_MASK   0x00000006

Definition at line 312 of file if_em.h.

◆ EM_BAR_TYPE

#define EM_BAR_TYPE (   v)    ((v) & EM_BAR_TYPE_MASK)

Definition at line 306 of file if_em.h.

◆ EM_BAR_TYPE_FLASH

#define EM_BAR_TYPE_FLASH   0x0014

Definition at line 310 of file if_em.h.

◆ EM_BAR_TYPE_IO

#define EM_BAR_TYPE_IO   0x00000001

Definition at line 309 of file if_em.h.

◆ EM_BAR_TYPE_MASK

#define EM_BAR_TYPE_MASK   0x00000001

Definition at line 307 of file if_em.h.

◆ EM_BAR_TYPE_MMEM

#define EM_BAR_TYPE_MMEM   0x00000000

Definition at line 308 of file if_em.h.

◆ EM_CSUM_OFFLOAD

#define EM_CSUM_OFFLOAD   (CSUM_IP | CSUM_IP_UDP | CSUM_IP_TCP) /* Offload bits in mbuf flag */

Definition at line 336 of file if_em.h.

◆ EM_DBA_ALIGN

#define EM_DBA_ALIGN   128

Definition at line 293 of file if_em.h.

◆ EM_DEFAULT_MULTI_RXD

#define EM_DEFAULT_MULTI_RXD   4096

Definition at line 136 of file if_em.h.

◆ EM_DEFAULT_MULTI_TXD

#define EM_DEFAULT_MULTI_TXD   4096

Definition at line 117 of file if_em.h.

◆ EM_DEFAULT_PBA

#define EM_DEFAULT_PBA   0x00000030

Definition at line 232 of file if_em.h.

◆ EM_DEFAULT_RXD

#define EM_DEFAULT_RXD   1024

Definition at line 135 of file if_em.h.

◆ EM_DEFAULT_TXD

#define EM_DEFAULT_TXD   1024

Definition at line 116 of file if_em.h.

◆ EM_EEPROM_APME

#define EM_EEPROM_APME   0x400;

Definition at line 241 of file if_em.h.

◆ EM_EIAC

#define EM_EIAC   0x000DC

Definition at line 350 of file if_em.h.

◆ EM_FC_PAUSE_TIME

#define EM_FC_PAUSE_TIME   0x0680

Definition at line 240 of file if_em.h.

◆ EM_FLASH

#define EM_FLASH   0x0014

Definition at line 229 of file if_em.h.

◆ EM_JUMBO_PBA

#define EM_JUMBO_PBA   0x00000028

Definition at line 231 of file if_em.h.

◆ EM_MASTER_SLAVE

#define EM_MASTER_SLAVE   e1000_ms_hw_default

Definition at line 223 of file if_em.h.

◆ EM_MAX_LOOP

#define EM_MAX_LOOP   10

Definition at line 235 of file if_em.h.

◆ EM_MAX_RXD

#define EM_MAX_RXD   4096

Definition at line 134 of file if_em.h.

◆ EM_MAX_SCATTER

#define EM_MAX_SCATTER   40

Definition at line 331 of file if_em.h.

◆ EM_MAX_TXD

#define EM_MAX_TXD   4096

Definition at line 115 of file if_em.h.

◆ EM_MIN_RXD

#define EM_MIN_RXD   128

Definition at line 133 of file if_em.h.

◆ EM_MIN_TXD

#define EM_MIN_TXD   128

Definition at line 114 of file if_em.h.

◆ EM_NVM_MSIX_N_MASK

#define EM_NVM_MSIX_N_MASK   (0x7 << EM_NVM_MSIX_N_SHIFT)

Definition at line 357 of file if_em.h.

◆ EM_NVM_MSIX_N_SHIFT

#define EM_NVM_MSIX_N_SHIFT   7

Definition at line 358 of file if_em.h.

◆ EM_NVM_PCIE_CTRL

#define EM_NVM_PCIE_CTRL   0x1B

Definition at line 356 of file if_em.h.

◆ EM_RADV

#define EM_RADV   64

Definition at line 197 of file if_em.h.

◆ EM_RDTR

#define EM_RDTR   0

Definition at line 184 of file if_em.h.

◆ EM_RSSRK_SIZE

#define EM_RSSRK_SIZE   4

Definition at line 548 of file if_em.h.

◆ EM_RSSRK_VAL

#define EM_RSSRK_VAL (   key,
 
)
Value:
(key[(i) * EM_RSSRK_SIZE] | \
key[(i) * EM_RSSRK_SIZE + 1] << 8 | \
key[(i) * EM_RSSRK_SIZE + 2] << 16 | \
key[(i) * EM_RSSRK_SIZE + 3] << 24)
#define EM_RSSRK_SIZE
Definition: if_em.h:548

Definition at line 549 of file if_em.h.

◆ EM_SMARTSPEED_DOWNSHIFT

#define EM_SMARTSPEED_DOWNSHIFT   3

Definition at line 233 of file if_em.h.

◆ EM_SMARTSPEED_MAX

#define EM_SMARTSPEED_MAX   15

Definition at line 234 of file if_em.h.

◆ EM_TADV

#define EM_TADV   64

Definition at line 163 of file if_em.h.

◆ EM_TIDV

#define EM_TIDV   64

Definition at line 149 of file if_em.h.

◆ EM_TSO_SEG_SIZE

#define EM_TSO_SEG_SIZE   4096 /* Max dma segment size */

Definition at line 334 of file if_em.h.

◆ EM_TSO_SIZE

#define EM_TSO_SIZE   65535

Definition at line 333 of file if_em.h.

◆ EM_TX_BUSY

#define EM_TX_BUSY   0x00000001

Definition at line 269 of file if_em.h.

◆ EM_TX_HUNG

#define EM_TX_HUNG   0x80000000

Definition at line 270 of file if_em.h.

◆ EM_TX_IDLE

#define EM_TX_IDLE   0x00000000

Definition at line 268 of file if_em.h.

◆ EM_TX_MAXTRIES

#define EM_TX_MAXTRIES   10

Definition at line 271 of file if_em.h.

◆ EM_VENDOR_ID

#define EM_VENDOR_ID   0x8086

Definition at line 228 of file if_em.h.

◆ EM_VFTA_SIZE

#define EM_VFTA_SIZE   128

Definition at line 332 of file if_em.h.

◆ ETH_ZLEN

#define ETH_ZLEN   60

Definition at line 335 of file if_em.h.

◆ ETHER_ALIGN

#define ETHER_ALIGN   2

Definition at line 239 of file if_em.h.

◆ FLUSH_DESC_REQUIRED

#define FLUSH_DESC_REQUIRED   0x100

Definition at line 274 of file if_em.h.

◆ HW_DEBUGOUT

#define HW_DEBUGOUT (   S)    if (DEBUG_HW) printf(S "\n")

Definition at line 327 of file if_em.h.

◆ HW_DEBUGOUT1

#define HW_DEBUGOUT1 (   S,
 
)    if (DEBUG_HW) printf(S "\n", A)

Definition at line 328 of file if_em.h.

◆ HW_DEBUGOUT2

#define HW_DEBUGOUT2 (   S,
  A,
 
)    if (DEBUG_HW) printf(S "\n", A, B)

Definition at line 329 of file if_em.h.

◆ I210_LINK_DELAY

#define I210_LINK_DELAY   1000

Definition at line 252 of file if_em.h.

◆ IGB_CSUM_OFFLOAD

#define IGB_CSUM_OFFLOAD
Value:
(CSUM_IP | CSUM_IP_UDP | CSUM_IP_TCP | \
CSUM_IP_SCTP | CSUM_IP6_UDP | CSUM_IP6_TCP | \
CSUM_IP6_SCTP) /* Offload bits in mbuf flag */

Definition at line 337 of file if_em.h.

◆ IGB_DEFAULT_ITR

#define IGB_DEFAULT_ITR   ((1000000/IGB_INTS_PER_SEC) << 2)

Definition at line 249 of file if_em.h.

◆ IGB_DMCTLX_DCFLUSH_DIS [1/2]

#define IGB_DMCTLX_DCFLUSH_DIS   0x80000000 /* Disable DMA Coalesce Flush */

Definition at line 342 of file if_em.h.

◆ IGB_DMCTLX_DCFLUSH_DIS [2/2]

#define IGB_DMCTLX_DCFLUSH_DIS   0x80000000 /* Disable DMA Coalesce Flush */

Definition at line 342 of file if_em.h.

◆ IGB_HDR_BUF

#define IGB_HDR_BUF   128

Definition at line 255 of file if_em.h.

◆ IGB_INTS_PER_SEC

#define IGB_INTS_PER_SEC   8000

Definition at line 248 of file if_em.h.

◆ IGB_LINK_ITR

#define IGB_LINK_ITR   2000

Definition at line 251 of file if_em.h.

◆ IGB_MAX_RXD

#define IGB_MAX_RXD   4096

Definition at line 137 of file if_em.h.

◆ IGB_MAX_TXD

#define IGB_MAX_TXD   4096

Definition at line 118 of file if_em.h.

◆ IGB_MEDIA_RESET

#define IGB_MEDIA_RESET   (1 << 0)

Definition at line 245 of file if_em.h.

◆ IGB_PKTTYPE_MASK [1/2]

#define IGB_PKTTYPE_MASK   0x0000FFF0

Definition at line 341 of file if_em.h.

◆ IGB_PKTTYPE_MASK [2/2]

#define IGB_PKTTYPE_MASK   0x0000FFF0

Definition at line 341 of file if_em.h.

◆ IGB_RX_HTHRESH

#define IGB_RX_HTHRESH   8

Definition at line 279 of file if_em.h.

◆ IGB_RX_PTHRESH

#define IGB_RX_PTHRESH
Value:
((hw->mac.type == e1000_i354) ? 12 : \
((hw->mac.type <= e1000_82576) ? 16 : 8))
@ e1000_i354
Definition: e1000_hw.h:273
@ e1000_82576
Definition: e1000_hw.h:270

Definition at line 277 of file if_em.h.

◆ IGB_RX_WTHRESH

#define IGB_RX_WTHRESH
Value:
((hw->mac.type == e1000_82576 && \
(sc->intr_type == IFLIB_INTR_MSIX)) ? 1 : 4)

Definition at line 280 of file if_em.h.

◆ IGB_TX_HTHRESH

#define IGB_TX_HTHRESH   1

Definition at line 284 of file if_em.h.

◆ IGB_TX_PTHRESH

#define IGB_TX_PTHRESH   ((hw->mac.type == e1000_i354) ? 20 : 8)

Definition at line 283 of file if_em.h.

◆ IGB_TX_WTHRESH

#define IGB_TX_WTHRESH
Value:
((hw->mac.type != e1000_82575 && \
sc->intr_type == IFLIB_INTR_MSIX) ? 1 : 16)
@ e1000_82575
Definition: e1000_hw.h:269

Definition at line 285 of file if_em.h.

◆ IGB_TXPBSIZE

#define IGB_TXPBSIZE   20408

Definition at line 254 of file if_em.h.

◆ INIT_DEBUGOUT

#define INIT_DEBUGOUT (   S)    if (DEBUG_INIT) printf(S "\n")

Definition at line 321 of file if_em.h.

◆ INIT_DEBUGOUT1

#define INIT_DEBUGOUT1 (   S,
 
)    if (DEBUG_INIT) printf(S "\n", A)

Definition at line 322 of file if_em.h.

◆ INIT_DEBUGOUT2

#define INIT_DEBUGOUT2 (   S,
  A,
 
)    if (DEBUG_INIT) printf(S "\n", A, B)

Definition at line 323 of file if_em.h.

◆ intr_type

#define intr_type   shared->isc_intr

Definition at line 448 of file if_em.h.

◆ IOCTL_DEBUGOUT

#define IOCTL_DEBUGOUT (   S)    if (DEBUG_IOCTL) printf(S "\n")

Definition at line 324 of file if_em.h.

◆ IOCTL_DEBUGOUT1

#define IOCTL_DEBUGOUT1 (   S,
 
)    if (DEBUG_IOCTL) printf(S "\n", A)

Definition at line 325 of file if_em.h.

◆ IOCTL_DEBUGOUT2

#define IOCTL_DEBUGOUT2 (   S,
  A,
 
)    if (DEBUG_IOCTL) printf(S "\n", A, B)

Definition at line 326 of file if_em.h.

◆ MAX_NUM_MULTICAST_ADDRESSES

#define MAX_NUM_MULTICAST_ADDRESSES   128

Definition at line 237 of file if_em.h.

◆ PCI_ANY_ID

#define PCI_ANY_ID   (~0U)

Definition at line 238 of file if_em.h.

◆ PCICFG_DESC_RING_STATUS

#define PCICFG_DESC_RING_STATUS   0xe4

Definition at line 273 of file if_em.h.

◆ rx_num_queues

#define rx_num_queues   shared->isc_nrxqsets

Definition at line 447 of file if_em.h.

◆ TARC_COMPENSATION_MODE

#define TARC_COMPENSATION_MODE   (1 << 7) /* Compensation Mode */

Definition at line 298 of file if_em.h.

◆ TARC_ERRATA_BIT

#define TARC_ERRATA_BIT   (1 << 26) /* Note from errata on 82574 */

Definition at line 303 of file if_em.h.

◆ TARC_MQ_FIX

#define TARC_MQ_FIX
Value:
(1 << 23) | \
(1 << 24) | \
(1 << 25) /* Handle errata in MQ mode */

Definition at line 300 of file if_em.h.

◆ TARC_SPEED_MODE_BIT

#define TARC_SPEED_MODE_BIT   (1 << 21) /* On PCI-E MACs only */

Definition at line 299 of file if_em.h.

◆ tx_num_queues

#define tx_num_queues   shared->isc_ntxqsets

Definition at line 446 of file if_em.h.

◆ WAIT_FOR_AUTO_NEG_DEFAULT

#define WAIT_FOR_AUTO_NEG_DEFAULT   0

Definition at line 212 of file if_em.h.

Typedef Documentation

◆ em_vendor_info_t

Function Documentation

◆ em_dump_rs()