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.Dd August 3, 2023 33.Dt EM 4 34.Os 35.Sh NAME 36.Nm em 37.Nd "Intel(R) PRO/1000 Gigabit Ethernet adapter driver" 38.Sh SYNOPSIS 39To compile this driver into the kernel, 40place the following lines in your 41kernel configuration file: 42.Bd -ragged -offset indent 43.Cd "device iflib" 44.Cd "device em" 45.Ed 46.Pp 47Alternatively, to load the driver as a 48module at boot time, place the following line in 49.Xr loader.conf 5 : 50.Bd -literal -offset indent 51if_em_load="YES" 52.Ed 53.Sh DESCRIPTION 54The 55.Nm 56driver provides support for PCI/PCI-X Gigabit Ethernet adapters based on 57the Intel 82540, 82541ER, 82541PI, 82542, 82543, 82544, 82545, 82546, 5882546EB, 82546GB, and 82547 controller chips. 59.Pp 60The 61.Nm 62driver provides support for PCI Express Gigabit Ethernet adapters 63based on the Intel 82571, 82572, 82573, 82574, and 82583 Ethernet 64controller chips. 65.Pp 66The 67.Nm 68driver provides support for Gigabit Ethernet adapters connected to I/O 69Controller Hub (ICH) and Platform Controller Hub (PCH) including Intel 7080003ES2LAN, 82562, 82566, 82567, 82577, 82578, 82579, i217, i218, and i219. 71.Pp 72The 73.Nm 74driver provides support for PCI Express Gigabit Ethernet adapters 75based on the Intel 82575, 82576, 82580, i210, i211, and i35x. These 76appear as 77.Cm igb 78interfaces to maintain compatibility with existing infrastructure. 79.Pp 80The driver supports Transmit/Receive checksum offload and Jumbo Frames 81on all but 82542-based adapters. 82.Pp 83Furthermore it supports TCP segmentation offload (TSO) on all adapters but 84those based on the 82542, 82543, 82544 and 82547 controller chips. 85The identification LEDs of the adapters supported by the 86.Nm 87driver can be controlled via the 88.Xr led 4 89API for localization purposes. 90For further hardware information, see the 91.Pa README 92included with the driver. 93.Pp 94For questions related to hardware requirements, refer to the 95documentation supplied with your Intel PRO/1000 adapter. 96All hardware requirements listed apply to use with 97.Fx . 98.Pp 99Support for Jumbo Frames is provided via the interface MTU setting. 100Selecting an MTU larger than 1500 bytes with the 101.Xr ifconfig 8 102utility configures the adapter to receive and transmit Jumbo Frames. 103The maximum MTU size for Jumbo Frames is 16114. 104.Pp 105This driver supports hardware assisted VLANs. 106The 107.Nm 108driver supports the following media types: 109.Bl -tag -width ".Cm 10baseT/UTP" 110.It Cm autoselect 111Enables auto-negotiation for speed and duplex. 112.It Cm 10baseT/UTP 113Sets 10Mbps operation. 114Use the 115.Cm mediaopt 116option to select 117.Cm full-duplex 118mode. 119.It Cm 100baseTX 120Sets 100Mbps operation. 121Use the 122.Cm mediaopt 123option to select 124.Cm full-duplex 125mode. 126.It Cm 1000baseSX 127Sets 1000Mbps operation. 128Only 129.Cm full-duplex 130mode is supported at this speed. 131.It Cm 1000baseTX 132Sets 1000Mbps operation. 133Only 134.Cm full-duplex 135mode is supported at this speed. 136.El 137.Pp 138The 139.Nm 140driver supports the following media options: 141.Bl -tag -width ".Cm full-duplex" 142.It Cm full-duplex 143Forces full-duplex operation 144.It Cm half-duplex 145Forces half-duplex operation. 146.El 147.Pp 148Only use 149.Cm mediaopt 150to set the driver to 151.Cm full-duplex . 152If 153.Cm mediaopt 154is not specified, the driver defaults to 155.Cm half-duplex . 156.Pp 157For more information on configuring this device, see 158.Xr ifconfig 8 . 159.Sh HARDWARE 160The 161.Nm 162driver supports Gigabit Ethernet adapters based on the Intel 16382540, 82541ER, 82541PI, 82542, 82543, 82544, 82545, 82546, 82546EB, 16482546GB, 82547, 82571, 82572, 82573, 82574, 82575, 82576, and 82580 165controller chips: 166.Pp 167.Bl -bullet -compact 168.It 169Intel Gigabit ET Dual Port Server Adapter (82576) 170.It 171Intel Gigabit VT Quad Port Server Adapter (82575) 172.It 173Intel Single, Dual and Quad Gigabit Ethernet Controller (82580) 174.It 175Intel i210 and i211 Gigabit Ethernet Controller 176.It 177Intel i350 and i354 Gigabit Ethernet Controller 178.It 179Intel PRO/1000 CT Network Connection (82547) 180.It 181Intel PRO/1000 F Server Adapter (82543) 182.It 183Intel PRO/1000 Gigabit Server Adapter (82542) 184.It 185Intel PRO/1000 GT Desktop Adapter (82541PI) 186.It 187Intel PRO/1000 MF Dual Port Server Adapter (82546) 188.It 189Intel PRO/1000 MF Server Adapter (82545) 190.It 191Intel PRO/1000 MF Server Adapter (LX) (82545) 192.It 193Intel PRO/1000 MT Desktop Adapter (82540) 194.It 195Intel PRO/1000 MT Desktop Adapter (82541) 196.It 197Intel PRO/1000 MT Dual Port Server Adapter (82546) 198.It 199Intel PRO/1000 MT Quad Port Server Adapter (82546EB) 200.It 201Intel PRO/1000 MT Server Adapter (82545) 202.It 203Intel PRO/1000 PF Dual Port Server Adapter (82571) 204.It 205Intel PRO/1000 PF Quad Port Server Adapter (82571) 206.It 207Intel PRO/1000 PF Server Adapter (82572) 208.It 209Intel PRO/1000 PT Desktop Adapter (82572) 210.It 211Intel PRO/1000 PT Dual Port Server Adapter (82571) 212.It 213Intel PRO/1000 PT Quad Port Server Adapter (82571) 214.It 215Intel PRO/1000 PT Server Adapter (82572) 216.It 217Intel PRO/1000 T Desktop Adapter (82544) 218.It 219Intel PRO/1000 T Server Adapter (82543) 220.It 221Intel PRO/1000 XF Server Adapter (82544) 222.It 223Intel PRO/1000 XT Server Adapter (82544) 224.El 225.Sh LOADER TUNABLES 226Tunables can be set at the 227.Xr loader 8 228prompt before booting the kernel or stored in 229.Xr loader.conf 5 . 230See 231.Xr iflib 4 232for per-instance variables. 233.Bl -tag -width indent 234.It Va hw.em.disable_crc_stripping 235Disable or enable hardware stripping of CRC field. 236This is mostly useful on BMC/IPMI shared interfaces where stripping the CRC 237causes remote access over IPMI to fail. 238Default 0 (enabled). 239.It Va hw.em.eee_setting 240Disable or enable Energy Efficient Ethernet. 241Default 1 (disabled). 242.It Va hw.em.smart_pwr_down 243Enable or disable smart power down features on newer adapters. 244Default 0 (disabled). 245.It Va hw.em.sbp 246Show bad packets when in promiscuous mode. 247Default 0 (off). 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.It Va hw.em.max_interrupt_rate 268Maximum interrupts per second. 269The default value is 8000. 270.It Va hw.em.rx_process_limit 271Maximum number of received packets to process at a time, -1 means unlimited. 272The default value is 100. 273.El 274.Sh FILES 275.Bl -tag -width /dev/led/em* 276.It Pa /dev/led/em* 277identification LED device nodes 278.El 279.Sh EXAMPLES 280Make the identification LED of em0 blink: 281.Pp 282.Dl "echo f2 > /dev/led/em0" 283.Pp 284Turn the identification LED of em0 off again: 285.Pp 286.Dl "echo 0 > /dev/led/em0" 287.Sh DIAGNOSTICS 288.Bl -diag 289.It "em%d: Unable to allocate bus resource: memory" 290A fatal initialization error has occurred. 291.It "em%d: Unable to allocate bus resource: interrupt" 292A fatal initialization error has occurred. 293.It "em%d: watchdog timeout -- resetting" 294The device has stopped responding to the network, or there is a problem with 295the network connection (cable). 296.El 297.Sh SUPPORT 298For general information and support, 299go to the Intel support website at: 300.Pa http://support.intel.com . 301.Pp 302If an issue is identified with the released source code on the supported kernel 303with a supported adapter, email the specific information related to the 304issue to 305.Aq Mt freebsd@intel.com . 306.Sh SEE ALSO 307.Xr altq 4 , 308.Xr arp 4 , 309.Xr iflib 4 , 310.Xr led 4 , 311.Xr netintro 4 , 312.Xr ng_ether 4 , 313.Xr polling 4 , 314.Xr vlan 4 , 315.Xr ifconfig 8 316.Sh HISTORY 317The 318.Nm 319device driver first appeared in 320.Fx 4.4 . 321.Nm 322was merged with the lem and igb device driver and converted to the iflib 323framework in 324.Fx 12.0 . 325.Sh AUTHORS 326.An -nosplit 327The 328.Nm 329driver was originally written by 330.An Intel Corporation Aq Mt freebsd@intel.com . 331It was merged with igb driver and converted to the iflib framework by 332.An Matthew Macy Aq Mt mmacy@mattmacy.io 333and 334.An Sean Bruno Aq Mt sbruno@FreeBSD.org . 335