git: 0ab1c22db802 - stable/12 - e1000: Update copyrights and readme

Kevin Bowling kbowling at FreeBSD.org
Fri Sep 24 01:41:28 UTC 2021


The branch stable/12 has been updated by kbowling (ports committer):

URL: https://cgit.FreeBSD.org/src/commit/?id=0ab1c22db802388f63883e3095a7b3afb86db029

commit 0ab1c22db802388f63883e3095a7b3afb86db029
Author:     Kevin Bowling <kbowling at FreeBSD.org>
AuthorDate: 2021-09-16 11:35:45 +0000
Commit:     Kevin Bowling <kbowling at FreeBSD.org>
CommitDate: 2021-09-24 01:38:07 +0000

    e1000: Update copyrights and readme
    
    Copyrights in sync with "cid-gigabit.2020.06.05.tar.gz released by ND"
    (from DPDK).
    
    README from the latest em-7.7.8 on intel.com
    
    Approved by:    imp
    MFC after:      1 week
    
    (cherry picked from commit 702cac6c6bf20ca43db26c38185f65fc9ed1935e)
---
 sys/dev/e1000/LICENSE             |  41 ++-
 sys/dev/e1000/README              | 547 ++++++++++++++++++++------------------
 sys/dev/e1000/e1000_80003es2lan.c |  40 +--
 sys/dev/e1000/e1000_80003es2lan.h |  40 +--
 sys/dev/e1000/e1000_82540.c       |  40 +--
 sys/dev/e1000/e1000_82541.c       |  40 +--
 sys/dev/e1000/e1000_82541.h       |  40 +--
 sys/dev/e1000/e1000_82542.c       |  40 +--
 sys/dev/e1000/e1000_82543.c       |  40 +--
 sys/dev/e1000/e1000_82543.h       |  40 +--
 sys/dev/e1000/e1000_82571.c       |  40 +--
 sys/dev/e1000/e1000_82571.h       |  40 +--
 sys/dev/e1000/e1000_82575.c       |  40 +--
 sys/dev/e1000/e1000_82575.h       |  40 +--
 sys/dev/e1000/e1000_api.c         |  40 +--
 sys/dev/e1000/e1000_api.h         |  40 +--
 sys/dev/e1000/e1000_defines.h     |  40 +--
 sys/dev/e1000/e1000_hw.h          |  40 +--
 sys/dev/e1000/e1000_i210.c        |  40 +--
 sys/dev/e1000/e1000_i210.h        |  40 +--
 sys/dev/e1000/e1000_ich8lan.c     |  40 +--
 sys/dev/e1000/e1000_ich8lan.h     |  40 +--
 sys/dev/e1000/e1000_mac.c         |  40 +--
 sys/dev/e1000/e1000_mac.h         |  40 +--
 sys/dev/e1000/e1000_manage.c      |  40 +--
 sys/dev/e1000/e1000_manage.h      |  40 +--
 sys/dev/e1000/e1000_mbx.c         |  40 +--
 sys/dev/e1000/e1000_mbx.h         |  40 +--
 sys/dev/e1000/e1000_nvm.c         |  40 +--
 sys/dev/e1000/e1000_nvm.h         |  40 +--
 sys/dev/e1000/e1000_osdep.c       |  40 +--
 sys/dev/e1000/e1000_osdep.h       |  40 +--
 sys/dev/e1000/e1000_phy.c         |  40 +--
 sys/dev/e1000/e1000_phy.h         |  40 +--
 sys/dev/e1000/e1000_regs.h        |  40 +--
 sys/dev/e1000/e1000_vf.c          |  40 +--
 sys/dev/e1000/e1000_vf.h          |  40 +--
 37 files changed, 1007 insertions(+), 981 deletions(-)

diff --git a/sys/dev/e1000/LICENSE b/sys/dev/e1000/LICENSE
index f70a7cbd4a1d..51a32a819633 100644
--- a/sys/dev/e1000/LICENSE
+++ b/sys/dev/e1000/LICENSE
@@ -1,31 +1,30 @@
 $FreeBSD$
 
-  Copyright (c) 2001-2010, Intel Corporation 
+  Copyright (c) 2001-2020, Intel Corporation
   All rights reserved.
