TSEC(4)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1

πŸ’– TSEC(4) πŸ’–

okay so bestie, this is a page from the powerpc Kernel Interfaces Manual β€” yes we're in kernel-land today, put your hair up, we're getting into it πŸŽ€


🌈 NAME 🌈

tsec β€” the Freescale Three-Speed Ethernet Controller device driver. that's it, that's the name, she's an Ethernet girlie πŸ’…


✨ SYNOPSIS ✨

so if you wanna compile this driver into the kernel (not as a module, like a real one), you drop these lines into your kernel configuration file:

device tsec
device miibus

both of them, okay? don't forget miibus, she's not optional, she's the whole supporting cast 🫢


πŸ’œ DESCRIPTION πŸ’œ

the tsec driver is what gives you support for the gigabit Ethernet controller that's built right into some of the Freescale system-on-chip devices. integrated. no PCI card, no dongle, just vibes and silicon 🌸

πŸ¦‹ media types she supports

  • autoselect β€” lets her autoselect the media type and the options. main character energy, she picks for you πŸ’…
  • 10baseT/UTP β€” locks it in at 10Mbps operation. slow and steady, retro icon πŸŽ€
  • 100baseTX β€” sets 100Mbps operation. the middle child, still slaying ⭐
  • 1000baseT β€” sets 1000baseT operation. gigabit queen, no notes πŸ‘‘

πŸ“ media options she supports

  • full-duplex β€” sets full duplex operation. talking and listening at the same time, we love a multitasker ✨

πŸ”₯ polled operation

the tsec driver also supports polled operation β€” but only when the system is configured with the DEVICE_POLLING kernel option. for the full tea, go read polling(4). iykyk πŸ’€

🌸 vlan extended frames

she supports reception and transmission of extended frames for vlan(4). you control this capability of tsec with the vlanmtu parameter to ifconfig(8). yes, ifconfig(8). go set it, bestie 🫢

πŸ‘‘ interrupt coalescing (IC)

okay this part is actually so cool. tsec supports interrupt coalescing (IC), which means raising a transmit/receive frame interrupt gets delayed β€” if possible β€” until either:

  1. a threshold-defined period of time has elapsed, or
  2. a threshold-defined frame counter has been reached

whichever happens first, periodt. ⏰

these sysctls are the ones running the whole situation:

  • dev.tsec.X.int_coal.rx_time
  • dev.tsec.X.int_coal.rx_count
  • dev.tsec.X.int_coal.tx_time
  • dev.tsec.X.int_coal.tx_count

and here's the actual deets on the values, don't skip this part πŸ™ˆ:

a value of 0 for either time or count disables IC on the given path. a time value of 1-65535 corresponds to a real time period, expressed in units equivalent to 64 ticks of the TSEC clock. a count of 1-255 represents the number of frames β€” heads up, a value of 1 is equivalent to IC disabled. if you hand her values larger than she supports, they get trimmed down to the maximum supported. more details live in the reference manual of the device, if you're feeling studious πŸ“š


πŸ’» HARDWARE πŸ’»

these Freescale system-on-chip devices have gigabit Ethernet controllers built in that are known to work with the tsec driver:

  • MPC8349
  • MPC8533, MPC8541, MPC8555

and the enhanced version of the controller (eTSEC), integrated into these devices, is also supported by this driver:

  • MPC8548, MPC8572

slay, backwards and enhanced compatibility 🧚


🌟 SEE ALSO 🌟

altq(4), arp(4), miibus(4), netintro(4), ng_ether(4), polling(4), vlan(4), ifconfig(8)

go read them, they're all connected, it's giving cinematic universe 🌈


πŸŽ€ HISTORY πŸŽ€

the tsec device driver first appeared in FreeBSD 8.0. a legend was born ✨


🫢 AUTHORS 🫢

the base version of the tsec device driver was written by Piotr Kruszynski. it got extended with polling and interrupt coalescing support by Rafal Jaworowski. then it was further enhanced with multicast, h/w checksum calculation and vlan support by Piotr Ziecik. and this manual page was written by Rafal Jaworowski.

three icons, one driver, we stan πŸ’–


ngl bestie, if you're messing with the int_coal sysctls, double-check your units before you go "why is my interrupt latency like that" β€” 64 ticks of the TSEC clock, remember, and oversized values get trimmed, no cap 😭

okay that's the whole page, mwah πŸ’‹ β€” this cutie came from Debian, dated February 20, 2015, and it's the TSEC(4) page, so go forth and configure your Ethernet responsibly πŸ¦‹β­πŸ’œ

πŸ“¦ where this page comes from