xref: /freebsd/share/man/man4/bge.4 (revision a0ee8cc636cd5c2374ec44ca71226564ea0bca95)
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.\" $FreeBSD$
33.\"
34.Dd January 19, 2012
35.Dt BGE 4
36.Os
37.Sh NAME
38.Nm bge
39.Nd "Broadcom BCM57xx/BCM590x Gigabit/Fast Ethernet driver"
40.Sh SYNOPSIS
41To compile this driver into the kernel,
42place the following lines in your
43kernel configuration file:
44.Bd -ragged -offset indent
45.Cd "device miibus"
46.Cd "device bge"
47.Ed
48.Pp
49Alternatively, to load the driver as a
50module at boot time, place the following line in
51.Xr loader.conf 5 :
52.Bd -literal -offset indent
53if_bge_load="YES"
54.Ed
55.Sh DESCRIPTION
56The
57.Nm
58driver provides support for various NICs based on the Broadcom BCM570x,
59571x, 572x, 575x, 576x, 578x, 5776x and 5778x Gigabit Ethernet controller
60chips and the 590x and 5779x Fast Ethernet controller chips.
61.Pp
62All of these NICs are capable of 10, 100 and 1000Mbps speeds over CAT5
63copper cable, except for the SysKonnect SK-9D41 which supports only
641000Mbps over multimode fiber.
65The BCM570x builds upon the technology of the Alteon Tigon II.
66It has two R4000 CPU cores and is PCI v2.2 and PCI-X v1.0 compliant.
67It supports IP, TCP
68and UDP checksum offload for both receive and transmit,
69multiple RX and TX DMA rings for QoS applications, rules-based
70receive filtering, and VLAN tag stripping/insertion as well as
71a 256-bit multicast hash filter.
72Additional features may be
73provided via value-add firmware updates.
74The BCM570x supports TBI (ten bit interface) and GMII
75transceivers, which means it can be used with either copper or 1000baseX
76fiber applications.
77Note however the device only supports a single
78speed in TBI mode.
79.Pp
80Most BCM5700-based cards also use the Broadcom BCM5401 or BCM5411 10/100/1000
81copper gigabit transceivers,
82which support autonegotiation of 10, 100 and 1000Mbps modes in
83full or half duplex.
84.Pp
85The BCM5700, BCM5701, BCM5702, BCM5703, BCM5704, BCM5714, BCM5717, BCM5719,
86BCM5720, BCM5780 and BCM57765 also support jumbo frames, which can be
87configured via the interface MTU setting.
88Selecting an MTU larger than 1500 bytes with the
89.Xr ifconfig 8
90utility configures the adapter to receive and transmit jumbo frames.
91Using jumbo frames can greatly improve performance for certain tasks,
92such as file transfers and data streaming.
93.Pp
94The
95.Nm
96driver supports the following media types:
97.Bl -tag -width ".Cm 10baseT/UTP"
98.It Cm autoselect
99Enable autoselection of the media type and options.
100The user can manually override
101the autoselected mode by adding media options to
102.Xr rc.conf 5 .
103.It Cm 10baseT/UTP
104Set 10Mbps operation.
105The
106.Xr ifconfig 8
107.Ic mediaopt
108option can also be used to select either
109.Cm full-duplex
110or
111.Cm half-duplex
112modes.
113.It Cm 100baseTX
114Set 100Mbps (Fast Ethernet) operation.
115The
116.Xr ifconfig 8
117.Ic mediaopt
118option can also be used to select either
119.Cm full-duplex
120or
121.Cm half-duplex
122modes.
123.It Cm 1000baseTX
124Set 1000baseTX operation over twisted pair.
125Only
126.Cm full-duplex
127mode is supported.
128.It Cm 1000baseSX
129Set 1000Mbps (Gigabit Ethernet) operation.
130Both
131.Cm full-duplex
132and
133.Cm half-duplex
134modes are supported.
135.El
136.Pp
137The
138.Nm
139driver supports the following media options:
140.Bl -tag -width ".Cm full-duplex"
141.It Cm full-duplex
142Force full duplex operation.
143.It Cm half-duplex
144Force half duplex operation.
145.El
146.Pp
147For more information on configuring this device, see
148.Xr ifconfig 8 .
149.Sh HARDWARE
150The
151.Nm
152driver provides support for various NICs based on the Broadcom BCM570x
153family of Gigabit Ethernet controller chips, including the
154following:
155.Pp
156.Bl -bullet -compact
157.It
1583Com 3c996-SX (1000baseSX)
159.It
1603Com 3c996-T (10/100/1000baseTX)
161.It
162Dell PowerEdge 1750 integrated BCM5704C NIC (10/100/1000baseTX)
163.It
164Dell PowerEdge 2550 integrated BCM5700 NIC (10/100/1000baseTX)
165.It
166Dell PowerEdge 2650 integrated BCM5703 NIC (10/100/1000baseTX)
167.It
168Dell PowerEdge R200 integrated BCM5750 NIC (10/100/1000baseTX)
169.It
170Dell PowerEdge R300 integrated BCM5722 NIC (10/100/1000baseTX)
171.It
172IBM x235 server integrated BCM5703x NIC (10/100/1000baseTX)
173.It
174HP Compaq dc7600 integrated BCM5752 NIC (10/100/1000baseTX)
175.It
176HP ProLiant NC7760 embedded Gigabit NIC (10/100/1000baseTX)
177.It
178HP ProLiant NC7770 PCI-X Gigabit NIC (10/100/1000baseTX)
179.It
180HP ProLiant NC7771 PCI-X Gigabit NIC (10/100/1000baseTX)
181.It
182HP ProLiant NC7781 embedded PCI-X Gigabit NIC (10/100/1000baseTX)
183.It
184Netgear GA302T (10/100/1000baseTX)
185.It
186SysKonnect SK-9D21 (10/100/1000baseTX)
187.It
188SysKonnect SK-9D41 (1000baseSX)
189.El
190.Sh LOADER TUNABLES
191The following tunables can be set at the
192.Xr loader 8
193prompt before booting the kernel, or stored in
194.Xr loader.conf 5 .
195.Bl -tag -width indent
196.It Va hw.bge.allow_asf
197Allow the ASF feature for cooperating with IPMI.
198Can cause system lockup problems on a small number of systems.
199Enabled by default.
200.It Va dev.bge.%d.msi
201Non-zero value enables MSI support on the Ethernet hardware.
202The default value is 1.
203.El
204.Sh SYSCTL VARIABLES
205The following variables are available as both
206.Xr sysctl 8
207variables and
208.Xr loader 8
209tunables:
210.Bl -tag -width indent
211.It Va dev.bge.%d.forced_collapse
212Allow collapsing multiple transmit buffers into a single buffer
213to increase transmit performance with the cost of CPU cycles.
214The default value is 0 to disable transmit buffer collapsing.
215.It Va dev.bge.%d.forced_udpcsum
216Enable UDP transmit checksum offloading even if controller can generate
217UDP datagrams with checksum value 0.
218UDP datagrams with checksum value 0 can confuse receiver host as it means
219sender did not compute UDP checksum.
220The default value is 0 which disables UDP transmit checksum offloading.
221The interface need to be brought down and up again before a change takes
222effect.
223.El
224.Sh DIAGNOSTICS
225.Bl -diag
226.It "bge%d: couldn't map memory"
227A fatal initialization error has occurred.
228.It "bge%d: couldn't map ports"
229A fatal initialization error has occurred.
230.It "bge%d: couldn't map interrupt"
231A fatal initialization error has occurred.
232.It "bge%d: no memory for softc struct!"
233The driver failed to allocate memory for per-device instance information
234during initialization.
235.It "bge%d: failed to enable memory mapping!"
236The driver failed to initialize PCI shared memory mapping.
237This might
238happen if the card is not in a bus-master slot.
239.It "bge%d: no memory for jumbo buffers!"
240The driver failed to allocate memory for jumbo frames during
241initialization.
242.It "bge%d: watchdog timeout"
243The device has stopped responding to the network, or there is a problem with
244the network connection (cable).
245.El
246.Sh SEE ALSO
247.Xr altq 4 ,
248.Xr arp 4 ,
249.Xr miibus 4 ,
250.Xr netintro 4 ,
251.Xr ng_ether 4 ,
252.Xr polling 4 ,
253.Xr vlan 4 ,
254.Xr ifconfig 8
255.Sh HISTORY
256The
257.Nm
258device driver first appeared in
259.Fx 4.5 .
260.Sh AUTHORS
261The
262.Nm
263driver was written by
264.An Bill Paul Aq Mt wpaul@windriver.com .
265