head	1.16;
access;
symbols
	RELENG_7_4_0_RELEASE:1.15.2.1
	RELENG_7_4:1.15.2.1.0.8
	RELENG_7_4_BP:1.15.2.1
	RELENG_7_3_0_RELEASE:1.15.2.1
	RELENG_7_3:1.15.2.1.0.6
	RELENG_7_3_BP:1.15.2.1
	RELENG_7_2_0_RELEASE:1.15.2.1
	RELENG_7_2:1.15.2.1.0.4
	RELENG_7_2_BP:1.15.2.1
	RELENG_7_1_0_RELEASE:1.15.2.1
	RELENG_6_4_0_RELEASE:1.10.2.1.6.1
	RELENG_7_1:1.15.2.1.0.2
	RELENG_7_1_BP:1.15.2.1
	RELENG_6_4:1.10.2.1.0.6
	RELENG_6_4_BP:1.10.2.1
	RELENG_7_0_0_RELEASE:1.15
	RELENG_6_3_0_RELEASE:1.10.2.1
	RELENG_7_0:1.15.0.4
	RELENG_7_0_BP:1.15
	RELENG_6_3:1.10.2.1.0.4
	RELENG_6_3_BP:1.10.2.1
	RELENG_7:1.15.0.2
	RELENG_7_BP:1.15
	RELENG_6_2_0_RELEASE:1.10.2.1
	RELENG_6_2:1.10.2.1.0.2
	RELENG_6_2_BP:1.10.2.1
	RELENG_5_5_0_RELEASE:1.8
	RELENG_5_5:1.8.0.10
	RELENG_5_5_BP:1.8
	RELENG_6_1_0_RELEASE:1.10
	RELENG_6_1:1.10.0.6
	RELENG_6_1_BP:1.10
	RELENG_6_0_0_RELEASE:1.10
	RELENG_6_0:1.10.0.4
	RELENG_6_0_BP:1.10
	RELENG_6:1.10.0.2
	RELENG_6_BP:1.10
	RELENG_5_4_0_RELEASE:1.8
	RELENG_5_4:1.8.0.8
	RELENG_5_4_BP:1.8
	RELENG_4_11_0_RELEASE:1.1.2.8
	RELENG_4_11:1.1.2.8.0.6
	RELENG_4_11_BP:1.1.2.8
	RELENG_5_3_0_RELEASE:1.8
	RELENG_5_3:1.8.0.6
	RELENG_5_3_BP:1.8
	RELENG_5:1.8.0.4
	RELENG_5_BP:1.8
	RELENG_4_10_0_RELEASE:1.1.2.8
	RELENG_4_10:1.1.2.8.0.4
	RELENG_4_10_BP:1.1.2.8
	RELENG_5_2_1_RELEASE:1.8
	RELENG_5_2_0_RELEASE:1.8
	RELENG_5_2:1.8.0.2
	RELENG_5_2_BP:1.8
	RELENG_4_9_0_RELEASE:1.1.2.8
	RELENG_4_9:1.1.2.8.0.2
	RELENG_4_9_BP:1.1.2.8
	RELENG_5_1_0_RELEASE:1.6
	RELENG_5_1:1.6.0.2
	RELENG_5_1_BP:1.6
	RELENG_4_8_0_RELEASE:1.1.2.5
	RELENG_4_8:1.1.2.5.0.2
	RELENG_4_8_BP:1.1.2.5
	RELENG_5_0_0_RELEASE:1.4
	RELENG_5_0:1.4.0.2
	RELENG_5_0_BP:1.4
	RELENG_4_7_0_RELEASE:1.1.2.3
	RELENG_4_7:1.1.2.3.0.2
	RELENG_4_7_BP:1.1.2.3
	RELENG_4:1.1.0.2;
locks; strict;
comment	@# @;


1.16
date	2008.07.30.21.56.53;	author jfv;	state dead;
branches;
next	1.15;

1.15
date	2007.05.30.23.32.21;	author jfv;	state Exp;
branches
	1.15.2.1;
next	1.14;

1.14
date	2007.05.04.00.00.11;	author jfv;	state Exp;
branches;
next	1.13;

1.13
date	2006.08.03.09.20.11;	author glebius;	state Exp;
branches;
next	1.12;

1.12
date	2006.04.06.17.09.02;	author glebius;	state Exp;
branches;
next	1.11;

1.11
date	2005.12.12.19.29.30;	author glebius;	state Exp;
branches;
next	1.10;

1.10
date	2005.07.11.02.33.25;	author delphij;	state Exp;
branches
	1.10.2.1;
next	1.9;

1.9
date	2005.05.26.23.33.24;	author tackerman;	state Exp;
branches;
next	1.8;

1.8
date	2003.08.27.21.52.36;	author pdeuskar;	state Exp;
branches;
next	1.7;

1.7
date	2003.06.05.17.51.37;	author pdeuskar;	state Exp;
branches;
next	1.6;

1.6
date	2003.03.21.21.47.30;	author pdeuskar;	state Exp;
branches;
next	1.5;

1.5
date	2002.12.23.19.11.23;	author pdeuskar;	state Exp;
branches;
next	1.4;

1.4
date	2002.11.08.18.14.16;	author pdeuskar;	state Exp;
branches;
next	1.3;

1.3
date	2002.08.21.23.44.15;	author pdeuskar;	state Exp;
branches;
next	1.2;

1.2
date	2002.07.16.16.55.02;	author pdeuskar;	state Exp;
branches;
next	1.1;

1.1
date	2002.06.03.22.30.44;	author pdeuskar;	state Exp;
branches
	1.1.2.1;
next	;

1.15.2.1
date	2008.08.11.18.33.10;	author jfv;	state dead;
branches;
next	;

1.10.2.1
date	2006.08.08.09.20.26;	author glebius;	state Exp;
branches
	1.10.2.1.6.1;
next	1.10.2.2;

1.10.2.2
date	2012.11.17.07.43.08;	author svnexp;	state Exp;
branches;
next	;

1.10.2.1.6.1
date	2008.10.02.02.57.24;	author kensmith;	state Exp;
branches;
next	;

1.1.2.1
date	2002.06.18.21.00.35;	author pdeuskar;	state Exp;
branches;
next	1.1.2.2;

1.1.2.2
date	2002.07.20.02.30.27;	author pdeuskar;	state Exp;
branches;
next	1.1.2.3;

1.1.2.3
date	2002.08.25.01.54.53;	author pdeuskar;	state Exp;
branches;
next	1.1.2.4;

1.1.2.4
date	2002.11.12.00.52.14;	author pdeuskar;	state Exp;
branches;
next	1.1.2.5;

1.1.2.5
date	2003.01.03.18.18.55;	author pdeuskar;	state Exp;
branches;
next	1.1.2.6;

1.1.2.6
date	2003.04.04.18.39.28;	author pdeuskar;	state Exp;
branches;
next	1.1.2.7;

1.1.2.7
date	2003.06.09.21.43.41;	author pdeuskar;	state Exp;
branches;
next	1.1.2.8;

1.1.2.8
date	2003.09.03.16.36.45;	author pdeuskar;	state Exp;
branches;
next	1.1.2.9;

1.1.2.9
date	2005.05.19.00.24.32;	author tackerman;	state Exp;
branches;
next	1.1.2.10;

1.1.2.10
date	2006.09.05.19.48.09;	author jhb;	state Exp;
branches;
next	1.1.2.11;

1.1.2.11
date	2012.11.17.07.25.40;	author svnexp;	state Exp;
branches;
next	;


desc
@@


1.16
log
@SVN rev 181027 on 2008-07-30 21:56:53Z by jfv

Merge of the source for igb and em into dev/e1000, this
proved to be necessary to make the static drivers work
in EITHER/OR or BOTH configurations. Modules will still
build in sys/modules/igb or em as before.

This also updates the igb driver for support for the 82576
adapter, adds shared code fixes, and etc....

MFC after:	ASAP
@
text
@$FreeBSD: src/sys/dev/em/README,v 1.15 2007/05/30 23:32:21 jfv Exp $
FreeBSD* Driver for Intel Network Connection
=============================================

May 30, 2007


Contents
========

- Overview
- Identifying Your Adapter
- Building and Installation
- Speed and Duplex Configuration
- Additional Configurations
- Known Limitations
- Support
- License


Overview
========

This file describes the FreeBSD* driver for Intel Network Connection.
This driver has been developed for use with FreeBSD, Release 7.x.

For questions related to hardware requirements, refer to the documentation
supplied with your Gigabit adapter. All hardware requirements listed
apply to use with FreeBSD.


Identifying Your Adapter
========================

For information on how to identify your adapter, go to the Adapter &
Driver ID Guide at:

http://support.intel.com/support/network/sb/cs-012904.htm


For the latest Intel network drivers for FreeBSD, see:

http://downloadfinder.intel.com/scripts-df-external/support_intel.aspx


NOTE: Mobile adapters are not fully supported.
NOTE: The Intel(R) 82562v 10/100 Network Connection only provides 10/100
support.

Building and Installation
=========================

NOTE: The driver can be installed as a dynamic loadable kernel module or
      compiled into the kernel. You must have kernel sources installed in
      order to compile the driver module.

In the instructions below, x.x.x is the driver version as indicated in the
name of the driver tar file.

1. Move the base driver tar file to the directory of your choice. For
   example, use /home/username/em or /usr/local/src/em.

2. Untar/unzip the archive:

        tar xzvf em-x.x.x.tar.gz

   This will create an em-x.x.x directory.

3. To create a loadable module, perform the following steps.
   NOTE: To compile the driver into the kernel, go directly to step 4.

        a. To compile the module

                  cd em-x.x.x
                  make

        b. To install the compiled module to the system directory:

                  make install

        c. If you want the driver to load automatically when the system is booted:

              1. Edit /boot/loader.conf, and add the following line:

                  if_em_load="YES"

4. To compile the driver into the kernel, enter:

        cd em-x.x.x/src
        cp *.[ch] /usr/src/sys/dev/em

        Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in
        /usr/src/sys/i386/conf, and ensure the following line is present:

        device em

        Compile and install the kernel. The system must be rebooted for the
        kernel updates to take effect. For additional information on compiling
        the kernel, consult the FreeBSD operating system documentation.

5. To assign an IP address to the interface, enter the following:

        ifconfig em<interface_num> <IP_address>

6. Verify that the interface works. Enter the following, where <IP_address>
   is the IP address for another machine on the same subnet as the interface
   that is being tested:

        ping <IP_address>

7. To configure the IP address to remain after reboot, edit /etc/rc.conf,
   and create the appropriate ifconfig_em<interface_num>entry:

        ifconfig_em<interface_num>="<ifconfig_settings>"

   Example usage:

        ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0"

   NOTE: For assistance, see the ifconfig man page.


Speed and Duplex Configuration
==============================

By default, the adapter auto-negotiates the speed and duplex of the
connection. If there is a specific need, the ifconfig utility can be used to
configure the speed and duplex settings on the adapter. Example usage:

        ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt
            full-duplex

   NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is
         not specified and you are not running at gigabit speed, the driver
         defaults to half-duplex.

If the interface is currently forced to 100 full duplex, in order to change
to half duplex you must use this command:

        ifconfig em<interface_num> <IP_address> media 100baseTX -mediaopt
            full-duplex


This driver supports the following media type options:

   autoselect      -  Enables auto-negotiation for speed and duplex.

   10baseT/UTP     -  Sets speed to 10 Mbps. Use the ifconfig mediaopt
                      option to select full-duplex mode.

   100baseTX       -  Sets speed to 100 Mbps. Use the ifconfig mediaopt
                      option to select full-duplex mode.

   1000baseTX      -  Sets speed to 1000 Mbps. In this case, the driver
                      supports only full-duplex mode.

   1000baseSX      -  Sets speed to 1000 Mbps. In this case, the driver
                      supports only full-duplex mode.

For more information on the ifconfig utility, see the ifconfig man page.


Additional Configurations
=========================

The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on
all but the 82542-based adapters.  For specific adapters, refer to the
Identifying Your Adapter section.

  Jumbo Frames
  ------------
  To enable Jumbo Frames, use the ifconfig utility to set the Maximum
  Transport Unit (MTU) frame size above its default of 1500 bytes.

  The Jumbo Frames MTU range for Intel Adapters is 1500 to 16110. To modify
  the setting, enter the following:

        ifconfig em<interface_num> <hostname or IP address> mtu 9000

  To confirm the MTU used between two specific devices, use:

        route get <destination_IP_address>

  Notes:

  - Only enable Jumbo Frames if your network infrastructure supports them.

  - To enable Jumbo Frames, increase the MTU size on the interface beyond
    1500.

  - The Jumbo Frames setting on the switch must be set to at least 22 bytes
    larger than that of the MTU.

  - The maximum MTU setting for Jumbo Frames is 16110.  This value coincides
    with the maximum Jumbo Frames size of 16128.

  - Some Intel gigabit adapters that support Jumbo Frames have a frame size
    limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes.
    The adapters with this limitation are based on the Intel(R) 82571EB,
    82572EI, 82573L, 82566, 82562, and 80003ES2LAN controller.  These
    correspond to the following product names:
     Intel(R) PRO/1000 PT Server Adapter
     Intel(R) PRO/1000 PT Desktop Adapter
     Intel(R) PRO/1000 PT Network Connection
     Intel(R) PRO/1000 PT Dual Port Server Adapter
     Intel(R) PRO/1000 PT Dual Port Network Connection
     Intel(R) PRO/1000 PT Quad Port Server Adapter
     Intel(R) PRO/1000 PF Quad Port Server Adapter
     Intel(R) PRO/1000 PF Server Adapter
     Intel(R) PRO/1000 PF Network Connection
     Intel(R) PRO/1000 PF Dual Port Server Adapter
     Intel(R) PRO/1000 PB Server Connection
     Intel(R) PRO/1000 PL Network Connection
     Intel(R) PRO/1000 EB Network Connection with I/O Acceleration
     Intel(R) PRO/1000 EB Backplane Connection with I/O Acceleration
     Intel(R) 82566DM-2 Gigabit Network Connection

  - Adapters based on the Intel(R) 82542 and 82573V/E controller do not
    support Jumbo Frames. These correspond to the following product names:
     Intel(R) PRO/1000 Gigabit Server Adapter
     Intel(R) PRO/1000 PM Network Connection

  - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or
    loss of link.

  - The following adapters do not support Jumbo Frames:
    Intel(R) 82562V 10/100 Network Connection
    Intel(R) 82566DM Gigabit Network Connection
    Intel(R) 82566DC Gigabit Network Connection
    Intel(R) 82566MM Gigabit Network Connection
    Intel(R) 82566MC Gigabit Network Connection
    Intel(R) 82562GT 10/100 Network Connection
    Intel(R) 82562G 10/100 Network Connection
    Intel(R) 82566DC-2 Gigabit Network Connection
    Intel(R) 82562V-2 10/100 Network Connection
    Intel(R) 82562G-2 10/100 Network Connection
    Intel(R) 82562GT-2 10/100 Network Connection

  VLANs
  -----
  To create a new VLAN interface:

        ifconfig <vlan_name> create

  To associate the VLAN interface with a physical interface and
  assign a VLAN ID, IP address, and netmask:

        ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan
           <vlan_id> vlandev <physical_interface>

  Example:

        ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan 10 vlandev em0

  In this example, all packets will be marked on egress with 802.1Q VLAN
  tags, specifying a VLAN ID of 10.

  To remove a VLAN interface:

  Intel Network Connection        ifconfig <vlan_name> destroy


  Polling
  -------

  To enable polling in the driver, add the following options to the kernel
  configuration, and then recompile the kernel:

        options DEVICE_POLLING
        options HZ=1000

  At runtime use:
        ifconfig emX polling (to turn polling on)
  and:
        ifconfig emX -polling  (to turn it off)


  Checksum Offload
  ----------------
  Checksum offloading is not supported on 82542 Gigabit adapters.

  Checksum offloading supports both TCP and UDP packets and is
  supported for both transmit and receive.

  Checksum offloading can be enabled or disabled using ifconfig.
  Both transmit and receive offloading will be either enabled or
  disabled together. You cannot enable/disable one without the other.

  To enable checksum offloading:

         ifconfig <interface_num> rxcsum

  To disable checksum offloading:

         ifconfig <interface_num> -rxcsum

  To confirm the current setting:

         ifconfig <interface_num>

  Look for the presence or absence of the following line:

         options=3 <RXCSUM,TXCSUM>

  See the ifconfig man page for further information.


  TSO
  ---
  The FreeBSD driver offers support for TSO (TCP Segmentation Offload).

  You can enable/disable it in two ways/places:

        -  sysctl net.inet.tcp.tso=0    (or 1 to enable it)

  Doing this disables TSO in the stack and will affect all adapters.

        -  ifconfig emX -tso

  Doing this will disable TSO only for this adapter.

  To enable:

        -  ifconfig emX tso

  NOTES: By default only PCI-Express adapters are ENABLED to do TSO. Others
  can be enabled by the user at their own risk
  TSO is not supported on 82547 and 82544-based adapters, as well as older adapters.


