-
Added DMA CRC support to Ethernet library
09/15/2024 at 01:14 • 0 commentsUpdated the Ethernet library to use the RP2040 DMA sniffer to calculate CRCs. This significantly improve performance:
Sys Clk Iperf CPU/SRAM Iperf CPU/flash Iperf DMA/SRAM Iperf DMA/flash MHz Mbit/sec Mbit/sec Mbit/sec Mbit/sec 150 11.6 2.9 94.9 70.1 200 65.4 31.4 94.9 94.9 250 83.4 69.3 94.9 94.9 300 94.9 85.9 94.9 94.9 -
Progress: Ethernet library
08/29/2024 at 15:23 • 0 commentsI 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.
-
Build log
07/01/2024 at 23:57 • 0 comments