-  
-  Redistribution and use in source and binary forms, with or without 
+
+  Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions are met:
-  
-   1. Redistributions of source code must retain the above copyright notice, 
+
+   1. Redistributions of source code must retain the above copyright notice,
       this list of conditions and the following disclaimer.
-  
-   2. Redistributions in binary form must reproduce the above copyright 
-      notice, this list of conditions and the following disclaimer in the 
+
+   2. Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.
-  
-   3. Neither the name of the Intel Corporation nor the names of its 
-      contributors may be used to endorse or promote products derived from 
+
+   3. Neither the name of the Intel Corporation nor the names of its
+      contributors may be used to endorse or promote products derived from
       this software without specific prior written permission.
-  
+
   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   POSSIBILITY OF SUCH DAMAGE.
-
diff --git a/sys/dev/e1000/README b/sys/dev/e1000/README
index c0abeacccf4a..d734be75e758 100644
--- a/sys/dev/e1000/README
+++ b/sys/dev/e1000/README
@@ -1,9 +1,8 @@
 $FreeBSD$
-FreeBSD* Driver for Intel Network Connection
-=============================================
-
-May 30, 2007
+FreeBSD* Driver for Intel(R) Ethernet
+=====================================
 
+August 7, 2019
 
 Contents
 ========
@@ -11,396 +10,424 @@ Contents
 - Overview
 - Identifying Your Adapter
 - Building and Installation
-- Speed and Duplex Configuration
-- Additional Configurations
-- Known Limitations
+- Additional Features and Configurations
+- Known Issues/Troubleshooting
 - 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.
+This file describes the FreeBSD* driver for Intel(R) Ethernet. This driver has
+been developed for use with all community-supported versions of FreeBSD.
 
 For questions related to hardware requirements, refer to the documentation
-supplied with your Gigabit adapter. All hardware requirements listed
+supplied with your Intel Ethernet Adapter. All hardware requirements listed
 apply to use with FreeBSD.
 
 
 Identifying Your Adapter
 ========================
+This release includes two gigabit FreeBSD base Drivers for Intel(R) Ethernet.
+These drivers are em and igb.
 
-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:
+- The igb driver supports all 82575 and 82576-based gigabit network connections.
+- The em driver supports all other gigabit network connections.
+- Gigabit devices base on the Intel(R) Ethernet Controller X722 are supported by
+  the ixl driver.
 
-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.
 
+For information on how to identify your adapter, and for the latest Intel
+network drivers, refer to the Intel Support website:
+http://www.intel.com/support
+
+
 Building and Installation
 =========================
+NOTE: This driver package is to be used only as a standalone archive and the
+user should not attempt to incorporate it into the kernel source tree.
 
-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.
+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:
+   # tar xzf em-x.x.x.tar.gz
 
-              1. Edit /boot/loader.conf, and add the following line:
+This will create the em-x.x.x directory.
 
-                  if_em_load="YES"
+3. To install man page:
 
-4. To compile the driver into the kernel, enter:
+   # cd em-x.x.x
+   # gzip -c em.4 > /usr/share/man/man4/em.4.gz
 
-        cd em-x.x.x/src
-        cp *.[ch] /usr/src/sys/dev/em
+4. To load the driver onto a running system:
 
-        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.
+   # cd em-x.x.x/src
+   # make
+   # kldload ./if_em.ko
 
 5. To assign an IP address to the interface, enter the following:
 
-        ifconfig em<interface_num> <IP_address>
+   # 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>"
+   # ping <IP_address>
 
-   Example usage:
+7. If you want the driver to load automatically when the system is booted:
 
-        ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0"
+   # cd em-x.x.x/src
+   # make
+   # make install
 
-   NOTE: For assistance, see the ifconfig man page.
+Edit /boot/loader.conf, and add the following line:
+   if_em_load="YES"
 
+Edit /etc/rc.conf, and create the appropriate ifconfig_em<interface_num> entry:
 
-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>="<ifconfig_settings>"
 
-        ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt
-            full-duplex
+Example usage:
+   ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0"
 
-   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.
+    NOTE: For assistance, see the ifconfig man page.
 
-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
+Additional Features and Configurations
+======================================
 
+Speed and Duplex Configuration
+------------------------------
+In addressing speed and duplex configuration issues, you need to distinguish
+between copper-based adapters and fiber-based adapters.
 
-This driver supports the following media type options:
+In the default mode, an Intel(R) Ethernet Network Adapter using copper
+connections will attempt to auto-negotiate with its link partner to determine
+the best setting. If the adapter cannot establish link with the link partner
+using auto-negotiation, you may need to manually configure the adapter and link
+partner to identical settings to establish link and pass packets. This should
+only be needed when attempting to link with an older switch that does not
+support auto-negotiation or one that has been forced to a specific speed or
+duplex mode. Your link partner must match the setting you choose. 1 Gbps speeds
+and higher cannot be forced. Use the autonegotiation advertising setting to
+manually set devices for 1 Gbps and higher.
 
-   autoselect      -  Enables auto-negotiation for speed and duplex.
+Caution: Only experienced network administrators should force speed and duplex
+or change autonegotiation advertising manually. The settings at the switch must
+always match the adapter settings. Adapter performance may suffer or your
+adapter may not operate if you configure the adapter differently from your
+switch.
 
-   10baseT/UTP     -  Sets speed to 10 Mbps. Use the ifconfig mediaopt
-                      option to select full-duplex mode.
+An Intel(R) Ethernet Network Adapter using fiber-based connections, however,
+will not attempt to auto-negotiate with its link partner since those adapters
+operate only in full duplex and only at their native speed.
 
-   100baseTX       -  Sets speed to 100 Mbps. Use the ifconfig mediaopt
-                      option to select full-duplex mode.
+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.
 
-   1000baseTX      -  Sets speed to 1000 Mbps. In this case, the driver
-                      supports only full-duplex mode.
+Example usage:
 
-   1000baseSX      -  Sets speed to 1000 Mbps. In this case, the driver
-                      supports only full-duplex mode.
+# ifconfig emX <IP_address> media 100baseTX mediaopt full-duplex
 
-For more information on the ifconfig utility, see the ifconfig man page.
+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, you must use this
+command to change to half duplex:
 
-Additional Configurations
-=========================
+# ifconfig emX <IP_address> media 100baseTX -mediaopt full-duplex
 
-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.
+This driver supports the following media type options:
 
-  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.
+Media Type		Description
+----------		-----------
+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.
 
-  The Jumbo Frames MTU range for Intel Adapters is 1500 to 16110. To modify
-  the setting, enter the following:
+For more information on the ifconfig utility, see the ifconfig man page.
 
-        ifconfig em<interface_num> <hostname or IP address> mtu 9000
+Jumbo Frames
+------------
+Jumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU)
+to a value larger than the default value of 1500.
+
+Use the ifconfig command to increase the MTU size. For example, enter the
+following where X is the interface number:
+
+# ifconfig emX mtu 9000
+
+To confirm an interface's MTU value, use the ifconfig command.
+
+To confirm the MTU used between two specific devices, use:
+
+# route get <destination_IP_address>
+
+NOTE: The maximum MTU setting for Jumbo Frames is 16110. This value coincides
+with the maximum Jumbo Frames size of 16132 bytes.
+
+NOTE: Using Jumbo frames at 10 or 100 Mbps is not supported and may result in
+poor performance or loss of link.
+
+NOTE: Packet loss may have a greater impact on throughput when you use jumbo
+frames. If you observe a drop in performance after enabling jumbo frames,
+enabling flow control may mitigate the issue.
+
+NOTE: 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
+   Intel(R) 82574L Gigabit Network Connection
+   Intel(R) Gigabit CT Desktop Adapter
+   Intel(R) 82567LM-4 Gigabit Network Connection
+   Intel(R) 82567LM-3 Gigabit Network Connection
+   Intel(R) 82567LF-3 Gigabit Network Connection
 
