xref: /freebsd/share/man/man4/igc.4 (revision 1da7f3f6f72b2245e458fc7195733268ae4a1136)
1.\"-
2.\" Copyright 2021 Intel Corp
3.\" Copyright 2021 Rubicon Communications, LLC (Netgate)
4.\" SPDX-License-Identifier: BSD-3-Clause
5.\"
6.Dd May 10, 2021
7.Dt IGC 4
8.Os
9.Sh NAME
10.Nm igc
11.Nd "Intel Ethernet Controller I225 driver"
12.Sh SYNOPSIS
13To compile this driver into the kernel,
14place the following lines in your
15kernel configuration file:
16.Bd -ragged -offset indent
17.Cd "device iflib"
18.Cd "device igc"
19.Ed
20.Pp
21Alternatively, to load the driver as a
22module at boot time, place the following line in
23.Xr loader.conf 5 :
24.Bd -literal -offset indent
25if_igc_load="YES"
26.Ed
27.Sh DESCRIPTION
28The
29.Nm
30driver provides support for any PCI Express adapter or LOM (LAN
31On Motherboard) based on the Intel I225 Multi Gigabit Controller.
32The driver supports Transmit/Receive checksum offload, Jumbo Frames,
33MSI/MSI-X, TSO, and RSS.
34.Pp
35Support for Jumbo Frames is provided via the interface MTU setting.
36Selecting an MTU larger than 1500 bytes with the
37.Xr ifconfig 8
38utility
39configures the adapter to receive and transmit Jumbo Frames.
40The maximum MTU size for Jumbo Frames is 9216 bytes.
41.Pp
42This driver version supports VLAN hardware insertion / extraction, and
43VLAN checksum offload.
44For information on enabling VLANs, see
45.Xr ifconfig 8 .
46The
47.Nm
48driver supports the following media types:
49.Bl -tag -width ".Cm 10baseT/UTP"
50.It Cm autoselect
51Enables auto-negotiation for speed and duplex.
52.It Cm 10baseT/UTP
53Sets 10Mbps operation.
54Use the
55.Cm mediaopt
56option to select
57.Cm half-duplex
58mode.
59.It Cm 100baseTX
60Sets 100Mbps operation.
61Use the
62.Cm mediaopt
63option to select
64.Cm half-duplex
65mode.
66.It Cm 1000baseT
67Sets 1000Mbps operation.
68Only
69.Cm full-duplex
70mode is supported at this speed.
71.It Cm 2500baseT
72Sets 2500Mbps operation.
73Only
74.Cm full-duplex
75mode is supported at this speed.
76.El
77.Sh HARDWARE
78The
79.Nm
80driver supports the following models:
81.Pp
82.Bl -bullet -compact
83.It
84I225-LM
85.It
86I225-V
87.It
88I225-IT
89.It
90I225-K
91.El
92.Sh LOADER TUNABLES
93Tunables can be set at the
94.Xr loader 8
95prompt before booting the kernel or stored in
96.Xr loader.conf 5 .
97.Bl -tag -width indent
98.It Va hw.igc.igc_disable_crc_stripping
99Disable or enable hardware stripping of CRC field.
100This is mostly useful on BMC/IPMI shared interfaces where stripping the
101CRC causes remote access over IPMI to fail.
102Default 0 (enabled).
103.It Va hw.igc.rx_int_delay
104This value delays the generation of receive interrupts in units
105of 1.024 microseconds.
106The default value is 0, since adapters may hang with this feature being
107enabled.
108.It Va hw.igc.rx_abs_int_delay
109If hw.igc.rx_int_delay is non-zero, this tunable limits the
110maximum delay in which a receive interrupt is generated.
111.It Va hw.igc.tx_int_delay
112This value delays the generation of transmit interrupts in units
113of 1.024 microseconds.
114The default value is 64.
115.It Va hw.igc.tx_abs_int_delay
116If hw.igc.tx_int_delay is non-zero, this tunable limits the
117maximum delay in which a transmit interrupt is generated.
118.It Va hw.igc.sbp
119Show bad packets when in promiscuous mode.
120Default is false.
121.It Va hw.igc.rx_process_limit
122Maximum number of received packets to process at a time.
123Default is 100.
124A value of -1 means unlimited.
125.It Va hw.igc.eee_setting
126Disable or enable Energy Efficient Ethernet.
127Default 1 (disabled).
128.It Va hw.igc.max_interrupt_rate
129Maximum device interrupts per second.
130The default is 8000.
131.El
132.Sh DIAGNOSTICS
133.Bl -diag
134.It "igc%d: Hardware Initialization Failed"
135A fatal initialization error has occurred.
136.It "igc%d: Unable to allocate bus resource: memory"
137A fatal initialization error has occurred.
138.It "igc%d: Invalid MAC address"
139The MAC address programmed into the EEPROM is either empty or a multicast/broadcast
140address.
141.El
142.Sh SEE ALSO
143.Xr altq 4 ,
144.Xr arp 4 ,
145.Xr iflib 4 ,
146.Xr netintro 4 ,
147.Xr ng_ether 4 ,
148.Xr vlan 4 ,
149.Xr ifconfig 8
150.Sh HISTORY
151The
152.Nm
153device driver first appeared in
154.Fx 14.0 .
155.Sh AUTHORS
156.An -nosplit
157The
158.Nm
159was originally written by
160.An Intel Corporation
161and converted to the
162.Xr iflib 4
163framework by
164.An Netgate .
165