2 .\" Copyright (c) 2012 The DragonFly Project. All rights reserved.
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
12 .\" the documentation and/or other materials provided with the
14 .\" 3. Neither the name of The DragonFly Project nor the names of its
15 .\" contributors may be used to endorse or promote products derived
16 .\" from this software without specific, prior written permission.
18 .\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 .\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21 .\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22 .\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
23 .\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
24 .\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 .\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
26 .\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27 .\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
28 .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 .Nd "Broadcom BCM57785/BCM5718 families 10/100/Gigabit Ethernet device"
41 Alternatively, to load the driver as a module at boot time, place the
43 .Pa /boot/loader.conf :
44 .Bd -literal -offset indent
50 driver supports the PCIe Ethernet adapters based on
51 Broadcom BCM57785/BCM5718 families chips.
53 The following features are supported in the
57 .Bl -item -offset indent -compact
59 IP/TCP/UDP checksum offloading
61 TCP segmentation offloading (TSO)
63 VLAN tag stripping and inserting
67 Receive Side Scaling (RSS),
68 up to 4 reception queues
72 Multiple transmission queues
74 BCM5719 and BCM5720 only),
75 up to 4 transmission queues
81 driver will try enabling as many reception queues as are allowed
82 by the number of CPUs in the system.
85 in addition to the reception queues,
89 driver will try enabling as many transmission queues as are allowed
90 by the number of CPUs in the system
91 and the number of enabled reception queues.
92 If multiple transmission queues are enabled,
93 the round-robin arbitration is performed among the transmission queues.
94 It should be noted that
95 if both TSO and multiple transmission queues are enabled,
96 the round-robin arbitration between transmission queues is done
97 at the TSO packet boundary.
101 driver supports the following
105 .Bl -tag -width 10baseT/UTP -compact
107 Enable autoselection of the media types and options
110 Set 10Mbps operation.
113 option can also be used to select either
120 Set 100Mbps (Fast Ethernet) operation.
123 option can also be used to select either
130 Set 1000Mbps (Gigabit Ethernet) operation.
133 option can only be set
140 driver supports the following
144 .Bl -tag -width full-duplex -compact
146 Force full duplex operation.
149 Force half duplex operation.
152 Note that the 1000baseT media type is only available
153 if it is supported by the adapter.
154 For more information on configuring this device,
164 driver supports Gigabit Ethernet adapters and Fast Ethernet adapters based on
165 the Broadcom BCM57785/BCM5718 families chips:
169 Broadcom BCM5717 Gigabit Ethernet
171 Broadcom BCM5717C Gigabit Ethernet
173 Broadcom BCM5718 Gigabit Ethernet
175 Broadcom BCM5719 Gigabit Ethernet
177 Broadcom BCM5720 Gigabit Ethernet
179 Broadcom BCM5725 Gigabit Ethernet
181 Broadcom BCM5727 Gigabit Ethernet
183 Broadcom BCM5762 Gigabit Ethernet
185 Broadcom BCM57761 Gigabit Ethernet
187 Broadcom BCM57762 Gigabit Ethernet
189 Broadcom BCM57765 Gigabit Ethernet
191 Broadcom BCM57766 Gigabit Ethernet
193 Broadcom BCM57781 Gigabit Ethernet
195 Broadcom BCM57782 Gigabit Ethernet
197 Broadcom BCM57785 Gigabit Ethernet
199 Broadcom BCM57786 Gigabit Ethernet
201 Broadcom BCM57791 Fast Ethernet
203 Broadcom BCM57795 Fast Ethernet
207 is the device unit number.
208 .Bl -tag -width ".Va hw.bnxX.npoll.offset"
209 .It Va hw.bnx.rx_rings Va hw.bnxX.rx_rings
211 this tunable specifies the number of reception queues to be enabled.
212 Maximum allowed value for these tunables is 4 and
213 it must be power of 2 aligned.
214 Setting these tunables to 0 allows the driver to enable as many reception queues
215 as allowed by the number of CPUs.
216 .It Va hw.bnx.tx_rings Va hw.bnxX.tx_rings
220 this tunable specifies the number of transmission queues to be enabled.
221 Maximum allowed value for these tunables is 4,
222 it must be power of 2 aligned
223 and it must be less than or equal to the number of reception queues enabled.
224 Setting these tunables to 0 allows the driver to enable as many transmission queues
225 as allowed by the number of CPUs and number reception queues enabled.
226 .It Va hw.bnx.msix.enable Va hw.bnxX.msix.enable
228 the driver will use MSI-X
230 This behaviour can be turned off by setting this tunable to 0.
231 .It Va hw.bnx.msi.enable Va hw.bnxX.msi.enable
232 If MSI-X is disabled and MSI is supported,
233 the driver will use MSI.
234 This behavior can be turned off by setting this tunable to 0.
235 .It Va hw.bnxX.msi.cpu
236 If MSI is used, it specifies the MSI's target CPU.
239 A number of per-interface variables are implemented in the
244 .Bl -tag -width "rx_coal_bds_poll"
246 Number of reception queues enabled (read-only).
253 Number of transmission queues enabled (read-only).
260 How often status block should be updated and interrupt should be generated
262 due to receiving packets.
263 It is used together with
265 to achieve RX interrupt moderation.
266 Default value is 150 (microseconds).
268 How often status block should be updated and interrupt should be generated
270 due to sending packets.
271 It is used together with
273 to achieve TX interrupt moderation.
274 Default value is 1023 (microseconds).
276 Maximum number of BDs which must be received by the device
277 before the device updates the status block and generates interrupt.
278 It is used together with
280 to achieve RX interrupt moderation.
281 Default value is 0 (disabled).
282 .It Va rx_coal_bds_poll
283 Maximum number of BDs which must be received by the device
284 before the device updates the status block during
286 It is used together with
288 to reduce the frequency of status block updating due to RX.
291 Maximum number of sending BDs which must be processed by the device
292 before the device updates the status block and generates interrupt.
293 It is used together with
295 to achieve TX interrupt moderation.
296 Default value is 128.
297 .It Va tx_coal_bds_poll
298 Maximum number of sending BDs which must be processed by the device
299 before the device updates the status block during
301 It is used together with
303 to reduce the frequency of status block updating due to TX.
306 Force defragment the sending mbuf chains,
307 if the mbuf chain is not a TSO segment and contains more than 1 mbufs.
308 This improves transmission performance on certain low end chips,
310 this also increases CPU load.
311 Default value is 0 (disabled).
313 The number of transmission descriptors should be setup before the hardware
315 Setting this value too high will have negative effect
316 on transmission timeliness.
317 Setting this value too low will hurt overall transmission performance
318 due to the frequent hardware register writing.
321 Number of packets should be received
322 before the standard reception producer ring is refilled.
323 Setting this value too low will cause extra thread scheduling cost.
324 Setting this value too high will make chip drop incoming packets.
325 Default value is 128 / number of reception queues.
326 .It Va rx_coal_bds_int
327 Maximum number of BDs which must be received by the device
328 before the device updates the status block
329 during host interrupt processing.
331 .It Va tx_coal_bds_int
332 Maximum number of sending BDs which must be processed by the device
333 before the device updates the status block
334 during host interrupt processing.
337 Number of times the standard reception producer ring is short
339 If this value grows fast,
340 it is usually an indication that
344 Number of errors, both critical and non-critical, happened.
359 device driver first appeared in
368 .An Bill Paul Aq Mt wpaul@windriver.com .
370 added receive side scaling,
371 multiple transmission queues
372 and multiple MSI-X support to