Let's code a Linux network driver - How to follow along my SSED Linux Network Driver Tutorials
Let's code a Linux network driver - How to follow along my SSED Linux Network Driver Tutorials
Introduction
Adding Ethernet over SPI is a classic embedded/Linus-hacker problem: you want a clean way to push and pull Ethernet traffic using a simple serial bus, without needing PCIe or USB NICs. w7500-spi2eth tackles that by turning a WIZnet W7500 into a SPI-based networking card.
Important note up front: this is a community-made project (not an official WIZnet project), even though it leverages WIZnet-provided libraries inside the repo.
Author introduction
The repository is maintained by Johannes4Linux on GitHub, who is active in GNU/Linux education content—especially around Linux kernel modules/drivers and embedded interfaces. Their GitHub profile highlights multiple tutorial repositories (e.g., Linux driver tutorials, USB tutorials, embedded interfaces) and an established follower base.
The linked YouTube video also frames the work as part of a hands-on learning track: writing and developing a Linux networking driver, using a WIZnet W7500 evaluation board as the hardware target.
Project description
What it is
w7500-spi2eth provides firmware for “turning a Wiznet W7500 into a SPI Networking card.”

Key idea (architecture)
Instead of treating the W7500 as a standalone MCU that runs an entire application stack, this approach configures the W7500 to act as a SPI slave that focuses on Ethernet frame transmit/receive, controlled by SPI commands from the host side.

Hardware targets
The repo explicitly mentions it can be built/used with WIZnet evaluation boards such as Surf 5, WIZWIKI-W7500, and WIZWIKI-W7500ECO, and shows a wiring example for connecting a Surf 5 to a Raspberry Pi.

What’s in the repo (licensing note)
The README states that files under the wiznet folder come from Wiznet W7500x_StdPeriph_Lib, while the rest is authored by the project maintainer under the MIT license (and the WIZnet library has its own MIT-like licensing).
Source Repositories
For the custom PCB boards in the video, source can be found below
https://github.com/Johannes4Linux/Ethernet_PCBs
Code and connection with RPi SBC can be found in below repo:
https://github.com/Johannes4Linux/w7500-spi2eth

Why WIZnet is used
This project makes sense specifically with the WIZnet W7500 family because it’s positioned as a one-chip MCU + networking solution: W7500-based platforms are commonly described as integrating an ARM Cortex-M0 and a hardwired TCP/IP core (and related networking capabilities), making it a strong base for experiments where networking is the “main feature,” not an afterthought.
Also, the author explicitly centers the workflow around W7500 evaluation boards, which reduces friction for learners and makers who want reproducible hardware while building Linux networking/driver experiments.
How it can benefit WIZnet
New “mental model” for W7500: not only “MCU with Ethernet,” but also a SPI-to-Ethernet building block for Linux/SBC projects—great for education and prototyping.
Developer awareness via learning content: pairing open-source firmware with a “let’s write a Linux networking driver” style video naturally attracts Linux learners, which can translate into more W7500 eval-board adoption.
Community-driven reference momentum: projects like this often become unofficial reference points (“how do I do SPI Ethernet with W7500?”). That can inspire WIZnet-friendly follow-ups like an application note, a clarified SPI framing spec, or a curated “getting started” guide for Linux.

