Document support for Terminator 6 adapters in cxgbe(4) and cxgbev(4).

Approved by:	np
MFC after:	3 days
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D8716
This commit is contained in:
John Baldwin 2016-12-06 00:01:53 +00:00
parent a5d19b81b4
commit f6e648b896
3 changed files with 115 additions and 37 deletions

View File

@ -607,11 +607,21 @@ MLINKS+=crypto.4 cryptodev.4
MLINKS+=cue.4 if_cue.4
MLINKS+=cxgb.4 if_cxgb.4
MLINKS+=cxgbe.4 if_cxgbe.4 \
cxgbe.4 vcxgbe.4 \
cxgbe.4 if_vcxgbe.4 \
cxgbe.4 cxl.4 \
cxgbe.4 if_cxl.4
cxgbe.4 if_cxl.4 \
cxgbe.4 vcxl.4 \
cxgbe.4 if_vcxl.4 \
cxgbe.4 cc.4 \
cxgbe.4 if_cc.4 \
cxgbe.4 vcc.4 \
cxgbe.4 if_vcc.4
MLINKS+=cxgbev.4 if_cxgbev.4 \
cxgbev.4 cxlv.4 \
cxgbev.4 if_cxlv.4
cxgbev.4 if_cxlv.4 \
cxgbev.4 ccv.4 \
cxgbev.4 if_ccv.4
MLINKS+=dc.4 if_dc.4
MLINKS+=de.4 if_de.4
MLINKS+=disc.4 if_disc.4

View File

