This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: ixp2400/flash endian problem
- From: Aaron Richardson <aaron at planetrichardson dot net>
- To: Jonathan Larmour <jifl at eCosCentric dot com>
- Cc: ecos-discuss at sources dot redhat dot com
- Date: Wed, 30 Apr 2003 21:36:59 -0500
- Subject: Re: [ECOS] ixp2400/flash endian problem
- References: <200304291746.24946.aaron@planetrichardson.net> <3EB034F9.80904@eCosCentric.com>
- Reply-to: aaron at planetrichardson dot net
I had thought the same thing, but I am unable to recreate the FIS system (fis
init). It hangs while either erasing or unlocking the flash. I assume this
is because it is trying to access the flash swapped. I have now integrated
the Intel driver into the current code. I get similar results as the current
strata driver.
thanks,
Aaron
On Wednesday 30 April 2003 03:41 pm, Jonathan Larmour wrote:
> Aaron Richardson wrote:
> > I am trying to bring in the Intel code for the ixp2400 into the current
> > version of redboot/ecos.
>
> I should warn you that the Intel port is RHEPL'd and current RedBoot/eCos
> is GPL'd. Mixing code from both in one image may be legally problematic,
> and mixing it in the same file definitely is - they are legally
> incompatible licenses.
>
> > I am having problems getting the flash to work
> >
> > properly and I cannot track down the issue. I am basically getting the
> > data out of the flash in a swapped endian form. I am using the current
> > strata flash code. I have commented out the device check code in the
> > init routine and hard coded the correct values for now. Here is what I
> > get from fis:
> >
> > RedBoot> fis list
> > Name FLASH addr Mem addr Length Entry point
> > BdeR 0x000000C4 0x00000000 0x00000400 0x00000000
> > tsySL me 0x0000FAC4 0x0000FAC4 0x00000200 0x00000000
> > BdeR toofnoc 0x00F0FDC4 0x00F0FDC4 0x00100000 0x00000000
> > SIFeridrotc 0x0000FEC4 0x0000FEC4 0x00000200 0x00000000
> > bder-tookcab 0x000010C4 0x000010C4 0x00000400 0x00000000
> > RedBoot>
> >
> > Intel is building with a compiler flag -mbig-endian and -D__ARMEB__. If
> > I compile with these settings (and use their swap image program) I get
> > the output above. However, If I remove both of these compiler options
> > then I get the following:
> >
> > RedBoot> fis list
> > Name FLASH addr Mem addr Length Entry point
> > RedBoot 0x000000C4 0x00000000 0x00000400 0x00000000
> > System Log 0x0000FAC4 0x0000FAC4 0x00000200 0x00000000
> > RedBoot config 0x00F0FDC4 0x00F0FDC4 0x00100000 0x00000000
> > FIS directory 0x0000FEC4 0x0000FEC4 0x00000200 0x00000000
> > redboot-backup 0x000010C4 0x000010C4 0x00000400 0x00000000
> >
> > The names are not swapped any more, but the addresses are still munged.
> > Any ideas on how to fix this?
>
> At a guess it may be because the flash directory was written by the
> big-endian redboot. You might get more consistent results if the flash
> directory was written by the little-endian redboot.
>
> Jifl
> --
> eCosCentric http://www.eCosCentric.com/ The eCos and RedBoot experts
> --[ "You can complain because roses have thorns, or you ]--
> --[ can rejoice because thorns have roses." -Lincoln ]-- Opinions==mine
--
Aaron Richardson
aaron@planetrichardson.net
http://air.planetrichardson.net
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss