PPC405GP Ethernet Driver

gregory.menke at gsfc.nasa.gov gregory.menke at gsfc.nasa.gov
Mon Aug 1 19:07:51 UTC 2005

Check your tx complete routine, you should be freeing the packets
after they're transmitted- IIRC thats the only place your driver
should free packet buffers.  Perhaps tx buffers are leaking...


Doyle, Bryon Thomas (Bryon) writes:
 > Hello, I have been posting over the last few weeks on some pointers
 > how to write an Ethernet driver for the RTEMS gen405 BSP. Well,
 > I've got it running at about 95% now and I've run into a snag. I
 > seem to be running out of available "mbufs" after a few minutes of
 > netdemo running on the board, and I don't know why. I run a ping -t
 > on my development PC to test the network functionality, it runs
 > great for a while then it starts timing out. Over my terminal
 > connection to the board, I can run the statistics portion of
 > netdemo and it shows that all 512 buffers are full with data. And
 > when I try to run the UDP send command after pinging the board for
 > a few minutes it freezes and prints out "waiting for available
 > mbuf" every 30 seconds or so. Additionally, I am positive that the
 > Ethernet controller's DMA is properly configured and all the wrap
 > bits are set on the respective buffers. I am reluctant to simply
 > add a call to m_freem(m) in my receive function out of fear of
 > deleting a pa!  cket before the stack has finished processing it,
 > and given a quick glance of some other drivers in the RTEMS tree, I
 > did not notice any references to freeing up memory buffers after
 > they are received. Any thoughts on why my driver is eating up
 > mbufs?  Any help is always appreciated, and I plan on uploading my
 > driver into the RTEMS CVS as soon as I get this problem fixed and
 > feel comfortable with it working. Thanks Again.

More information about the users mailing list