@ -36,7 +36,7 @@
.Os
.Sh NAME
.Nm cxgbe
.Nd "Chelsio T4 and T5 based 40Gb, 10Gb, and 1Gb Ethernet adapter driver"
.Nd "Chelsio T4-, T5-, and T6-based 100Gb, 40Gb, 25Gb, 10Gb, and 1Gb Ethernet adapter driver"
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@ -51,13 +51,14 @@ module at boot time, place the following lines in
.Bd -literal -offset indent
t4fw_cfg_load="YES"
t5fw_cfg_load="YES"
t6fw_cfg_load="YES"
if_cxgbe_load="YES"
.Ed
.Sh DESCRIPTION
The
.Nm
driver provides support for PCI Express Ethernet adapters based on
the Chelsio Terminator 4 and Terminator 5 ASICs (T4 and T5).
the Chelsio Terminator 4, Terminator 5, and Terminator 6 ASICs (T4, T5, and T6).
The driver supports Jumbo Frames, Transmit/Receive checksum offload,
TCP segmentation offload (TSO), Large Receive Offload (LRO), VLAN
tag insertion/extraction, VLAN checksum offload, VLAN TSO, and
@ -66,17 +67,46 @@ For further hardware information and questions related to hardware
requirements, see
.Pa http://www.chelsio.com/ .
.Pp
Note that ports of T5 cards are named cxl and attach to a t5nex parent device
(in contrast to ports named cxgbe that attach to a t4nex parent for a T4 card).
Loader tunables with the hw.cxgbe prefix apply to both T4 and T5 cards.
The sysctl MIBs are at dev.t5nex and dev.cxl for T5 cards and at dev.t4nex and
dev.cxgbe for T4 cards.
The
.Nm
driver uses different names for devices based on the associated ASIC:
.Bl -column -offset indent "ASIC" "Port Name" "Parent Device"
.It Sy ASIC Ta Sy Port Name Ta Sy Parent Device Ta Sy Virtual Interface
.It T4 Ta cxgbe Ta t4nex Ta vcxgbe
.It T5 Ta cxl Ta t5nex Ta vcxl
.It T6 Ta cc Ta t6nex Ta vcc
.El
.Pp
Loader tunables with the hw.cxgbe prefix apply to all cards.
The driver provides sysctl MIBs for both ports and parent devices using
the names above.
For example, a T5 adapter will provide port MIBs under dev.cxl and
adapter-wide MIBs under dev.t5nex.
References to sysctl MIBs in the remainder of this page will use
dev.<port> for port MIBs and dev.<nexus> for adapter-wide MIBs.
.Pp
For more information on configuring this device, see
.Xr ifconfig 8 .
.Sh HARDWARE
The
.Nm
driver supports 100Gb and 25Gb Ethernet adapters based on the T6 ASIC:
.Pp
.Bl -bullet -compact
.It
Chelsio T6225-CR
.It
Chelsio T6225-SO-CR
.It
Chelsio T62100-LP-CR
.It
Chelsio T62100-SO-CR
.It
Chelsio T62100-CR
.El
.Pp
The
.Nm
driver supports 40Gb, 10Gb and 1Gb Ethernet adapters based on the T5 ASIC:
.Pp
.Bl -bullet -compact
@ -139,11 +169,11 @@ 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 or 40Gb port.
The number of tx queues to use for a 10Gb or higher-speed 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 or 40Gb port.
The number of rx queues to use for a 10Gb or higher-speed port.
The default is 8 or the number
of CPU cores in the system, whichever is less.
.It Va hw.cxgbe.ntxq1g
@ -155,11 +185,11 @@ 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 or 40Gb port.
The number of TOE tx queues to use for a 10Gb or higher-speed 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 or 40Gb port.
The number of TOE rx queues to use for a 10Gb or higher-speed port.
The default is 2 or the
number of CPU cores in the system, whichever is less.
.It Va hw.cxgbe.nofldtxq1g
@ -174,8 +204,8 @@ The number of virtual interfaces (VIs) created for each port.
Each virtual interface creates a separate network interface.
The first virtual interface on each port is required and represents
the primary network interface on the port.
Additional virtual interfaces on a port are named vcxgbe (T4) or
vcxl (T5) and only use a single rx and tx queue.
Additional virtual interfaces on a port are named using the Virtual Interface
name from the table above.
Additional virtual interfaces use a single pair of queues
for rx and tx as well an additional pair of queues for TOE rx and tx.
The default is 1.
@ -187,7 +217,7 @@ by default (all values are in microseconds) and the index selects a
value from this list.
The default value is 1 which means the timer value is 5us.
Different interfaces can be assigned different values at any time via the
dev.cxgbe.X.holdoff_tmr_idx or dev.cxl.X.holdoff_tmr_idx sysctl.
dev.<port>.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.
@ -196,7 +226,7 @@ and the index selects a value from this list.
The default value is -1 which means packet counting is disabled and interrupts
are generated based solely on the holdoff timer value.
Different interfaces can be assigned different values via the
dev.cxgbe.X.holdoff_pktc_idx or dev.cxl.X.holdoff_pktc_idx sysctl.
dev.<port>.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
@ -208,7 +238,7 @@ See
.Xr ifnet 9 .
The default value is 1024.
Different interfaces can be assigned different values via the
dev.cxgbe.X.qsize_txq sysctl or dev.cxl.X.qsize_txq sysctl.
dev.<port>.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
@ -216,7 +246,7 @@ The size, in number of entries, of the descriptor ring used for an
rx queue.
The default value is 1024.
Different interfaces can be assigned different values via the
dev.cxgbe.X.qsize_rxq or dev.cxl.X.qsize_rxq sysctl.
dev.<port>.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
@ -261,7 +291,7 @@ reaches a high threshold, 0 prohibits the hardware from emitting PAUSE frames.
The default is 3 (both rx_pause and tx_pause = 1).
This tunable establishes the default PAUSE settings for all ports.
Settings can be displayed and controlled on a per-port basis via the
dev.cxgbe.X.pause_settings (dev.cxl.X.pause_settings for T5 cards) sysctl.
dev.<port>.X.pause_settings sysctl.
.It Va hw.cxgbe.buffer_packing
Allow the hardware to deliver multiple frames in the same receive buffer
opportunistically.
@ -290,8 +320,8 @@ 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 (dev.t5nex for T5 cards) sysctls.
The configuration profile currently in use is available in the dev.<nexus>.X.cf
and dev.<nexus>.X.cfcsum sysctls.
.It Va hw.cxgbe.linkcaps_allowed
.It Va hw.cxgbe.niccaps_allowed
.It Va hw.cxgbe.toecaps_allowed
@ -305,7 +335,7 @@ 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 or dev.t5nex.X.*caps sysctls.
dev.<nexus>.X.*caps sysctls.
.El
.Sh SUPPORT
For general information and support,
@ -332,6 +362,10 @@ Support for T5 cards first appeared in
.Fx 9.2
and
.Fx 10.0 .
Support for T6 cards first appeared in
.Fx 11.1
and
.Fx 12.0 .
.Sh AUTHORS
.An -nosplit
The

View File

