xref: /freebsd/share/man/man4/bge.4 (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1.\" Copyright (c) 2001 Wind River Systems
2.\" Copyright (c) 1997, 1998, 1999, 2000, 2001
3.\"	Bill Paul <wpaul@windriver.com>. All rights reserved.
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
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.
13.\" 3. All advertising materials mentioning features or use of this software
14.\"    must display the following acknowledgement:
15.\"	This product includes software developed by Bill Paul.
16.\" 4. Neither the name of the author nor the names of any co-contributors
17.\"    may be used to endorse or promote products derived from this software
18.\"   without specific prior written permission.
19.\"
20.\" THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23.\" ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD
24.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
30.\" THE POSSIBILITY OF SUCH DAMAGE.
31.\"
32.Dd August 18, 2017
33.Dt BGE 4
34.Os
35.Sh NAME
36.Nm bge
37.Nd "Broadcom BCM57xx/BCM590x Gigabit/Fast Ethernet driver"
38.Sh SYNOPSIS
39To compile this driver into the kernel,
40place the following lines in your
41kernel configuration file:
42.Bd -ragged -offset indent
43.Cd "device miibus"
44.Cd "device bge"
45.Ed
46.Pp
47Alternatively, to load the driver as a
48module at boot time, place the following line in
49.Xr loader.conf 5 :
50.Bd -literal -offset indent
51if_bge_load="YES"
52.Ed
53.Sh DESCRIPTION
54The
55.Nm
56driver provides support for various NICs based on the Broadcom BCM570x,
57571x, 572x, 575x, 576x, 578x, 5776x and 5778x Gigabit Ethernet controller
58chips and the 590x and 5779x Fast Ethernet controller chips.
59.Pp
60All of these NICs are capable of 10, 100 and 1000Mbps speeds over CAT5
61copper cable, except for the SysKonnect SK-9D41 which supports only
621000Mbps over multimode fiber.
63The BCM570x builds upon the technology of the Alteon Tigon II.
64It has two R4000 CPU cores and is PCI v2.2 and PCI-X v1.0 compliant.
65It supports IP, TCP
66and UDP checksum offload for both receive and transmit,
67multiple RX and TX DMA rings for QoS applications, rules-based
68receive filtering, and VLAN tag stripping/insertion as well as
69a 256-bit multicast hash filter.
70Additional features may be
71provided via value-add firmware updates.
72The BCM570x supports TBI (ten bit interface) and GMII
73transceivers, which means it can be used with either copper or 1000baseX
74fiber applications.
75Note however the device only supports a single
76speed in TBI mode.
77.Pp
78Most BCM5700-based cards also use the Broadcom BCM5401 or BCM5411 10/100/1000
79copper gigabit transceivers,
80which support autonegotiation of 10, 100 and 1000Mbps modes in
81full or half duplex.
82.Pp
83The BCM5700, BCM5701, BCM5702, BCM5703, BCM5704, BCM5714, BCM5717, BCM5719,
84BCM5720, BCM5780 and BCM57765 also support jumbo frames, which can be
85configured via the interface MTU setting.
86Selecting an MTU larger than 1500 bytes with the
87.Xr ifconfig 8
88utility configures the adapter to receive and transmit jumbo frames.
89Using jumbo frames can greatly improve performance for certain tasks,
90such as file transfers and data streaming.
91.Pp
92The
93.Nm
94driver supports the following media types:
95.Bl -tag -width ".Cm 10baseT/UTP"
96.It Cm autoselect
97Enable autoselection of the media type and options.
98The user can manually override
99the autoselected mode by adding media options to
100.Xr rc.conf 5 .
101.It Cm 10baseT/UTP
102Set 10Mbps operation.
103The
104.Xr ifconfig 8
105.Ic mediaopt
106option can also be used to select either
107.Cm full-duplex
108or
109.Cm half-duplex
110modes.
111.It Cm 100baseTX
112Set 100Mbps (Fast Ethernet) operation.
113The
114.Xr ifconfig 8
115.Ic mediaopt
116option can also be used to select either
117.Cm full-duplex
118or
119.Cm half-duplex
120modes.
121.It Cm 1000baseTX
122Set 1000baseTX operation over twisted pair.
123Only
124.Cm full-duplex
125mode is supported.
126.It Cm 1000baseSX
127Set 1000Mbps (Gigabit Ethernet) operation.
128Both
129.Cm full-duplex
130and
131.Cm half-duplex
132modes are supported.
133.El
134.Pp
135The
136.Nm
137driver supports the following media options:
138.Bl -tag -width ".Cm full-duplex"
139.It Cm full-duplex
140Force full duplex operation.
141.It Cm half-duplex
142Force half duplex operation.
143.El
144.Pp
145For more information on configuring this device, see
146.Xr ifconfig 8 .
147.Sh HARDWARE
148The
149.Nm
150driver provides support for various NICs based on the Broadcom BCM570x
151family of Gigabit Ethernet controller chips, including the
152following:
153.Pp
154.Bl -bullet -compact
155.It
1563Com 3c996-SX (1000baseSX)
157.It
1583Com 3c996-T (10/100/1000baseTX)
159.It
160Apple Thunderbolt Display (10/100/1000baseTX)
161.It
162Apple Thunderbolt to Gigabit Ethernet Adapter (10/100/1000baseTX)
163.It
164Dell PowerEdge 1750 integrated BCM5704C NIC (10/100/1000baseTX)
165.It
166Dell PowerEdge 2550 integrated BCM5700 NIC (10/100/1000baseTX)
167.It
168Dell PowerEdge 2650 integrated BCM5703 NIC (10/100/1000baseTX)
169.It
170Dell PowerEdge R200 integrated BCM5750 NIC (10/100/1000baseTX)
171.It
172Dell PowerEdge R300 integrated BCM5722 NIC (10/100/1000baseTX)
173.It
174IBM x235 server integrated BCM5703x NIC (10/100/1000baseTX)
175.It
176HP Compaq dc7600 integrated BCM5752 NIC (10/100/1000baseTX)
177.It
178HP ProLiant NC7760 embedded Gigabit NIC (10/100/1000baseTX)
179.It
180HP ProLiant NC7770 PCI-X Gigabit NIC (10/100/1000baseTX)
181.It
182HP ProLiant NC7771 PCI-X Gigabit NIC (10/100/1000baseTX)
183.It
184HP ProLiant NC7781 embedded PCI-X Gigabit NIC (10/100/1000baseTX)
185.It
186Netgear GA302T (10/100/1000baseTX)
187.It
188SysKonnect SK-9D21 (10/100/1000baseTX)
189.It
190SysKonnect SK-9D41 (1000baseSX)
191.El
192.Sh LOADER TUNABLES
193The following tunables can be set at the
194.Xr loader 8
195prompt before booting the kernel, or stored in
196.Xr loader.conf 5 .
197.Bl -tag -width indent
198.It Va hw.bge.allow_asf
199Allow the ASF feature for cooperating with IPMI.
200Can cause system lockup problems on a small number of systems.
201Enabled by default.
202.It Va dev.bge.%d.msi
203Non-zero value enables MSI support on the Ethernet hardware.
204The default value is 1.
205.El
206.Sh SYSCTL VARIABLES
207The following variables are available as both
208.Xr sysctl 8
209variables and
210.Xr loader 8
211tunables:
212.Bl -tag -width indent
213.It Va dev.bge.%d.forced_collapse
214Allow collapsing multiple transmit buffers into a single buffer
215to increase transmit performance with the cost of CPU cycles.
216The default value is 0 to disable transmit buffer collapsing.
217.It Va dev.bge.%d.forced_udpcsum
218Enable UDP transmit checksum offloading even if controller can generate
219UDP datagrams with checksum value 0.
220UDP datagrams with checksum value 0 can confuse receiver host as it means
221sender did not compute UDP checksum.
222The default value is 0 which disables UDP transmit checksum offloading.
223The interface need to be brought down and up again before a change takes
224effect.
225.El
226.Sh DIAGNOSTICS
227.Bl -diag
228.It "bge%d: couldn't map memory"
229A fatal initialization error has occurred.
230.It "bge%d: couldn't map ports"
231A fatal initialization error has occurred.
232.It "bge%d: couldn't map interrupt"
233A fatal initialization error has occurred.
234.It "bge%d: no memory for softc struct!"
235The driver failed to allocate memory for per-device instance information
236during initialization.
237.It "bge%d: failed to enable memory mapping!"
238The driver failed to initialize PCI shared memory mapping.
239This might
240happen if the card is not in a bus-master slot.
241.It "bge%d: firmware handshake timed out, found 0xffffffff"
242The device was physically disconnected from the system, or there is a problem with
243the device causing it to stop responding to the host it is attached to.
244.It "bge%d: no memory for jumbo buffers!"
245The driver failed to allocate memory for jumbo frames during
246initialization.
247.It "bge%d: watchdog timeout"
248The device has stopped responding to the network, or there is a problem with
249the network connection (cable).
250.El
251.Sh SEE ALSO
252.Xr altq 4 ,
253.Xr arp 4 ,
254.Xr miibus 4 ,
255.Xr netintro 4 ,
256.Xr ng_ether 4 ,
257.Xr polling 4 ,
258.Xr vlan 4 ,
259.Xr ifconfig 8
260.Sh HISTORY
261The
262.Nm
263device driver first appeared in
264.Fx 4.5 .
265.Sh AUTHORS
266The
267.Nm
268driver was written by
269.An Bill Paul Aq Mt wpaul@windriver.com .
270.Sh BUGS
271Hotplug is not currently supported in
272.Fx ,
273hence, Thunderbolt interfaces need to be connected prior to system power up on
274Apple systems in order for the interface to be detected.
275Also, due to the lack of hotplug support, Thunderbolt-based interfaces must not be removed
276while the system is up as the kernel is currently unable to cope with a
277.Nm
278interface disappearing.
279