-  To confirm the MTU used between two specific devices, use:
+NOTE: The following adapters limit Jumbo Frames sized packets to a maximum of
+4088 bytes:
+  - Intel(R) 82578DM Gigabit Network Connection
+  - Intel(R) 82577LM Gigabit Network Connection
+- The following adapters do not support Jumbo Frames:
+  - Intel(R) PRO/1000 Gigabit Server Adapter
+  - Intel(R) PRO/1000 PM Network Connection
+  - Intel(R) 82562G 10/100 Network Connection
+  - Intel(R) 82562G-2 10/100 Network Connection
+  - Intel(R) 82562GT 10/100 Network Connection
+  - Intel(R) 82562GT-2 10/100 Network Connection
+  - Intel(R) 82562V 10/100 Network Connection
+  - Intel(R) 82562V-2 10/100 Network Connection
+  - Intel(R) 82566DC Gigabit Network Connection
+  - Intel(R) 82566DC-2 Gigabit Network Connection
+  - Intel(R) 82566DM Gigabit Network Connection
+  - Intel(R) 82566MC Gigabit Network Connection
+  - Intel(R) 82566MM Gigabit Network Connection
+  - Intel(R) 82567V-3 Gigabit Network Connection
+  - Intel(R) 82577LC Gigabit Network Connection
+  - Intel(R) 82578DC Gigabit Network Connection
+- Jumbo Frames cannot be configured on an 82579-based Network device if
+  MACSec is enabled on the system.
 
-        route get <destination_IP_address>
 
-  Notes:
+VLANS
+-----
+To create a new VLAN interface:
 
-  - Only enable Jumbo Frames if your network infrastructure supports them.
+# ifconfig <vlan_name> create
 
-  - To enable Jumbo Frames, increase the MTU size on the interface beyond
-    1500.
+To associate the VLAN interface with a physical interface and assign a VLAN ID,
+IP address, and netmask:
 
-  - The Jumbo Frames setting on the switch must be set to at least 22 bytes
-    larger than that of the MTU.
+# ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan <vlan_id>
+vlandev <physical_interface>
 
-  - The maximum MTU setting for Jumbo Frames is 16110.  This value coincides
-    with the maximum Jumbo Frames size of 16128.
+Example:
 
-  - 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
+# ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan 10 vlandev em0
 
-  - 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
+In this example, all packets will be marked on egress with 802.1Q VLAN tags,
+specifying a VLAN ID of 10.
 
-  - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or
-    loss of link.
+To remove a VLAN interface:
 
-  - 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
+# ifconfig <vlan_name> destroy
 
-  VLANs
-  -----
-  To create a new VLAN interface:
 
-        ifconfig <vlan_name> create
+Polling
+-------
+NOTES:
+- Device Polling is only valid for non-SMP kernels.
+- The driver has to be built into the kernel for Device Polling to be
+  enabled in the driver.
 
-  To associate the VLAN interface with a physical interface and
-  assign a VLAN ID, IP address, and netmask:
+To enable polling in the driver, add the following options to the kernel
+configuration, and then recompile the kernel:
 
-        ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan
-           <vlan_id> vlandev <physical_interface>
+  options DEVICE_POLLING
+  options HZ=1000
 
-  Example:
+At runtime use:
+  ifconfig emX polling (to turn polling on)
+and:
+  ifconfig emX -polling (to turn it off)
 
-        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.
+Checksum Offload
+----------------
+Checksum offloading is not supported on 82542 Gigabit adapters.
 
-  To remove a VLAN interface:
+Checksum offloading supports both TCP and UDP packets and is supported for both
+transmit and receive.
 
-  Intel Network Connection        ifconfig <vlan_name> destroy
+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:
 
-  Polling
-  -------
+# ifconfig emX rxcsum
 
-  To enable polling in the driver, add the following options to the kernel
-  configuration, and then recompile the kernel:
+To disable checksum offloading:
 
-        options DEVICE_POLLING
-        options HZ=1000
+# ifconfig emX -rxcsum
 
-  At runtime use:
-        ifconfig emX polling (to turn polling on)
-  and:
-        ifconfig emX -polling  (to turn it off)
+To confirm the current setting:
 
+# ifconfig emX
 
-  Checksum Offload
-  ----------------
-  Checksum offloading is not supported on 82542 Gigabit adapters.
+Look for the presence or absence of the following line:
+  options=3 <RXCSUM,TXCSUM>
 
-  Checksum offloading supports both TCP and UDP packets and is
-  supported for both transmit and receive.
+See the ifconfig man page for further information.
 
-  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:
+TSO
+---
+TSO (TCP Segmentation Offload) supports both IPv4 and IPv6. TSO can be disabled
+and enabled using the ifconfig utility or sysctl.
 
-         ifconfig <interface_num> rxcsum
+NOTE: TSO requires Tx checksum, if Tx checksum is disabled, TSO will also be
+disabled.
 
-  To disable checksum offloading:
+NOTE: 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 or
+82544-based adapters, as well as older adapters.
 
-         ifconfig <interface_num> -rxcsum
+To enable/disable TSO in the stack:
 
-  To confirm the current setting:
+# sysctl net.inet.tcp.tso=0 (or 1 to enable it)
 
-         ifconfig <interface_num>
+Doing this disables/enables TSO in the stack and affects all installed adapters.
 
-  Look for the presence or absence of the following line:
+To disable BOTH TSO IPv4 and IPv6:
 
-         options=3 <RXCSUM,TXCSUM>
+# ifconfig em<interface_num> -tso
 
-  See the ifconfig man page for further information.
+To enable BOTH TSO IPv4 and IPv6:
 
+# ifconfig em<interface_num> tso
 
-  TSO
-  ---
-  The FreeBSD driver offers support for TSO (TCP Segmentation Offload).
+You can also enable/disable IPv4 TSO or IPv6 TSO individually. Simply replace
+tso|-tso in the above command with tso4 or tso6. For example, to disable
+TSO IPv4:
 
-  You can enable/disable it in two ways/places:
+# ifconfig em<interface_num> -tso4
 
-        -  sysctl net.inet.tcp.tso=0    (or 1 to enable it)
+To disable TSO IPv6:
 
-  Doing this disables TSO in the stack and will affect all adapters.
+# ifconfig em<interface_num> -tso6
 
-        -  ifconfig emX -tso
 
-  Doing this will disable TSO only for this adapter.
+MSI-X
+-----
+MSI or MSI-X can be turned off by an entry in /etc/sysctl.conf
 
-  To enable:
+  hw.em.enable_msi=0
 
-        -  ifconfig emX tso
+Unload and reload the driver.
 
-  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 Issues/Troubleshooting
+============================
 
-Known Limitations
-=================
+Detected Tx Unit Hang in Quad Port Adapters
+-------------------------------------------
+In some cases ports 3 and 4 don't pass traffic and report 'Detected Tx Unit
+Hang' followed by 'NETDEV WATCHDOG: emX: transmit timed out' errors. Ports 1
+and 2 do not show any errors and will pass traffic.
 
-  Detected Tx Unit Hang in Quad Port Adapters
-  -------------------------------------------
+This issue may be resolved by updating to the latest kernel and BIOS. You
+should use an OS that fully supports Message Signaled Interrupts (MSI) and make
+sure that MSI is enabled in your system's BIOS.
 
-  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.
+----------------------------------------------------------------------------
 
 
-  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
 
-  82541/82547 can't link or is slow to link with some link partners
-  -----------------------------------------------------------------
+The driver can be compiled with the following changes:
 
-  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
-        Netgear GS105v3
+  Edit ./em.x.x.x/src/if_em.h to change the #define EM_MASTER_SLAVE
 
-  The driver can be compiled with the following changes:
+For example, change from:
 
-  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
 
-      #define EM_MASTER_SLAVE   e1000_ms_hw_default
-  to:
-      #define EM_MASTER_SLAVE   2
+to:
 
-  Use one of the following options:
-      1 = Master mode
-      2 = Slave mode
-      3 = Auto master/slave
-  Setting 2 is recommended.
+  #define EM_MASTER_SLAVE  2
 
-  Recompile the module:
-          a. To compile the module
-                cd em-x.x.x
-                make clean
-                make
+Use one of the following options:
+  1 = Master mode
+  2 = Slave mode
+  3 = Auto master/slave
+Setting 2 is recommended.
 
-   b. To install the compiled module in system directory:
-                make install
+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, go to the Intel support website at:
+http://www.intel.com/support/
 
-For general information and support, go to the Intel support website at:
+If an issue is identified with the released source code on a supported kernel
+with a supported adapter, email the specific information related to the issue
+to freebsd at intel.com
 
-        http://support.intel.com
 
-If an issue is identified, support is through email only at:
-freebsd at intel.com
+Copyright(c) 1999-2019 Intel Corporation.
 
 
-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.
+Trademarks
+==========
+Intel is a trademark or registered trademark of Intel Corporation or its
+subsidiaries in the United States and/or other countries.
 
 * Other names and brands may be claimed as the property of others.
