The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/e1000/

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

Name Size Last modified (GMT) Description
Back Parent directory 2023-01-29 20:14:42
File LICENSE 1599 bytes 2023-01-29 20:14:41
File README 12668 bytes 2023-01-29 20:14:41
C file e1000_80003es2lan.c 43521 bytes 2023-01-29 20:14:41
C file e1000_80003es2lan.h 4230 bytes 2023-01-29 20:14:41
C file e1000_82540.c 20719 bytes 2023-01-29 20:14:41
C file e1000_82541.c 39360 bytes 2023-01-29 20:14:41
C file e1000_82541.h 4101 bytes 2023-01-29 20:14:41
C file e1000_82542.c 16355 bytes 2023-01-29 20:14:41
C file e1000_82543.c 46798 bytes 2023-01-29 20:14:41
C file e1000_82543.h 2616 bytes 2023-01-29 20:14:41
C file e1000_82571.c 57397 bytes 2023-01-29 20:14:41
C file e1000_82571.h 2758 bytes 2023-01-29 20:14:41
C file e1000_82575.c 100339 bytes 2023-01-29 20:14:41
C file e1000_82575.h 21120 bytes 2023-01-29 20:14:41
C file e1000_api.c 37900 bytes 2023-01-29 20:14:41
C file e1000_api.h 7861 bytes 2023-01-29 20:14:41
C file e1000_defines.h 65460 bytes 2023-01-29 20:14:41
C file e1000_hw.h 26544 bytes 2023-01-29 20:14:41
C file e1000_i210.c 25349 bytes 2023-01-29 20:14:41
C file e1000_i210.h 4438 bytes 2023-01-29 20:14:41
C file e1000_ich8lan.c 154793 bytes 2023-01-29 20:14:41
C file e1000_ich8lan.h 13442 bytes 2023-01-29 20:14:41
C file e1000_mac.c 68864 bytes 2023-01-29 20:14:41
C file e1000_mac.h 4976 bytes 2023-01-29 20:14:41
C file e1000_manage.c 16704 bytes 2023-01-29 20:14:41
C file e1000_manage.h 4159 bytes 2023-01-29 20:14:41
C file e1000_mbx.c 20413 bytes 2023-01-29 20:14:41
C file e1000_mbx.h 5366 bytes 2023-01-29 20:14:41
C file e1000_nvm.c 32125 bytes 2023-01-29 20:14:41
C file e1000_nvm.h 3728 bytes 2023-01-29 20:14:41
C file e1000_osdep.c 3186 bytes 2023-01-29 20:14:41
C file e1000_osdep.h 8362 bytes 2023-01-29 20:14:41
C file e1000_phy.c 118699 bytes 2023-01-29 20:14:41
C file e1000_phy.h 14380 bytes 2023-01-29 20:14:41
C file e1000_regs.h 37744 bytes 2023-01-29 20:14:41
C file e1000_vf.c 17019 bytes 2023-01-29 20:14:41
C file e1000_vf.h 8962 bytes 2023-01-29 20:14:41
C file if_em.c 170731 bytes 2023-01-29 20:14:41
C file if_em.h 16719 bytes 2023-01-29 20:14:41
C file if_igb.c 174462 bytes 2023-01-29 20:14:41
C file if_igb.h 17403 bytes 2023-01-29 20:14:41
C file if_lem.c 138817 bytes 2023-01-29 20:14:41
C file if_lem.h 16627 bytes 2023-01-29 20:14:41

    1 $FreeBSD$
    2 FreeBSD* Driver for Intel Network Connection
    3 =============================================
    4 
    5 May 30, 2007
    6 
    7 
    8 Contents
    9 ========
   10 
   11 - Overview
   12 - Identifying Your Adapter
   13 - Building and Installation
   14 - Speed and Duplex Configuration
   15 - Additional Configurations
   16 - Known Limitations
   17 - Support
   18 - License
   19 
   20 
   21 Overview
   22 ========
   23 
   24 This file describes the FreeBSD* driver for Intel Network Connection.
   25 This driver has been developed for use with FreeBSD, Release 7.x.
   26 
   27 For questions related to hardware requirements, refer to the documentation
   28 supplied with your Gigabit adapter. All hardware requirements listed
   29 apply to use with FreeBSD.
   30 
   31 
   32 Identifying Your Adapter
   33 ========================
   34 
   35 For information on how to identify your adapter, go to the Adapter &
   36 Driver ID Guide at:
   37 
   38 http://support.intel.com/support/network/sb/cs-012904.htm
   39 
   40 
   41 For the latest Intel network drivers for FreeBSD, see:
   42 
   43 http://downloadfinder.intel.com/scripts-df-external/support_intel.aspx
   44 
   45 
   46 NOTE: Mobile adapters are not fully supported.
   47 NOTE: The Intel(R) 82562v 10/100 Network Connection only provides 10/100
   48 support.
   49 
   50 Building and Installation
   51 =========================
   52 
   53 NOTE: The driver can be installed as a dynamic loadable kernel module or
   54       compiled into the kernel. You must have kernel sources installed in
   55       order to compile the driver module.
   56 
   57 In the instructions below, x.x.x is the driver version as indicated in the
   58 name of the driver tar file.
   59 
   60 1. Move the base driver tar file to the directory of your choice. For
   61    example, use /home/username/em or /usr/local/src/em.
   62 
   63 2. Untar/unzip the archive:
   64 
   65         tar xzvf em-x.x.x.tar.gz
   66 
   67    This will create an em-x.x.x directory.
   68 
   69 3. To create a loadable module, perform the following steps.
   70    NOTE: To compile the driver into the kernel, go directly to step 4.
   71 
   72         a. To compile the module
   73 
   74                   cd em-x.x.x
   75                   make
   76 
   77         b. To install the compiled module to the system directory:
   78 
   79                   make install
   80 
   81         c. If you want the driver to load automatically when the system is booted:
   82 
   83               1. Edit /boot/loader.conf, and add the following line:
   84 
   85                   if_em_load="YES"
   86 
   87 4. To compile the driver into the kernel, enter:
   88 
   89         cd em-x.x.x/src
   90         cp *.[ch] /usr/src/sys/dev/em
   91 
   92         Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in
   93         /usr/src/sys/i386/conf, and ensure the following line is present:
   94 
   95         device em
   96 
   97         Compile and install the kernel. The system must be rebooted for the
   98         kernel updates to take effect. For additional information on compiling
   99         the kernel, consult the FreeBSD operating system documentation.
  100 
  101 5. To assign an IP address to the interface, enter the following:
  102 
  103         ifconfig em<interface_num> <IP_address>
  104 
  105 6. Verify that the interface works. Enter the following, where <IP_address>
  106    is the IP address for another machine on the same subnet as the interface
  107    that is being tested:
  108 
  109         ping <IP_address>
  110 
  111 7. To configure the IP address to remain after reboot, edit /etc/rc.conf,
  112    and create the appropriate ifconfig_em<interface_num>entry:
  113 
  114         ifconfig_em<interface_num>="<ifconfig_settings>"
  115 
  116    Example usage:
  117 
  118         ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0"
  119 
  120    NOTE: For assistance, see the ifconfig man page.
  121 
  122 
  123 Speed and Duplex Configuration
  124 ==============================
  125 
  126 By default, the adapter auto-negotiates the speed and duplex of the
  127 connection. If there is a specific need, the ifconfig utility can be used to
  128 configure the speed and duplex settings on the adapter. Example usage:
  129 
  130         ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt
  131             full-duplex
  132 
  133    NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is
  134          not specified and you are not running at gigabit speed, the driver
  135          defaults to half-duplex.
  136 
  137 If the interface is currently forced to 100 full duplex, in order to change
  138 to half duplex you must use this command:
  139 
  140         ifconfig em<interface_num> <IP_address> media 100baseTX -mediaopt
  141             full-duplex
  142 
  143 
  144 This driver supports the following media type options:
  145 
  146    autoselect      -  Enables auto-negotiation for speed and duplex.
  147 
  148    10baseT/UTP     -  Sets speed to 10 Mbps. Use the ifconfig mediaopt
  149                       option to select full-duplex mode.
  150 
  151    100baseTX       -  Sets speed to 100 Mbps. Use the ifconfig mediaopt
  152                       option to select full-duplex mode.
  153 
  154    1000baseTX      -  Sets speed to 1000 Mbps. In this case, the driver
  155                       supports only full-duplex mode.
  156 
  157    1000baseSX      -  Sets speed to 1000 Mbps. In this case, the driver
  158                       supports only full-duplex mode.
  159 
  160 For more information on the ifconfig utility, see the ifconfig man page.
  161 
  162 
  163 Additional Configurations
  164 =========================
  165 
  166 The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on
  167 all but the 82542-based adapters.  For specific adapters, refer to the
  168 Identifying Your Adapter section.
  169 
  170   Jumbo Frames
  171   ------------
  172   To enable Jumbo Frames, use the ifconfig utility to set the Maximum
  173   Transport Unit (MTU) frame size above its default of 1500 bytes.
  174 
  175   The Jumbo Frames MTU range for Intel Adapters is 1500 to 16110. To modify
  176   the setting, enter the following:
  177 
  178         ifconfig em<interface_num> <hostname or IP address> mtu 9000
  179 
  180   To confirm the MTU used between two specific devices, use:
  181 
  182         route get <destination_IP_address>
  183 
  184   Notes:
  185 
  186   - Only enable Jumbo Frames if your network infrastructure supports them.
  187 
  188   - To enable Jumbo Frames, increase the MTU size on the interface beyond
  189     1500.
  190 
  191   - The Jumbo Frames setting on the switch must be set to at least 22 bytes
  192     larger than that of the MTU.
  193 
  194   - The maximum MTU setting for Jumbo Frames is 16110.  This value coincides
  195     with the maximum Jumbo Frames size of 16128.
  196 
  197   - Some Intel gigabit adapters that support Jumbo Frames have a frame size
  198     limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes.
  199     The adapters with this limitation are based on the Intel(R) 82571EB,
  200     82572EI, 82573L, 82566, 82562, and 80003ES2LAN controller.  These
  201     correspond to the following product names:
  202      Intel(R) PRO/1000 PT Server Adapter
  203      Intel(R) PRO/1000 PT Desktop Adapter
  204      Intel(R) PRO/1000 PT Network Connection
  205      Intel(R) PRO/1000 PT Dual Port Server Adapter
  206      Intel(R) PRO/1000 PT Dual Port Network Connection
  207      Intel(R) PRO/1000 PT Quad Port Server Adapter
  208      Intel(R) PRO/1000 PF Quad Port Server Adapter
  209      Intel(R) PRO/1000 PF Server Adapter
  210      Intel(R) PRO/1000 PF Network Connection
  211      Intel(R) PRO/1000 PF Dual Port Server Adapter
  212      Intel(R) PRO/1000 PB Server Connection
  213      Intel(R) PRO/1000 PL Network Connection
  214      Intel(R) PRO/1000 EB Network Connection with I/O Acceleration
  215      Intel(R) PRO/1000 EB Backplane Connection with I/O Acceleration
  216      Intel(R) 82566DM-2 Gigabit Network Connection
  217 
  218   - Adapters based on the Intel(R) 82542 and 82573V/E controller do not
  219     support Jumbo Frames. These correspond to the following product names:
  220      Intel(R) PRO/1000 Gigabit Server Adapter
  221      Intel(R) PRO/1000 PM Network Connection
  222 
  223   - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or
  224     loss of link.
  225 
  226   - The following adapters do not support Jumbo Frames:
  227     Intel(R) 82562V 10/100 Network Connection
  228     Intel(R) 82566DM Gigabit Network Connection
  229     Intel(R) 82566DC Gigabit Network Connection
  230     Intel(R) 82566MM Gigabit Network Connection
  231     Intel(R) 82566MC Gigabit Network Connection
  232     Intel(R) 82562GT 10/100 Network Connection
  233     Intel(R) 82562G 10/100 Network Connection
  234     Intel(R) 82566DC-2 Gigabit Network Connection
  235     Intel(R) 82562V-2 10/100 Network Connection
  236     Intel(R) 82562G-2 10/100 Network Connection
  237     Intel(R) 82562GT-2 10/100 Network Connection
  238 
  239   VLANs
  240   -----
  241   To create a new VLAN interface:
  242 
  243         ifconfig <vlan_name> create
  244 
  245   To associate the VLAN interface with a physical interface and
  246   assign a VLAN ID, IP address, and netmask:
  247 
  248         ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan
  249            <vlan_id> vlandev <physical_interface>
  250 
  251   Example:
  252 
  253         ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan 10 vlandev em0
  254 
  255   In this example, all packets will be marked on egress with 802.1Q VLAN
  256   tags, specifying a VLAN ID of 10.
  257 
  258   To remove a VLAN interface:
  259 
  260   Intel Network Connection        ifconfig <vlan_name> destroy
  261 
  262 
  263   Polling
  264   -------
  265 
  266   To enable polling in the driver, add the following options to the kernel
  267   configuration, and then recompile the kernel:
  268 
  269         options DEVICE_POLLING
  270         options HZ=1000
  271 
  272   At runtime use:
  273         ifconfig emX polling (to turn polling on)
  274   and:
  275         ifconfig emX -polling  (to turn it off)
  276 
  277 
  278   Checksum Offload
  279   ----------------
  280   Checksum offloading is not supported on 82542 Gigabit adapters.
  281 
  282   Checksum offloading supports both TCP and UDP packets and is
  283   supported for both transmit and receive.
  284 
  285   Checksum offloading can be enabled or disabled using ifconfig.
  286   Both transmit and receive offloading will be either enabled or
  287   disabled together. You cannot enable/disable one without the other.
  288 
  289   To enable checksum offloading:
  290 
  291          ifconfig <interface_num> rxcsum
  292 
  293   To disable checksum offloading:
  294 
  295          ifconfig <interface_num> -rxcsum
  296 
  297   To confirm the current setting:
  298 
  299          ifconfig <interface_num>
  300 
  301   Look for the presence or absence of the following line:
  302 
  303          options=3 <RXCSUM,TXCSUM>
  304 
  305   See the ifconfig man page for further information.
  306 
  307 
  308   TSO
  309   ---
  310   The FreeBSD driver offers support for TSO (TCP Segmentation Offload).
  311 
  312   You can enable/disable it in two ways/places:
  313 
  314         -  sysctl net.inet.tcp.tso=0    (or 1 to enable it)
  315 
  316   Doing this disables TSO in the stack and will affect all adapters.
  317 
  318         -  ifconfig emX -tso
  319 
  320   Doing this will disable TSO only for this adapter.
  321 
  322   To enable:
  323 
  324         -  ifconfig emX tso
  325 
  326   NOTES: By default only PCI-Express adapters are ENABLED to do TSO. Others
  327   can be enabled by the user at their own risk
  328   TSO is not supported on 82547 and 82544-based adapters, as well as older adapters.
  329 
  330 
  331 Known Limitations
  332 =================
  333 
  334   Detected Tx Unit Hang in Quad Port Adapters
  335   -------------------------------------------
  336 
  337   In some cases ports 3 and 4 wont pass traffic. Ports 1 and 2 don't show
  338   any errors and will pass traffic.
  339 
  340   This issue MAY be resolved by updating to the latest BIOS. You can
  341   check your system's BIOS by downloading the Linux Firmware Developer Kit
  342   that can be obtained at http://www.linuxfirmwarekit.org/
  343 
  344 
  345   There are known performance issues with this driver when running UDP traffic
  346   with Jumbo Frames.
  347   ----------------------------------------------------------------------------
  348 
  349   82541/82547 can't link or is slow to link with some link partners
  350   -----------------------------------------------------------------
  351 
  352   There is a known compatibility issue where time to link is slow or link is not
  353   established between 82541/82547 controllers and some switches.  Known switches
  354   include:
  355         Planex FXG-08TE
  356         I-O Data ETG-SH8
  357         Netgear GS105v3
  358 
  359   The driver can be compiled with the following changes:
  360 
  361   Edit ./em.x.x.x/src/if_em.h to change the #define EM_MASTER_SLAVE
  362   For example, change from:
  363 
  364       #define EM_MASTER_SLAVE   e1000_ms_hw_default
  365   to:
  366       #define EM_MASTER_SLAVE   2
  367 
  368   Use one of the following options:
  369       1 = Master mode
  370       2 = Slave mode
  371       3 = Auto master/slave
  372   Setting 2 is recommended.
  373 
  374   Recompile the module:
  375           a. To compile the module
  376                 cd em-x.x.x
  377                 make clean
  378                 make
  379 
  380    b. To install the compiled module in system directory:
  381                 make install
  382 
  383 
  384 Support
  385 =======
  386 
  387 For general information and support, go to the Intel support website at:
  388 
  389         http://support.intel.com
  390 
  391 If an issue is identified, support is through email only at:
  392 freebsd@intel.com
  393 
  394 
  395 License
  396 =======
  397 
  398 This software program is released under the terms of a license agreement
  399 between you ('Licensee') and Intel. Do not use or load this software or any
  400 associated materials (collectively, the 'Software') until you have carefully
  401 read the full terms and conditions of the LICENSE located in this software
  402 package. By loading or using the Software, you agree to the terms of this
  403 Agreement. If you do not agree with the terms of this Agreement, do not
  404 install or use the Software.
  405 
  406 * Other names and brands may be claimed as the property of others.

[ source navigation ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.