1 .\" Copyright (c) 2001-2003, Intel Corporation
2 .\" All rights reserved.
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions are met:
7 .\" 1. Redistributions of source code must retain the above copyright notice,
8 .\" this list of conditions and the following disclaimer.
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.
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.
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.
30 .\" * Other names and brands may be claimed as the property of others.
32 .\" $FreeBSD: src/share/man/man4/em.4,v 1.30 2008/10/06 21:55:53 simon Exp $
40 .Nd "Intel(R) PRO/1000 Gigabit Ethernet adapter driver"
42 To compile this driver into the kernel,
43 place the following lines in your
44 kernel configuration file:
45 .Bd -ragged -offset indent
47 .Cd "device em # for em(4)"
48 .Cd "device emx # for emx(4)"
51 Alternatively, to load the driver as a
52 module at boot time, place the following lines in
54 .Bd -literal -offset indent
56 if_em_load="YES" # for em(4)
57 if_emx_load="YES" # for emx(4)
62 driver provides support for PCI Gigabit Ethernet adapters based on
63 the Intel 82540, 82541ER, 82541PI, 82542, 82543, 82544, 82545, 82546,
64 82546EB, 82546GB, 82547, 82571, 81572, 82573, 82574, I217, I218 and
65 i219 Ethernet controller chips.
66 The driver supports Transmit/Receive checksum offload
67 and Jumbo Frames on all but 82542-based adapters.
68 Furthermore it supports TCP segmentation offload (TSO) on PCI-E adapters.
74 driver for 82571, 82572, 82573, 82574, I217, I218 and I219 Ethernet
76 that additionally supports Receive Side Scaling (RSS, 2 reception queues).
80 driver will try enabling 2 reception queues
81 if there are multiple CPUs on the system.
82 For 82571, 82572, 82574, I217, I218 and I219
85 driver could be configured to enable 2 transmission queues.
89 driver only enables 1 transmission queue,
90 since enabling 2 transmission queues will require setting up context
91 descriptor for every packets requiring hardware transmission offloading,
92 which hurts tiny packet transmission performance.
94 if the workload is mainly bulk data
95 or hardware transmission offloading is rarely required,
96 extra transmission queue could be enabled to reduce contention on
98 2 transmission queues will only be used when
100 is enabled on the device.
101 If multiple transmission queues are used,
102 the round-robin arbitration is performed among the transmission queues.
103 It should be noted that
104 if both TSO and multiple transmission queues are used,
105 the round-robin arbitration between transmission queues is done
106 at the TSO packet boundary.
108 .\"For questions related to hardware requirements,
109 .\"refer to the documentation supplied with your Intel PRO/1000 adapter.
110 .\"All hardware requirements listed apply to use with
113 Support for Jumbo Frames is provided via the interface MTU setting.
114 Selecting an MTU larger than 1500 bytes with the
116 utility configures the adapter to receive and transmit Jumbo Frames.
117 The maximum MTU size for Jumbo Frames is 16114.
119 This driver version supports VLANs.
124 drivers support the following media types:
125 .Bl -tag -width ".Cm 10baseT/UTP"
127 Enables auto-negotiation for speed and duplex.
129 Sets 10Mbps operation.
136 Sets 100Mbps operation.
143 Sets 1000Mbps operation.
146 mode is supported at this speed.
148 Sets 1000Mbps operation.
151 mode is supported at this speed.
158 drivers support the following media options:
159 .Bl -tag -width ".Cm full-duplex"
161 Forces full-duplex operation
163 Forces half-duplex operation.
165 Enable flow control PAUSE reception.
166 This is only supported by
172 Enable flow control PAUSE transmission.
173 This is only supported by
179 Force flow control PAUSE operation as configured by
192 is not specified, the driver defaults to
195 For more information on configuring this device, see
207 driver supports Gigabit Ethernet adapters based on the Intel
208 82540, 82541ER, 82541PI, 82542, 82543, 82544, 82545, 82546, 82546EB,
209 82546GB, 82547, 82571, 82572, 82573, 82574, I217, I218 and I219
214 Intel 82540EM Gigabit Ethernet Controller
216 Intel 82540EP Gigabit Ethernet Controller
218 Intel 82543GC Gigabit Ethernet Controller
220 Intel 82544 Gigabit Ethernet Controller
222 Intel 82544EI Gigabit Ethernet Controller
224 Intel 82545GM Gigabit Ethernet Controller
226 Intel 82546EB Gigabit Ethernet Controller
228 Intel 82547EI Gigabit Ethernet Controller
230 Intel 82547GI Gigabit Ethernet Controller
232 Intel 82567 Gigabit Ethernet Controller
234 Intel 82571EB Gigabit Ethernet Controller
236 Intel 82572EI Gigabit Ethernet Controller
238 Intel 82573E Gigabit Ethernet Controller
240 Intel 82573L Gigabit Ethernet Controller
242 Intel 82573V Gigabit Ethernet Controller
244 Intel 82574 Gigabit Ethernet Controller
246 Intel 82578 Gigabit Ethernet PHY
248 Intel 82579 Gigabit Ethernet Controller
250 Intel Ethernet Connection I217-LM
252 Intel Ethernet Connection I217-V
254 Intel Ethernet Connection I218-LM
256 Intel Ethernet Connection I218-V
258 Intel Ethernet Connection I219-LM
260 Intel Ethernet Connection I219-V
262 Intel Gigabit CT Desktop Adapter
264 Intel PRO/1000 F Server Adapter
266 Intel PRO/1000 GT Quad Port Server Adapter
268 Intel PRO/1000 MF Dual Port Server Adapter
270 Intel PRO/1000 MF Server Adapter
272 Intel PRO/1000 MF Server Adapter (LX)
274 Intel PRO/1000 MT Dual Port Server Adapter
276 Intel PRO/1000 MT Quad Port Server Adapter
278 Intel PRO/1000 MT Server Adapter
280 Intel PRO/1000 PF Dual Port Server Adapter
282 Intel PRO/1000 PF Quad Port Server Adapter
284 Intel PRO/1000 PF Server Adapter
286 Intel PRO/1000 PT Dual Port Server Adapter
288 Intel PRO/1000 PT Quad Port Low Profile Server Adapter
290 Intel PRO/1000 PT Quad Port Server Adapter
292 Intel PRO/1000 PT Server Adapter
294 Intel PRO/1000 T Server Adapter
296 Intel PRO/1000 XT Low Profile Server Adapter
298 Intel PRO/1000 XT Server Adapter
303 driver supports Gigabit Ethernet adapters based on the Intel
304 82571, 82572, 82573, 82574, I217, I218 and I219 controller chips.
306 Tunables can be set at the
308 prompt before booting the kernel or stored in
311 is the device unit number.
312 .Bl -tag -width "hw.em.int_throttle_ceil"
313 .It Va hw.em.int_throttle_ceil
314 Hardware interrupt throttling rate.
315 The default value is 6000Hz.
316 This tunable also applies to
319 has a per device tunable
320 .Va hw.emxY.int_throttle_ceil ,
321 which serves the same purpose.
323 Number of receive descriptors allocated by the driver.
324 The default value is 512.
325 The 82542 and 82543-based adapters can handle up to 256 descriptors,
326 while others can have up to 4096.
327 This tunable also applies to
330 has a per device tunable
332 which serves the same purpose.
334 Number of transmit descriptors allocated by the driver.
335 The default value is 512.
336 The 82542 and 82543-based adapters can handle up to 256 descriptors,
337 while others can have up to 4096.
338 This tunable also applies to
341 has a per device tunable
343 which serves the same purpose.
344 .It Va hw.em.msi.enable Va hw.emY.msi.enable
345 By default, the driver will use MSI if it is supported.
346 This behavior can be turned off by setting these tunable to 0.
347 These tunables also applies to
349 .It Va hw.emY.msi.cpu
351 it specifies the MSI's target CPU.
352 This tunable also applies to
354 .It Va hw.emY.irq.unshared
355 If legacy interrupt is used,
357 the driver assumes the interrupt could be shared.
358 Setting this tunable to 1 allows the driver to
359 perform certain optimization based on the knowledge
360 that the interrupt is not shared.
361 These tunables also applies to
363 .It Va hw.em.flow_ctrl Va hw.emY.flow_ctrl
364 The default flow control settings.
365 Supported values are:
366 rxpause (only enable PAUSE reception),
367 txpause (only enable PAUSE transmission),
368 full (enable PAUSE reception and transmission),
369 none (disable flow control PAUSE operation),
370 force-rxpause (force PAUSE reception),
371 force-txpause (force PAUSE transmission),
372 force-full (forcefully enable PAUSE reception and transmission),
373 force-none (forcefully disable flow control PAUSE operation).
375 These tunables also applies to
377 .It Va hw.emx.rxr Va hw.emxY.rxr
378 This tunable specifies the number of reception queues could be enabled.
379 Maximum allowed value for these tunables is 2.
380 Setting these tunables to 0 allows the driver to enable reception
381 queues based on the number of CPUs.
382 The default value is 0.
383 .It Va hw.emx.txr Va hw.emxY.txr
384 These tunables only take effect on 82571 and 82572.
385 This tunable specifies the number of transmission queues could be enabled.
386 Maximum allowed value for these tunables is 2.
387 Setting these tunables to 0 allows the driver to enable transmission
388 queues based on the number of CPUs.
389 The default value is 1.
390 .It Va hw.emxY.npoll.rxoff
391 This tunable specifies the leading target CPU for reception queues
394 The value specificed must be aligned to the number of reception queues enabled
395 and must be less than the power of 2 number of CPUs.
396 .It Va hw.emxY.npoll.rxoff
397 This tunable specifies the leading target CPU for transmission queues
400 The value specificed must be aligned to the number of transmission queues
402 and must be less than the power of 2 number of CPUs.
405 A number of per-interface variables are implemented in the
412 .Bl -tag -width "int_throttle_ceil"
414 Number of reception descriptors enabled (read-only).
421 Number of transmission descriptors enabled (read-only).
427 .It Va int_throttle_ceil
429 .Va hw.em.int_throttle_ceil .
431 This value controls how many transmit descriptors should be consumed
432 by the hardware before the hardware generates a transmit interrupt.
433 The default value is 1/16 of the number of transmit descriptors.
436 is not used on the hardware and
437 the major part of the transmitted data are bulk data,
438 this value could safely be set to 1/2 of the number of transmit descriptors.
440 The number of transmission descriptors should be setup
441 before the hardware register is written.
442 Setting this value too high will have negative effect
443 on transmission timeliness.
444 Setting this value too low will hurt overall transmission due to
445 the frequent hardware register writing.
448 Number of reception queues enabled (read-only).
449 This sysctl only applies to
457 Number of transmission queues that can be enabled (read-only).
458 This sysctl only applies to
466 Number of transmission queues being used (read-only).
467 This sysctl only applies to
471 .Va hw.emxY.npoll.rxoff .
472 The set value will take effect the next time
474 is enabled on the device.
475 This sysctl only applies to
479 .Va hw.emxY.npoll.txoff .
480 The set value will take effect the next time
482 is enabled on the device.
483 This sysctl only applies to
487 .\"For general information and support,
488 .\"go to the Intel support website at:
489 .\".Pa http://support.intel.com .
491 .\"If an issue is identified with the released source code on the supported kernel
492 .\"with a supported adapter, email the specific information related to the
494 .\".Aq Mt freebsdnic@mailbox.intel.com .
506 device driver first appeared in
510 driver first appeared in
516 driver was written by
517 .An Intel Corporation Aq Mt freebsdnic@mailbox.intel.com .
521 driver was written by