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