@ -36,7 +36,7 @@
.Os
.Sh NAME
.Nm cxgbev
.Nd "Chelsio T4 and T5 based 40Gb, 10Gb, and 1Gb Ethernet VF driver"
.Nd "Chelsio T4-, T5-, and T6-based 100Gb, 40Gb, 25Gb, 10Gb, and 1Gb Ethernet VF driver"
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@ -56,7 +56,8 @@ if_cxgbev_load="YES"
The
.Nm
driver provides support for Virtual Functions on PCI Express Ethernet adapters
based on the Chelsio Terminator 4 and Terminator 5 ASICs (T4 and T5).
based on the Chelsio Terminator 4, Terminator 5, and Terminator 6 ASICs
(T4, T5, and T6).
The driver supports Jumbo Frames, Transmit/Receive checksum offload,
TCP segmentation offload (TSO), Large Receive Offload (LRO), VLAN
tag insertion/extraction, VLAN checksum offload, VLAN TSO, and
@ -65,18 +66,49 @@ For further hardware information and questions related to hardware
requirements, see
.Pa http://www.chelsio.com/ .
.Pp
Note that ports of T5 VFs are named cxlv and attach to a t5vf parent device
(in contrast to ports named cxgbev that attach to a t4vf parent for a T4 VF).
Loader tunables with the hw.cxgbe prefix apply to both T4 and T5 VFs.
The Physical Function driver for T4 and T5 adapters shares these tunables.
The sysctl MIBs are at dev.t5vf and dev.cxlv for T5 cards and at dev.t4vf and
dev.cxgbev for T4 cards.
The
.Nm
driver uses different names for devices based on the associated ASIC:
.Bl -column -offset indent "ASIC" "Port Name"
.It Sy ASIC Ta Sy Port Name Ta Sy Parent Device
.It T4 Ta cxgbev Ta t4vf
.It T5 Ta cxlv Ta t5vf
.It T6 Ta ccv Ta t6vf
.El
.Pp
Loader tunables with the hw.cxgbe prefix apply to VFs from all cards.
The Physical Function driver for Chelsio Terminator adapters shares these
tunables.
The driver provides sysctl MIBs for both ports and parent devices using
the names above.
For example, a T5 VF will provide port MIBs under dev.cxlv and
parent device MIBs under dev.t5vf.
References to sysctl MIBs in the remainder of this page will use
dev.<port> for port MIBs and dev.<nexus> for parent device MIBs.
.Pp
For more information on configuring this device, see
.Xr ifconfig 8 .
.Sh HARDWARE
The
.Nm
driver supports Virtual Functions on 100Gb and 25Gb Ethernet adapters
based on the T6 ASIC:
.Pp
.Bl -bullet -compact
.It
Chelsio T6225-CR
.It
Chelsio T6225-SO-CR
.It
Chelsio T62100-LP-CR
.It
Chelsio T62100-SO-CR
.It
Chelsio T62100-CR
.El
.Pp
The
.Nm
driver supports Virtual Functions on 40Gb, 10Gb and 1Gb Ethernet adapters
based on the T5 ASIC:
.Pp
@ -141,11 +173,11 @@ 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 or 40Gb port.
The number of tx queues to use for a 10Gb or higher-speed 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 or 40Gb port.
The number of rx queues to use for a 10Gb or higher-speed port.
The default is 8 or the number
of CPU cores in the system, whichever is less.
.It Va hw.cxgbe.ntxq1g
@ -164,7 +196,7 @@ by default (all values are in microseconds) and the index selects a
value from this list.
The default value is 1 which means the timer value is 5us.
Different interfaces can be assigned different values at any time via the
dev.cxgbev.X.holdoff_tmr_idx or dev.cxlv.X.holdoff_tmr_idx sysctl.
dev.<port>.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.
@ -173,7 +205,7 @@ and the index selects a value from this list.
The default value is -1 which means packet counting is disabled and interrupts
are generated based solely on the holdoff timer value.
Different interfaces can be assigned different values via the
dev.cxgbev.X.holdoff_pktc_idx or dev.cxlv.X.holdoff_pktc_idx sysctl.
dev.<port>.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
@ -185,7 +217,7 @@ See
.Xr ifnet 9 .
The default value is 1024.
Different interfaces can be assigned different values via the
dev.cxgbev.X.qsize_txq sysctl or dev.cxlv.X.qsize_txq sysctl.
dev.<port>.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
@ -193,7 +225,7 @@ The size, in number of entries, of the descriptor ring used for an
rx queue.
The default value is 1024.
Different interfaces can be assigned different values via the
dev.cxgbev.X.qsize_rxq or dev.cxlv.X.qsize_rxq sysctl.
dev.<port>.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
@ -279,6 +311,8 @@ email all the specific information related to the issue to
The
.Nm
device driver first appeared in
.Fx 11.1
and
.Fx 12.0 .
.Sh AUTHORS
.An -nosplit