This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
RE: Net crasch on mpc850
- From: Gary Thomas <gthomas at ecoscentric dot com>
- To: Luoqi Chen <lchen at onetta dot com>
- Cc: Daniel Lidsten <Daniel dot Lidsten at combitechsystems dot com>,eCos Discussion <ecos-discuss at sources dot redhat dot com>
- Date: 08 Aug 2002 18:15:59 -0600
- Subject: RE: [ECOS] Net crasch on mpc850
- References: <3CB66238087B324A9222A966EACA50EA04C530@mail>
On Thu, 2002-08-08 at 17:14, Luoqi Chen wrote:
> > From: Daniel Lidsten [mailto:Daniel.Lidsten@combitechsystems.com]
> > Sent: Wednesday, August 07, 2002 2:50 AM
> > To: ecos-discuss@sources.redhat.com
> > Subject: [ECOS] Net crasch on mpc850
> >
> >
> > Hi,
> >
> > I am having some net trouble with my mpc850. Every time i
> > download a large amount of data (100-200kb) to the board then
> > it crasches, sometime at the beginning of the download and
> > sometimes later on, but always during download. It is always
> > the same address that gets the TLB miss (0xC800 0000). My
> > first thought was that my buffers was to small so i increased
> > them to be 16 (instead of 4) but it didnt help. It is also
> > very hard to see which function that causes the crasch. At
> > crasch time LR points to a function called "copyin" that is
> > located in "support.c". However, i cannot figure out how to
> > see who called that function.
> >
> > A thing worth mentioning is that i have created a section
> > called ioRAM that is noncached and lies outside the ordinary
> > cached RAM area. All ethernet buffers are located on this
> > area. The reason for this is that neighter the serial port or
> > the ethernet driver will work on a area that is cached.
> >
> There was a bug in SCC ethernet driver that mistakenly
> invalidated data cache for the transmit buffer instead of
> flushing it: search for line
> HAL_DCACHE_INVALIDATE(txbd->buffer, txbd->length);
> in file devs/eth/powerpc/quicc/current/src/if_quicc.c,
> it should be replaced with
> HAL_DCACHE_FLUSH(txbd->buffer, txbd->length);
> I'm not sure if this has been fixed in the CVS repository
> lately.
Good catch. I've fixed this just now.
>
> The SMC serial driver handles the cache correctly.
>
> -lq
>
> --
> Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
> and search the list archive: http://sources.redhat.com/ml/ecos-discuss
--
------------------------------------------------------------
Gary Thomas |
eCosCentric, Ltd. |
+1 (970) 229-1963 | eCos & RedBoot experts
gthomas@ecoscentric.com |
http://www.ecoscentric.com/ |
------------------------------------------------------------
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss