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 August 18, 2017 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 162Apple Thunderbolt Display (10/100/1000baseTX) 163.It 164Apple Thunderbolt to Gigabit Ethernet Adapter (10/100/1000baseTX) 165.It 166Dell PowerEdge 1750 integrated BCM5704C NIC (10/100/1000baseTX) 167.It 168Dell PowerEdge 2550 integrated BCM5700 NIC (10/100/1000baseTX) 169.It 170Dell PowerEdge 2650 integrated BCM5703 NIC (10/100/1000baseTX) 171.It 172Dell PowerEdge R200 integrated BCM5750 NIC (10/100/1000baseTX) 173.It 174Dell PowerEdge R300 integrated BCM5722 NIC (10/100/1000baseTX) 175.It 176IBM x235 server integrated BCM5703x NIC (10/100/1000baseTX) 177.It 178HP Compaq dc7600 integrated BCM5752 NIC (10/100/1000baseTX) 179.It 180HP ProLiant NC7760 embedded Gigabit NIC (10/100/1000baseTX) 181.It 182HP ProLiant NC7770 PCI-X Gigabit NIC (10/100/1000baseTX) 183.It 184HP ProLiant NC7771 PCI-X Gigabit NIC (10/100/1000baseTX) 185.It 186HP ProLiant NC7781 embedded PCI-X Gigabit NIC (10/100/1000baseTX) 187.It 188Netgear GA302T (10/100/1000baseTX) 189.It 190SysKonnect SK-9D21 (10/100/1000baseTX) 191.It 192SysKonnect SK-9D41 (1000baseSX) 193.El 194.Sh LOADER TUNABLES 195The following tunables can be set at the 196.Xr loader 8 197prompt before booting the kernel, or stored in 198.Xr loader.conf 5 . 199.Bl -tag -width indent 200.It Va hw.bge.allow_asf 201Allow the ASF feature for cooperating with IPMI. 202Can cause system lockup problems on a small number of systems. 203Enabled by default. 204.It Va dev.bge.%d.msi 205Non-zero value enables MSI support on the Ethernet hardware. 206The default value is 1. 207.El 208.Sh SYSCTL VARIABLES 209The following variables are available as both 210.Xr sysctl 8 211variables and 212.Xr loader 8 213tunables: 214.Bl -tag -width indent 215.It Va dev.bge.%d.forced_collapse 216Allow collapsing multiple transmit buffers into a single buffer 217to increase transmit performance with the cost of CPU cycles. 218The default value is 0 to disable transmit buffer collapsing. 219.It Va dev.bge.%d.forced_udpcsum 220Enable UDP transmit checksum offloading even if controller can generate 221UDP datagrams with checksum value 0. 222UDP datagrams with checksum value 0 can confuse receiver host as it means 223sender did not compute UDP checksum. 224The default value is 0 which disables UDP transmit checksum offloading. 225The interface need to be brought down and up again before a change takes 226effect. 227.El 228.Sh DIAGNOSTICS 229.Bl -diag 230.It "bge%d: couldn't map memory" 231A fatal initialization error has occurred. 232.It "bge%d: couldn't map ports" 233A fatal initialization error has occurred. 234.It "bge%d: couldn't map interrupt" 235A fatal initialization error has occurred. 236.It "bge%d: no memory for softc struct!" 237The driver failed to allocate memory for per-device instance information 238during initialization. 239.It "bge%d: failed to enable memory mapping!" 240The driver failed to initialize PCI shared memory mapping. 241This might 242happen if the card is not in a bus-master slot. 243.It "bge%d: firmware handshake timed out, found 0xffffffff" 244The device was physically disconnected from the system, or there is a problem with 245the device causing it to stop responding to the host it is attached to. 246.It "bge%d: no memory for jumbo buffers!" 247The driver failed to allocate memory for jumbo frames during 248initialization. 249.It "bge%d: watchdog timeout" 250The device has stopped responding to the network, or there is a problem with 251the network connection (cable). 252.El 253.Sh SEE ALSO 254.Xr altq 4 , 255.Xr arp 4 , 256.Xr miibus 4 , 257.Xr netintro 4 , 258.Xr ng_ether 4 , 259.Xr polling 4 , 260.Xr vlan 4 , 261.Xr ifconfig 8 262.Sh HISTORY 263The 264.Nm 265device driver first appeared in 266.Fx 4.5 . 267.Sh AUTHORS 268The 269.Nm 270driver was written by 271.An Bill Paul Aq Mt wpaul@windriver.com . 272.Sh BUGS 273Hotplug is not currently supported in 274.Fx , 275hence, Thunderbolt interfaces need to be connected prior to system power up on 276Apple systems in order for the interface to be detected. 277Also, due to the lack of hotplug support, Thunderbolt-based interfaces must not be removed 278while the system is up as the kernel is currently unable to cope with a 279.Nm 280interface disappearing. 281