This is the mail archive of the ecos-discuss@sources.redhat.com 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]

Re: Standalone ethernet application


Jonathan Larmour <jifl@eCosCentric.com> writes:

> Hans Kester wrote:
> > Dear group,
> > I am trying to boot a standalone program from floppy on an ordinary
> > PC.
> > RedBoot works fine, a simple 'hello' example also works fine but when I
> > include networking I get a bunch of errors. Any idea what is wrong?
> [snip]
> > Bad link eth0 0xffffffff 0x000843ec 0 0x00004930: InitRxRing:1848
> [snip]
> 
> Haven't really looked, but this happens when the ring of rx buffers in
> the PCI window is corrupt. It's possible a BIOS setting could do this,
> or a card problem. But my suspicion is that your standalone program
> may be using more than 640K of RAM, leaving insufficient room for the
> PCI window.

This seems to be the problem. note that the first ring buffer that
fails is at 0x000a0a9c, just above the 640k line. It looks like
somewhere along the way, the i82559 driver has been configured to use
a full 1M of buffer space by default, without considering the PC
platform. It seems that this has been here for a long time, and it was
sheer luck that it has worked. It seems that the checking that Andrew
added in October has brought it to light.

The simplest thing to do is to reduce the values of MAX_RX_DESCRIPTORS
and MAX_TX_DESCRIPTORS when running in the PC floppy boot
configuration.

I'll take a look at fixing this.


> This is because the "FLOPPY" startup type is, by itself,
> only really intended for redboot. You should probably tweak the memory
> layout in hal/i386/pc/current/include/pkgconf/mlt_i386_pc_floppy* to
> take advantage of memory above 0x100000. RAM startup apps
> automatically load and run above 0x100000 which is why those don't
> normally have a problem.


A better alternative for stand-alone apps is to use the GRUB
option. This loads the application above the 1M line. 

-- 
Nick Garnett                    eCos Kernel Architect
http://www.ecoscentric.com      The eCos and RedBoot experts


-- 
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]