Known Limitations
=================

  Detected Tx Unit Hang in Quad Port Adapters
  -------------------------------------------

  In some cases ports 3 and 4 wont pass traffic. Ports 1 and 2 don't show
  any errors and will pass traffic.

  This issue MAY be resolved by updating to the latest BIOS. You can
  check your system's BIOS by downloading the Linux Firmware Developer Kit
  that can be obtained at http://www.linuxfirmwarekit.org/


  There are known performance issues with this driver when running UDP traffic
  with Jumbo Frames.
  ----------------------------------------------------------------------------

  82541/82547 can't link or is slow to link with some link partners
  -----------------------------------------------------------------

  There is a known compatibility issue where time to link is slow or link is not
  established between 82541/82547 controllers and some switches.  Known switches
  include:
        Planex FXG-08TE
        I-O Data ETG-SH8

  The driver can be compiled with the following changes:

  Edit ./em.x.x.x/src/if_em.h to change the #define EM_MASTER_SLAVE
  For example, change from:

      #define EM_MASTER_SLAVE   e1000_ms_hw_default
  to:
      #define EM_MASTER_SLAVE   2

  Use one of the following options:
      1 = Master mode
      2 = Slave mode
      3 = Auto master/slave
  Setting 2 is recommended.

  Recompile the module:
          a. To compile the module
                cd em-x.x.x
                make clean
                make

   b. To install the compiled module in system directory:
                make install


Support
=======

For general information and support, go to the Intel support website at:

        http://support.intel.com

If an issue is identified, support is through email only at:
freebsdnic@@mailbox.intel.com


License
=======

This software program is released under the terms of a license agreement
between you ('Licensee') and Intel. Do not use or load this software or any
associated materials (collectively, the 'Software') until you have carefully
read the full terms and conditions of the LICENSE located in this software
package. By loading or using the Software, you agree to the terms of this
Agreement. If you do not agree with the terms of this Agreement, do not
install or use the Software.

* Other names and brands may be claimed as the property of others.
@


1.15
log
@A few small but significant fixes:
 - Coverity Prevent(tm) CID 1906 a bogus use of bzero where unneeded.
 - ICH8 systems autoneg to 100 rather than 1000, this can also be
   seen in 82573, the logic was backwards.
 - On new 82575 quadports half duplex tx speed is slow... this was due
   to overwriting TCTL reg rather than adding bits.
@
text
@d1 1
a1 1
$FreeBSD$
@


1.15.2.1
log
@SVN rev 181597 on 2008-08-11 18:33:10Z by jfv

MFC of the em/igb driver reorg
@
text
@d1 1
a1 1
$FreeBSD: src/sys/dev/em/README,v 1.15 2007/05/30 23:32:21 jfv Exp $
@


1.14
log
@Merge in the new driver (6.5.0) of Intel. This has a new
shared code infrastructure that is family specific and
modular. There is also support for our latest gigabit
nic, the 82575 that is MSI/X and multiqueue capable.

The new shared code changes some interfaces to the core
code but testing at Intel has been going on for months,
it is fairly stable.

I have attempted to be careful in retaining any fixes that
CURRENT had and we did not, I apologize in advance if any
thing gets clobbered, I'm sure I'll hear about it :)

Approved by pdeuskar
@
text
@d2 2
a3 2
FreeBSD Driver for the Gigabit Family of Adapters
============================================================
d5 1
a5 1
April 18, 2007
d24 2
a25 2
This file describes the FreeBSD* driver for the Gigabit Family of
Adapters. This driver has been developed for use with FreeBSD, Release 6.x.
a90 7
        cp Makefile.kernel /usr/src/sys/modules/em/Makefile

        NOTE: At this point you MUST install a patch, kernbuild.patch, which is
        located in the patches directory. This is applied as shown below where
        "$PATH_TO_KERNBUILD_PATCH" is the location of the kernbuild.patch:

        cd /usr/src/sys; patch -p1 < $PATH_TO_KERNBUILD_PATCH
d207 2
d260 1
a260 1
        ifconfig <vlan_name> destroy
a264 5
  NOTES: Device Polling is only valid for non-SMP (Symmetric MultiProcessing)
  kernels.

        The driver has to be compiled into the kernel for Device Polling to be
        enabled in the driver.
d273 3
a275 3
        sysctl kern.polling.enable=1 to turn polling on
  Use:
        sysctl kern.polling.enable=0 to turn polling off
d310 5
a314 2
  The FreeBSD driver now offers support for TSO (TCP Segmentation Offload).
  To enable this support perform the following:
d316 1
a316 8
  Patch the kernel with the patch supplied in the tarball.
  Rebuild and install the kernel.
  Recompile the driver. You must alter the Makefile to build the driver with
  E1000_TSO defined.

  Enable or disable TSO:
          sysctl net.inet.tcp.tso=1 or 0
          0=disabled, 1=enabled (TSO is enabled by default).
d318 11
a328 2
  NOTE: TSO is not supported on 82547 and 82544-based adapters, as well as
  older adapters.
a343 7
  FreeBSD version 4.x with Symmetric MultiProcessing (SMP)
  --------------------------------------------------------

  In FreeBSD version 4.x with Symmetric MultiProcessing (SMP), there is a known
  issue on some newer hardware.  The problem is kernel generic and only in SMP
  mode.  The workaround is to either use FreeBSD version 4.x in single processor
  mode, or use FreeBSD 5.4 or later.
d360 2
a361 2
  Edit ./em.x.x.x/src/if_em.h to uncomment the #define E1000_MASTER_SLAVE
  from within the comments.  For example, change from:
d363 1
a363 1
      /* #define E1000_MASTER_SLAVE   2 */
d365 1
a365 1
      #define E1000_MASTER_SLAVE   2
@


1.13
log
@Merge in new driver from Intel, version 6.0.5. It adds support for
80003 NICs and NICs found on ICH8 mobos, and improves support for
already known chips.

Details:
  - if_em.c. Merged manually, viewing diff between new vendor
    driver and previous one. This was an easy task, because
    most changes between 5.1.5 and 6.0.5 are bugfixes taken
    from FreeBSD.
  - if_em_hw.h. Dropped in from vendor, and then restored
    revisions 1.16, 1.17, 1.18.
  - if_em_hw.c. Dropped in from vendor, and then restored
    revision 1.15.
  - if_em_osdep.h. Added new required macros from vendor file
    and add a hack against define namespace mangling in
    if_em_hw.h. Intel made another hack, but I prefer mine.
@
text
@d2 1
a2 1
FreeBSD* Driver for the Intel(R) PRO/1000 Family of Adapters
d5 1
a5 1
May 2, 2006
d24 1
a24 1
This file describes the FreeBSD* driver for the Intel(R) PRO/1000 Family of
d28 1
a28 1
supplied with your Intel PRO/1000 adapter. All hardware requirements listed
d65 1
a65 1
        tar xvfz em-x.x.x.tar.gz
d77 1
a77 1
        b. To install the compiled module in system directory:
d87 1
a87 1
4. To compile the driver into the kernel:
d90 1
a90 3

        cp if_em* /usr/src/sys/dev/em

d93 3
a95 9
   Edit the /usr/src/sys/conf/files file, and add the following lines only if
   they don't already exist:

        dev/em/if_em.c optional em

        dev/em/if_em_hw.c optional em

   Remove the following lines from the /usr/src/sys/conf/files file,
   if they exist:
d97 1
a97 2
        dev/em/if_em_fxhw.c optional em
        dev/em/if_em_phy.c optional em
d99 2
a100 2
   Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in
   /usr/src/sys/i386/conf, and ensure the following line is present:
d104 3
a106 3
   Compile and install the kernel. The system must be rebooted for the kernel
   updates to take effect. For additional information on compiling the
   kernel, consult the FreeBSD operating system documentation.
d144 6
d207 2
a208 2
    82572EI, 82573L and 80003ES2LAN controller.  These correspond to the
    following product names:
d221 1
d237 6
a242 1

d258 1
a258 1
        ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan10 vlandev em0
d260 1
a260 1
  In this example, all packets will be marked on egress with  802.1Q VLAN
d270 6
d283 1
a283 1
        ifconfig em0 polling to turn polling on
d285 1
a285 1
        ifconfig em0 -polling to turn polling off
d318 18
d339 13
d353 1
a353 1
  issue on some newer hardware.  The problem is generic kernel and only in SMP
d359 4
d372 1
a372 1
  Edit ./em.x.x.x/src/if_em.h to uncomment the #define EM_MASTER_SLAVE
d375 1
a375 1
      /* #define EM_MASTER_SLAVE  2 */
d377 1
a377 1
      #define EM_MASTER_SLAVE  2
