xref: /freebsd/share/man/man4/bge.4 (revision d056fa046c6a91b90cd98165face0e42a33a5173)
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 November 15, 2005
35.Dt BGE 4
36.Os
37.Sh NAME
38.Nm bge
39.Nd "Broadcom BCM570x/5714/5721/5750/5751/5752/5789 PCI Gigabit Ethernet adapter 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.Pp
56The following tunable is settable from the loader:
57.Bl -ohang -offset indent
58.It Va hw.bge.fake_autoneg
59set to 1 for special handling of the BCM5704 HW (default is 0).
60.El
61.Sh DESCRIPTION
62The
63.Nm
64driver provides support for various NICs based on the Broadcom BCM570x,
655714, 5721, 5750, 5751, 5752 and 5789 families of Gigabit Ethernet
66controller chips.
67.Pp
68All of these NICs are capable of 10, 100 and 1000Mbps speeds over CAT5
69copper cable, except for the SysKonnect SK-9D41 which supports only
701000Mbps over multimode fiber.
71The BCM570x builds upon the technology of the Alteon Tigon II.
72It has two R4000 CPU cores and is PCI v2.2 and PCI-X v1.0 compliant.
73It supports IP, TCP
74and UDP checksum offload for both receive and transmit,
75multiple RX and TX DMA rings for QoS applications, rules-based
76receive filtering, and VLAN tag stripping/insertion as well as
77a 256-bit multicast hash filter.
78Additional features may be
79provided via value-add firmware updates.
80The BCM570x supports TBI (ten bit interface) and GMII
81transceivers, which means it can be used with either copper or 1000baseX
82fiber applications.
83Note however the device only supports a single
84speed in TBI mode.
85.Pp
86Most BCM5700-based cards also use the Broadcom BCM5401 or BCM5411 10/100/1000
87copper gigabit transceivers,
88which support autonegotiation of 10, 100 and 1000Mbps modes in
89full or half duplex.
90.Pp
91The BCM5700, BCM5701, BCM5703, BCM5704, BCM5714 and BCM5780 also support
92jumbo frames, which can be configured
93via the interface MTU setting.
94Selecting an MTU larger than 1500 bytes with the
95.Xr ifconfig 8
96utility configures the adapter to receive and transmit jumbo frames.
97Using jumbo frames can greatly improve performance for certain tasks,
98such as file transfers and data streaming.
99.Pp
100The
101.Nm
102driver supports the following media types:
103.Bl -tag -width ".Cm 10baseT/UTP"
104.It Cm autoselect
105Enable autoselection of the media type and options.
106The user can manually override
107the autoselected mode by adding media options to
108.Xr rc.conf 5 .
109.It Cm 10baseT/UTP
110Set 10Mbps operation.
111The
112.Xr ifconfig 8
113.Ic mediaopt
114option can also be used to select either
115.Cm full-duplex
116or
117.Cm half-duplex
118modes.
119.It Cm 100baseTX
120Set 100Mbps (Fast Ethernet) operation.
121The
122.Xr ifconfig 8
123.Ic mediaopt
124option can also be used to select either
125.Cm full-duplex
126or
127.Cm half-duplex
128modes.
129.It Cm 1000baseTX
130Set 1000baseTX operation over twisted pair.
131Only
132.Cm full-duplex
133mode is supported.
134.It Cm 1000baseSX
135Set 1000Mbps (Gigabit Ethernet) operation.
136Both
137.Cm full-duplex
138and
139.Cm half-duplex
140modes are supported.
141.El
142.Pp
143The
144.Nm
145driver supports the following media options:
146.Bl -tag -width ".Cm full-duplex"
147.It Cm full-duplex
148Force full duplex operation.
149.It Cm half-duplex
150Force half duplex operation.
151.El
152.Pp
153The
154.Nm
155driver also supports one special link option for 1000baseTX cards:
156.Bl -tag -width ".Cm link0"
157.It Cm link0
158With 1000baseTX cards, establishing a link between two ports requires
159that one port be configured as a master and the other a slave.
160With autonegotiation,
161the master/slave settings will be chosen automatically.
162However when manually selecting the link state, it is necessary to
163force one side of the link to be a master and the other a slave.
164The
165.Nm
166driver configures the ports as slaves by default.
167Setting the
168.Cm link0
169flag with
170.Xr ifconfig 8
171will set a port as a master instead.
172.El
173.Pp
174For more information on configuring this device, see
175.Xr ifconfig 8 .
176.Sh HARDWARE
177The
178.Nm
179driver provides support for various NICs based on the Broadcom BCM570x
180family of Gigabit Ethernet controller chips, including the
181following:
182.Pp
183.Bl -bullet -compact
184.It
1853Com 3c996-T (10/100/1000baseTX)
186.It
187Dell PowerEdge 1750 integrated BCM5704C NIC (10/100/1000baseTX)
188.It
189Dell PowerEdge 2550 integrated BCM5700 NIC (10/100/1000baseTX)
190.It
191Dell PowerEdge 2650 integrated BCM5703 NIC (10/100/1000baseTX)
192.It
193IBM x235 server integrated BCM5703x NIC (10/100/1000baseTX)
194.It
195HP Compaq dc7600 integrated BCM5752 NIC (10/100/1000baseTX)
196.It
197HP ProLiant NC7760 embedded Gigabit NIC (10/100/1000baseTX)
198.It
199HP ProLiant NC7770 PCI-X Gigabit NIC (10/100/1000baseTX)
200.It
201HP ProLiant NC7771 PCI-X Gigabit NIC (10/100/1000baseTX)
202.It
203HP ProLiant NC7781 embedded PCI-X Gigabit NIC (10/100/1000baseTX)
204.It
205Netgear GA302T (10/100/1000baseTX)
206.It
207SysKonnect SK-9D21 (10/100/1000baseTX)
208.It
209SysKonnect SK-9D41 (1000baseSX)
210.El
211.Sh DIAGNOSTICS
212.Bl -diag
213.It "bge%d: couldn't map memory"
214A fatal initialization error has occurred.
215.It "bge%d: couldn't map ports"
216A fatal initialization error has occurred.
217.It "bge%d: couldn't map interrupt"
218A fatal initialization error has occurred.
219.It "bge%d: no memory for softc struct!"
220The driver failed to allocate memory for per-device instance information
221during initialization.
222.It "bge%d: failed to enable memory mapping!"
223The driver failed to initialize PCI shared memory mapping.
224This might
225happen if the card is not in a bus-master slot.
226.It "bge%d: no memory for jumbo buffers!"
227The driver failed to allocate memory for jumbo frames during
228initialization.
229.It "bge%d: watchdog timeout"
230The device has stopped responding to the network, or there is a problem with
231the network connection (cable).
232.El
233.Sh SEE ALSO
234.Xr arp 4 ,
235.Xr miibus 4 ,
236.Xr netintro 4 ,
237.Xr ng_ether 4 ,
238.Xr polling 4 ,
239.Xr vlan 4 ,
240.Xr ifconfig 8
241.Sh HISTORY
242The
243.Nm
244device driver first appeared in
245.Fx 4.5 .
246.Sh AUTHORS
247The
248.Nm
249driver was written by
250.An Bill Paul Aq wpaul@windriver.com .
251