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/em/

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:39:12
File LICENSE 1548 bytes 2023-01-29 20:39:11
File README 11452 bytes 2023-01-29 20:39:11
C file e1000_80003es2lan.c 39605 bytes 2023-01-29 20:39:11
C file e1000_80003es2lan.h 4498 bytes 2023-01-29 20:39:11
C file e1000_82540.c 19688 bytes 2023-01-29 20:39:11
C file e1000_82541.c 39373 bytes 2023-01-29 20:39:11
C file e1000_82541.h 4036 bytes 2023-01-29 20:39:11
C file e1000_82542.c 15641 bytes 2023-01-29 20:39:11
C file e1000_82543.c 48469 bytes 2023-01-29 20:39:11
C file e1000_82543.h 2217 bytes 2023-01-29 20:39:11
C file e1000_82571.c 41166 bytes 2023-01-29 20:39:11
C file e1000_82571.h 2141 bytes 2023-01-29 20:39:11
C file e1000_82575.c 43204 bytes 2023-01-29 20:39:11
C file e1000_82575.h 13031 bytes 2023-01-29 20:39:11
C file e1000_api.c 33684 bytes 2023-01-29 20:39:11
C file e1000_api.h 7786 bytes 2023-01-29 20:39:11
C file e1000_defines.h 71390 bytes 2023-01-29 20:39:11
C file e1000_hw.h 19101 bytes 2023-01-29 20:39:11
C file e1000_ich8lan.c 73895 bytes 2023-01-29 20:39:11
C file e1000_ich8lan.h 4695 bytes 2023-01-29 20:39:11
C file e1000_mac.c 61065 bytes 2023-01-29 20:39:11
C file e1000_mac.h 4838 bytes 2023-01-29 20:39:11
C file e1000_manage.c 10951 bytes 2023-01-29 20:39:11
C file e1000_manage.h 3814 bytes 2023-01-29 20:39:11
C file e1000_nvm.c 23149 bytes 2023-01-29 20:39:11
C file e1000_nvm.h 3140 bytes 2023-01-29 20:39:11
C file e1000_osdep.h 7355 bytes 2023-01-29 20:39:11
C file e1000_phy.c 57712 bytes 2023-01-29 20:39:11
C file e1000_phy.h 8043 bytes 2023-01-29 20:39:11
C file e1000_regs.h 19792 bytes 2023-01-29 20:39:11
C file if_em.c 156559 bytes 2023-01-29 20:39:11
C file if_em.h 15134 bytes 2023-01-29 20:39:11

    1 $FreeBSD$
    2 FreeBSD* Driver for the Intel(R) PRO/1000 Family of Adapters
    3 ============================================================
    4 
    5 May 2, 2006
    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 the Intel(R) PRO/1000 Family of
   25 Adapters. This driver has been developed for use with FreeBSD, Release 6.x.
   26 
   27 For questions related to hardware requirements, refer to the documentation
   28 supplied with your Intel PRO/1000 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 xvfz 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 in 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:
   88 
   89         cd em-x.x.x/src
   90 
   91         cp if_em* /usr/src/sys/dev/em
   92 
   93         cp Makefile.kernel /usr/src/sys/modules/em/Makefile
   94 
   95    Edit the /usr/src/sys/conf/files file, and add the following lines only if
   96    they don't already exist:
   97 
   98         dev/em/if_em.c optional em
   99 
  100         dev/em/if_em_hw.c optional em
  101 
  102    Remove the following lines from the /usr/src/sys/conf/files file,
  103    if they exist:
  104 
  105         dev/em/if_em_fxhw.c optional em
  106         dev/em/if_em_phy.c optional em
  107 
  108    Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in
  109    /usr/src/sys/i386/conf, and ensure the following line is present:
  110 
  111         device em
  112 
  113    Compile and install the kernel. The system must be rebooted for the kernel
  114    updates to take effect. For additional information on compiling the
  115    kernel, consult the FreeBSD operating system documentation.
  116 
  117 5. To assign an IP address to the interface, enter the following:
  118 
  119         ifconfig em<interface_num> <IP_address>
  120 
  121 6. Verify that the interface works. Enter the following, where <IP_address>
  122    is the IP address for another machine on the same subnet as the interface
  123    that is being tested:
  124 
  125         ping <IP_address>
  126 
  127 7. To configure the IP address to remain after reboot, edit /etc/rc.conf,
  128    and create the appropriate ifconfig_em<interface_num>entry:
  129 
  130         ifconfig_em<interface_num>="<ifconfig_settings>"
  131 
  132    Example usage:
  133 
  134         ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0"
  135 
  136    NOTE: For assistance, see the ifconfig man page.
  137 
  138 
  139 Speed and Duplex Configuration
  140 ==============================
  141 
  142 By default, the adapter auto-negotiates the speed and duplex of the
  143 connection. If there is a specific need, the ifconfig utility can be used to
  144 configure the speed and duplex settings on the adapter. Example usage:
  145 
  146         ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt
  147             full-duplex
  148 
  149    NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is
  150          not specified and you are not running at gigabit speed, the driver
  151          defaults to half-duplex.
  152 
  153 
  154 This driver supports the following media type options:
  155 
  156    autoselect      -  Enables auto-negotiation for speed and duplex.
  157 
  158    10baseT/UTP     -  Sets speed to 10 Mbps. Use the ifconfig mediaopt
  159                       option to select full-duplex mode.
  160 
  161    100baseTX       -  Sets speed to 100 Mbps. Use the ifconfig mediaopt
  162                       option to select full-duplex mode.
  163 
  164    1000baseTX      -  Sets speed to 1000 Mbps. In this case, the driver
  165                       supports only full-duplex mode.
  166 
  167    1000baseSX      -  Sets speed to 1000 Mbps. In this case, the driver
  168                       supports only full-duplex mode.
  169 
  170 For more information on the ifconfig utility, see the ifconfig man page.
  171 
  172 
  173 Additional Configurations
  174 =========================
  175 
  176 The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on
  177 all but the 82542-based adapters.  For specific adapters, refer to the
  178 Identifying Your Adapter section.
  179 
  180   Jumbo Frames
  181   ------------
  182   To enable Jumbo Frames, use the ifconfig utility to set the Maximum
  183   Transport Unit (MTU) frame size above its default of 1500 bytes.
  184 
  185   The Jumbo Frames MTU range for Intel Adapters is 1500 to 16110. To modify
  186   the setting, enter the following:
  187 
  188         ifconfig em<interface_num> <hostname or IP address> mtu 9000
  189 
  190   To confirm the MTU used between two specific devices, use:
  191 
  192         route get <destination_IP_address>
  193 
  194   Notes:
  195 
  196   - Only enable Jumbo Frames if your network infrastructure supports them.
  197 
  198   - To enable Jumbo Frames, increase the MTU size on the interface beyond
  199     1500.
  200 
  201   - The Jumbo Frames setting on the switch must be set to at least 22 bytes
  202     larger than that of the MTU.
  203 
  204   - The maximum MTU setting for Jumbo Frames is 16110.  This value coincides
  205     with the maximum Jumbo Frames size of 16128.
  206 
  207   - Some Intel gigabit adapters that support Jumbo Frames have a frame size
  208     limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes.
  209     The adapters with this limitation are based on the Intel(R) 82571EB,
  210     82572EI, 82573L and 80003ES2LAN controller.  These correspond to the
  211     following product names:
  212      Intel(R) PRO/1000 PT Server Adapter
  213      Intel(R) PRO/1000 PT Desktop Adapter
  214      Intel(R) PRO/1000 PT Network Connection
  215      Intel(R) PRO/1000 PT Dual Port Server Adapter
  216      Intel(R) PRO/1000 PT Dual Port Network Connection
  217      Intel(R) PRO/1000 PF Server Adapter
  218      Intel(R) PRO/1000 PF Network Connection
  219      Intel(R) PRO/1000 PF Dual Port Server Adapter
  220      Intel(R) PRO/1000 PB Server Connection
  221      Intel(R) PRO/1000 PL Network Connection
  222      Intel(R) PRO/1000 EB Network Connection with I/O Acceleration
  223      Intel(R) PRO/1000 EB Backplane Connection with I/O Acceleration
  224 
  225   - Adapters based on the Intel(R) 82542 and 82573V/E controller do not
  226     support Jumbo Frames. These correspond to the following product names:
  227      Intel(R) PRO/1000 Gigabit Server Adapter
  228      Intel(R) PRO/1000 PM Network Connection
  229 
  230   - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or
  231     loss of link.
  232 
  233   - The following adapters do not support Jumbo Frames:
  234     Intel(R) 82562V 10/100 Network Connection
  235     Intel(R) 82566DM Gigabit Network Connection
  236     Intel(R) 82566DC Gigabit Network Connection
  237     Intel(R) 82566MM Gigabit Network Connection
  238     Intel(R) 82566MC Gigabit Network Connection
  239 
  240 
  241   VLANs
  242   -----
  243   To create a new VLAN interface:
  244 
  245         ifconfig <vlan_name> create
  246 
  247   To associate the VLAN interface with a physical interface and
  248   assign a VLAN ID, IP address, and netmask:
  249 
  250         ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan
  251            <vlan_id> vlandev <physical_interface>
  252 
  253   Example:
  254 
  255         ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan10 vlandev em0
  256 
  257   In this example, all packets will be marked on egress with  802.1Q VLAN
  258   tags, specifying a VLAN ID of 10.
  259 
  260   To remove a VLAN interface:
  261 
  262         ifconfig <vlan_name> destroy
  263 
  264 
  265   Polling
  266   -------
  267   To enable polling in the driver, add the following options to the kernel
  268   configuration, and then recompile the kernel:
  269 
  270         options DEVICE_POLLING
  271         options HZ=1000
  272 
  273   At runtime use:
  274         ifconfig em0 polling to turn polling on
  275   Use:
  276         ifconfig em0 -polling to turn polling off
  277 
  278 
  279   Checksum Offload
  280   ----------------
  281   Checksum offloading is not supported on 82542 Gigabit adapters.
  282 
  283   Checksum offloading supports both TCP and UDP packets and is
  284   supported for both transmit and receive.
  285 
  286   Checksum offloading can be enabled or disabled using ifconfig.
  287   Both transmit and receive offloading will be either enabled or
  288   disabled together. You cannot enable/disable one without the other.
  289 
  290   To enable checksum offloading:
  291 
  292          ifconfig <interface_num> rxcsum
  293 
  294   To disable checksum offloading:
  295 
  296          ifconfig <interface_num> -rxcsum
  297 
  298   To confirm the current setting:
  299 
  300          ifconfig <interface_num>
  301 
  302   Look for the presence or absence of the following line:
  303 
  304          options=3 <RXCSUM,TXCSUM>
  305 
  306   See the ifconfig man page for further information.
  307 
  308 
  309 Known Limitations
  310 =================
  311 
  312   In FreeBSD version 4.x with Symmetric MultiProcessing (SMP), there is a known
  313   issue on some newer hardware.  The problem is generic kernel and only in SMP
  314   mode.  The workaround is to either use FreeBSD version 4.x in single processor
  315   mode, or use FreeBSD 5.4 or later.
  316 
  317   There are known performance issues with this driver when running UDP traffic
  318   with Jumbo Frames.
  319 
  320   There is a known compatibility issue where time to link is slow or link is not
  321   established between 82541/82547 controllers and some switches.  Known switches
  322   include:
  323         Planex FXG-08TE
  324         I-O Data ETG-SH8
  325 
  326   The driver can be compiled with the following changes:
  327 
  328   Edit ./em.x.x.x/src/if_em.h to uncomment the #define EM_MASTER_SLAVE
  329   from within the comments.  For example, change from:
  330 
  331       /* #define EM_MASTER_SLAVE  2 */
  332   to:
  333       #define EM_MASTER_SLAVE  2
  334 
  335   Use one of the following options:
  336       1 = Master mode
  337       2 = Slave mode
  338       3 = Auto master/slave
  339   Setting 2 is recommended.
  340 
  341   Recompile the module:
  342           a. To compile the module
  343                 cd em-x.x.x
  344                 make clean
  345                 make
  346 
  347    b. To install the compiled module in system directory:
  348                 make install
  349 
  350 
  351 Support
  352 =======
  353 
  354 For general information and support, go to the Intel support website at:
  355 
  356         http://support.intel.com
  357 
  358 If an issue is identified, support is through email only at:
  359 freebsdnic@mailbox.intel.com
  360 
  361 
  362 License
  363 =======
  364 
  365 This software program is released under the terms of a license agreement
  366 between you ('Licensee') and Intel. Do not use or load this software or any
  367 associated materials (collectively, the 'Software') until you have carefully
  368 read the full terms and conditions of the LICENSE located in this software
  369 package. By loading or using the Software, you agree to the terms of this
  370 Agreement. If you do not agree with the terms of this Agreement, do not
  371 install or use the Software.
  372 
  373 * 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.