65b6b4fa8f
- Device configuration via plain text config file. Also able to operate when not attached to the chip as the master driver. - Generic "work request" queue that serves as the base for both ctrl and ofld tx queues. - Generic interrupt handler routine that can process any event on any kind of ingress queue (via a dispatch table). - A couple of new driver ioctls. cxgbetool can now install a firmware to the card ("loadfw" command) and can read the card's memory ("memdump" and "tcb" commands). - Lots of assorted information within dev.t4nex.X.misc.* This is primarily for debugging and won't show up in sysctl -a. - Code to manage the L2 tables on the chip. - Updates to cxgbe(4) man page to go with the tunables that have changed. - Updates to the shared code in common/ - Updates to the driver-firmware interface (now at fw 1.4.16.0) MFC after: 1 month
222 lines
7.7 KiB
Groff
222 lines
7.7 KiB
Groff
.\" Copyright (c) 2011, Chelsio Inc
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions are met:
|
|
.\"
|
|
.\" 1. Redistributions of source code must retain the above copyright notice,
|
|
.\" this list of conditions and the following disclaimer.
|
|
.\"
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\"
|
|
.\" 3. Neither the name of the Chelsio Inc nor the names of its
|
|
.\" contributors may be used to endorse or promote products derived from
|
|
.\" this software without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
.\" POSSIBILITY OF SUCH DAMAGE.
|
|
.\"
|
|
.\" * Other names and brands may be claimed as the property of others.
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd February 14, 2011
|
|
.Dt CXGBE 4
|
|
.Os
|
|
.Sh NAME
|
|
.Nm cxgbe
|
|
.Nd "Chelsio T4 10Gb and 1Gb Ethernet adapter driver"
|
|
.Sh SYNOPSIS
|
|
To compile this driver into the kernel,
|
|
place the following lines in your
|
|
kernel configuration file:
|
|
.Bd -ragged -offset indent
|
|
.Cd "device cxgbe"
|
|
.Ed
|
|
.Pp
|
|
To load the driver as a
|
|
module at boot time, place the following line in
|
|
.Xr loader.conf 5 :
|
|
.Bd -literal -offset indent
|
|
if_cxgbe_load="YES"
|
|
.Ed
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
driver provides support for PCI Express Ethernet adapters based on
|
|
the Chelsio Terminator 4 (T4) ASIC.
|
|
The driver supprts Jumbo Frames, Transmit/Receive checksum offload,
|
|
TCP segmentation offload (TSO), Large Receive Offload (LRO), VLAN
|
|
tag insertion/extraction, VLAN checksum offload, VLAN TSO, and
|
|
Receive Side Steering (RSS).
|
|
For further hardware information and questions related to hardware
|
|
requirements, see
|
|
.Pa http://www.chelsio.com/ .
|
|
.Pp
|
|
For more information on configuring this device, see
|
|
.Xr ifconfig 8 .
|
|
.Sh HARDWARE
|
|
The
|
|
.Nm
|
|
driver supports 10Gb and 1Gb Ethernet adapters based on the T4 ASIC:
|
|
.Pp
|
|
.Bl -bullet -compact
|
|
.It
|
|
Chelsio T420-CR
|
|
.It
|
|
Chelsio T422-CR
|
|
.It
|
|
Chelsio T440-CR
|
|
.It
|
|
Chelsio T420-BCH
|
|
.It
|
|
Chelsio T440-BCH
|
|
.It
|
|
Chelsio T440-CH
|
|
.It
|
|
Chelsio T420-SO
|
|
.It
|
|
Chelsio T420-CX
|
|
.It
|
|
Chelsio T420-BT
|
|
.It
|
|
Chelsio T404-BT
|
|
.El
|
|
.Sh LOADER TUNABLES
|
|
Tunables can be set at the
|
|
.Xr loader 8
|
|
prompt before booting the kernel or stored in
|
|
.Xr loader.conf 5 .
|
|
.Bl -tag -width indent
|
|
.It Va hw.cxgbe.ntxq10g
|
|
The number of tx queues to use for a 10Gb port. The default is 16 or the number
|
|
of CPU cores in the system, whichever is less.
|
|
.It Va hw.cxgbe.nrxq10g
|
|
The number of rx queues to use for a 10Gb port. The default is 8 or the number
|
|
of CPU cores in the system, whichever is less.
|
|
.It Va hw.cxgbe.ntxq1g
|
|
The number of tx queues to use for a 1Gb port. The default is 4 or the number
|
|
of CPU cores in the system, whichever is less.
|
|
.It Va hw.cxgbe.nrxq1g
|
|
The number of rx queues to use for a 1Gb port. The default is 2 or the number
|
|
of CPU cores in the system, whichever is less.
|
|
.It Va hw.cxgbe.nofldtxq10g
|
|
The number of TOE tx queues to use for a 10Gb port. The default is 8 or the
|
|
number of CPU cores in the system, whichever is less.
|
|
.It Va hw.cxgbe.nofldrxq10g
|
|
The number of TOE rx queues to use for a 10Gb port. The default is 2 or the
|
|
number of CPU cores in the system, whichever is less.
|
|
.It Va hw.cxgbe.nofldtxq1g
|
|
The number of TOE tx queues to use for a 1Gb port. The default is 2 or the
|
|
number of CPU cores in the system, whichever is less.
|
|
.It Va hw.cxgbe.nofldrxq1g
|
|
The number of TOE rx queues to use for a 1Gb port. The default is 1.
|
|
.It Va hw.cxgbe.holdoff_timer_idx_10G
|
|
.It Va hw.cxgbe.holdoff_timer_idx_1G
|
|
The timer index value to use to delay interrupts.
|
|
The holdoff timer list has the values 1, 5, 10, 50, 100, and 200
|
|
by default (all values are in microseconds) and the index selects a
|
|
value from this list.
|
|
The default value is 1 for both 10Gb and 1Gb ports, which means the
|
|
timer value is 5us.
|
|
Different cxgbe interfaces can be assigned different values at any time via the
|
|
dev.cxgbe.X.holdoff_tmr_idx sysctl.
|
|
.It Va hw.cxgbe.holdoff_pktc_idx_10G
|
|
.It Va hw.cxgbe.holdoff_pktc_idx_1G
|
|
The packet-count index value to use to delay interrupts.
|
|
The packet-count list has the values 1, 8, 16, and 32 by default
|
|
and the index selects a value from this list.
|
|
The default value is 2 for both 10Gb and 1Gb ports, which means 16
|
|
packets (or the holdoff timer going off) before an interrupt is
|
|
generated.
|
|
-1 disables packet counting.
|
|
Different cxgbe interfaces can be assigned different values via the
|
|
dev.cxgbe.X.holdoff_pktc_idx sysctl.
|
|
This sysctl works only when the interface has never been marked up (as done by
|
|
ifconfig up).
|
|
.It Va hw.cxgbe.qsize_txq
|
|
The size, in number of entries, of the descriptor ring used for a tx
|
|
queue.
|
|
A buf_ring of the same size is also allocated for additional
|
|
software queuing. See
|
|
.Xr ifnet 9 .
|
|
The default value is 1024.
|
|
Different cxgbe interfaces can be assigned different values via the
|
|
dev.cxgbe.X.qsize_txq sysctl.
|
|
This sysctl works only when the interface has never been marked up (as done by
|
|
ifconfig up).
|
|
.It Va hw.cxgbe.qsize_rxq
|
|
The size, in number of entries, of the descriptor ring used for an
|
|
rx queue.
|
|
The default value is 1024.
|
|
Different cxgbe interfaces can be assigned different values via the
|
|
dev.cxgbe.X.qsize_rxq sysctl.
|
|
This sysctl works only when the interface has never been marked up (as done by
|
|
ifconfig up).
|
|
.It Va hw.cxgbe.interrupt_types
|
|
The interrupt types that the driver is allowed to use.
|
|
Bit 0 represents INTx (line interrupts), bit 1 MSI, bit 2 MSI-X.
|
|
The default is 7 (all allowed).
|
|
The driver will select the best possible type out of the allowed types by
|
|
itself.
|
|
.It Va hw.cxgbe.config_file
|
|
Select a pre-packaged device configuration file.
|
|
A configuration file contains a recipe for partitioning and configuring the
|
|
hardware resources on the card.
|
|
This tunable is for specialized applications only and should not be used in
|
|
normal operation.
|
|
The configuration profile currently in use is available in the dev.t4nex.X.cf
|
|
and dev.t4nex.X.cfcsum sysctls.
|
|
.It Va hw.cxgbe.linkcaps_allowed
|
|
.It Va hw.cxgbe.niccaps_allowed
|
|
.It Va hw.cxgbe.toecaps_allowed
|
|
.It Va hw.cxgbe.rdmacaps_allowed
|
|
.It Va hw.cxgbe.iscsicaps_allowed
|
|
.It Va hw.cxgbe.fcoecaps_allowed
|
|
Disallowing capabilities provides a hint to the driver and firmware to not
|
|
reserve hardware resources for that feature.
|
|
Each of these is a bit field with a bit for each sub-capability within the
|
|
capability.
|
|
This tunable is for specialized applications only and should not be used in
|
|
normal operation.
|
|
The capabilities for which hardware resources have been reserved are listed in
|
|
dev.t4nex.X.*caps sysctls.
|
|
.El
|
|
.Sh SUPPORT
|
|
For general information and support,
|
|
go to the Chelsio support website at:
|
|
.Pa http://www.chelsio.com/ .
|
|
.Pp
|
|
If an issue is identified with this driver with a supported adapter,
|
|
email all the specific information related to the issue to
|
|
.Aq support@chelsio.com .
|
|
.Sh SEE ALSO
|
|
.Xr altq 4 ,
|
|
.Xr arp 4 ,
|
|
.Xr cxgb 4 ,
|
|
.Xr netintro 4 ,
|
|
.Xr ng_ether 4 ,
|
|
.Xr ifconfig 8
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
device driver first appeared in
|
|
.Fx 9.0
|
|
.Sh AUTHORS
|
|
.An -nosplit
|
|
The
|
|
.Nm
|
|
driver was written by
|
|
.An Navdeep Parhar Aq np@FreeBSD.org .
|