[ECOS] AT91 EMAC Ethernet driver RX mangles packet data ??

Jürgen Lambrecht J.Lambrecht@televic.com
Fri Jun 13 09:17:00 GMT 2008


Hello,

my current driver works fairly will. If I do UDP or TCP separate it 
works perfectly (only in release mode, else RX BNA and OVR errors): up 
to 28 Mbps for UDP with my echo program. I use bursts up to 64 kB - my 
RX uses 512 128B buffers.

But If I mix UDP with TCP (send both echo requests out in a burst), if 
fails very fast - even without big bursts: I send UDP 1 kB and TCP 1 kB 
packet echo request in a burst.
-> This crashes the EMAC Ethernet driver! All networking does not work 
anymore, not a ping, not the httpd server..
But my application still runs (It still toggles the watchdog LED), so 
only the networking part has crashed.

Why?
- memcopy problem because freeBSD uses sg_list's where the first array 
is only 14 B, so not aligned anymore to 32 bit boundaries
- the deliver() runs in a thread context, not DSR context. The resources 
are not protected by a mutex, so maybe 2 instances of deliver ...

I will of course investigate this further, but maybe already somebody 
has a clue?

Kind regards,
Jürgen


-- 
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