Close

Progress: Ethernet library

A project log for DECstation2040

A RP2040 based MIPS emulator, running Ultrix/DECwindows in a business card format.

rscott2049rscott2049 08/29/2024 at 15:230 Comments

I just finished updating Sandeep's pico-rmii-ethernet library to enable line-rate Ethernet transmit and receive. The new library is available in Github: https://github.com/rscott2049/pico-rmii-ethernet_nce/tree/main.


From the readme:

This library uses DMA driven ring buffers for both transmit and receive. The transmit side is entirely DMA driven, while the receive side uses a per-packet interrupt to finalize a received packet. Performance does vary with system clock speed, and the memory region the executable is placed:

System Clock MHz Iperf Mbit/sec (SRAM) Iperf Mbit/sec (flash)
100 1.38 1.27
150 2.81 Link not established
200 65.4 31.4
250 83.4 69.3
300 94.9 85.9

The MDIO interface was changed from polled to interrupt driven, thus freeing up more processor time for packet processing.

Discussions