Hi Bob,
If I remember rightly, there is a document from InterNiche that explains the programming model of the NicheLite stack on the CD that comes with the board (maybe that's on the CD we had given to us when we went to the Freescale demo, I'll check).
We don't really use the InterNiche stack that much, but I did rewrite the FEC driver to allow us to put very low latency frames onto the Ethernet without the stack getting involved. The problem you are seeing looks like a problem in the InterNiche FEC driver (ifec.c) with the ring of buffer descriptors that the FEC uses for frame transmits and receives.
The stack allocates a ring of two buffer descriptors I believe (look for NUM_RXBDS and NUM_TXBDS) and it may be that you need more. You should be able to tell if the problem is being caused by RX or TX by setting a breakpoint where the debug message is printed and look back through the call stack to see if it's the tx or rx code that fails to free a buffer. When you know, try increasing NUM_RXBDS or NUM_TXBDS (these are #defined in two places btw).
I only suggest this because I had a similar problem and it turned out to be caused by this - in fact, now I come to think of it I think it was caused by a small problem in the FEC tx code that is used to align the frame buffers to a 16 byte boundary. There was a case where there weren't enough tx buffer descriptors available and everything started going sour.
Can't help with msring.
Cheers,
Paul.