Just as a drive-by comment this seems vaguely related to the Vitesse DSA switch I merged in drivers/net/dsa/vitesse-vsc73xx.c The VSC* product name handily gives away the origin in Vitesse's product line. The VSC73xx also have the 8051 CPU and internal RAM, but are accessed (typically) over SPI, and AFAICT this thing is talking over MDIO. The Vitesse 73xx however also supports a WAN port and VLANs which makes it significantly different, falling into switch class I guess. These VSC85*4's does have an SPI interface as well, according to the data sheet but I assume your target boards don't even connect it? When it comes to 8051 code we have quite a lot of this in the kernel these days, I suspect the 8051 snippets in this code could be disassembled and put into linux-firmware in source form, but that is maybe a bit overly ambitious. We have done that for a few USB to serial controllers using the EzUSB 8051 though: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/keyspan_pda https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/usbdux These can rebuild their firmware using the as31 assembler. https://github.com/nitsky/as31 Yours, Linus Walleij