@


1.12
log
@Merge in new driver from Intel, version 5.1.5. Adds support for some
new chips and improves support for already supported ones.

Some details, important for future merges:
  - if_em.c merged manually, viewing diff between new vendor
    driver and previous one.
  - if_em_hw.h dropped in from vendor, and then restored revisions
    1.16, 1.17, 1.18.
  - if_em_hw.c dropped in from vendor, and then two liner change made,
    that restores support for two rare chips.
@
text
@d5 1
a5 1
January 4, 2006
d25 1
a25 2
Adapters. This driver has been developed for use with FreeBSD, Release 4.11
and greater and Release 5.4.
d47 2
a48 1

d95 1
a95 1
   Edit the /usr/src/sys/conf/files.i386 file, and add the following lines only if
d102 1
a102 1
   Remove the following lines from the /usr/src/sys/conf/files.i386 file,
d233 7
@


1.11
log
@- Polling can be used on SMP.
- A kernel module can support polling.
@
text
@d5 1
a5 1
March 18, 2005
d24 3
a26 3
This file describes the FreeBSD* driver, version 2.1.x, for the Intel(R)
PRO/1000 Family of Adapters. This driver has been developed for use with
FreeBSD, version 5.x.
d39 1
a39 1
http://support.intel.com/support/network/adapter/pro100/21397.htm
d44 1
a44 1
http://appsr.intel.com/scripts-df/support_intel.asp
d177 1
a177 1
all but the 82542-based adapters. For specific adapters, refer to the
d182 2
a183 2
  To enable Jumbo Frames, use the ifconfig utility to increase the MTU
  beyond 1500 bytes.
d185 2
a186 2
  NOTES: Only enable Jumbo Frames if your network infrastructure supports
         them.
d188 5
a192 2
         The Jumbo Frames setting on the switch must be set to at least
         22 bytes larger than that of the MTU.
d194 1
a194 2
         The Intel PRO/1000 PM Network Connection does not support jumbo
         frames.
d196 1
d198 2
a199 2
  The Jumbo Frames MTU range for Intel Adapters is 1500 to 16114. The default
  MTU range is 1500. To modify the setting, enter the following:
d201 28
a228 1
        ifconfig em<interface_num> <hostname or IP address> mtu 9000
d230 2
a231 1
 To confirm the MTU used between two specific devices, use:
a232 1
        route get <destination_IP_address>
d257 1
d267 1
a267 1
        sysctl kern.polling.enable=1 to turn polling on
d269 2
a270 1
        sysctl kern.polling.enable=0 to turn polling off
d301 1
d305 5
d354 1
@


1.10
log
@Correct a minor typo.

Pointed out by:	Xuefeng DENG <dengxf at dengh com>
Approved by:	re (scottl)
@
text
@a228 5
  NOTES: DEVICE POLLING is only valid for non-SMP kernels.

        The driver has to be compiled into the kernel for DEVICE POLLING to be
        enabled in the driver.

@


1.10.2.1
log
@Sync with HEAD, merging vendor drivers updates 5.1.5, 6.0.5 by Jack Vogel.
@
text
@d5 1
a5 1
May 2, 2006
d24 3
a26 2
This file describes the FreeBSD* driver for the Intel(R) PRO/1000 Family of
Adapters. This driver has been developed for use with FreeBSD, Release 6.x.
d39 1
a39 1
http://support.intel.com/support/network/sb/cs-012904.htm
d44 1
a44 1
http://downloadfinder.intel.com/scripts-df-external/support_intel.aspx
d48 1
a48 2
NOTE: The Intel(R) 82562v 10/100 Network Connection only provides 10/100
support.
d95 1
a95 1
   Edit the /usr/src/sys/conf/files file, and add the following lines only if
d102 1
a102 1
   Remove the following lines from the /usr/src/sys/conf/files file,
d177 1
a177 1
all but the 82542-based adapters.  For specific adapters, refer to the
d182 2
a183 2
  To enable Jumbo Frames, use the ifconfig utility to set the Maximum
  Transport Unit (MTU) frame size above its default of 1500 bytes.
d185 2
a186 2
  The Jumbo Frames MTU range for Intel Adapters is 1500 to 16110. To modify
  the setting, enter the following:
d188 2
a189 1
        ifconfig em<interface_num> <hostname or IP address> mtu 9000
d191 2
a192 1
  To confirm the MTU used between two specific devices, use:
a193 1
        route get <destination_IP_address>
d195 2
a196 1
  Notes:
d198 1
a198 1
  - Only enable Jumbo Frames if your network infrastructure supports them.
d200 1
a200 41
  - To enable Jumbo Frames, increase the MTU size on the interface beyond
    1500.

  - The Jumbo Frames setting on the switch must be set to at least 22 bytes
    larger than that of the MTU.

  - The maximum MTU setting for Jumbo Frames is 16110.  This value coincides
    with the maximum Jumbo Frames size of 16128.

  - Some Intel gigabit adapters that support Jumbo Frames have a frame size
    limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes.
    The adapters with this limitation are based on the Intel(R) 82571EB,
    82572EI, 82573L and 80003ES2LAN controller.  These correspond to the
    following product names:
     Intel(R) PRO/1000 PT Server Adapter
     Intel(R) PRO/1000 PT Desktop Adapter
     Intel(R) PRO/1000 PT Network Connection
     Intel(R) PRO/1000 PT Dual Port Server Adapter
     Intel(R) PRO/1000 PT Dual Port Network Connection
     Intel(R) PRO/1000 PF Server Adapter
     Intel(R) PRO/1000 PF Network Connection
     Intel(R) PRO/1000 PF Dual Port Server Adapter
     Intel(R) PRO/1000 PB Server Connection
     Intel(R) PRO/1000 PL Network Connection
     Intel(R) PRO/1000 EB Network Connection with I/O Acceleration
     Intel(R) PRO/1000 EB Backplane Connection with I/O Acceleration

  - Adapters based on the Intel(R) 82542 and 82573V/E controller do not
    support Jumbo Frames. These correspond to the following product names:
     Intel(R) PRO/1000 Gigabit Server Adapter
     Intel(R) PRO/1000 PM Network Connection

  - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or
    loss of link.

  - The following adapters do not support Jumbo Frames:
    Intel(R) 82562V 10/100 Network Connection
    Intel(R) 82566DM Gigabit Network Connection
    Intel(R) 82566DC Gigabit Network Connection
    Intel(R) 82566MM Gigabit Network Connection
    Intel(R) 82566MC Gigabit Network Connection
d202 1
a226 1

d229 5
d241 1
a241 1
        ifconfig em0 polling to turn polling on
d243 1
a243 2
        ifconfig em0 -polling to turn polling off

a273 1

a276 5
  In FreeBSD version 4.x with Symmetric MultiProcessing (SMP), there is a known
  issue on some newer hardware.  The problem is generic kernel and only in SMP
  mode.  The workaround is to either use FreeBSD version 4.x in single processor
  mode, or use FreeBSD 5.4 or later.

a320 1

@


1.10.2.2
log
@Switch importer
@
text
@d1 1
a1 1
$FreeBSD: stable/6/sys/dev/em/README 161083 2006-08-08 09:20:26Z glebius $
@


1.10.2.1.6.1
log
@SVN rev 183531 on 2008-10-02 02:57:24Z by kensmith

Create releng/6.4 from stable/6 in preparation for 6.4-RC1.

Approved by:	re (implicit)
@
text
@@


1.9
log
@Latest README to correspond to latest Intel version 2.1.7
@
text
@d243 1
a243 1
        sysctl ker.polling.enable=0 to turn polling off
@


1.8
log
@Add support for new devices.
Bug Fixes:
	- Allow users to use LAA
	- Remember promiscuous mode settings while bridging
	- Allow gratuitous arp's to be sent

PR:		52966/54488
MFC after:	1 week
@
text
@d5 1
a5 1
July 24, 2003
d12 1
a12 1
- Supported Adapters
d24 3
a26 3
This file describes the FreeBSD* driver, version 1.7.x, for the Intel(R)
PRO/1000 Family of Adapters. This driver has been developed for use with 
FreeBSD, version 4.7. 
d28 2
a29 2
For questions related to hardware requirements, refer to the documentation 
supplied with your Intel PRO/1000 adapter. All hardware requirements listed 
d33 2
a34 2
Supported Adapters
==================
d36 2
a37 2
The following Intel network adapters are compatible with the drivers in this 
release:
d39 1
a39 2
   Controller  Adapter Name                         Board IDs
   ----------  ------------                         ---------
a40 1
   82542       PRO/1000 Gigabit Server Adapter      700262-xxx, 717037-xxx
