BGE(4)
π bge β Broadcom BCM57xx/BCM590x Gigabit/Fast Ethernet driver β¨
okay bestie, welcome to the bge manual page, straight out of the Kernel Interfaces Manual section 4 π yes, we're in the kernel interfaces girlies today, and this one is literally all about your Broadcom Ethernet card. no cap.
πΈ NAME πΈ
bge β Broadcom BCM57xx/BCM590x Gigabit/Fast Ethernet driver
β¨ SYNOPSIS β¨
ok so if you wanna bake this driver directly into your kernel (main character energy fr), you drop these two lines into your kernel configuration file:
device miibus
device bge
OR, if you'd rather load it as a module at boot time like a chill person, put this line in loader.conf(5):
if_bge_load="YES"
periodt. that's the whole synopsis π
π¦ DESCRIPTION π¦
so the bge driver is out here providing support for a whole roster of NICs built on the Broadcom BCM570x, 571x, 572x, 575x, 576x, 578x, 5776x and 5778x Gigabit Ethernet controller chips, plus the 590x and 5779x Fast Ethernet controller chips. it's giving versatile, it's giving range π
all of these NICs can do 10, 100 and 1000Mbps speeds over CAT5 copper cable β the ONE exception being the SysKonnect SK-9D41, which only does 1000Mbps over multimode fiber. not me being picky about your cabling π
the BCM570x is built on the technology of the Alteon Tigon II. it's got two R4000 CPU cores and is PCI v2.2 and PCI-X v1.0 compliant. it supports IP, TCP and UDP checksum offload for both receive AND transmit, multiple RX and TX DMA rings for QoS applications, rules-based receive filtering, and VLAN tag stripping/insertion, plus a 256-bit multicast hash filter. additional features may be provided via value-add firmware updates β¨
the BCM570x supports TBI (ten bit interface) and GMII transceivers, which means it can be used with either copper or 1000baseX fiber applications. BUT β heads up bestie β note that the device only supports a single speed in TBI mode. just one. that's it. don't ask for more π
most BCM5700-based cards also use the Broadcom BCM5401 or BCM5411 10/100/1000 copper gigabit transceivers, which support autonegotiation of 10, 100 and 1000Mbps modes in full or half duplex. slay π
the BCM5700, BCM5701, BCM5702, BCM5703, BCM5704, BCM5714, BCM5717, BCM5719, BCM5720, BCM5780 and BCM57765 also support jumbo frames, which you can configure via the interface MTU setting. picking an MTU larger than 1500 bytes with the ifconfig(8) utility configures the adapter to receive and transmit jumbo frames. using jumbo frames can greatly improve performance for certain tasks, like file transfers and data streaming. it's giving throughput, it's giving speed π
π the media types the bge driver supports π
autoselectβ enables autoselection of the media type and options. you can manually override the autoselected mode by adding media options torc.conf(5). so it picks for you, but you can also be the boss of it π10baseT/UTPβ sets 10Mbps operation. theifconfig(8)mediaoptoption can also be used to select either full-duplex or half-duplex modes.100baseTXβ sets 100Mbps (Fast Ethernet) operation. theifconfig(8)mediaoptoption can also be used to select either full-duplex or half-duplex modes.1000baseTXβ sets 1000baseTX operation over twisted pair. only full-duplex mode is supported β that's the whole menu, no half-duplex for you.1000baseSXβ sets 1000Mbps (Gigabit Ethernet) operation. both full-duplex and half-duplex modes are supported π
π the media options the bge driver supports π
full-duplexβ forces full duplex operation.half-duplexβ forces half duplex operation.
for more info on configuring this device, go look at ifconfig(8). iykyk π«Ά
π₯ HARDWARE π₯
the bge driver provides support for various NICs based on the Broadcom BCM570x family of Gigabit Ethernet controller chips, including the following legends:
- 3Com 3c996-SX (1000baseSX)
- 3Com 3c996-T (10/100/1000baseTX)
- Apple Thunderbolt Display (10/100/1000baseTX)
- Apple Thunderbolt to Gigabit Ethernet Adapter (10/100/1000baseTX)
- Dell PowerEdge 1750 integrated BCM5704C NIC (10/100/1000baseTX)
- Dell PowerEdge 2550 integrated BCM5700 NIC (10/100/1000baseTX)
- Dell PowerEdge 2650 integrated BCM5703 NIC (10/100/1000baseTX)
- Dell PowerEdge R200 integrated BCM5750 NIC (10/100/1000baseTX)
- Dell PowerEdge R300 integrated BCM5722 NIC (10/100/1000baseTX)
- IBM x235 server integrated BCM5703x NIC (10/100/1000baseTX)
- HP Compaq dc7600 integrated BCM5752 NIC (10/100/1000baseTX)
- HP ProLiant NC7760 embedded Gigabit NIC (10/100/1000baseTX)
- HP ProLiant NC7770 PCI-X Gigabit NIC (10/100/1000baseTX)
- HP ProLiant NC7771 PCI-X Gigabit NIC (10/100/1000baseTX)
- HP ProLiant NC7781 embedded PCI-X Gigabit NIC (10/100/1000baseTX)
- Netgear GA302T (10/100/1000baseTX)
- SysKonnect SK-9D21 (10/100/1000baseTX)
- SysKonnect SK-9D41 (1000baseSX)
look at that lineup. it's giving hardware hall of fame π
π LOADER TUNABLES π
these tunables can be set at the loader(8) prompt before booting the kernel, or stored in loader.conf(5). both, whatever your vibe is.
hw.bge.allow_asfβ allow the ASF feature for cooperating with IPMI. it can cause system lockup problems on a small number of systems π be careful bestie. enabled by default.dev.bge.%d.msiβ a non-zero value enables MSI support on the Ethernet hardware. the default value is1.
π SYSCTL VARIABLES π
the following variables are available as BOTH sysctl(8) variables AND loader(8) tunables. double duty, iconic honestly.
dev.bge.%d.forced_collapseβ allow collapsing multiple transmit buffers into a single buffer to increase transmit performance, at the cost of CPU cycles. the default value is0, which disables transmit buffer collapsing.dev.bge.%d.forced_udpcsumβ enable UDP transmit checksum offloading even if the controller can generate UDP datagrams with checksum value0. UDP datagrams with checksum value0can confuse the receiver host, since it means the sender did not compute the UDP checksum. the default value is0, which disables UDP transmit checksum offloading. heads up: the interface needs to be brought down and up again before a change takes effect π
π©Ί DIAGNOSTICS π©Ί
bge%d: couldn't map memoryβ a fatal initialization error has occurred.bge%d: couldn't map portsβ a fatal initialization error has occurred.bge%d: couldn't map interruptβ a fatal initialization error has occurred.bge%d: no memory for softc struct!β the driver failed to allocate memory for per-device instance information during initialization.bge%d: failed to enable memory mapping!β the driver failed to initialize PCI shared memory mapping. this might happen if the card is not in a bus-master slot.bge%d: firmware handshake timed out, found 0xffffffffβ the device was physically disconnected from the system, or there is a problem with the device causing it to stop responding to the host it is attached to. πbge%d: no memory for jumbo buffers!β the driver failed to allocate memory for jumbo frames during initialization.bge%d: watchdog timeoutβ the device has stopped responding to the network, or there is a problem with the network connection (cable). check your cable bestie π
π SEE ALSO π
altq(4), arp(4), miibus(4), netintro(4), ng_ether(4), polling(4), vlan(4), ifconfig(8)
π HISTORY π
the bge device driver first appeared in FreeBSD 4.5. a legend from the start, fr fr π
π«Ά AUTHORS π«Ά
the bge driver was written by Bill Paul <wpaul@windriver.com>. thank you Bill, you ate π
β οΈ BUGS β οΈ
hotplug is not currently supported in FreeBSD, hence Thunderbolt interfaces need to be connected prior to system power up on Apple systems in order for the interface to be detected. ALSO, and this is the important part bestie β due to the lack of hotplug support, Thunderbolt-based interfaces must not be removed while the system is up, as the kernel is currently unable to cope with a bge interface disappearing. do NOT yank it. i'm begging π
and that's the whole page!! this one lives in the Debian edition of the manual, dated August 18, 2017 β shoutout to that date for holding it down π mwah, go configure your NIC, you got this β¨π π¦
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 2001 Wind River Systems
- Copyright (c) 1997, 1998, 1999, 2000, 2001 Bill Paul <wpaul@windriver.com>. All rights reserved
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms