TX(4)

πŸ’– TX β€” SMC 83c17x Fast Ethernet device driver πŸ’–

okay bestie, welcome to TX(4), straight outta the Kernel Interfaces Manual πŸŽ€ this is the whole vibe on the SMC 83c17x Fast Ethernet driver, and yes she's an icon, and yes she's also retired, we'll get to that πŸ’€


✨ NAME ✨

tx β€” SMC 83c17x Fast Ethernet device driver πŸ¦‹


✨ SYNOPSIS ✨

so if you wanna bake this driver into the kernel, you gotta drop these lines into your kernel configuration file, no skips:

device miibus
device tx

orrr, if you'd rather load it as a module at boot time, put this little cutie in loader.conf(5):

if_tx_load="YES"

pick your fighter, both are valid πŸ’…


✨ DEPRECATION NOTICE ✨

🚨 bestie STOP. The tx driver is not present in FreeBSD 13.0 and later. She's gone, she's ascended. See https://github.com/freebsd/fcp/blob/master/fcp-0101.md for more information. fr fr.

✨ DESCRIPTION ✨

okay so the tx driver is the whole support system for Ethernet adapters based on the SMC 83c17x (EPIC) chips 🫢 these are mostly the SMC 9432 series cards. nostalgic core.

The tx driver supports the following media types (depending on the card's capabilities, so like, vibe check your hardware first):

  • autoselect β€” turns on autonegotiation. this is the default ✨
  • 100baseFX β€” sets 100Mbps (Fast Ethernet) fiber optic operation 🌈
  • 100baseTX β€” sets 100Mbps (Fast Ethernet) twisted pair operation πŸ”₯
  • 10baseT/UTP β€” sets 10Mbps on the 10baseT port πŸ“
  • 10base2/BNC β€” sets 10Mbps on the 10base2 port πŸ’œ

and here's the media options she supports:

  • full-duplex β€” sets full-duplex operation πŸ‘‘

The tx driver supports oversized Ethernet packets (up to 1600 bytes) β€” iconic behavior honestly. refer to the ifconfig(8) man page on setting the interface's MTU if you wanna mess with that.

πŸ’€ also heads up: the old β€œifconfig tx0 linkN” method of configuration is NOT supported. that method ate and then left, we don't do that anymore.

🌸 VLAN (IEEE 802.1Q) support 🌸

The tx driver supports the VLAN operation (using vlan(4) interfaces) without decreasing the MTU on the vlan(4) interfaces. she said no shrinkage, periodt πŸ’…


✨ DIAGNOSTICS ✨

these are the messages she yells at you when things go sideways 😭 each one is a whole mood:

  • tx%d: device timeout %d packets β€” The device stops responding. Device and driver reset follows this error. she ghosted you and then rebooted herself πŸ’€
  • tx%d: PCI fatal error occurred (%s) β€” One of following errors occurred: PCI Target Abort, PCI Master Abort, Data Parity Error or Address Parity Error. Device and driver reset follows this error. that's a LOT of drama in one line 🚨
  • tx%d: cannot allocate mbuf header/cluster β€” Cannot allocate memory for received packet. Packet thrown away. no memory bestie, the packet got yeeted into the void πŸ™ˆ
  • tx%d: can't stop %s DMA β€” While resetting, the driver failed to stop the device correctly. ngl this one's giving "couldn't even shut down properly" 😭

✨ SEE ALSO ✨

arp(4), miibus(4), netintro(4), ng_ether(4), ifconfig(8) β€” go read these too, the lore is deep πŸ¦‹


✨ BUGS ✨

The auto-negotiation does not work very well. 🫠 that's it. that's the bug. she's trying her best, okay??


and that's the whole page, bestie πŸ’– this was brought to you by Debian, dated October 24, 2018 β€” mwah, slay, go touch some Ethernet cables πŸŒˆβœ¨πŸ‘‘

πŸ“¦ where this page comes from