d42 1
a42 20
   82543       PRO/1000 F Server Adapter            738640-xxx, A38888-xxx,
                                                    A06512-xxx

   82543       PRO/1000 T Server Adapter            A19845-xxx, A33948-xxx

   82544       PRO/1000 XT Server Adapter           A51580-xxx

   82544       PRO/1000 XF Server Adapter           A50484-xxx

   82544       PRO/1000 T Desktop Adapter           A62947-xxx

   82540       PRO/1000 MT Desktop Adapter          A78408-xxx

   82541       PRO/1000 MT Desktop Adapter          C91016-xxx

   82545       PRO/1000 MT Server Adapter           A92165-xxx

   82545       PRO/1000 MF Server Adapter           A91622-xxx

   82545       PRO/1000 MF Server Adapter(LX)       A91624-xxx
d44 1
a44 1
   82546       PRO/1000 MT Dual Port Server Adapter A92111-xxx
a45 1
   82546       PRO/1000 MF Dual Port Server Adapter A91620-xxx
d47 1
a47 18
   82546EB     PRO/1000 MT Quad Port Server Adapter C11227-xxx 

   82547       PRO/1000 CT Network Connection


To verify your Intel adapter is supported, find the board ID number on the
adapter. Look for a label that has a barcode and a number in the format of
123456-001 (six digits hyphen three digits). Match this to the list of 
numbers above.

For more information on how to identify your adapter, go to the Adapter &
Driver ID Guide at:

    http://support.intel.com/support/network/adapter/pro100/21397.htm

For the latest Intel network drivers for FreeBSD, see:

    http://appsr.intel.com/scripts-df/support_intel.asp
d53 2
a54 2
NOTE: The driver can be installed as a dynamic loadable kernel module or 
      compiled into the kernel. You must have kernel sources installed in 
d57 1
a57 1
In the instructions below, x.x.x is the driver version as indicated in the 
d60 1
a60 1
1. Move the base driver tar file to the directory of your choice. For 
d69 1
a69 1
3. To create a loadable module, perform the following steps. 
d72 4
a75 1
	a. To compile the module
d77 1
a77 2
	          cd em-x.x.x
      	          make
d79 1
a79 5
   	b. To install the compiled module in system directory:
	 
		  make install
		
   	c. If you want the driver to load automatically when the system is booted:
d81 1
a81 2
      	      1. Follow steps a, and b above to compile and install the module
	      2. Edit /boot/loader.conf, and add the following line:
d83 3
a85 1
      	          if_em_load="YES"
d95 2
a96 1
   Edit the /usr/src/sys/conf/files.i386 file, and add the following lines:
d100 1
a100 1
        dev/em/if_em_hw.c optional em 
d102 1
a102 1
   Remove the following lines from the /usr/src/sys/conf/files.i386 file, 
d108 1
a108 1
   Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in 
d114 1
a114 1
   updates to take effect. For additional information on compiling the 
d127 2
a128 2
7. To configure the IP address to remain after reboot, edit /etc/rc.conf, 
   and create the appropriate ifconfig_em<interface_num>entry:
d142 2
a143 2
By default, the adapter auto-negotiates the speed and duplex of the 
connection. If there is a specific need, the ifconfig utility can be used to 
d146 1
a146 1
        ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt 
d149 2
a150 2
   NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is 
         not specified and you are not running at gigabit speed, the driver 
d158 1
a158 1
   10baseT/UTP     -  Sets speed to 10 Mbps. Use the ifconfig mediaopt 
d176 3
a178 3
The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on 
all but the 82542-based adapters. For specific adapters, refer to the 
Supported Adapters section.
d182 2
a183 2
  To enable Jumbo Frames, use the ifconfig utility to increase the MTU 
  beyond 1500 bytes. 
d185 1
a185 1
  NOTES: Only enable Jumbo Frames if your network infrastructure supports 
a186 3
   
         The Jumbo Frames setting on the switch must be set to at least 
         22 bytes larger than that of the adapter.
d188 8
a195 1
  The Jumbo Frames MTU range for Intel Adapters is 1500 to 16114. The default 
d200 1
a200 2
  To confirm an interface's MTU value, use the ifconfig command. To confirm
  the MTU used between two specific devices, use:
d206 1
a206 1
  To create a new VLAN pseudo-interface:
d210 1
a210 1
  To associate the VLAN pseudo-interface with a physical interface and 
d213 1
a213 1
        ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan 
d220 1
a220 1
  In this example, all packets will be marked on egress with  802.1Q VLAN 
d223 1
a223 1
  To remove a VLAN pseudo-interface:
d229 6
a234 1
  To enable polling in the driver, add the following options to the kernel 
d240 17
a256 2
  At runtime, use the following command to turn on polling mode. Similarly,
  turn off polling mode by setting the variable to 0:
d258 1
a258 1
        sysctl kern.polling.enable=1
d260 1
d262 7
a268 1
  NOTES: DEVICE POLLING is only valid for non-SMP kernels.
d270 1
a270 2
         The driver has to be built into the kernel for DEVICE POLLING to be
         enabled in the driver.
d272 1
d276 1
a276 1
 
d278 1
a278 9
  with Jumbo Frames. Intel recommends not using Jumbo Frames for UDP traffic.


  82541/82547 can't link or is slow to link with some link partners
  -----------------------------------------------------------------

  There is a known compatibility issue with 82541/82547 and some switches 
  where link will not be established, or will be slow to establish.  In 
  particular, these switches are known to be incompatible with 82541/82547:
d280 3
d286 1
a286 3
  To workaround the issue, the driver can be compiled with an override of the 
  PHY's master/slave setting.  Forcing master or forcing slave mode will 
  improve time-to-link.
d288 2
a289 2
  Edit ./em.x.x.x/src/if_em.h to remove the #define EM_MASTER_SLAVE 
  from within the comments.  
d292 2
a293 1
      #define EM_MASTER_SLAVE  2 
d295 1
a295 2
  Use one of the following options.
      0 = Hardware default
d299 1
d301 5
a305 6
  Recompile the module (refer to step 3 above)
  a. To compile the module

          cd em-x.x.x
          make clean
          make
d308 1
a308 2
 
          make install
d318 2
a319 4
If an issue is identified with the released source code on the supported
kernel with a supported adapter, email the specific information related to 
the issue to freebsdnic@@mailbox.intel.com.

d324 6
a329 6
This software program is released under the terms of a license agreement 
between you ('Licensee') and Intel. Do not use or load this software or any 
associated materials (collectively, the 'Software') until you have carefully 
read the full terms and conditions of the LICENSE located in this software 
package. By loading or using the Software, you agree to the terms of this 
Agreement. If you do not agree with the terms of this Agreement, do not 
@


1.7
log
@Add support for Quad port adapter
Add sysctl's to display statistics/debug_info
Set WAIT_FOR_AUTONEG_DEFAULT to zero by default
Increment packet in/out statistics inline instead of every two seconds.

MFC after:	3 days
@
text
@d5 1
a5 1
April 13, 2003
d24 1
a24 1
This file describes the FreeBSD* driver, version 1.5.x, for the Intel(R)
d54 1
a54 1
 
d56 2
a57 1
   82541                                            C91016-xxx
d71 1
d286 40
a325 2
There are known performance issues with this driver when running UDP traffic
with Jumbo Frames. Intel recommends not using Jumbo Frames for UDP traffic.
@


1.6
log
@Added support for 82541 and 82547 based adapters.
 - These have Intel gigabit PHY
 - 82547 uses CSA interface

MFC after:	1 week
@
text
@d5 1
a5 1
February 5, 2003
d68 2
d131 1
a131 1
        cp Makefile /usr/src/sys/modules/em
@


1.5
log
@- Move to array based indexing for TX/RX descriptor/buffer management
- Added support for ITR (interrupt throttle register). This feature is available on
adapters based on 82545 and above
- Fixed problem with vlan support when traffic has priority bits set. (kern/45907)

PR:			kern/45907
MFC after:		1 week
@
text
@d5 1
a5 1
November 12, 2002
d11 1
a11 1
- In This Release
d21 2
a22 2
In This Release
===============
d24 1
a24 1
This file describes the FreeBSD* driver, version 1.4.x, for the Intel(R)
d26 1
a26 6
FreeBSD, version 4.7. As a new feature for this release, the driver is now 
compiled by default into the FreeBSD 4.7 kernel.

The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on 
all but the 82542-based adapters. For specific adapters, refer to the 
Supported Adapters section below.
d54 3
a56 2

   82540       PRO/1000 MT Desktop Adapter          A78708-xxx
d69 1
d88 3
a90 5
NOTE: You must have kernel sources installed in order to compile the driver
      module.

      In the instructions below, x.x.x is the driver version as indicated in
      the name of the driver tar.
