This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

AT91 EMAC Ethernet driver RX mangles packet data ??


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]