This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: "packets eaten" with AT91 EMAC Ethernet driver
- From: Andrew Lunn <andrew at lunn dot ch>
- To: J?rgen Lambrecht <J dot Lambrecht at televic dot com>
- Cc: ecos-discuss at ecos dot sourceware dot org, I-Yanaslov <yanaslov_iv at ic-bresler dot ru>
- Date: Mon, 9 Jun 2008 17:31:31 +0200
- Subject: Re: [ECOS] "packets eaten" with AT91 EMAC Ethernet driver
- References: <484D49E6.4030909@televic.com>
On Mon, Jun 09, 2008 at 05:19:02PM +0200, J?rgen Lambrecht wrote:
> Hello,
>
> Since I solved the bugs in the AT91 EMAC driver
> (RX: reset of ?bytes_in_list? (position in current sg_list))(TX: at
> TXERR IRQ, reset SW pointer; set all used bits to 0 instead of 1),
> I always had the same problem: after a while of communicating over
> Ethernet with the AT91 EMAC, packets get ?eaten?.
>
> TX Packets get stuck, and they need an RX packet to get out.
It sounds like missed interrupts, or a race condition in the interrupt
handling.
You might be interested in looking at the Linux drivers/net/macb.c
file. This is i think the Linux driver for the EMAC. It might give you
some clues. It is interesting that they initialize all the TX buffers
as being used, the opposite to what you do.
Andrew
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss