Iāve always loved the idea of running standard Linux on networking hardware. The promise of āOpen Networkingā is beautifulābuying a high-performance powerhouse and choosing your own OS.
But the reality is tougher. Most of this gear is sold exclusively to large enterprises, with the āglueā between the OS and the switching silicon locked behind expensive support contracts. When that hardware reaches EOL, it becomes a āblack boxā to the community.
I decided to stop waiting for documentation and started building my own map.
The Goal: Reverse engineer the Edgecore AS5610-52X (Trident+ ASIC) well enough to write a custom, minimal Network Operating System (NOS) based on Linux. The Workflow: Static Analysis + Live Verification š ļø
This was a deep dive into the guts of the system. I treated AI as a co-pilot to help brainstorm mappings and parse logic, but the heavy lifting was a two-stage process:
-
Static Analysis: Using strings, objdump, and Ghidra to dissect the switchd binaries and identify the internal logic.
-
Live Verification: Confirming those findings on my actual switch using GDB, hex editors on memory dumps, and tracing hardware registers in real-time.
Disclaimer: Reverse engineering is an imperfect science. While Iāve verified these findings on live hardware, there is always a possibility of mistakes. This is a ābuild in publicā effort!
Major Architectural Milestones:
-
ASIC Memory Map: Deciphered how the system organizes hardware tables in the ASICāthe foundation for any custom dataplane.
-
The DMA Pipeline: Identified the exact descriptor formats used to move packets between the CPU and the switching silicon.
-
Hardware Bootstrapping: Documented the specific initialization sequences required to bring the 10GbE SerDes out of reset and into a linked state.
-
S-Channel Communication: Mapped the internal messaging path the CPU uses to ātalkā to the hardware, bypassing the need for proprietary drivers.
This is for the engineers who believe we should truly own the hardware we buy. If youāve ever wanted to see whatās actually happening inside the silicon, letās talk.
Iāve posted the link to the GitHub repo in the first comment below! š