xref: /freebsd/share/man/man4/cxgbe.4 (revision 50d922a02e3e29501689308a8c842e27f078faf3)
17a32954cSNavdeep Parhar.\" Copyright (c) 2011-2012, Chelsio Inc
254e4ee71SNavdeep Parhar.\" All rights reserved.
354e4ee71SNavdeep Parhar.\"
454e4ee71SNavdeep Parhar.\" Redistribution and use in source and binary forms, with or without
554e4ee71SNavdeep Parhar.\" modification, are permitted provided that the following conditions are met:
654e4ee71SNavdeep Parhar.\"
754e4ee71SNavdeep Parhar.\" 1. Redistributions of source code must retain the above copyright notice,
854e4ee71SNavdeep Parhar.\"    this list of conditions and the following disclaimer.
954e4ee71SNavdeep Parhar.\"
1054e4ee71SNavdeep Parhar.\" 2. Redistributions in binary form must reproduce the above copyright
1154e4ee71SNavdeep Parhar.\"    notice, this list of conditions and the following disclaimer in the
1254e4ee71SNavdeep Parhar.\"    documentation and/or other materials provided with the distribution.
1354e4ee71SNavdeep Parhar.\"
1454e4ee71SNavdeep Parhar.\" 3. Neither the name of the Chelsio Inc nor the names of its
1554e4ee71SNavdeep Parhar.\"    contributors may be used to endorse or promote products derived from
1654e4ee71SNavdeep Parhar.\"    this software without specific prior written permission.
1754e4ee71SNavdeep Parhar.\"
1854e4ee71SNavdeep Parhar.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
1954e4ee71SNavdeep Parhar.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2054e4ee71SNavdeep Parhar.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2154e4ee71SNavdeep Parhar.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
2254e4ee71SNavdeep Parhar.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
2354e4ee71SNavdeep Parhar.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
2454e4ee71SNavdeep Parhar.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
2554e4ee71SNavdeep Parhar.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
2654e4ee71SNavdeep Parhar.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
2754e4ee71SNavdeep Parhar.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2854e4ee71SNavdeep Parhar.\" POSSIBILITY OF SUCH DAMAGE.
2954e4ee71SNavdeep Parhar.\"
3054e4ee71SNavdeep Parhar.\" * Other names and brands may be claimed as the property of others.
3154e4ee71SNavdeep Parhar.\"
3254e4ee71SNavdeep Parhar.\" $FreeBSD$
3354e4ee71SNavdeep Parhar.\"
343102cfe2SGlen Barber.Dd February 25, 2012
3554e4ee71SNavdeep Parhar.Dt CXGBE 4
3654e4ee71SNavdeep Parhar.Os
3754e4ee71SNavdeep Parhar.Sh NAME
3854e4ee71SNavdeep Parhar.Nm cxgbe
3954e4ee71SNavdeep Parhar.Nd "Chelsio T4 10Gb and 1Gb Ethernet adapter driver"
4054e4ee71SNavdeep Parhar.Sh SYNOPSIS
4154e4ee71SNavdeep ParharTo compile this driver into the kernel,
4254e4ee71SNavdeep Parharplace the following lines in your
4354e4ee71SNavdeep Parharkernel configuration file:
4454e4ee71SNavdeep Parhar.Bd -ragged -offset indent
4554e4ee71SNavdeep Parhar.Cd "device cxgbe"
4654e4ee71SNavdeep Parhar.Ed
4754e4ee71SNavdeep Parhar.Pp
4854e4ee71SNavdeep ParharTo load the driver as a
4954e4ee71SNavdeep Parharmodule at boot time, place the following line in
5054e4ee71SNavdeep Parhar.Xr loader.conf 5 :
5154e4ee71SNavdeep Parhar.Bd -literal -offset indent
5254e4ee71SNavdeep Parharif_cxgbe_load="YES"
5354e4ee71SNavdeep Parhar.Ed
5454e4ee71SNavdeep Parhar.Sh DESCRIPTION
5554e4ee71SNavdeep ParharThe
5654e4ee71SNavdeep Parhar.Nm
5754e4ee71SNavdeep Parhardriver provides support for PCI Express Ethernet adapters based on
5854e4ee71SNavdeep Parharthe Chelsio Terminator 4 (T4) ASIC.
593102cfe2SGlen BarberThe driver supports Jumbo Frames, Transmit/Receive checksum offload,
6054e4ee71SNavdeep ParharTCP segmentation offload (TSO), Large Receive Offload (LRO), VLAN
6154e4ee71SNavdeep Parhartag insertion/extraction, VLAN checksum offload, VLAN TSO, and
6254e4ee71SNavdeep ParharReceive Side Steering (RSS).
6354e4ee71SNavdeep ParharFor further hardware information and questions related to hardware
6454e4ee71SNavdeep Parharrequirements, see
6554e4ee71SNavdeep Parhar.Pa http://www.chelsio.com/ .
6654e4ee71SNavdeep Parhar.Pp
6754e4ee71SNavdeep ParharFor more information on configuring this device, see
6854e4ee71SNavdeep Parhar.Xr ifconfig 8 .
6954e4ee71SNavdeep Parhar.Sh HARDWARE
7054e4ee71SNavdeep ParharThe
7154e4ee71SNavdeep Parhar.Nm
7254e4ee71SNavdeep Parhardriver supports 10Gb and 1Gb Ethernet adapters based on the T4 ASIC:
7354e4ee71SNavdeep Parhar.Pp
7454e4ee71SNavdeep Parhar.Bl -bullet -compact
7554e4ee71SNavdeep Parhar.It
7654e4ee71SNavdeep ParharChelsio T420-CR
7754e4ee71SNavdeep Parhar.It
7854e4ee71SNavdeep ParharChelsio T422-CR
7954e4ee71SNavdeep Parhar.It
8054e4ee71SNavdeep ParharChelsio T440-CR
8154e4ee71SNavdeep Parhar.It
8254e4ee71SNavdeep ParharChelsio T420-BCH
8354e4ee71SNavdeep Parhar.It
8454e4ee71SNavdeep ParharChelsio T440-BCH
8554e4ee71SNavdeep Parhar.It
8654e4ee71SNavdeep ParharChelsio T440-CH
8754e4ee71SNavdeep Parhar.It
8854e4ee71SNavdeep ParharChelsio T420-SO
8954e4ee71SNavdeep Parhar.It
9054e4ee71SNavdeep ParharChelsio T420-CX
9154e4ee71SNavdeep Parhar.It
9254e4ee71SNavdeep ParharChelsio T420-BT
9354e4ee71SNavdeep Parhar.It
9454e4ee71SNavdeep ParharChelsio T404-BT
9554e4ee71SNavdeep Parhar.El
9654e4ee71SNavdeep Parhar.Sh LOADER TUNABLES
9754e4ee71SNavdeep ParharTunables can be set at the
9854e4ee71SNavdeep Parhar.Xr loader 8
9954e4ee71SNavdeep Parharprompt before booting the kernel or stored in
10054e4ee71SNavdeep Parhar.Xr loader.conf 5 .
10154e4ee71SNavdeep Parhar.Bl -tag -width indent
102733b9277SNavdeep Parhar.It Va hw.cxgbe.ntxq10g
1039d496f5aSGlen BarberThe number of tx queues to use for a 10Gb port.
1049d496f5aSGlen BarberThe default is 16 or the number
105733b9277SNavdeep Parharof CPU cores in the system, whichever is less.
106733b9277SNavdeep Parhar.It Va hw.cxgbe.nrxq10g
1079d496f5aSGlen BarberThe number of rx queues to use for a 10Gb port.
1089d496f5aSGlen BarberThe default is 8 or the number
109733b9277SNavdeep Parharof CPU cores in the system, whichever is less.
110733b9277SNavdeep Parhar.It Va hw.cxgbe.ntxq1g
1119d496f5aSGlen BarberThe number of tx queues to use for a 1Gb port.
1129d496f5aSGlen BarberThe default is 4 or the number
113733b9277SNavdeep Parharof CPU cores in the system, whichever is less.
114733b9277SNavdeep Parhar.It Va hw.cxgbe.nrxq1g
1159d496f5aSGlen BarberThe number of rx queues to use for a 1Gb port.
1169d496f5aSGlen BarberThe default is 2 or the number
117733b9277SNavdeep Parharof CPU cores in the system, whichever is less.
118733b9277SNavdeep Parhar.It Va hw.cxgbe.nofldtxq10g
1199d496f5aSGlen BarberThe number of TOE tx queues to use for a 10Gb port.
1209d496f5aSGlen BarberThe default is 8 or the
121733b9277SNavdeep Parharnumber of CPU cores in the system, whichever is less.
122733b9277SNavdeep Parhar.It Va hw.cxgbe.nofldrxq10g
1239d496f5aSGlen BarberThe number of TOE rx queues to use for a 10Gb port.
1249d496f5aSGlen BarberThe default is 2 or the
125733b9277SNavdeep Parharnumber of CPU cores in the system, whichever is less.
126733b9277SNavdeep Parhar.It Va hw.cxgbe.nofldtxq1g
1279d496f5aSGlen BarberThe number of TOE tx queues to use for a 1Gb port.
1289d496f5aSGlen BarberThe default is 2 or the
129733b9277SNavdeep Parharnumber of CPU cores in the system, whichever is less.
130733b9277SNavdeep Parhar.It Va hw.cxgbe.nofldrxq1g
1319d496f5aSGlen BarberThe number of TOE rx queues to use for a 1Gb port.
1329d496f5aSGlen BarberThe default is 1.
13354e4ee71SNavdeep Parhar.It Va hw.cxgbe.holdoff_timer_idx_10G
13454e4ee71SNavdeep Parhar.It Va hw.cxgbe.holdoff_timer_idx_1G
13554e4ee71SNavdeep ParharThe timer index value to use to delay interrupts.
13654e4ee71SNavdeep ParharThe holdoff timer list has the values 1, 5, 10, 50, 100, and 200
13754e4ee71SNavdeep Parharby default (all values are in microseconds) and the index selects a
13854e4ee71SNavdeep Parharvalue from this list.
13954e4ee71SNavdeep ParharThe default value is 1 for both 10Gb and 1Gb ports, which means the
14054e4ee71SNavdeep Parhartimer value is 5us.
141733b9277SNavdeep ParharDifferent cxgbe interfaces can be assigned different values at any time via the
142733b9277SNavdeep Parhardev.cxgbe.X.holdoff_tmr_idx sysctl.
14354e4ee71SNavdeep Parhar.It Va hw.cxgbe.holdoff_pktc_idx_10G
14454e4ee71SNavdeep Parhar.It Va hw.cxgbe.holdoff_pktc_idx_1G
14554e4ee71SNavdeep ParharThe packet-count index value to use to delay interrupts.
14654e4ee71SNavdeep ParharThe packet-count list has the values 1, 8, 16, and 32 by default
14754e4ee71SNavdeep Parharand the index selects a value from this list.
1487a32954cSNavdeep ParharThe default value is -1 for both 10Gb and 1Gb ports, which means packet
1497a32954cSNavdeep Parharcounting is disabled and interrupts are generated based solely on the
1507a32954cSNavdeep Parharholdoff timer value.
151733b9277SNavdeep ParharDifferent cxgbe interfaces can be assigned different values via the
152733b9277SNavdeep Parhardev.cxgbe.X.holdoff_pktc_idx sysctl.
153733b9277SNavdeep ParharThis sysctl works only when the interface has never been marked up (as done by
154733b9277SNavdeep Parharifconfig up).
15554e4ee71SNavdeep Parhar.It Va hw.cxgbe.qsize_txq
15654e4ee71SNavdeep ParharThe size, in number of entries, of the descriptor ring used for a tx
15754e4ee71SNavdeep Parharqueue.
15854e4ee71SNavdeep ParharA buf_ring of the same size is also allocated for additional
1599d496f5aSGlen Barbersoftware queuing.
1609d496f5aSGlen BarberSee
16154e4ee71SNavdeep Parhar.Xr ifnet 9 .
16254e4ee71SNavdeep ParharThe default value is 1024.
163733b9277SNavdeep ParharDifferent cxgbe interfaces can be assigned different values via the
164733b9277SNavdeep Parhardev.cxgbe.X.qsize_txq sysctl.
165733b9277SNavdeep ParharThis sysctl works only when the interface has never been marked up (as done by
166733b9277SNavdeep Parharifconfig up).
16754e4ee71SNavdeep Parhar.It Va hw.cxgbe.qsize_rxq
16854e4ee71SNavdeep ParharThe size, in number of entries, of the descriptor ring used for an
16954e4ee71SNavdeep Parharrx queue.
17054e4ee71SNavdeep ParharThe default value is 1024.
171733b9277SNavdeep ParharDifferent cxgbe interfaces can be assigned different values via the
172733b9277SNavdeep Parhardev.cxgbe.X.qsize_rxq sysctl.
173733b9277SNavdeep ParharThis sysctl works only when the interface has never been marked up (as done by
174733b9277SNavdeep Parharifconfig up).
175733b9277SNavdeep Parhar.It Va hw.cxgbe.interrupt_types
176733b9277SNavdeep ParharThe interrupt types that the driver is allowed to use.
177733b9277SNavdeep ParharBit 0 represents INTx (line interrupts), bit 1 MSI, bit 2 MSI-X.
178733b9277SNavdeep ParharThe default is 7 (all allowed).
179733b9277SNavdeep ParharThe driver will select the best possible type out of the allowed types by
180733b9277SNavdeep Parharitself.
181733b9277SNavdeep Parhar.It Va hw.cxgbe.config_file
182733b9277SNavdeep ParharSelect a pre-packaged device configuration file.
183733b9277SNavdeep ParharA configuration file contains a recipe for partitioning and configuring the
184733b9277SNavdeep Parharhardware resources on the card.
185733b9277SNavdeep ParharThis tunable is for specialized applications only and should not be used in
186733b9277SNavdeep Parharnormal operation.
187733b9277SNavdeep ParharThe configuration profile currently in use is available in the dev.t4nex.X.cf
188733b9277SNavdeep Parharand dev.t4nex.X.cfcsum sysctls.
189733b9277SNavdeep Parhar.It Va hw.cxgbe.linkcaps_allowed
190733b9277SNavdeep Parhar.It Va hw.cxgbe.niccaps_allowed
191733b9277SNavdeep Parhar.It Va hw.cxgbe.toecaps_allowed
192733b9277SNavdeep Parhar.It Va hw.cxgbe.rdmacaps_allowed
193733b9277SNavdeep Parhar.It Va hw.cxgbe.iscsicaps_allowed
194733b9277SNavdeep Parhar.It Va hw.cxgbe.fcoecaps_allowed
195733b9277SNavdeep ParharDisallowing capabilities provides a hint to the driver and firmware to not
196733b9277SNavdeep Parharreserve hardware resources for that feature.
197733b9277SNavdeep ParharEach of these is a bit field with a bit for each sub-capability within the
198733b9277SNavdeep Parharcapability.
199733b9277SNavdeep ParharThis tunable is for specialized applications only and should not be used in
200733b9277SNavdeep Parharnormal operation.
201733b9277SNavdeep ParharThe capabilities for which hardware resources have been reserved are listed in
202733b9277SNavdeep Parhardev.t4nex.X.*caps sysctls.
203cb379161SGlen Barber.El
20454e4ee71SNavdeep Parhar.Sh SUPPORT
20554e4ee71SNavdeep ParharFor general information and support,
20654e4ee71SNavdeep Parhargo to the Chelsio support website at:
20754e4ee71SNavdeep Parhar.Pa http://www.chelsio.com/ .
20854e4ee71SNavdeep Parhar.Pp
20954e4ee71SNavdeep ParharIf an issue is identified with this driver with a supported adapter,
21054e4ee71SNavdeep Parharemail all the specific information related to the issue to
21154e4ee71SNavdeep Parhar.Aq support@chelsio.com .
21254e4ee71SNavdeep Parhar.Sh SEE ALSO
21354e4ee71SNavdeep Parhar.Xr altq 4 ,
21454e4ee71SNavdeep Parhar.Xr arp 4 ,
21554e4ee71SNavdeep Parhar.Xr cxgb 4 ,
21654e4ee71SNavdeep Parhar.Xr netintro 4 ,
21754e4ee71SNavdeep Parhar.Xr ng_ether 4 ,
21854e4ee71SNavdeep Parhar.Xr ifconfig 8
21954e4ee71SNavdeep Parhar.Sh HISTORY
22054e4ee71SNavdeep ParharThe
22154e4ee71SNavdeep Parhar.Nm
22254e4ee71SNavdeep Parhardevice driver first appeared in
223*50d922a0SGlen Barber.Fx 9.0 .
22454e4ee71SNavdeep Parhar.Sh AUTHORS
22554e4ee71SNavdeep Parhar.An -nosplit
22654e4ee71SNavdeep ParharThe
22754e4ee71SNavdeep Parhar.Nm
22854e4ee71SNavdeep Parhardriver was written by
22954e4ee71SNavdeep Parhar.An Navdeep Parhar Aq np@FreeBSD.org .
230