This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: problems with rltk8139 driver
- From: Andrew Lunn <andrew at lunn dot ch>
- To: jerzy dyrda <jerzy dot dyrda at kontron dot pl>
- Cc: ecos-discuss at sources dot redhat dot com
- Date: Tue, 24 Aug 2004 09:49:39 +0200
- Subject: Re: [ECOS] problems with rltk8139 driver
- References: <200408231641.46611.jerzy.dyrda@kontron.pl>
On Mon, Aug 23, 2004 at 04:41:46PM +0200, jerzy dyrda wrote:
> Hi all,
> I've a custom board based on XScale IXP425. I'm in the process of
> porting rltk8139 driver on this board. Sending data are ok ( I use
> ethereal to check), but receive fail. In receive buffer
> (rltk8139_eth0_rx_ring) miss a few data -about first 20 bytes. In
> this data should be a receive packet header, because it is zero
> driver doesn't receive more. Rltk8139_eth0_rx_ring is allocated in
> cached memory but all reading are done by uncached memory (MMU
> translate address). I check up on either memory region - it's the
> same. I think this is not a problem of memory coherency ( I use
> HAL_DCACHE_INVALIDATE macro and result is the same). It seems to me
> that chip doesn't copy all datas.
It seems strange it does not copy the beginning of the packet. I would
read the data sheet about DMA. Is any specific alligment needed? eg on
8 / 16 / 32 byte boundaries? Also take a look backwards. See if the
whole packet is there but offset by 20 bytes. This seems unlikely
because this would probably corrupt the data structures and you would
get a crash.
You say the memory is allocated in cached memory. Check what values
are programmed into the ethernet chip. Cached or none cached.
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