This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Building Redboot with ver 3.2.1 of the arm-elf- tools
- From: "Chris Garry" <cgarry at sweeneydesign dot co dot uk>
- To: "eCos Discussion" <ecos-discuss at sources dot redhat dot com>
- Date: Thu, 20 Mar 2003 10:12:50 -0000
- Subject: Re: [ECOS] Building Redboot with ver 3.2.1 of the arm-elf- tools
- Organization: Sweeney Design
- References: <008201c2ee19$21e2a5d0$5b0ba8c0@jasper> <m3u1dzjq7q.fsf@miso.calivar.com>
- Reply-to: "Chris Garry" <cgarry at sweeneydesign dot co dot uk>
> "Chris Garry" <cgarry at sweeneydesign dot co dot uk> writes:
>
> > Building on Win2K PC. Target E7T.
> >
> > Building Redboot with Network support using the eCos
> > 2.0 Beta release - redboot only responds to every-other
> > ping - the other half timing out. This happens even with
> > the latest eCos repository from CVS.
> >
> > Building Redboot with Network support using my old
> > 1.3.net release tools (using arm-elf- tools V2.95.2), and
> > the latest eCos from CVS. Redboot responds to every ping
> > correctly.
> >
> > Using the 1.3.net config tool with the pre-build arm-elf-
> > tools (ver 3.2.1) that come with 2.0 Beta - redboot only
> > responds to half of the pings again.
> >
> > So it looks like the ver 3.2.1 of the arm-elf- tools are
> > causing the problem.
> >
> > Are there any known issues with ver 3.2.1?
> > Any suggestions on how I should go about debugging this?
> >
>
> What happens if you try using 3.2.1 with optimization turned off? My
> guess is that it will work properly.
>
> I suspect that the problem is somewhere in the ethernet device driver:
> the more aggressive instruction scheduling in the later compiler
> combined with something not being marked volatile when it should be.
>
> Turning optimization off for the device driver may be a short term
> fix. To fix it permanently you may need to look at the driver code and
> start scattering volatile's around until it starts working.
You are correct on all counts.
The ks32c5000_ether.c file was missing volatile's from *rxReadPointer,
*txDonePointer and *txWritePointer. Everything works fine once these
are added.
I will post a patch to ecos-patches later.
--
Chris
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss