Date: Fri, 24 Sep 2021 01:41:27 GMT From: Kevin Bowling <kbowling@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: git: 0ab1c22db802 - stable/12 - e1000: Update copyrights and readme Message-ID: <202109240141.18O1fRnh039209@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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@FreeBSD.org> AuthorDate: 2021-09-16 11:35:45 +0000 Commit: Kevin Bowling <kbowling@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@intel.com - http://support.intel.com -If an issue is identified, support is through email only at: -freebsd@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 ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202109240141.18O1fRnh039209>