1.\" Copyright (c) 2001-2003, Intel Corporation 2.\" All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions are met: 6.\" 7.\" 1. Redistributions of source code must retain the above copyright notice, 8.\" this list of conditions and the following disclaimer. 9.\" 10.\" 2. Redistributions in binary form must reproduce the above copyright 11.\" notice, this list of conditions and the following disclaimer in the 12.\" documentation and/or other materials provided with the distribution. 13.\" 14.\" 3. Neither the name of the Intel Corporation nor the names of its 15.\" contributors may be used to endorse or promote products derived from 16.\" this software without specific prior written permission. 17.\" 18.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 22.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28.\" POSSIBILITY OF SUCH DAMAGE. 29.\" 30.\" * Other names and brands may be claimed as the property of others. 31.\" 32.\" $FreeBSD$ 33.\" 34.Dd January 30, 2019 35.Dt EM 4 36.Os 37.Sh NAME 38.Nm em 39.Nd "Intel(R) PRO/1000 Gigabit Ethernet adapter driver" 40.Sh SYNOPSIS 41To compile this driver into the kernel, 42place the following lines in your 43kernel configuration file: 44.Bd -ragged -offset indent 45.Cd "device iflib" 46.Cd "device em" 47.Ed 48.Pp 49Alternatively, to load the driver as a 50module at boot time, place the following line in 51.Xr loader.conf 5 : 52.Bd -literal -offset indent 53if_em_load="YES" 54.Ed 55.Sh DESCRIPTION 56The 57.Nm 58driver provides support for PCI Gigabit Ethernet adapters based on 59the Intel 82540, 82541ER, 82541PI, 82542, 82543, 82544, 82545, 82546, 6082546EB, 82546GB, 82547, 82571, 81572, 82573, and 82574 Ethernet 61controller chips. 62.Pp 63The 64.Nm 65driver also provides support for PCI Express Gigabit Ethernet adapters 66based on the Intel 82575, 82576, 82580, i21x and i35x. 67.Pp 68The driver supports Transmit/Receive checksum offload and Jumbo Frames 69on all but 82542-based adapters. 70.Pp 71Furthermore it supports TCP segmentation offload (TSO) on all adapters but 72those based on the 82543, 82544 and 82547 controller chips. 73The identification LEDs of the adapters supported by the 74.Nm 75driver can be controlled via the 76.Xr led 4 77API for localization purposes. 78For further hardware information, see the 79.Pa README 80included with the driver. 81.Pp 82For questions related to hardware requirements, refer to the 83documentation supplied with your Intel PRO/1000 adapter. 84All hardware requirements listed apply to use with 85.Fx . 86.Pp 87Support for Jumbo Frames is provided via the interface MTU setting. 88Selecting an MTU larger than 1500 bytes with the 89.Xr ifconfig 8 90utility configures the adapter to receive and transmit Jumbo Frames. 91The maximum MTU size for Jumbo Frames is 16114. 92.Pp 93This driver supports hardware assisted VLANs. 94The 95.Nm 96driver supports the following media types: 97.Bl -tag -width ".Cm 10baseT/UTP" 98.It Cm autoselect 99Enables auto-negotiation for speed and duplex. 100.It Cm 10baseT/UTP 101Sets 10Mbps operation. 102Use the 103.Cm mediaopt 104option to select 105.Cm full-duplex 106mode. 107.It Cm 100baseTX 108Sets 100Mbps operation. 109Use the 110.Cm mediaopt 111option to select 112.Cm full-duplex 113mode. 114.It Cm 1000baseSX 115Sets 1000Mbps operation. 116Only 117.Cm full-duplex 118mode is supported at this speed. 119.It Cm 1000baseTX 120Sets 1000Mbps operation. 121Only 122.Cm full-duplex 123mode is supported at this speed. 124.El 125.Pp 126The 127.Nm 128driver supports the following media options: 129.Bl -tag -width ".Cm full-duplex" 130.It Cm full-duplex 131Forces full-duplex operation 132.It Cm half-duplex 133Forces half-duplex operation. 134.El 135.Pp 136Only use 137.Cm mediaopt 138to set the driver to 139.Cm full-duplex . 140If 141.Cm mediaopt 142is not specified, the driver defaults to 143.Cm half-duplex . 144.Pp 145For more information on configuring this device, see 146.Xr ifconfig 8 . 147.Sh HARDWARE 148The 149.Nm 150driver supports Gigabit Ethernet adapters based on the Intel 15182540, 82541ER, 82541PI, 82542, 82543, 82544, 82545, 82546, 82546EB, 15282546GB, 82547, 82571, 82572, 82573, 82574, 82575, 82576, and 82580 153controller chips: 154.Pp 155.Bl -bullet -compact 156.It 157Intel Gigabit ET Dual Port Server Adapter (82576) 158.It 159Intel Gigabit VT Quad Port Server Adapter (82575) 160.It 161Intel Single, Dual and Quad Gigabit Ethernet Controller (82580) 162.It 163Intel i210 and i211 Gigabit Ethernet Controller 164.It 165Intel i350 and i354 Gigabit Ethernet Controller 166.It 167Intel PRO/1000 CT Network Connection (82547) 168.It 169Intel PRO/1000 F Server Adapter (82543) 170.It 171Intel PRO/1000 Gigabit Server Adapter (82542) 172.It 173Intel PRO/1000 GT Desktop Adapter (82541PI) 174.It 175Intel PRO/1000 MF Dual Port Server Adapter (82546) 176.It 177Intel PRO/1000 MF Server Adapter (82545) 178.It 179Intel PRO/1000 MF Server Adapter (LX) (82545) 180.It 181Intel PRO/1000 MT Desktop Adapter (82540) 182.It 183Intel PRO/1000 MT Desktop Adapter (82541) 184.It 185Intel PRO/1000 MT Dual Port Server Adapter (82546) 186.It 187Intel PRO/1000 MT Quad Port Server Adapter (82546EB) 188.It 189Intel PRO/1000 MT Server Adapter (82545) 190.It 191Intel PRO/1000 PF Dual Port Server Adapter (82571) 192.It 193Intel PRO/1000 PF Quad Port Server Adapter (82571) 194.It 195Intel PRO/1000 PF Server Adapter (82572) 196.It 197Intel PRO/1000 PT Desktop Adapter (82572) 198.It 199Intel PRO/1000 PT Dual Port Server Adapter (82571) 200.It 201Intel PRO/1000 PT Quad Port Server Adapter (82571) 202.It 203Intel PRO/1000 PT Server Adapter (82572) 204.It 205Intel PRO/1000 T Desktop Adapter (82544) 206.It 207Intel PRO/1000 T Server Adapter (82543) 208.It 209Intel PRO/1000 XF Server Adapter (82544) 210.It 211Intel PRO/1000 XT Server Adapter (82544) 212.El 213.Sh LOADER TUNABLES 214Tunables can be set at the 215.Xr loader 8 216prompt before booting the kernel or stored in 217.Xr loader.conf 5 . 218.Bl -tag -width indent 219.It Va hw.em.disable_crc_stripping 220Disable or enable hardware stripping of CRC field. 221This is mostly useful on BMC/IPMI shared interfaces where stripping the CRC 222causes remote access over IPMI to fail. 223Default 0 (enabled). 224.It Va hw.em.eee_setting 225Disable or enable Energy Efficient Ethernet. 226Default 1 (disabled). 227.It Va hw.em.msix 228Enable or disable MSI-X style interrupts. 229Default 1 (enabled). 230.It Va hw.em.smart_pwr_down 231Enable or disable smart power down features on newer adapters. 232Default 0 (disabled). 233.It Va hw.em.sbp 234Show bad packets when in promiscuous mode. 235Default 0 (off). 236.It Va hw.em.rxd 237Number of receive descriptors allocated by the driver. 238The default value is 1024 for adapters newer than 82547, 239and 256 for older ones. 240The 82542 and 82543-based adapters can handle up to 256 descriptors, 241while others can have up to 4096. 242.It Va hw.em.txd 243Number of transmit descriptors allocated by the driver. 244The default value is 1024 for adapters newer than 82547, 245and 256 for older ones. 246The 82542 and 82543-based adapters can handle up to 256 descriptors, 247while others can have up to 4096. 248.It Va hw.em.rx_int_delay 249This value delays the generation of receive interrupts in units of 2501.024 microseconds. 251The default value is 0, since adapters may hang with this feature 252being enabled. 253.It Va hw.em.rx_abs_int_delay 254If 255.Va hw.em.rx_int_delay 256is non-zero, this tunable limits the maximum delay in which a receive 257interrupt is generated. 258.It Va hw.em.tx_int_delay 259This value delays the generation of transmit interrupts in units of 2601.024 microseconds. 261The default value is 64. 262.It Va hw.em.tx_abs_int_delay 263If 264.Va hw.em.tx_int_delay 265is non-zero, this tunable limits the maximum delay in which a transmit 266interrupt is generated. 267.El 268.Sh FILES 269.Bl -tag -width /dev/led/em* 270.It Pa /dev/led/em* 271identification LED device nodes 272.El 273.Sh EXAMPLES 274Make the identification LED of em0 blink: 275.Pp 276.Dl "echo f2 > /dev/led/em0" 277.Pp 278Turn the identification LED of em0 off again: 279.Pp 280.Dl "echo 0 > /dev/led/em0" 281.Sh DIAGNOSTICS 282.Bl -diag 283.It "em%d: Unable to allocate bus resource: memory" 284A fatal initialization error has occurred. 285.It "em%d: Unable to allocate bus resource: interrupt" 286A fatal initialization error has occurred. 287.It "em%d: watchdog timeout -- resetting" 288The device has stopped responding to the network, or there is a problem with 289the network connection (cable). 290.El 291.Sh SUPPORT 292For general information and support, 293go to the Intel support website at: 294.Pa http://support.intel.com . 295.Pp 296If an issue is identified with the released source code on the supported kernel 297with a supported adapter, email the specific information related to the 298issue to 299.Aq Mt freebsd@intel.com . 300.Sh SEE ALSO 301.Xr altq 4 , 302.Xr arp 4 , 303.Xr iflib 4 , 304.Xr led 4 , 305.Xr netintro 4 , 306.Xr ng_ether 4 , 307.Xr polling 4 , 308.Xr vlan 4 , 309.Xr ifconfig 8 310.Sh HISTORY 311The 312.Nm 313device driver first appeared in 314.Fx 4.4 . 315.Nm 316was merged with the igb device driver and converted to the iflib framework in 317.Fx 12.0 . 318.Sh AUTHORS 319.An -nosplit 320The 321.Nm 322driver was originally written by 323.An Intel Corporation Aq Mt freebsd@intel.com . 324It was merged with igb driver and converted to the iflib framework by 325.An Matthew Macy Aq Mt mmacy@mattmacy.io 326and 327.An Sean Bruno Aq Mt sbruno@FreeBSD.org . 328