d92 2
d100 8
a107 1
        tar xfz em-x.x.x.tar.gz
d109 2
a110 1
3. To load the driver onto a running system:
d112 5
a116 2
        cd em-x.x.x/modules
        kldload ./if_em.ko
d118 2
a119 1
4. To assign an IP address to the interface, enter the following:
d121 5
a125 1
        ifconfig em<interface_num> <IP_address>
d127 1
a127 3
5. Verify that the interface works. Enter the following, where <IP_address>
   is the IP address for another machine on the same subnet as the interface
   that is being tested:
d129 1
a129 1
        ping <IP_address>
d131 1
a131 1
6. If you want the driver to load automatically when the system is booted:
d133 1
a133 6
        cd em-x.x.x/modules
        cp if_em.ko /modules
        
   Edit /boot/loader.conf, and add the following line:
        
             if_em_load="YES"
d135 1
a135 1
               OR
d137 2
a138 1
        compile the driver into the kernel (see item 7).
d140 2
d143 2
a144 2
   Edit /etc/rc.conf, and create the appropriate ifconfig_em<interface_num> 
   entry:
d146 1
a146 1
        ifconfig_em<interface_num>="<ifconfig_settings>"
d148 3
a150 1
     Example usage:
d152 1
a152 1
        ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0"
d154 1
a154 1
     NOTE: For assistance, see the ifconfig man page.
d156 3
a158 1
7. If you want to compile the driver into the kernel, enter:
d160 1
a160 3
        cd em-x.x.x/src
        cp if_em* /usr/src/sys/dev/em   
        cp Makefile /usr/src/sys/modules/em
d162 2
a163 1
   Edit the /usr/src/sys/conf/files.i386 file, and add the following line:
d165 1
a165 1
        dev/em/if_em_hw.c optional em
d167 1
a167 2
   Remove the following lines from the /usr/src/sys/conf/files.i386 file, if 
   they exist:
d169 1
a169 2
        /dev/em/if_em_fx_hw.c optional em
        /dev/em/if_em_phy.c optional em
d171 1
a171 1
   Compile and install the kernel.
d211 4
a216 1

d220 10
a229 2
  NOTE: Only enable Jumbo Frames if your network infrastructure supports 
        them.
d231 2
a232 2
  The MTU range for Jumbo Frames is 1500 to 16114. For example, enter the 
  following:
d234 1
a234 1
        ifconfig em<interface_num> mtu 9000
d238 18
d257 1
a257 1
  To enable VLANs in the kernel, modify the config file as follows:
d259 4
a262 1
        pseudo-device  vlan <num_VLANs>
d264 2
a265 1
  Then, recompile the kernel and reboot.
d267 2
a268 1
  To see the VLAN device entries, use ifconfig.
d270 1
a270 1
  To attach a VLAN to the driver enter the following:
a271 2
        ifconfig vlan0 inet 10.0.0.1 netmask 255.255.255.0 vlan 1 vlandev 
             em0 mtu 1500 up
d273 1
a273 1
  Also, bring the driver up by entering:
d275 2
a276 1
        ifconfig em0 up
d282 2
a283 3
There are known performance problems with this driver when running UDP 
traffic with Jumbo Frames. Intel recommends not using Jumbo Frames for UDP
traffic.
@


1.4
log
@- Set RS (Report Status) bit on all descriptors of a packet instead of just the last one.
- Set RDTR to zero by default instead of 28.
- Fixed a problem with TX hangs with jumbo frames when number of fragments in the mbuf chain
is large.
- Added support for 82540EP based cards.

MFC after:	3 days
@
text
@d5 1
a5 1
September 11, 2002
d26 2
a27 2
FreeBSD, version 4.6. As a new feature for this release, the driver is now 
compiled by default into the FreeBSD 4.6 kernel.
@


1.3
log
@TX/RX descriptor/buffer management changes.
  Use array based scheme instead of queueing macros.

Submitted by:	Luigi Rizzo (rizzo@@icir.org)
MFC after:	3 days
@
text
@d5 1
a5 1
July 2, 2002
d24 1
a24 1
This file describes the FreeBSD* driver, version 1.3.x, for the Intel(R)
d158 1
a158 1
        /dev/em/if_em_fxhw.c optional em
@


1.2
log
@- Use IO mode to reset the controller (82544 and beyond)
- Read the Mac address only once during attach.
  (This fixes the failover issue observed using the bonding driver)

MFC after:	3 days
@
text
@@


1.1
log
@Added support for 82545EM and 82546EB based adapters.
Added Vlan support.

MFC after:	1 week
@
text
@a1 1

d5 1
a5 1
April 3, 2002
d26 2
a27 1
FreeBSD, version 4.5.
a32 2
Support for VLANs has been added as a new feature in this driver version.

a146 1
        mkdir /usr/src/sys/dev/em       
a148 1
        mkdir /usr/src/sys/modules/em
d151 1
a151 10
   Edit Makefile at /usr/src/sys/modules to add the em subdirectory.

   Edit your config file and add the following line, if it is not already
   in the file:

        device em

   Edit your config file, and remove the 'device wx' line from the file.
        
   Edit the /usr/src/sys/conf/files.i386 file, and add the following lines:
a152 1
        dev/em/if_em.c optional em
d155 1
a155 1
   Remove the following files from the /usr/src/sys/conf/files.i386 file, if 
d158 2
a159 2
        /dev/em/if_em_fxhw.c
        /dev/em/if_em_phy.c
@


1.1.2.1
log
@Added support for 82545EM and 82546EB based adapters.
Added Vlan support.
Added new reference and removed reference to unneeded files
from conf files.
@
text
@d172 1
a172 1
        /dev/em/if_em_fx_hw.c
@


1.1.2.2
log
@MFC
- Use IO mode to reset the controller (82544 and beyond)
- Read the Mac address only once during attach.
  (This fixes the failover issue observed using the bonding driver)
@
text
@d2 1
d6 1
a6 1
July 2, 2002
d27 1
a27 2
FreeBSD, version 4.6. As a new feature for this release, the driver is now 
compiled by default into the FreeBSD 4.6 kernel.
d33 2
d149 1
d152 1
d155 10
a164 1
   Edit the /usr/src/sys/conf/files.i386 file, and add the following line:
d166 1
d169 1
a169 1
   Remove the following lines from the /usr/src/sys/conf/files.i386 file, if 
d172 2
a173 2
        /dev/em/if_em_fxhw.c optional em
        /dev/em/if_em_phy.c optional em
@


1.1.2.3
log
@MFC:
TX/RX descriptor/buffer management changes.
    Use array based scheme instead of queueing macros.

Submitted by:	Luigi Rizzo (rizzo@@icir.org)
@
text
@d158 1
a158 1
        /dev/em/if_em_fx_hw.c optional em
@


1.1.2.4
log
@MFC:
  - Set RS (Report Status) bit on all descriptors of a packet instead of just the last one.
  - Set RDTR to zero by default instead of 28.
  - Fixed a problem with TX hangs with jumbo frames when number of fragments in the mbuf chain
  is large.
  - Added support for 82540EP based cards.
@
text
@d5 1
a5 1
September 11, 2002
d24 1
a24 1
This file describes the FreeBSD* driver, version 1.4.x, for the Intel(R)
@


1.1.2.5
log
@ - Move to array based indexing for TX/RX descriptor/buffer management
  - Added support for ITR (interrupt throttle register). This feature is available on
  adapters based on 82545 and above
  - Fixed problem with vlan support when traffic has priority bits set. (kern/45907)
PR:	kern/45907
@
text
@d5 1
a5 1
November 12, 2002
d26 2
a27 2
FreeBSD, version 4.7. As a new feature for this release, the driver is now 
compiled by default into the FreeBSD 4.7 kernel.
@


1.1.2.6
log
@MFC:
Add support for 82541 and 82547 based adapters
 - These have Intel gigabit PHY
 - 82547 uses CSA interface
Add support for DEVICE_POLLING
@
text
@d5 1
a5 1
February 5, 2003
d11 1
a11 1
- Overview
d21 2
a22 2
Overview
========
d24 1
a24 1
This file describes the FreeBSD* driver, version 1.5.x, for the Intel(R)
d26 6
a31 1
FreeBSD, version 4.7. 
d59 2
a60 3
 
   82540       PRO/1000 MT Desktop Adapter          A78408-xxx
   82541                                            C91016-xxx
a72 1

d91 5
a95 3
NOTE: The driver can be installed as a dynamic loadable kernel module or 
      compiled into the kernel. You must have kernel sources installed in 
      order to compile the driver module.
