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