diff --git a/sys/dev/e1000/e1000_80003es2lan.c b/sys/dev/e1000/e1000_80003es2lan.c
index 5c0220adfc6f..50fdfab54685 100644
--- a/sys/dev/e1000/e1000_80003es2lan.c
+++ b/sys/dev/e1000/e1000_80003es2lan.c
@@ -1,32 +1,32 @@
 /******************************************************************************
   SPDX-License-Identifier: BSD-3-Clause
 
-  Copyright (c) 2001-2015, Intel Corporation 
+  Copyright (c) 2001-2020, Intel Corporation
   All rights reserved.
-  
-  Redistribution and use in source and binary forms, with or without 
+
+  Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions are met:
-  
-   1. Redistributions of source code must retain the above copyright notice, 
+
+   1. Redistributions of source code must retain the above copyright notice,
       this list of conditions and the following disclaimer.
-  
-   2. Redistributions in binary form must reproduce the above copyright 
-      notice, this list of conditions and the following disclaimer in the 
+
+   2. Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.
-  
-   3. Neither the name of the Intel Corporation nor the names of its 
-      contributors may be used to endorse or promote products derived from 
+
+   3. Neither the name of the Intel Corporation nor the names of its
+      contributors may be used to endorse or promote products derived from
       this software without specific prior written permission.
-  
+
   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   POSSIBILITY OF SUCH DAMAGE.
 
diff --git a/sys/dev/e1000/e1000_80003es2lan.h b/sys/dev/e1000/e1000_80003es2lan.h
index cbf0eafa9407..9e6de14757d7 100644
--- a/sys/dev/e1000/e1000_80003es2lan.h
+++ b/sys/dev/e1000/e1000_80003es2lan.h
@@ -1,32 +1,32 @@
 /******************************************************************************
   SPDX-License-Identifier: BSD-3-Clause
 
-  Copyright (c) 2001-2015, Intel Corporation 
+  Copyright (c) 2001-2020, Intel Corporation
   All rights reserved.
-  
-  Redistribution and use in source and binary forms, with or without 
+
+  Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions are met:
-  
-   1. Redistributions of source code must retain the above copyright notice, 
+
+   1. Redistributions of source code must retain the above copyright notice,
       this list of conditions and the following disclaimer.
-  
-   2. Redistributions in binary form must reproduce the above copyright 
-      notice, this list of conditions and the following disclaimer in the 
+
+   2. Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.
-  
-   3. Neither the name of the Intel Corporation nor the names of its 
-      contributors may be used to endorse or promote products derived from 
+
+   3. Neither the name of the Intel Corporation nor the names of its
+      contributors may be used to endorse or promote products derived from
       this software without specific prior written permission.
-  
+
   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   POSSIBILITY OF SUCH DAMAGE.
 
diff --git a/sys/dev/e1000/e1000_82540.c b/sys/dev/e1000/e1000_82540.c
index d90c8f9b73f1..0296397ee013 100644
--- a/sys/dev/e1000/e1000_82540.c
+++ b/sys/dev/e1000/e1000_82540.c
@@ -1,32 +1,32 @@
 /******************************************************************************
   SPDX-License-Identifier: BSD-3-Clause
 
-  Copyright (c) 2001-2015, Intel Corporation 
+  Copyright (c) 2001-2020, Intel Corporation
   All rights reserved.
-  
-  Redistribution and use in source and binary forms, with or without 
+
+  Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions are met:
-  
-   1. Redistributions of source code must retain the above copyright notice, 
+
+   1. Redistributions of source code must retain the above copyright notice,
       this list of conditions and the following disclaimer.
-  
-   2. Redistributions in binary form must reproduce the above copyright 
-      notice, this list of conditions and the following disclaimer in the 
+
+   2. Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.
-  
-   3. Neither the name of the Intel Corporation nor the names of its 
-      contributors may be used to endorse or promote products derived from 
+
+   3. Neither the name of the Intel Corporation nor the names of its
+      contributors may be used to endorse or promote products derived from
       this software without specific prior written permission.
-  
+
   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   POSSIBILITY OF SUCH DAMAGE.
 
diff --git a/sys/dev/e1000/e1000_82541.c b/sys/dev/e1000/e1000_82541.c
*** 1823 LINES SKIPPED ***


More information about the dev-commits-src-all mailing list