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: src/share/man/man4/bge.4,v 1.1.2.4 2003/02/17 21:20:39 trhodes Exp $ 33.\" 34.Dd October 20, 2015 35.Dt BGE 4 36.Os 37.Sh NAME 38.Nm bge 39.Nd "Broadcom BCM570x PCI gigabit ethernet adapter driver" 40.Sh SYNOPSIS 41.Cd "device miibus" 42.Cd "device bge" 43.Sh DESCRIPTION 44The 45.Nm 46driver provides support for various NICs based on the Broadcom BCM570x 47family of gigabit ethernet controller chips, including the 48following: 49.Pp 50.Bl -bullet -compact 51.It 523Com 3c996-T (10/100/1000baseT) 53.It 54Dell PowerEdge 2550 integrated BCM5700 NIC (10/100/1000baseT) 55.It 56Netgear GA302T (10/100/1000baseT) 57.It 58SysKonnect SK-9D21 (10/100/1000baseT) 59.It 60SysKonnect SK-9D41 (1000baseSX) 61.El 62.Pp 63All of these NICs are capable of 10, 100 and 1000Mbps speeds over CAT5 64copper cable, except for the SysKonnect SK-9D41 which supports only 651000Mbps over multimode fiber. 66The BCM570x builds upon the technology of the Alteon Tigon II. 67It has two R4000 CPU cores and is PCI v2.2 and PCI-X v1.0 compliant. 68It supports IP, TCP 69and UDP checksum offload for both receive and transmit, 70multiple RX and TX DMA rings for QoS applications, rules-based 71receive filtering, and VLAN tag stripping/insertion as well as 72a 256-bit multicast hash filter. 73Additional features may be 74provided via value-add firmware updates. 75The BCM570x supports TBI (ten bit interface) and GMII 76transceivers, which means it can be used with either copper or 1000baseX 77fiber applications. 78Note however the device only supports a single 79speed in TBI mode. 80.Pp 81Most cards also use the Broadcom BCM5401 or BCM5411 10/100/1000 82copper gigabit transceivers, 83which support autonegotiation of 10, 100 and 1000mbps modes in 84full or half duplex. 85.Pp 86The BCM5700 also supports jumbo frames, which can be configured 87via 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 1000baseT 124Set 1000baseT operation over twisted pair. 125.Cm full-duplex 126and 127.Cm half-duplex 128modes are supported. 129.It Cm 1000baseSX 130Set 1000Mbps (gigabit ethernet) operation. 131Both 132.Cm full-duplex 133and 134.Cm half-duplex 135modes are supported. 136.El 137.Pp 138The 139.Nm 140driver supports the following media options: 141.Bl -tag -width ".Cm full-duplex" 142.It Cm full-duplex 143Force full duplex operation. 144.It Cm half-duplex 145Force half duplex operation. 146.El 147.Pp 148The 149.Nm 150driver also supports one special link option for 1000baseT cards: 151.Bl -tag -width ".Cm link0" 152.It Cm link0 153With 1000baseT cards, establishing a link between two ports requires 154that one port be configured as a master and the other a slave. 155With autonegotiation, 156the master/slave settings will be chosen automatically. 157However when manually selecting the link state, it is necessary to 158force one side of the link to be a master and the other a slave. 159The 160.Nm 161driver configures the ports as slaves by default. 162Setting the 163.Cm link0 164flag with 165.Xr ifconfig 8 166will set a port as a master instead. 167.El 168.Pp 169For more information on configuring this device, see 170.Xr ifconfig 8 . 171The 172.Nm 173driver supports 174.Xr polling 4 . 175.Sh LOADER TUNABLES 176.Bl -tag -width indent 177.It Va hw.bge.msi.enable 178By default, the driver will use MSI if it is supported. 179This behavior can be turned off by setting this tunable to 0. 180.It Va hw.bge.fake_autoneg 181Set to 1 for some 182.Tn IBM 183blade servers, 184if auto-negotiation between the onboard 185.Nm 186and the switch module is broken. 187Disabled by default. 188.El 189.Sh DIAGNOSTICS 190.Bl -diag 191.It "bge%d: couldn't map memory" 192A fatal initialization error has occurred. 193.It "bge%d: couldn't map ports" 194A fatal initialization error has occurred. 195.It "bge%d: couldn't map interrupt" 196A fatal initialization error has occurred. 197.It "bge%d: no memory for softc struct!" 198The driver failed to allocate memory for per-device instance information 199during initialization. 200.It "bge%d: failed to enable memory mapping!" 201The driver failed to initialize PCI shared memory mapping. 202This might 203happen if the card is not in a bus-master slot. 204.It "bge%d: no memory for jumbo buffers!" 205The driver failed to allocate memory for jumbo frames during 206initialization. 207.It "bge%d: watchdog timeout" 208The device has stopped responding to the network, or there is a problem with 209the network connection (cable). 210.El 211.Sh SEE ALSO 212.Xr arp 4 , 213.Xr ifmedia 4 , 214.Xr miibus 4 , 215.Xr netintro 4 , 216.Xr ng_ether 4 , 217.Xr polling 4 , 218.Xr vlan 4 , 219.Xr ifconfig 8 220.Sh HISTORY 221The 222.Nm 223device driver first appeared in 224.Fx 4.5 . 225.Sh AUTHORS 226The 227.Nm 228driver was written by 229.An Bill Paul Aq Mt wpaul@windriver.com . 230