xref: /freebsd/share/man/man4/igc.4 (revision 397e83df75e0fcd0d3fcb95ae4d794cb7600fc89)
1.\"-
2.\" Copyright 2021 Intel Corp
3.\" Copyright 2021 Rubicon Communications, LLC (Netgate)
4.\" SPDX-License-Identifier: BSD-3-Clause
5.\"
6.Dd January 9, 2023
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.eee_setting
122Disable or enable Energy Efficient Ethernet.
123Default 1 (disabled).
124.It Va hw.igc.max_interrupt_rate
125Maximum device interrupts per second.
126The default is 8000.
127.El
128.Sh DIAGNOSTICS
129.Bl -diag
130.It "igc%d: Hardware Initialization Failed"
131A fatal initialization error has occurred.
132.It "igc%d: Unable to allocate bus resource: memory"
133A fatal initialization error has occurred.
134.It "igc%d: Invalid MAC address"
135The MAC address programmed into the EEPROM is either empty or a multicast/broadcast
136address.
137.El
138.Sh SEE ALSO
139.Xr altq 4 ,
140.Xr arp 4 ,
141.Xr iflib 4 ,
142.Xr netintro 4 ,
143.Xr ng_ether 4 ,
144.Xr vlan 4 ,
145.Xr ifconfig 8
146.Sh HISTORY
147The
148.Nm
149device driver first appeared in
150.Fx 13.1 .
151.Sh AUTHORS
152.An -nosplit
153The
154.Nm
155was originally written by
156.An Intel Corporation
157and converted to the
158.Xr iflib 4
159framework by
160.An Netgate .
161