a96 2
In the instructions below, x.x.x is the driver version as indicated in the 
name of the driver tar file.
d103 1
a103 1
        tar xvfz em-x.x.x.tar.gz
d105 1
a105 1
   This will create an em-x.x.x directory.
d107 2
a108 2
3. To create a loadable module, perform the following steps. 
   NOTE: To compile the driver into the kernel, go directly to step 4.
d110 1
a110 1
	a. To compile the module
d112 1
a112 2
	          cd em-x.x.x
      	          make
d114 3
a116 5
   	b. To install the compiled module in system directory:
	 
		  make install
		
   	c. If you want the driver to load automatically when the system is booted:
d118 1
a118 2
      	      1. Follow steps a, and b above to compile and install the module
	      2. Edit /boot/loader.conf, and add the following line:
d120 1
a120 1
      	          if_em_load="YES"
d122 6
a127 1
4. To compile the driver into the kernel:
d129 1
a129 1
        cd em-x.x.x/src
d131 1
a131 1
        cp if_em* /usr/src/sys/dev/em
a132 1
        cp Makefile /usr/src/sys/modules/em
d134 2
a135 1
   Edit the /usr/src/sys/conf/files.i386 file, and add the following lines:
d137 1
a137 1
        dev/em/if_em.c optional em
d139 1
a139 1
        dev/em/if_em_hw.c optional em 
d141 1
a141 2
   Remove the following lines from the /usr/src/sys/conf/files.i386 file, 
   if they exist:
d143 1
a143 2
        dev/em/if_em_fxhw.c optional em
        dev/em/if_em_phy.c optional em
d145 1
a145 2
   Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in 
   /usr/src/sys/i386/conf, and ensure the following line is present:
d147 3
a149 9
        device em

   Compile and install the kernel. The system must be rebooted for the kernel
   updates to take effect. For additional information on compiling the 
   kernel, consult the FreeBSD operating system documentation.

5. To assign an IP address to the interface, enter the following:

        ifconfig em<interface_num> <IP_address>
d151 1
a151 3
6. Verify that the interface works. Enter the following, where <IP_address>
   is the IP address for another machine on the same subnet as the interface
   that is being tested:
d153 1
a153 1
        ping <IP_address>
d155 2
a156 2
7. To configure the IP address to remain after reboot, edit /etc/rc.conf, 
   and create the appropriate ifconfig_em<interface_num>entry:
d158 2
a159 1
        ifconfig_em<interface_num>="<ifconfig_settings>"
d161 1
a161 5
   Example usage:

        ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0"

   NOTE: For assistance, see the ifconfig man page.
a200 4
The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on 
all but the 82542-based adapters. For specific adapters, refer to the 
Supported Adapters section.

d203 1
d207 2
a208 10
  NOTES: Only enable Jumbo Frames if your network infrastructure supports 
         them.
   
         The Jumbo Frames setting on the switch must be set to at least 
         22 bytes larger than that of the adapter.

  The Jumbo Frames MTU range for Intel Adapters is 1500 to 16114. The default 
  MTU range is 1500. To modify the setting, enter the following:

        ifconfig em<interface_num> <hostname or IP address> mtu 9000
d210 2
a211 2
  To confirm an interface's MTU value, use the ifconfig command. To confirm
  the MTU used between two specific devices, use:
d213 1
a213 1
        route get <destination_IP_address>
a216 18
  To create a new VLAN pseudo-interface:

        ifconfig <vlan_name> create

  To associate the VLAN pseudo-interface with a physical interface and 
  assign a VLAN ID, IP address, and netmask:

        ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan 
           <vlan_id> vlandev <physical_interface>

  Example:

        ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan10 vlandev em0

  In this example, all packets will be marked on egress with  802.1Q VLAN 
  tags, specifying a VLAN ID of 10.

  To remove a VLAN pseudo-interface:
d218 1
a218 1
        ifconfig <vlan_name> destroy
d220 1
a220 4
  Polling
  -------
  To enable polling in the driver, add the following options to the kernel 
  configuration, and then recompile the kernel:
d222 1
a222 2
        options DEVICE_POLLING
        options HZ=1000
d224 1
a224 2
  At runtime, use the following command to turn on polling mode. Similarly,
  turn off polling mode by setting the variable to 0:
d226 1
a226 1
        sysctl kern.polling.enable=1
d228 2
d231 1
a231 1
  NOTES: DEVICE POLLING is only valid for non-SMP kernels.
d233 1
a233 2
         The driver has to be built into the kernel for DEVICE POLLING to be
         enabled in the driver.
d239 3
a241 2
There are known performance issues with this driver when running UDP traffic
with Jumbo Frames. Intel recommends not using Jumbo Frames for UDP traffic.
@


1.1.2.7
log
@MFC:
  Add support for Quad port adapter
  Add sysctl's to display statistics/debug_info
  Increment packet in/out statistics inline instead of every two seconds
@
text
@d5 1
a5 1
April 13, 2003
a67 2
   82546EB     PRO/1000 MT Quad Port Server Adapter C11227-xxx 

d129 1
a129 1
        cp Makefile.kernel /usr/src/sys/modules/em/Makefile
@


1.1.2.8
log
@MFC:
Add support for new devices.
  Bug Fixes:
          - Allow users to use LAA
          - Remember promiscuous mode settings while bridging
          - Allow gratuitous arp's to be sent

PR:	52966/54488
Approved by:	re (murray)
@
text
@d5 1
a5 1
July 24, 2003
d24 1
a24 1
This file describes the FreeBSD* driver, version 1.7.x, for the Intel(R)
d54 1
a54 1

d56 1
a56 2

   82541       PRO/1000 MT Desktop Adapter          C91016-xxx
a69 1
   82547       PRO/1000 CT Network Connection
d284 2
a285 40
  There are known performance issues with this driver when running UDP traffic
  with Jumbo Frames. Intel recommends not using Jumbo Frames for UDP traffic.


  82541/82547 can't link or is slow to link with some link partners
  -----------------------------------------------------------------

  There is a known compatibility issue with 82541/82547 and some switches 
  where link will not be established, or will be slow to establish.  In 
  particular, these switches are known to be incompatible with 82541/82547:

        Planex FXG-08TE
        I-O Data ETG-SH8

  To workaround the issue, the driver can be compiled with an override of the 
  PHY's master/slave setting.  Forcing master or forcing slave mode will 
  improve time-to-link.

  Edit ./em.x.x.x/src/if_em.h to remove the #define EM_MASTER_SLAVE 
  from within the comments.  

      /* #define EM_MASTER_SLAVE  2 */
      #define EM_MASTER_SLAVE  2 

  Use one of the following options.
      0 = Hardware default
      1 = Master mode
      2 = Slave mode
      3 = Auto master/slave

  Recompile the module (refer to step 3 above)
  a. To compile the module

          cd em-x.x.x
          make clean
          make

   b. To install the compiled module in system directory:
 
          make install
@


1.1.2.9
log
@Changed to reflect the latest changes in Intel's em version 2.1.7
@
text
@d5 1
a5 1
March 18, 2005
d12 1
a12 1
- Identifying Your Adapter
d24 3
a26 2
This file describes the FreeBSD* driver, version 2.1.x, for the Intel(R)
PRO/1000 Family of Adapters.
d28 2
a29 2
For questions related to hardware requirements, refer to the documentation
supplied with your Intel PRO/1000 adapter. All hardware requirements listed
d33 2
a34 2
Identifying Your Adapter
========================
d36 36
a71 2
For information on how to identify your adapter, go to the Adapter &
Driver ID Guide at:
a72 1
http://support.intel.com/support/network/adapter/pro100/21397.htm
d74 4
d79 2
a80 1
For the latest Intel network drivers for FreeBSD, see:
d82 1
a82 1
http://appsr.intel.com/scripts-df/support_intel.asp
d84 1
d86 1
a86 1
NOTE: Mobile adapters are not fully supported.
d92 2
a93 2
NOTE: The driver can be installed as a dynamic loadable kernel module or
      compiled into the kernel. You must have kernel sources installed in
d96 1
a96 1
In the instructions below, x.x.x is the driver version as indicated in the
d99 1
a99 1
1. Move the base driver tar file to the directory of your choice. For
d108 1
a108 1
3. To create a loadable module, perform the following steps.
d111 1
a111 4
        a. To compile the module

                  cd em-x.x.x
                  make
d113 2
a114 1
        b. To install the compiled module in system directory:
d116 5
a120 1
                  make install
d122 2
a123 1
        c. If you want the driver to load automatically when the system is booted:
d125 1
a125 3
              1. Edit /boot/loader.conf, and add the following line:

                  if_em_load="YES"
