MGE(4)
π MGE(4) π
Hiii bestie! So this is the manual page for mge, the Marvell Gigabit Ethernet device driver, from the arm Kernel Interfaces Manual. Buckle up, we're gonna get you connected at gigabit speeds and it's gonna be iconic. β¨
πΈ SYNOPSIS πΈ
Okay so if you want this driver living in your kernel (main character energy), you gotta drop these lines into your kernel configuration file:
device mge
device miibus
That's it. That's the vibe. π
π¦ DESCRIPTION π¦
The mge driver is literally here to support the gigabit Ethernet controller that's integrated into Marvell system-on-chip devices. It's built-in, it's cozy, it's slay. π«Ά
The media types it supports (aka your speed options):
- autoselect β lets the driver pick the media type and options for you, no cap π
- 10baseT/UTP β locks you into 10Mbps operation (lowkey retro)
- 100baseTX β sets 100Mbps operation
- 1000baseT β gives you that full 1000baseT operation, we love a speed upgrade π₯
And the media option:
- full-duplex β sets full duplex operation, both directions at once, work it π
The mge driver also supports polled operation when your system is configured with the DEVICE_POLLING kernel option β see polling(4) for more deets. π
It supports reception and transmission of extended frames for vlan(4) too. This capability can be controlled by means of the vlanmtu parameter to ifconfig(8). Yes bestie, you CAN control it. β¨
π§ Interrupt Coalescing (IC) β the fancy part
Okay so mge supports interrupt coalescing (IC), which is basically the driver saying "hold up, let me batch these" β it delays raising a transmit/receive frame interrupt (when possible) until a threshold-defined period of time has elapsed. So chill. So efficient. π
These sysctls regulate this behaviour, separately for each path:
dev.mge.X.int_coal.rx_time
dev.mge.X.int_coal.tx_time
A value of 0 disables IC on that given path. A value greater than zero corresponds to a real time period and is expressed in units equivalent to 64 ticks of the MGE clock. The max allowed value depends on your MGE hardware revision β if you feed it a value larger than what's supported, it'll get trimmed down to the maximum supported. More details live in the reference manual of the device, iykyk. π
π HARDWARE π
So these gigabit Ethernet controllers built into the following Marvell systems-on-chip are known to work with the mge driver (we stan a confirmed compatibility list π):
- Orion 88F5182
- Orion 88F5281
- Kirkwood 88F6281 (MGE V2)
- Discovery MV78100 (MGE V2)
There are also Marvell system controllers for PowerPC processors that include a variation of this gigabit Ethernet module integrated on chip. They should also work with the mge driver, but bestie... this wasn't tested. π Proceed with hope:
- MV64430
- MV64460, MV64461, MV64462
β SEE ALSO β
Go read these, they're the supporting cast and they ate: altq(4), arp(4), miibus(4), netintro(4), ng_ether(4), polling(4), vlan(4), ifconfig(8)
π HISTORY π
The mge device driver first appeared in FreeBSD 8.0. A whole era. π
π AUTHORS π
The base version of the mge device driver was written by Grzegorz Bernacki. It got extended with all the advanced features (polling, interrupt coalescing, multicast, h/w checksum calculation etc.) by Piotr Ziecik. And this manual page? Written by Rafal Jaworowski. Legends, all of them. π
Okay that's the whole page bestie, go forth and network at gigabit speeds, mwah π
Debian β November 27, 2008 β MGE(4) β¨π
π¦ where this page comes from
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- Copyright (c) 2008 Semihalf, Rafal Jaworowski
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms