xref: /freebsd/share/man/man4/bce.4 (revision 2e3f49888ec8851bafb22011533217487764fdb0)
1.\" Copyright (c) 2006-2014 QLogic Corporation
2.\"
3.\" Redistribution and use in source and binary forms, with or without
4.\" modification, are permitted provided that the following conditions
5.\" are met:
6.\"
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS'
14.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
17.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23.\" THE POSSIBILITY OF SUCH DAMAGE.
24.\"
25.Dd June 4, 2012
26.Dt BCE 4
27.Os
28.Sh NAME
29.Nm bce
30.Nd "QLogic NetXtreme II (BCM5706/5708/5709/5716) PCI/PCIe Gigabit Ethernet adapter driver"
31.Sh SYNOPSIS
32To compile this driver into the kernel,
33place the following lines in your
34kernel configuration file:
35.Bd -ragged -offset indent
36.Cd "device miibus"
37.Cd "device bce"
38.Ed
39.Pp
40Alternatively, to load the driver as a
41module at boot time, place the following line in
42.Xr loader.conf 5 :
43.Bd -literal -offset indent
44if_bce_load="YES"
45.Ed
46.Sh DESCRIPTION
47The
48.Nm
49driver supports QLogic's NetXtreme II product family, including the
50BCM5706, BCM5708, BCM5709 and BCM5716 Ethernet controllers.
51.Pp
52The NetXtreme II product family is composed of various Converged NIC (or CNIC)
53Ethernet controllers which support a TCP Offload Engine (TOE), Remote DMA (RDMA),
54and iSCSI acceleration, in addition to standard L2 Ethernet traffic, all on the
55same controller.
56.Pp
57The following features are supported in the
58.Nm
59driver under
60.Fx :
61.Pp
62.Bl -item -offset indent -compact
63.It
64IP/TCP/UDP checksum offload
65.It
66Jumbo frames (up to 9022 bytes)
67.It
68VLAN tag stripping
69.It
70Interrupt coalescing
71.It
7210/100/1000Mbps operation in full-duplex mode
73.It
7410/100Mbps operation in half-duplex mode
75.El
76.Pp
77The
78.Nm
79driver supports the following media types:
80.Bl -tag -width ".Cm 10baseT/UTP"
81.It Cm autoselect
82Enable autoselection of the media type and options.
83The user can manually override
84the autoselected mode by adding media options to
85.Xr rc.conf 5 .
86.It Cm 10baseT/UTP
87Set 10Mbps operation.
88The
89.Xr ifconfig 8
90.Cm mediaopt
91option can also be used to select either
92.Cm full-duplex
93or
94.Cm half-duplex
95modes.
96.It Cm 100baseTX
97Set 100Mbps (Fast Ethernet) operation.
98The
99.Xr ifconfig 8
100.Cm mediaopt
101option can also be used to select either
102.Cm full-duplex
103or
104.Cm half-duplex
105modes.
106.It Cm 1000baseSX
107Sets 1000Mbps operation.
108Only
109.Cm full-duplex
110mode is supported at this speed.
111.It Cm 1000baseT
112Set 1000baseT operation over twisted pair.
113Only
114.Cm full-duplex
115mode is supported.
116.It Cm 2500BaseSX
117Set 2500Mbps operation.
118Only
119.Cm full-duplex
120mode is supported.
121.El
122.Pp
123The
124.Nm
125driver supports the following media options:
126.Bl -tag -width ".Cm full-duplex"
127.It Cm full-duplex
128Force full duplex operation.
129.It Cm half-duplex
130Force half duplex operation.
131.El
132.Pp
133For more information on configuring this device, see
134.Xr ifconfig 8 .
135.Sh HARDWARE
136The
137.Nm
138driver provides support for various NICs based on the QLogic NetXtreme II
139family of Gigabit Ethernet controllers, including the
140following:
141.Pp
142.Bl -bullet -compact
143.It
144QLogic NetXtreme II BCM5706 1000Base-SX
145.It
146QLogic NetXtreme II BCM5706 1000Base-T
147.It
148QLogic NetXtreme II BCM5708 1000Base-SX
149.It
150QLogic NetXtreme II BCM5708 1000Base-T
151.It
152QLogic NetXtreme II BCM5709 1000Base-SX
153.It
154QLogic NetXtreme II BCM5709 1000Base-T
155.It
156QLogic NetXtreme II BCM5716 1000Base-T
157.It
158Dell PowerEdge 1950 integrated BCM5708 NIC
159.It
160Dell PowerEdge 2950 integrated BCM5708 NIC
161.It
162Dell PowerEdge R710 integrated BCM5709 NIC
163.It
164HP NC370F Multifunction Gigabit Server Adapter
165.It
166HP NC370T Multifunction Gigabit Server Adapter
167.It
168HP NC370i Multifunction Gigabit Server Adapter
169.It
170HP NC371i Multifunction Gigabit Server Adapter
171.It
172HP NC373F PCIe Multifunc Giga Server Adapter
173.It
174HP NC373T PCIe Multifunction Gig Server Adapter
175.It
176HP NC373i Multifunction Gigabit Server Adapter
177.It
178HP NC373m Multifunction Gigabit Server Adapter
179.It
180HP NC374m PCIe Multifunction Adapter
181.It
182HP NC380T PCIe DP Multifunc Gig Server Adapter
183.It
184HP NC382T PCIe DP Multifunction Gigabit Server Adapter
185.It
186HP NC382i DP Multifunction Gigabit Server Adapter
187.It
188HP NC382m DP 1GbE Multifunction BL-c Adapter
189.El
190.Sh SYSCTL VARIABLES
191The following variables are available as both
192.Xr sysctl 8
193variables and
194.Xr loader 8
195tunables:
196.Bl -tag -width indent
197.It Va hw.bce.verbose
198Enable/Disable verbose logging and output to the console.
199Useful for debugging (default 0).
200.It Va hw.bce.msi_enable
201Enable/Disable MSI support (default 1).
202.It Va hw.bce.tso_enable
203Enable/Disable TSO support (default 1).
204.It Va hw.bce.strict_rx_mtu
205Enable/Disable strict RX frame size checking (default 0).
206.It Va hw.bce.hdr_split
207Enable/Disable frame header/payload splitting (default 1).
208.It Va hw.bce.rx_pages
209Set the number of memory pages assigned to receive packets by the driver.
210Due to alignment issues, this value can only be of the set
2111, 2, 4 or 8 (default 2).
212.It Va hw.bce.tx_pages
213Set the number of memory pages assigned to transmit packets
214by the driver.
215Due to alignment issues, this value can only be of the set
2161, 2, 4 or 8 (default 2).
217.It Va hw.bce.rx_ticks
218Time in microsecond ticks to wait before generating a status
219block updates due to RX processing activity.
220Values from 0-100 are valid.
221A value of 0 disables this status block update.
222Cannot be set to 0 if hw.bce.rx_quick_cons_trip is also 0
223(default 18).
224.It Va hw.bce.rx_ticks_int
225Time in microsecond ticks to wait during RX interrupt
226processing before generating a status block update.
227Values from 0-100 are valid.
228Valid values are in the range from 0-100.
229A value of 0 disables this status block update (default 18).
230.It Va hw.bce.rx_quick_cons_trip
231Number of RX Quick BD Chain entries that must be completed
232before a status block is generated.
233Values from 0-256 are valid.
234A value of 0 disables this status block update.
235Cannot be set to 0 if hw.bce.rx_ticks is also 0 (default 6).
236.It Va hw.bce.rx_quick_cons_trip_int
237Number of RX quick BD entries that must be completed before
238a status block is generated duing interrupt processing.
239Values from 0-256 are valid.
240A value of 0 disables this status block update (default 6).
241.It Va hw.bce.tx_ticks
242Time in microsecond ticks to wait before a status block
243update is generated due to TX activitiy.
244Values from 0-100 are valid.
245A value of 0 disables this status block update.
246Cannot be set to 0 if hw.bce.tx_quick_cons_trip is also 0
247(default 80).
248.It Va hw.bce.tx_ticks_int
249Time in microsecond ticks to wait in interrupt processing
250before a status block update is generated due to TX activity
251Values from 0-100 are valid.
252A value of 0 disables this status block update (default 80).
253.It Va hw.bce.tx_cons_trip
254How many TX Quick BD Chain entries that must be completed
255before a status block is generated.
256Values from 0-100 are valid.
257A value of 0 disables this status block update.
258Cannot be set to 0 if hw.bce.tx_ticks is also 0 (default 20).
259.It Va hw.bce.tx_cons_trip_int
260How many TX Quick BD Chain entries that must be completed
261before a status block is generated during an interrupt.
262Values from 0-100 are valid.
263A value of 0 disables this status block update (default 20).
264.El
265.Sh DIAGNOSTICS
266.Bl -diag
267.It "bce%d: PCI memory allocation failed!"
268The driver has encountered a fatal initialization error.
269.It "bce%d: PCI map interrupt failed!"
270The driver has encountered a fatal initialization error.
271.It "bce%d: Unsupported controller revision (%c%d)"
272The driver does not support the controller revision in use.
273.It "bce%d: Controller initialization failed!"
274The driver has encountered a fatal initialization error.
275.It "bce%d: NVRAM test failed!"
276The driver could not access the controller NVRAM correctly.
277.It "bce%d: DMA resource allocation failed!"
278The driver could not allocate DMA memory to setup the controllers
279host memory data structures.
280.It "bce%d: Interface allocation failed!"
281The driver could not create a network interface for the controller.
282.It "bce%d: PHY probe failed!"
283The driver could not access the PHY used by the controller.
284.It "bce%d: Failed to setup IRQ!"
285The driver could not initialize the IRQ handler.
286.It "bce%d: Error: PHY read timeout!"
287The driver could not read a PHY register before the timeout period expired.
288.It "bce%d: PHY write timeout!"
289The driver could not write to the PHY register because a timeout occurred.
290.It "bce%d: Timeout error reading NVRAM at offset 0x%08X!"
291The driver could not write to NVRAM because a timeout occurred.
292.It "bce%d: Unknown Flash NVRAM found!"
293The driver does not recognize the NVRAM device being used and therefore
294cannot access it correctly.
295.It "bce%d: Invalid NVRAM magic value!"
296The driver cannot read NVRAM or the NVRAM is corrupt.
297.It "bce%d: Invalid Manufacturing Information NVRAM CRC!"
298The driver cannot read NVRAM or the NVRAM is corrupt.
299.It "bce%d: Invalid Feature Configuration Information NVRAM CRC!"
300The driver cannot read NVRAM or the NVRAM is corrupt.
301.It "bce%d: DMA mapping error!"
302The driver was unable to map memory into DMA addressable space required
303by the controller.
304.It "bce%d: Could not allocate parent DMA tag!"
305The driver could not allocate a PCI compatible DMA tag.
306.It "bce%d: Could not allocate status block DMA tag!"
307The driver could not allocate a DMA tag for the controller's
308status block.
309.It "bce%d: Could not allocate status block DMA memory!"
310The driver could not allocate DMA addressable memory for the controller's
311status block.
312.It "bce%d: Could not map status block DMA memory!"
313The driver could not map the status block memory into the controller's DMA
314address space.
315.It "bce%d: Could not allocate statistics block DMA tag!"
316The driver could not allocate a DMA tag for the controller's
317statistics block.
318.It "bce%d: Could not allocate statistics block DMA memory!"
319The driver could not allocate DMA addressable memory for the controller's
320statistics block.
321.It "bce%d: Could not map statistics block DMA memory!"
322The driver could not map the statistics block memory into the controller's DMA
323address space.
324.It "bce%d: Could not allocate TX descriptor chain DMA tag!"
325The driver could not allocate a DMA tag for the controller's
326TX chain.
327.It "bce%d: Could not allocate TX descriptor chain DMA memory!"
328The driver could not allocate DMA addressable memory for the controller's
329TX chain.
330.It "bce%d: Could not map TX descriptor chain DMA memory!"
331The driver could not map the TX descriptor chain memory into the controller's DMA
332address space.
333.It "bce%d: Could not allocate TX mbuf DMA tag!"
334The driver could not allocate a DMA tag for the controller's
335TX mbuf memory.
336.It "bce%d: Unable to create TX mbuf DMA map!"
337The driver could not map the TX mbuf memory into the controller's DMA
338address space.
339.It "bce%d: Could not allocate RX descriptor chain DMA tag!"
340The driver could not allocate a DMA tag for the controller's
341RX chain.
342.It "bce%d: Could not allocate RX descriptor chain "
343The driver could not allocate DMA addressable memory for the controller's
344RX chain.
345.It "bce%d: Could not map RX descriptor chain DMA memory!"
346The driver could not map the RX descriptor chain memory into the controller's DMA
347address space.
348.It "bce%d: Could not allocate RX mbuf DMA tag!"
349The driver could not allocate a DMA tag for the controller's
350RX mbuf memory.
351.It "bce%d: Unable to create RX mbuf DMA map!"
352The driver could not map the RX mbuf memory into the controller's DMA
353address space.
354.It "bce%d: Firmware synchronization timeout!"
355The driver was not able to synchronize with the firmware running on the
356controller.
357The firmware may be stopped or hung.
358.It "bce%d: Invalid Ethernet address!"
359The driver was not able to read a valid Ethernet MAC address from NVRAM.
360.It "bce%d: Reset failed!"
361The driver has encountered a fatal initialization error.
362.It "bce%d: Byte swap is incorrect!"
363The driver has encountered a fatal initialization error.
364Contact the author
365with details of the CPU architecture and system chipset in use.
366.It "bce%d: Firmware did not complete initialization!"
367The driver has encountered a fatal initialization error.
368.It "bce%d: Bootcode not running!"
369The driver has encountered a fatal initialization error.
370.It "bce%d: Error mapping mbuf into RX chain!"
371The driver could not map a RX mbuf into DMA addressable memory.
372.It "bce%d: Error filling RX chain: rx_bd[0x%04X]!"
373The driver was unable to allocate enough mbufs to fill the RX chain
374during initialization.
375Try increasing the number of mbufs available in
376the system, increase system memory, or if using jumbo frames, make sure
377enough 9KB mbufs are available.
378.It "bce%d: Failed to allocate new mbuf, incoming frame dropped!"
379The driver was unable to allocate a new mbuf for the RX chain and reused
380the mbuf for the received frame, dropping the incoming frame in the process.
381Try increasing the number of mbufs available in the system or increase system
382memory.
383.It "bce%d: Controller reset failed!"
384A fatal initialization error has occurred.
385.It "bce%d: Controller initialization failed!"
386A fatal initialization error has occurred.
387.It "bce%d: Block initialization failed!"
388A fatal initialization error has occurred.
389.It "bce%d: Error mapping mbuf into TX chain!"
390The driver could not map a TX mbuf into DMA addressable memory.
391.It "bce%d: Error registering poll function!"
392The driver received an error while attempting to register the poll function.
393.It "bce%d: Changing VLAN_MTU not supported."
394Changing the VLAN MTU is not currently supported by the driver.
395.It "bce%d: Cannot change VLAN_HWTAGGING while management firmware (ASF/IPMI/UMP) is running!"
396Management firmware to support ASF/IPMI/UMP requires that VLAN
397tag stripping be enabled in the controller.
398.It "bce%d: Changing VLAN_HWTAGGING not supported!"
399Disabling VLAN tag stripping is not currently supported by the driver.
400.It "bce%d: Watchdog timeout occurred, resetting!"
401The device has stopped responding to the network, there is a problem
402with the cable connection, or a driver logic problem has occurred..
403.It "bce%d: Fatal attention detected: 0x%08X!"
404A controller hardware failure has occurred.
405If the problem continues replace the controller.
406.El
407.Sh SUPPORT
408For support questions please contact your QLogic approved reseller or
409QLogic Technical Support at
410.Pa http://support.qlogic.com ,
411or by E-mail at
412.Aq Mt support@qlogic.com .
413.Sh SEE ALSO
414.Xr altq 4 ,
415.Xr arp 4 ,
416.Xr miibus 4 ,
417.Xr netintro 4 ,
418.Xr ng_ether 4 ,
419.Xr vlan 4 ,
420.Xr ifconfig 8
421.Sh HISTORY
422The
423.Nm
424device driver first appeared in
425.Fx 6.1 .
426.Sh AUTHORS
427The
428.Nm
429driver was written by
430.An David Christensen Aq Mt davidch@broadcom.com .
431