xref: /freebsd-13-stable/share/man/man4/em.4 (revision b144e70a3325e033163aa4e6e15d0446e245702d)
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 .
230.Bl -tag -width indent
231.It Va hw.em.disable_crc_stripping
232Disable or enable hardware stripping of CRC field.
233This is mostly useful on BMC/IPMI shared interfaces where stripping the CRC
234causes remote access over IPMI to fail.
235Default 0 (enabled).
236.It Va hw.em.eee_setting
237Disable or enable Energy Efficient Ethernet.
238Default 1 (disabled).
239.It Va hw.em.msix
240Enable or disable MSI-X style interrupts.
241Default 1 (enabled).
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.rxd
249Number of receive descriptors allocated by the driver.
250The default value is 1024 for adapters newer than 82547,
251and 256 for older ones.
252The 82542 and 82543-based adapters can handle up to 256 descriptors,
253while others can have up to 4096.
254.It Va hw.em.txd
255Number of transmit descriptors allocated by the driver.
256The default value is 1024 for adapters newer than 82547,
257and 256 for older ones.
258The 82542 and 82543-based adapters can handle up to 256 descriptors,
259while others can have up to 4096.
260.It Va hw.em.rx_int_delay
261This value delays the generation of receive interrupts in units of
2621.024 microseconds.
263The default value is 0, since adapters may hang with this feature
264being enabled.
265.It Va hw.em.rx_abs_int_delay
266If
267.Va hw.em.rx_int_delay
268is non-zero, this tunable limits the maximum delay in which a receive
269interrupt is generated.
270.It Va hw.em.tx_int_delay
271This value delays the generation of transmit interrupts in units of
2721.024 microseconds.
273The default value is 64.
274.It Va hw.em.tx_abs_int_delay
275If
276.Va hw.em.tx_int_delay
277is non-zero, this tunable limits the maximum delay in which a transmit
278interrupt is generated.
279.El
280.Sh FILES
281.Bl -tag -width /dev/led/em*
282.It Pa /dev/led/em*
283identification LED device nodes
284.El
285.Sh EXAMPLES
286Make the identification LED of em0 blink:
287.Pp
288.Dl "echo f2 > /dev/led/em0"
289.Pp
290Turn the identification LED of em0 off again:
291.Pp
292.Dl "echo 0 > /dev/led/em0"
293.Sh DIAGNOSTICS
294.Bl -diag
295.It "em%d: Unable to allocate bus resource: memory"
296A fatal initialization error has occurred.
297.It "em%d: Unable to allocate bus resource: interrupt"
298A fatal initialization error has occurred.
299.It "em%d: watchdog timeout -- resetting"
300The device has stopped responding to the network, or there is a problem with
301the network connection (cable).
302.El
303.Sh SUPPORT
304For general information and support,
305go to the Intel support website at:
306.Pa http://support.intel.com .
307.Pp
308If an issue is identified with the released source code on the supported kernel
309with a supported adapter, email the specific information related to the
310issue to
311.Aq Mt freebsd@intel.com .
312.Sh SEE ALSO
313.Xr altq 4 ,
314.Xr arp 4 ,
315.Xr iflib 4 ,
316.Xr led 4 ,
317.Xr netintro 4 ,
318.Xr ng_ether 4 ,
319.Xr polling 4 ,
320.Xr vlan 4 ,
321.Xr ifconfig 8
322.Sh HISTORY
323The
324.Nm
325device driver first appeared in
326.Fx 4.4 .
327.Nm
328was merged with the lem and igb device driver and converted to the iflib
329framework in
330.Fx 12.0 .
331.Sh AUTHORS
332.An -nosplit
333The
334.Nm
335driver was originally written by
336.An Intel Corporation Aq Mt freebsd@intel.com .
337It was merged with igb driver and converted to the iflib framework by
338.An Matthew Macy Aq Mt mmacy@mattmacy.io
339and
340.An Sean Bruno Aq Mt sbruno@FreeBSD.org .
341