1.\" Copyright (c) 2011-2012, Chelsio Inc 2.\" All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions are met: 6.\" 7.\" 1. Redistributions of source code must retain the above copyright notice, 8.\" this list of conditions and the following disclaimer. 9.\" 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. 13.\" 14.\" 3. Neither the name of the Chelsio Inc 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. 17.\" 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. 29.\" 30.\" * Other names and brands may be claimed as the property of others. 31.\" 32.\" $FreeBSD$ 33.\" 34.Dd February 25, 2012 35.Dt CXGBE 4 36.Os 37.Sh NAME 38.Nm cxgbe 39.Nd "Chelsio T4 10Gb and 1Gb Ethernet adapter driver" 40.Sh SYNOPSIS 41To compile this driver into the kernel, 42place the following lines in your 43kernel configuration file: 44.Bd -ragged -offset indent 45.Cd "device cxgbe" 46.Ed 47.Pp 48To load the driver as a 49module at boot time, place the following line in 50.Xr loader.conf 5 : 51.Bd -literal -offset indent 52if_cxgbe_load="YES" 53.Ed 54.Sh DESCRIPTION 55The 56.Nm 57driver provides support for PCI Express Ethernet adapters based on 58the Chelsio Terminator 4 (T4) ASIC. 59The driver supports Jumbo Frames, Transmit/Receive checksum offload, 60TCP segmentation offload (TSO), Large Receive Offload (LRO), VLAN 61tag insertion/extraction, VLAN checksum offload, VLAN TSO, and 62Receive Side Steering (RSS). 63For further hardware information and questions related to hardware 64requirements, see 65.Pa http://www.chelsio.com/ . 66.Pp 67For more information on configuring this device, see 68.Xr ifconfig 8 . 69.Sh HARDWARE 70The 71.Nm 72driver supports 10Gb and 1Gb Ethernet adapters based on the T4 ASIC: 73.Pp 74.Bl -bullet -compact 75.It 76Chelsio T420-CR 77.It 78Chelsio T422-CR 79.It 80Chelsio T440-CR 81.It 82Chelsio T420-BCH 83.It 84Chelsio T440-BCH 85.It 86Chelsio T440-CH 87.It 88Chelsio T420-SO 89.It 90Chelsio T420-CX 91.It 92Chelsio T420-BT 93.It 94Chelsio T404-BT 95.El 96.Sh LOADER TUNABLES 97Tunables can be set at the 98.Xr loader 8 99prompt before booting the kernel or stored in 100.Xr loader.conf 5 . 101.Bl -tag -width indent 102.It Va hw.cxgbe.ntxq10g 103The number of tx queues to use for a 10Gb port. 104The default is 16 or the number 105of CPU cores in the system, whichever is less. 106.It Va hw.cxgbe.nrxq10g 107The number of rx queues to use for a 10Gb port. 108The default is 8 or the number 109of CPU cores in the system, whichever is less. 110.It Va hw.cxgbe.ntxq1g 111The number of tx queues to use for a 1Gb port. 112The default is 4 or the number 113of CPU cores in the system, whichever is less. 114.It Va hw.cxgbe.nrxq1g 115The number of rx queues to use for a 1Gb port. 116The default is 2 or the number 117of CPU cores in the system, whichever is less. 118.It Va hw.cxgbe.nofldtxq10g 119The number of TOE tx queues to use for a 10Gb port. 120The default is 8 or the 121number of CPU cores in the system, whichever is less. 122.It Va hw.cxgbe.nofldrxq10g 123The number of TOE rx queues to use for a 10Gb port. 124The default is 2 or the 125number of CPU cores in the system, whichever is less. 126.It Va hw.cxgbe.nofldtxq1g 127The number of TOE tx queues to use for a 1Gb port. 128The default is 2 or the 129number of CPU cores in the system, whichever is less. 130.It Va hw.cxgbe.nofldrxq1g 131The number of TOE rx queues to use for a 1Gb port. 132The default is 1. 133.It Va hw.cxgbe.holdoff_timer_idx_10G 134.It Va hw.cxgbe.holdoff_timer_idx_1G 135The timer index value to use to delay interrupts. 136The holdoff timer list has the values 1, 5, 10, 50, 100, and 200 137by default (all values are in microseconds) and the index selects a 138value from this list. 139The default value is 1 for both 10Gb and 1Gb ports, which means the 140timer value is 5us. 141Different cxgbe interfaces can be assigned different values at any time via the 142dev.cxgbe.X.holdoff_tmr_idx sysctl. 143.It Va hw.cxgbe.holdoff_pktc_idx_10G 144.It Va hw.cxgbe.holdoff_pktc_idx_1G 145The packet-count index value to use to delay interrupts. 146The packet-count list has the values 1, 8, 16, and 32 by default 147and the index selects a value from this list. 148The default value is -1 for both 10Gb and 1Gb ports, which means packet 149counting is disabled and interrupts are generated based solely on the 150holdoff timer value. 151Different cxgbe interfaces can be assigned different values via the 152dev.cxgbe.X.holdoff_pktc_idx sysctl. 153This sysctl works only when the interface has never been marked up (as done by 154ifconfig up). 155.It Va hw.cxgbe.qsize_txq 156The size, in number of entries, of the descriptor ring used for a tx 157queue. 158A buf_ring of the same size is also allocated for additional 159software queuing. 160See 161.Xr ifnet 9 . 162The default value is 1024. 163Different cxgbe interfaces can be assigned different values via the 164dev.cxgbe.X.qsize_txq sysctl. 165This sysctl works only when the interface has never been marked up (as done by 166ifconfig up). 167.It Va hw.cxgbe.qsize_rxq 168The size, in number of entries, of the descriptor ring used for an 169rx queue. 170The default value is 1024. 171Different cxgbe interfaces can be assigned different values via the 172dev.cxgbe.X.qsize_rxq sysctl. 173This sysctl works only when the interface has never been marked up (as done by 174ifconfig up). 175.It Va hw.cxgbe.interrupt_types 176The interrupt types that the driver is allowed to use. 177Bit 0 represents INTx (line interrupts), bit 1 MSI, bit 2 MSI-X. 178The default is 7 (all allowed). 179The driver will select the best possible type out of the allowed types by 180itself. 181.It Va hw.cxgbe.fw_install 1820 prohibits the driver from installing a firmware on the card. 1831 allows the driver to install a new firmware if internal driver 184heuristics indicate that the new firmware is preferable to the one 185already on the card. 1862 instructs the driver to always install the new firmware on the card as 187long as it is compatible with the driver and is a different version than 188the one already on the card. 189The default is 1. 190.It Va hw.cxgbe.config_file 191Select a pre-packaged device configuration file. 192A configuration file contains a recipe for partitioning and configuring the 193hardware resources on the card. 194This tunable is for specialized applications only and should not be used in 195normal operation. 196The configuration profile currently in use is available in the dev.t4nex.X.cf 197and dev.t4nex.X.cfcsum sysctls. 198.It Va hw.cxgbe.linkcaps_allowed 199.It Va hw.cxgbe.niccaps_allowed 200.It Va hw.cxgbe.toecaps_allowed 201.It Va hw.cxgbe.rdmacaps_allowed 202.It Va hw.cxgbe.iscsicaps_allowed 203.It Va hw.cxgbe.fcoecaps_allowed 204Disallowing capabilities provides a hint to the driver and firmware to not 205reserve hardware resources for that feature. 206Each of these is a bit field with a bit for each sub-capability within the 207capability. 208This tunable is for specialized applications only and should not be used in 209normal operation. 210The capabilities for which hardware resources have been reserved are listed in 211dev.t4nex.X.*caps sysctls. 212.El 213.Sh SUPPORT 214For general information and support, 215go to the Chelsio support website at: 216.Pa http://www.chelsio.com/ . 217.Pp 218If an issue is identified with this driver with a supported adapter, 219email all the specific information related to the issue to 220.Aq support@chelsio.com . 221.Sh SEE ALSO 222.Xr altq 4 , 223.Xr arp 4 , 224.Xr cxgb 4 , 225.Xr netintro 4 , 226.Xr ng_ether 4 , 227.Xr ifconfig 8 228.Sh HISTORY 229The 230.Nm 231device driver first appeared in 232.Fx 9.0 . 233.Sh AUTHORS 234.An -nosplit 235The 236.Nm 237driver was written by 238.An Navdeep Parhar Aq np@FreeBSD.org . 239