1 .\" Copyright (c) 2016 Broadcom, All Rights Reserved.
2 .\" The term Broadcom refers to Broadcom Limited and/or its subsidiaries
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
8 .\" 1. Redistributions of source code must retain the above copyright
9 .\" notice, this list of conditions and the following disclaimer.
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.
14 .\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS'
15 .\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
18 .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
24 .\" THE POSSIBILITY OF SUCH DAMAGE.
28 .Dd September 20, 2018
33 .Nd "Broadcom NetXtreme-C/NetXtreme-E Family Ethernet driver"
35 To compile this driver into the kernel,
36 place the following lines in your
37 kernel configuration file:
38 .Bd -ragged -offset indent
42 Alternatively, to load the driver as a
43 module at boot time, place the following line in
45 .Bd -literal -offset indent
51 driver provides support for various NICs based on the Broadcom BCM57301/2/4,
52 and BCM57402/4/6 Ethernet controller chips.
54 For more information on configuring this device, see
59 driver provides support for various NICs based on the Broadcom NetXtreme-C and
60 NetXtreme-E families of Gigabit Ethernet controller chips, including the
65 Broadcom BCM57301 NetXtreme-C 10Gb Ethernet Controller
67 Broadcom BCM57302 NetXtreme-C 10Gb/25Gb Ethernet Controller
69 Broadcom BCM57304 NetXtreme-C 10Gb/25Gb/40Gb/50Gb Ethernet Controller
71 Broadcom BCM57304 NetXtreme-C Ethernet Virtual Function
73 Broadcom BCM57314 NetXtreme-C Ethernet Virtual Function
75 Broadcom BCM57402 NetXtreme-E 10Gb Ethernet Controller
77 Broadcom BCM57402 NetXtreme-E Ethernet Partition
79 Broadcom BCM57404 NetXtreme-E 10Gb/25Gb Ethernet Controller
81 Broadcom BCM57404 NetXtreme-E Ethernet Virtual Function
83 Broadcom BCM57404 NetXtreme-E Partition
85 Broadcom BCM57406 NetXtreme-E 10GBASE-T Ethernet Controller
87 Broadcom BCM57406 NetXtreme-E Partition
89 Broadcom BCM57407 NetXtreme-E 10GBase-T Ethernet Controller
91 Broadcom BCM57407 NetXtreme-E 25Gb Ethernet Controller
93 Broadcom BCM57407 NetXtreme-E Partition
95 Broadcom BCM57412 NetXtreme-E Partition
97 Broadcom BCM57414 NetXtreme-E Ethernet Virtual Function
99 Broadcom BCM57414 NetXtreme-E Partition
101 Broadcom BCM57416 NetXtreme-E Partition
103 Broadcom BCM57417 NetXtreme-E Ethernet Partition
105 Broadcom BCM57454 NetXtreme-E 10Gb/25Gb/40Gb/50Gb/100Gb Ethernet
108 These variables must be set before loading the driver, either via
110 or through the use of
112 These are provided by the
114 framework, and might be better documented there.
115 .Bl -tag -width indent
116 .It Va dev.bnxt.X.iflib.override_nrxds
117 Override the number of RX descriptors for each queue.
118 The value is a comma separated list of three positive integers: the size of the
120 the size of the receive ring, and the size of the aggregation ring respectively.
121 The completion ring should be at least the size of the aggregation ring plus
122 four times the size of the receive ring.
123 These numbers must be powers of two, and zero means to use the default.
125 .It Va dev.bnxt.X.iflib.override_ntxds
126 Override the number of TX descriptors for each queue.
127 The value is a comma separated list of two positive integers: the size of the
128 completion ring, and the size of the transmit ring respectively.
129 The completion ring should be at least twice the size of the transmit ring.
130 These numbers must be powers of two, and zero means to use the default.
132 .It Va override_qs_enable
133 When set, allows the number of transmit and receive queues to be different.
134 If not set, the lower of the number of TX or RX queues will be used for both.
135 .It Va override_nrxqs
136 Set the number of RX queues.
137 If zero, the number of RX queues is derived from the number of cores on the
138 socket connected to the controller.
140 .It Va override_ntxqs
141 Set the number of TX queues.
142 If zero, the number of TX queues is derived from the number of cores on the
143 socket connected to the controller.
148 variables can be changed at any time:
149 .Bl -tag -width indent
150 .It Va dev.bnxt.X.vlan_only
151 Require that incoming frames must have a VLAN tag on them that matches one that
152 is configured for the NIC.
153 Normally, both frames that have a matching VLAN tag and frames that have no
154 VLAN tag are accepted.
156 .It Va dev.bnxt.X.vlan_strip
157 When non-zero the NIC strips VLAN tags on receive.
159 .It Va dev.bnxt.X.rx_stall
160 Enable buffering rather than dropping frames when there are no available host
163 .It Va dev.bnxt.X.rss_type
164 Comma-separated list of RSS hash types to support.
165 Default is all types.
166 Defaults to ipv4,tcp_ipv4,udp_ipv4,ipv6,tcp_ipv6,udp_ipv6.
167 .It Va dev.bnxt.X.rss_key
169 Defaults to a randomly generated value which is generated for each device
171 .It Va dev.bnxt.X.ver.hwrm_min_ver
172 Minimum HWRM (HardWare Resource Manager) firmware API to support.
173 If the firmware implements an older version, a warning will be printed, and the
174 firmware should be upgraded.
180 variables are read-only:
181 .Bl -tag -width indent
182 .It Va dev.bnxt.X.if_name
183 Current interface name of the device.
184 This will normally be
186 but this can be changed using
188 This sysctl allows correlating an interface with a child of
190 .It Va dev.bnxt.X.nvram.*
191 Information about the NVRAM device which contains the device firmware.
192 .It Va dev.bnxt.X.ver.*
193 Version-related information about the device and firmware:
194 .It Va dev.bnxt.X.ver.hwrm_if
195 Supported HWRM API version of the currently running firmware.
196 .It Va dev.bnxt.X.ver.driver_hwrm_if
197 HWRM API version the driver was built to support.
198 .It Va dev.bnxt.X.hwstats.*
199 Per-queue statistics tracked by the hardware.
200 .It Va dev.bnxt.X.hwstats.port_stats.*
201 Per-port statistics tracked by the hardware.
202 .It Va dev.bnxt.X.hwstats.rxq0.drop_pkts
203 Number of packets dropped by hardware on queue zero.
204 This number might seem high, but the count includes packets dropped due to
205 incorrect destination MAC, unsubscribed multicast address, and other normal
206 reasons to ignore Ethernet frames.
207 .It Va dev.bnxt.X.hwstats.rxq0.tpa_*
208 statistics related to HW LRO.
209 .It Va dev.bnxt.X.hw_lro.*
210 Enable / Disable HW LRO feature. Defaults to disable.
211 Enabling HW LRO could cause issues when forwarding is enabled on host.
213 Enable / Disable Flow Control feature. Defaults to Enable
217 .It "bnxt%d: %s command returned %s error."
218 Device firmware rejected a command from the driver.
219 There might be a driver/firmware HWRM API mismatch.
220 .It "bnxt%d: Timeout sending %s (timeout: %d) seq %d"
221 Device firmware unresponsive.
222 A PCI device reset is likely needed.
223 .It "bnxt%d: Timeout sending %s (timeout: %d) msg {0x%x 0x%x} len:%d v: %d"
224 Partial firmware response.
225 A PCI device reset is likely needed.
227 As of this writing, the system must be rebooted to initiate a PCI device reset.
240 device driver first appeared in
246 driver was written by
247 .An Jack Vogel Aq Mt jfvogel@gmail.com
249 .An Stephen Hurd Aq Mt shurd@freebsd.org ,
250 and is currently maintained by
251 .An Broadcom Limited Aq Mt freebsd.pdl@broadcom.com .