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 2019-04-23 17:12:02
File LICENSE 1612 bytes 2019-04-23 17:11:58
File README 10838 bytes 2019-04-23 17:11:58
C file if_em.c 110607 bytes 2019-04-23 17:11:58
C file if_em.h 15123 bytes 2019-04-23 17:11:58
C file if_em_hw.c 185492 bytes 2019-04-23 17:11:58
C file if_em_hw.h 94374 bytes 2019-04-23 17:11:58
C file if_em_osdep.h 4545 bytes 2019-04-23 17:11:58

    1 $FreeBSD: releng/5.4/sys/dev/em/README 119509 2003-08-27 21:52:37Z pdeuskar $
    2 FreeBSD* Driver for the Intel(R) PRO/1000 Family of Adapters
    3 ============================================================
    4 
    5 July 24, 2003
    6 
    7 
    8 Contents
    9 ========
   10 
   11 - Overview
   12 - Supported Adapters
   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, version 1.7.x, for the Intel(R)
   25 PRO/1000 Family of Adapters. This driver has been developed for use with 
   26 FreeBSD, version 4.7. 
   27 
   28 For questions related to hardware requirements, refer to the documentation 
   29 supplied with your Intel PRO/1000 adapter. All hardware requirements listed 
   30 apply to use with FreeBSD.
   31 
   32 
   33 Supported Adapters
   34 ==================
   35 
   36 The following Intel network adapters are compatible with the drivers in this 
   37 release:
   38 
   39    Controller  Adapter Name                         Board IDs
   40    ----------  ------------                         ---------
   41 
   42    82542       PRO/1000 Gigabit Server Adapter      700262-xxx, 717037-xxx
   43 
   44    82543       PRO/1000 F Server Adapter            738640-xxx, A38888-xxx,
   45                                                     A06512-xxx
   46 
   47    82543       PRO/1000 T Server Adapter            A19845-xxx, A33948-xxx
   48 
   49    82544       PRO/1000 XT Server Adapter           A51580-xxx
   50 
   51    82544       PRO/1000 XF Server Adapter           A50484-xxx
   52 
   53    82544       PRO/1000 T Desktop Adapter           A62947-xxx
   54 
   55    82540       PRO/1000 MT Desktop Adapter          A78408-xxx
   56 
   57    82541       PRO/1000 MT Desktop Adapter          C91016-xxx
   58 
   59    82545       PRO/1000 MT Server Adapter           A92165-xxx
   60 
   61    82545       PRO/1000 MF Server Adapter           A91622-xxx
   62 
   63    82545       PRO/1000 MF Server Adapter(LX)       A91624-xxx
   64 
   65    82546       PRO/1000 MT Dual Port Server Adapter A92111-xxx
   66 
   67    82546       PRO/1000 MF Dual Port Server Adapter A91620-xxx
   68 
   69    82546EB     PRO/1000 MT Quad Port Server Adapter C11227-xxx 
   70 
   71    82547       PRO/1000 CT Network Connection
   72 
   73 
   74 To verify your Intel adapter is supported, find the board ID number on the
   75 adapter. Look for a label that has a barcode and a number in the format of
   76 123456-001 (six digits hyphen three digits). Match this to the list of 
   77 numbers above.
   78 
   79 For more information on how to identify your adapter, go to the Adapter &
   80 Driver ID Guide at:
   81 
   82     http://support.intel.com/support/network/adapter/pro100/21397.htm
   83 
   84 For the latest Intel network drivers for FreeBSD, see:
   85 
   86     http://appsr.intel.com/scripts-df/support_intel.asp
   87 
   88 
   89 Building and Installation
   90 =========================
   91 
   92 NOTE: The driver can be installed as a dynamic loadable kernel module or 
   93       compiled into the kernel. You must have kernel sources installed in 
   94       order to compile the driver module.
   95 
   96 In the instructions below, x.x.x is the driver version as indicated in the 
   97 name of the driver tar file.
   98 
   99 1. Move the base driver tar file to the directory of your choice. For 
  100    example, use /home/username/em or /usr/local/src/em.
  101 
  102 2. Untar/unzip the archive:
  103 
  104         tar xvfz em-x.x.x.tar.gz
  105 
  106    This will create an em-x.x.x directory.
  107 
  108 3. To create a loadable module, perform the following steps. 
  109    NOTE: To compile the driver into the kernel, go directly to step 4.
  110 
  111         a. To compile the module
  112 
  113                   cd em-x.x.x
  114                   make
  115 
  116         b. To install the compiled module in system directory:
  117          
  118                   make install
  119                 
  120         c. If you want the driver to load automatically when the system is booted:
  121 
  122               1. Follow steps a, and b above to compile and install the module
  123               2. Edit /boot/loader.conf, and add the following line:
  124 
  125                   if_em_load="YES"
  126 
  127 4. To compile the driver into the kernel:
  128 
  129         cd em-x.x.x/src
  130 
  131         cp if_em* /usr/src/sys/dev/em
  132 
  133         cp Makefile.kernel /usr/src/sys/modules/em/Makefile
  134 
  135    Edit the /usr/src/sys/conf/files.i386 file, and add the following lines:
  136 
  137         dev/em/if_em.c optional em
  138 
  139         dev/em/if_em_hw.c optional em 
  140 
  141    Remove the following lines from the /usr/src/sys/conf/files.i386 file, 
  142    if they exist:
  143 
  144         dev/em/if_em_fxhw.c optional em
  145         dev/em/if_em_phy.c optional em
  146 
  147    Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in 
  148    /usr/src/sys/i386/conf, and ensure the following line is present:
  149 
  150         device em
  151 
  152    Compile and install the kernel. The system must be rebooted for the kernel
  153    updates to take effect. For additional information on compiling the 
  154    kernel, consult the FreeBSD operating system documentation.
  155 
  156 5. To assign an IP address to the interface, enter the following:
  157 
  158         ifconfig em<interface_num> <IP_address>
  159 
  160 6. Verify that the interface works. Enter the following, where <IP_address>
  161    is the IP address for another machine on the same subnet as the interface
  162    that is being tested:
  163 
  164         ping <IP_address>
  165 
  166 7. To configure the IP address to remain after reboot, edit /etc/rc.conf, 
  167    and create the appropriate ifconfig_em<interface_num> entry:
  168 
  169         ifconfig_em<interface_num>="<ifconfig_settings>"
  170 
  171    Example usage:
  172 
  173         ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0"
  174 
  175    NOTE: For assistance, see the ifconfig man page.
  176 
  177 
  178 Speed and Duplex Configuration
  179 ==============================
  180 
  181 By default, the adapter auto-negotiates the speed and duplex of the 
  182 connection. If there is a specific need, the ifconfig utility can be used to 
  183 configure the speed and duplex settings on the adapter. Example usage:
  184 
  185         ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt 
  186             full-duplex
  187 
  188    NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is 
  189          not specified and you are not running at gigabit speed, the driver 
  190          defaults to half-duplex.
  191 
  192 
  193 This driver supports the following media type options:
  194 
  195    autoselect      -  Enables auto-negotiation for speed and duplex.
  196 
  197    10baseT/UTP     -  Sets speed to 10 Mbps. Use the ifconfig mediaopt 
  198                       option to select full-duplex mode.
  199 
  200    100baseTX       -  Sets speed to 100 Mbps. Use the ifconfig mediaopt
  201                       option to select full-duplex mode.
  202 
  203    1000baseTX      -  Sets speed to 1000 Mbps. In this case, the driver
  204                       supports only full-duplex mode.
  205 
  206    1000baseSX      -  Sets speed to 1000 Mbps. In this case, the driver
  207                       supports only full-duplex mode.
  208 
  209 For more information on the ifconfig utility, see the ifconfig man page.
  210 
  211 
  212 Additional Configurations
  213 =========================
  214 
  215 The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on 
  216 all but the 82542-based adapters. For specific adapters, refer to the 
  217 Supported Adapters section.
  218 
  219   Jumbo Frames
  220   ------------
  221   To enable Jumbo Frames, use the ifconfig utility to increase the MTU 
  222   beyond 1500 bytes. 
  223 
  224   NOTES: Only enable Jumbo Frames if your network infrastructure supports 
  225          them.
  226    
  227          The Jumbo Frames setting on the switch must be set to at least 
  228          22 bytes larger than that of the adapter.
  229 
  230   The Jumbo Frames MTU range for Intel Adapters is 1500 to 16114. The default 
  231   MTU range is 1500. To modify the setting, enter the following:
  232 
  233         ifconfig em<interface_num> <hostname or IP address> mtu 9000
  234 
  235   To confirm an interface's MTU value, use the ifconfig command. To confirm
  236   the MTU used between two specific devices, use:
  237 
  238         route get <destination_IP_address>
  239 
  240   VLANs
  241   -----
  242   To create a new VLAN pseudo-interface:
  243 
  244         ifconfig <vlan_name> create
  245 
  246   To associate the VLAN pseudo-interface with a physical interface and 
  247   assign a VLAN ID, IP address, and netmask:
  248 
  249         ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan 
  250            <vlan_id> vlandev <physical_interface>
  251 
  252   Example:
  253 
  254         ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan10 vlandev em0
  255 
  256   In this example, all packets will be marked on egress with  802.1Q VLAN 
  257   tags, specifying a VLAN ID of 10.
  258 
  259   To remove a VLAN pseudo-interface:
  260 
  261         ifconfig <vlan_name> destroy
  262 
  263   Polling
  264   -------
  265   To enable polling in the driver, add the following options to the kernel 
  266   configuration, and then recompile the kernel:
  267 
  268         options DEVICE_POLLING
  269         options HZ=1000
  270 
  271   At runtime, use the following command to turn on polling mode. Similarly,
  272   turn off polling mode by setting the variable to 0:
  273 
  274         sysctl kern.polling.enable=1
  275 
  276 
  277   NOTES: DEVICE POLLING is only valid for non-SMP kernels.
  278 
  279          The driver has to be built into the kernel for DEVICE POLLING to be
  280          enabled in the driver.
  281 
  282 
  283 Known Limitations
  284 =================
  285  
  286   There are known performance issues with this driver when running UDP traffic
  287   with Jumbo Frames. Intel recommends not using Jumbo Frames for UDP traffic.
  288 
  289 
  290   82541/82547 can't link or is slow to link with some link partners
  291   -----------------------------------------------------------------
  292 
  293   There is a known compatibility issue with 82541/82547 and some switches 
  294   where link will not be established, or will be slow to establish.  In 
  295   particular, these switches are known to be incompatible with 82541/82547:
  296 
  297         Planex FXG-08TE
  298         I-O Data ETG-SH8
  299 
  300   To workaround the issue, the driver can be compiled with an override of the 
  301   PHY's master/slave setting.  Forcing master or forcing slave mode will 
  302   improve time-to-link.
  303 
  304   Edit ./em.x.x.x/src/if_em.h to remove the #define EM_MASTER_SLAVE 
  305   from within the comments.  
  306 
  307       /* #define EM_MASTER_SLAVE  2 */
  308       #define EM_MASTER_SLAVE  2 
  309 
  310   Use one of the following options.
  311       0 = Hardware default
  312       1 = Master mode
  313       2 = Slave mode
  314       3 = Auto master/slave
  315 
  316   Recompile the module (refer to step 3 above)
  317   a. To compile the module
  318 
  319           cd em-x.x.x
  320           make clean
  321           make
  322 
  323    b. To install the compiled module in system directory:
  324  
  325           make install
  326 
  327 
  328 Support
  329 =======
  330 
  331 For general information and support, go to the Intel support website at:
  332 
  333         http://support.intel.com
  334 
  335 If an issue is identified with the released source code on the supported
  336 kernel with a supported adapter, email the specific information related to 
  337 the issue to freebsdnic@mailbox.intel.com.
  338 
  339 
  340 License
  341 =======
  342 
  343 This software program is released under the terms of a license agreement 
  344 between you ('Licensee') and Intel. Do not use or load this software or any 
  345 associated materials (collectively, the 'Software') until you have carefully 
  346 read the full terms and conditions of the LICENSE located in this software 
  347 package. By loading or using the Software, you agree to the terms of this 
  348 Agreement. If you do not agree with the terms of this Agreement, do not 
  349 install or use the Software.
  350 
  351 * 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.