TL(4)

🌸 TL(4) β€” the Texas Instruments ThunderLAN Ethernet device driver 🌸

okay bestie, sit down, we're learning about tl β€” that's the Texas Instruments ThunderLAN Ethernet device driver, a real one from the Kernel Interfaces Manual section 4 (which is, like, drivers section, iykyk). this is the whole page, nothing skipped, so grab a snack πŸ“


✨ SYNOPSIS ✨

so there's two ways you can get this driver living in your system, and it's giving "pick your fighter" πŸ’…

option one: bake it into the kernel. drop these lines into your kernel configuration file:

device miibus
device tl

option two: load it as a module at boot time. then you just put this line into loader.conf(5):

if_tl_load="YES"

and that's it, that's the whole vibe. 🫢


πŸ’€ DEPRECATION NOTICE πŸ’€

bestie. listen. the tl driver is not present in FreeBSD 13.0 and later. it's gone, she left, she's not coming back. 😭

if you want the whole story, go read:

https://github.com/freebsd/fcp/blob/master/fcp-0101.md

🌈 DESCRIPTION 🌈

okay so what does this thing even do. the tl driver gives you support for PCI Ethernet adapters based on the Texas Instruments ThunderLAN Ethernet controller chip. iconic hardware, honestly. ✨

the ThunderLAN controller has a standard MII interface that supports up to 32 physical interface devices (PHYs). it ALSO has a built-in 10baseT PHY hardwired at MII address 31, which may be used in some 10Mbps-only hardware configurations. (so if you've got a weird little 10Mbps-only setup, she's got you. no cap.)

in 100Mbps configurations, a National Semiconductor DP83840A or other MII-compliant PHY may be attached to the ThunderLAN's MII bus. and if a DP83840A or equivalent is available, the ThunderLAN chip can operate at either 100Mbps or 10Mbps in either half-duplex or full-duplex modes. versatile queen πŸ‘‘

the ThunderLAN's built-in PHY and the DP83840A also support autonegotiation. she talks to the other end and they figure it out together. communication! we love to see it. πŸ’–


πŸ’… media types

the tl driver supports the following media types:

  • autoselect β€” enable autoselection of the media type and options. ⚠️ note that this option is only available on those PHYs that support autonegotiation. also, the PHY will not advertise those modes that have been explicitly disabled using the following media options. so don't disable a thing and then be shocked she's not offering it. that's on you, babe.
  • 10baseT/UTP β€” set 10Mbps operation.
  • 100baseTX β€” set 100Mbps (Fast Ethernet) operation. zoom zoom πŸ¦‹
  • 10base5/AUI β€” enable AUI/BNC interface (useful only with the built-in PHY).

πŸŽ€ media options

and here's the options list:

  • full-duplex β€” force full duplex operation.
  • half-duplex β€” force half duplex operation.
  • hw-loopback β€” enable hardware loopback mode.
heads up: the 100baseTX media type is only available if supported by the PHY. no PHY support, no 100baseTX, periodt.

for more info on configuring this device, go see ifconfig(8). 🫢


πŸ”₯ HARDWARE πŸ”₯

the tl driver supports Texas Instruments ThunderLAN based Ethernet and Fast Ethernet adapters, including a large number of Compaq PCI Ethernet adapters. also supported are:

  • Olicom OC-2135/2138 10/100 TX UTP adapter
  • Olicom OC-2325/OC-2326 10/100 TX UTP adapter
  • Racore 8148 10baseT/100baseTX/100baseFX adapter
  • Racore 8165 10/100baseTX adapter

and she ALSO supports the built-in Ethernet adapters of various Compaq Prosignia servers and Compaq Deskpro desktop machines, including:

  • Compaq Netelligent 10
  • Compaq Netelligent 10 T PCI UTP/Coax
  • Compaq Netelligent 10/100
  • Compaq Netelligent 10/100 Dual-Port
  • Compaq Netelligent 10/100 Proliant
  • Compaq Netelligent 10/100 TX Embedded UTP
  • Compaq Netelligent 10/100 TX UTP
  • Compaq NetFlex 3P
  • Compaq NetFlex 3P Integrated
  • Compaq NetFlex 3P w/BNC

look at that list. she's a social butterfly, she gets along with EVERYONE. 🌸


😭 DIAGNOSTICS 😭

when things go sideways, here's what she's telling you. read the messages carefully, bestie, they're literally telling you the problem.

  • tl%d: couldn't map memory β€” a fatal initialization error has occurred. πŸ’€
  • tl%d: couldn't map interrupt β€” a fatal initialization error has occurred. πŸ’€
  • tl%d: device timeout β€” the device has stopped responding to the network, or there is a problem with the network connection (cable). check your cable. it's always the cable. πŸ™ˆ
  • tl%d: no memory for rx list β€” the driver failed to allocate an mbuf for the receiver ring.
  • tl%d: no memory for tx list β€” the driver failed to allocate an mbuf for the transmitter ring when allocating a pad buffer or collapsing an mbuf chain into a cluster.

πŸ‘€ SEE ALSO πŸ‘€

go read these too, they're all part of the lore:


πŸ“œ HISTORY πŸ“œ

the tl device driver first appeared in FreeBSD 2.2. a whole legend from day one. ⭐


πŸ’– AUTHORS πŸ’–

the tl driver was written by Bill Paul <wpaul@ctr.columbia.edu>. thank you Bill, we owe you everything. πŸ‘‘


and that's the whole page, bestie!! this one came out of the Debian build of the manual, dated October 24, 2018, and you just read TL(4) top to bottom. no skimming, no skipping, we ate that whole thing. slay. πŸ’…βœ¨

πŸ“¦ where this page comes from