Teach an Old Network Driver New Tricks
summary
Ported legacy MAC and PHY code to phylib and mii_bus, registered mdio devices and replaced ad‑hoc link handling with the PHY framework, triggering six regressions that are now fixed. Wrote a new switch driver for the Atheros AR9331 and mainlined ag71xx into the kernel under DSA and iproute2 workflows. Enables ethtool cable testing, unified hardware counters, optional hardware timestamps and generic self-test support — old hardware now works with standard tooling.
AI-written summary · about
chapters (12)
- 0:00Intro
- 1:08Never touch a running system!
- 1:31HW capabilities and software support
- 3:06What functionality do I need? Diagnostic!
- 4:34Why PHY
- 5:20ASIX based example
- 7:52What is changed?
- 10:40Why switch?
- 11:08AR9331 switch case
- 14:47Can be done to many Ethernet drivers
- 16:52Lessons learned
- 18:21Motivation
related talks
41mBraiding Wires Into the Linux Network Stack - Recent Work on Embedded Networking
52mIn the Kernel Trenches: Mastering Ethernet Drivers on Linux
52mIn the Kernel Trenches: Mastering Ethernet Drivers on Linux
46mNetworking: From the Ethernet MAC to the Link Partner
32mProposing Common PHY Framework in Zephyr
50mHow Not to Write X86 Platform Drivers
53mInto the Jungle - How to write a Linux kernel driver for any subsystem
28mCreating Memory Efficient and High Performance IP Stack for Zephyr OS
