I'm working on a project where the usual small number of Ethernet FEC Receive Buffers just won't cut it. I'm getting data overruns.
In this project on an MCF5235, we're using the internal static RAM for both the Descriptor Ring and the buffers. That makes things a whole lot easier than having to worry about flushing the cache.
I can't use a lot of 1600-byte buffers as there's not enough SRAM. Fine, the FEC supports small buffers and will chain them for me. So I'm going to use 64 256-byte buffers. Small packets will take a single buffer and large ones might take six.
I'm looking for some example code that does this so I don't repeat the mistakes others have made.
Linux uses big buffers (where "big" means "will hold a full-size packet").
FNET uses big buffers.
Freescale's TCP/IP Lite (the Nichelite stack) has small and big buffers, but only uses big ones in the receive ring.
Does anyone know of any examples of a FEC driver that uses chained buffers?