d135 1
a135 2
   Edit the /usr/src/sys/conf/files.i386 file, and add the following lines only if
   they don't already exist:
d139 1
a139 1
        dev/em/if_em_hw.c optional em
d141 1
a141 1
   Remove the following lines from the /usr/src/sys/conf/files.i386 file,
d147 1
a147 1
   Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in
d153 1
a153 1
   updates to take effect. For additional information on compiling the
d166 2
a167 2
7. To configure the IP address to remain after reboot, edit /etc/rc.conf,
   and create the appropriate ifconfig_em<interface_num>entry:
d181 2
a182 2
By default, the adapter auto-negotiates the speed and duplex of the
connection. If there is a specific need, the ifconfig utility can be used to
d185 1
a185 1
        ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt
d188 2
a189 2
   NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is
         not specified and you are not running at gigabit speed, the driver
d197 1
a197 1
   10baseT/UTP     -  Sets speed to 10 Mbps. Use the ifconfig mediaopt
d215 3
a217 3
The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on
all but the 82542-based adapters. For specific adapters, refer to the
Identifying Your Adapter section.
d221 2
a222 2
  To enable Jumbo Frames, use the ifconfig utility to increase the MTU
  beyond 1500 bytes.
d224 1
a224 1
  NOTES: Only enable Jumbo Frames if your network infrastructure supports
d226 3
d230 1
a230 8
         The Jumbo Frames setting on the switch must be set to at least
         22 bytes larger than that of the MTU.

         The Intel PRO/1000 PM Network Connection does not support jumbo
         frames.


  The Jumbo Frames MTU range for Intel Adapters is 1500 to 16114. The default
d235 2
a236 1
 To confirm the MTU used between two specific devices, use:
d242 1
a242 1
  To create a new VLAN interface:
d246 1
a246 1
  To associate the VLAN interface with a physical interface and
d249 1
a249 1
        ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan
d256 1
a256 1
  In this example, all packets will be marked on egress with  802.1Q VLAN
d259 1
a259 1
  To remove a VLAN interface:
d265 1
a265 6
  NOTES: DEVICE POLLING is only valid for non-SMP kernels.

        The driver has to be compiled into the kernel for DEVICE POLLING to be
        enabled in the driver.

  To enable polling in the driver, add the following options to the kernel
d271 2
a272 4
  At runtime use:
        sysctl kern.polling.enable=1 to turn polling on
  Use:
        sysctl ker.polling.enable=0 to turn polling off
d274 1
a274 3
  Checksum Offload
  ----------------
  Checksum offloading is not supported on 82542 Gigabit adapters.
a275 2
  Checksum offloading supports both TCP and UDP packets and is
  supported for both transmit and receive.
d277 1
a277 3
  Checksum offloading can be enabled or disabled using ifconfig.
  Both transmit and receive offloading will be either enabled or
  disabled together. You cannot enable/disable one without the other.
d279 2
a280 1
  To enable checksum offloading:
a281 1
         ifconfig <interface_num> rxcsum
d283 5
a287 1
  To disable checksum offloading:
a288 1
         ifconfig <interface_num> -rxcsum
d290 2
a291 1
  To confirm the current setting:
d293 3
a295 1
         ifconfig <interface_num>
a296 15
  Look for the presence or absence of the following line:

         options=3 <RXCSUM,TXCSUM>

  See the ifconfig man page for further information.

Known Limitations
=================

  There are known performance issues with this driver when running UDP traffic
  with Jumbo Frames.

  There is a known compatibility issue where time to link is slow or link is not
  established between 82541/82547 controllers and some switches.  Known switches
  include:
d300 3
a302 1
  The driver can be compiled with the following changes:
d304 2
a305 2
  Edit ./em.x.x.x/src/if_em.h to uncomment the #define EM_MASTER_SLAVE
  from within the comments.  For example, change from:
d308 1
a308 2
  to:
      #define EM_MASTER_SLAVE  2
d310 2
a311 1
  Use one of the following options:
a314 1
  Setting 2 is recommended.
d316 6
a321 5
  Recompile the module:
          a. To compile the module
                cd em-x.x.x
                make clean
                make
d324 2
a325 1
                make install
d335 4
a338 2
If an issue is identified, support is through email only at:
freebsdnic@@mailbox.intel.com
d343 6
a348 6
This software program is released under the terms of a license agreement
between you ('Licensee') and Intel. Do not use or load this software or any
associated materials (collectively, the 'Software') until you have carefully
read the full terms and conditions of the LICENSE located in this software
package. By loading or using the Software, you agree to the terms of this
Agreement. If you do not agree with the terms of this Agreement, do not
@


1.1.2.10
log
@Sync up with most of the changes to RELENG_6 including using bus_dma,
new PCI IDs, lots of style changes, suspend/resume methods.  Things not
included include the INTR_FAST + taskqueue changes, link flapping
workarounds in em_ioctl(), and jumbo frame fixups for architectures that
require strict alignment.
@
text
@d5 1
a5 1
May 2, 2006
d24 2
a25 2
This file describes the FreeBSD* driver for the Intel(R) PRO/1000 Family of
Adapters. This driver has been developed for use with FreeBSD, Release 6.x.
d38 1
a38 1
http://support.intel.com/support/network/sb/cs-012904.htm
d43 1
a43 1
http://downloadfinder.intel.com/scripts-df-external/support_intel.aspx
d47 1
a47 2
NOTE: The Intel(R) 82562v 10/100 Network Connection only provides 10/100
support.
d94 1
a94 1
   Edit the /usr/src/sys/conf/files file, and add the following lines only if
d101 1
a101 1
   Remove the following lines from the /usr/src/sys/conf/files file,
d176 1
a176 1
all but the 82542-based adapters.  For specific adapters, refer to the
d181 2
a182 2
  To enable Jumbo Frames, use the ifconfig utility to set the Maximum
  Transport Unit (MTU) frame size above its default of 1500 bytes.
d184 2
a185 2
  The Jumbo Frames MTU range for Intel Adapters is 1500 to 16110. To modify
  the setting, enter the following:
d187 2
a188 1
        ifconfig em<interface_num> <hostname or IP address> mtu 9000
d190 2
a191 1
  To confirm the MTU used between two specific devices, use:
a192 1
        route get <destination_IP_address>
d194 2
a195 1
  Notes:
d197 1
a197 1
  - Only enable Jumbo Frames if your network infrastructure supports them.
d199 1
a199 41
  - To enable Jumbo Frames, increase the MTU size on the interface beyond
    1500.

  - The Jumbo Frames setting on the switch must be set to at least 22 bytes
    larger than that of the MTU.

  - The maximum MTU setting for Jumbo Frames is 16110.  This value coincides
    with the maximum Jumbo Frames size of 16128.

  - Some Intel gigabit adapters that support Jumbo Frames have a frame size
    limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes.
    The adapters with this limitation are based on the Intel(R) 82571EB,
    82572EI, 82573L and 80003ES2LAN controller.  These correspond to the
    following product names:
     Intel(R) PRO/1000 PT Server Adapter
     Intel(R) PRO/1000 PT Desktop Adapter
     Intel(R) PRO/1000 PT Network Connection
     Intel(R) PRO/1000 PT Dual Port Server Adapter
     Intel(R) PRO/1000 PT Dual Port Network Connection
     Intel(R) PRO/1000 PF Server Adapter
     Intel(R) PRO/1000 PF Network Connection
     Intel(R) PRO/1000 PF Dual Port Server Adapter
     Intel(R) PRO/1000 PB Server Connection
     Intel(R) PRO/1000 PL Network Connection
     Intel(R) PRO/1000 EB Network Connection with I/O Acceleration
     Intel(R) PRO/1000 EB Backplane Connection with I/O Acceleration

  - Adapters based on the Intel(R) 82542 and 82573V/E controller do not
    support Jumbo Frames. These correspond to the following product names:
     Intel(R) PRO/1000 Gigabit Server Adapter
     Intel(R) PRO/1000 PM Network Connection

  - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or
    loss of link.

  - The following adapters do not support Jumbo Frames:
    Intel(R) 82562V 10/100 Network Connection
    Intel(R) 82566DM Gigabit Network Connection
    Intel(R) 82566DC Gigabit Network Connection
    Intel(R) 82566MM Gigabit Network Connection
    Intel(R) 82566MC Gigabit Network Connection
d201 1
a225 1

d242 1
a242 2
        sysctl kern.polling.enable=0 to turn polling off

a272 1

a319 1

@


1.1.2.11
log
@Switch importer
@
text
@d1 1
a1 1
$FreeBSD: stable/4/sys/dev/em/README 162049 2006-09-05 19:48:10Z jhb $
@


