[ECOS] ethernet driver - receiving packets doesn't work

Tom Malcolmson Tom@Malcolmson.com
Thu Aug 30 21:25:00 GMT 2007


I'm new to eCos - we are trying to move away from a proprietary OS, and 
I'm having basic problems with my Ethernet driver.

I'm using an eCos 2.0 snapshot from September 2006 on an ARM platform 
with the standard FreeBSD stack.

Sending packets from an eCos app, thru my driver works fine, but eCos 
doesn't seem to do anything with the packets that I deliver up to it: 
they never back up to the application.  For DHCP for instance, I see the 
DHCP request come out of my system, and I see a DHCP offer from the 
server go back into my system.  I can see from debug prints in the 
generic ethernet driver that it has correctly received the DHCP offer, 
but the offer never gets back to the app.  I have tried apps other then 

Now, I should expain that there is no actual ethernet hardware, so no 
ethernet interrupts, etc.  My guide for writing the driver has been the 
eCos reference manual, chapter 46:
But I skip some steps since I don`t have a DSR.  When I have a packet 
for the net stack, I just call (sc->funs->eth_drv->recv)() with the 
number of bytes needed.  eCos calls my receive function which puts the 
packet into the sg list.  From debug output I can see that the generic 
driver code (eth_drv.c) has corrrectly received my packet and presumably 
calls ether_input.

A couple other thing.  Loopback tests work.  I don`t have any debugging 

I believe that the next step for me would be to insert print statements 
in if_ethersubr.c.

Thanks for any suggestions.

Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

More information about the Ecos-discuss mailing list