[ECOS] RE: AT91 patches
Thu Jan 30 16:12:00 GMT 2003
combining multiple small sectors into a larger one
does not help me, for reasons discussed earlier.
I cannot afford the huge RAM buffers required to
Thomas Koeller, Software Development
Basler Vision Technologies
An der Strusbek 60-62
Tel +49 (4102) 463-390
Fax +49 (4102) 463-46390
> -----Original Message-----
> From: Doug Fraser [mailto:firstname.lastname@example.org]
> Sent: Thursday, January 30, 2003 3:53 PM
> To: 'Koeller, T.'; ecos-discuss (E-Mail)
> Subject: RE: [ECOS] RE: AT91 patches
> When you say 'variable sector size' support, are
> you talking about erase procedure only or actual
> information storage? I am not up to speed on JFFS2,
> but previous FFS I have used aggregated the smaller
> blocks in terms of large block groups, and treated
> the block grouping as a single large block.
> The only special treatment was that during an erase,
> the multiple small blocks were individually erased
> to effectively clear the virtual large block.
> Mostly just curious. I was looking at JFFS2 for a
> home project, but work and family life have gotten
> a bit nuts lately, so the hobby projects have to wait.
> > -----Original Message-----
> > From: Koeller, T. [mailto:Thomas.Koeller@baslerweb.com]
> > Sent: Thursday, January 30, 2003 7:09 AM
> > To: ecos-discuss (E-Mail)
> > Cc: 'Jonathan Larmour'
> > Subject: [ECOS] RE: AT91 patches
> > Jonathan,
> > as I see it, the ability to use flash chips with different
> > sector sizes is an important feature, the project I was
> > working on when I created the patch would have been doomed
> > if I had not been able to find a solution.
> > The bulk of your arguments against including the patch is
> > about introducing incompatibilities into redboot. I designed
> > the patch so that the old scheme would still work without any
> > modifications, so any software using it can continue to
> > do so. This is also true for redboot. The modifications I made
> > to redboot are by no means essential, I only did this to
> > demonstrate how to use the new features, and because I did not
> > want to write a demo program from scratch, I used redboot.
> > I still think my patch would be useful as a starting point for
> > adding variable sector size support. I do not claim it is
> > perfect, in fact I was hurrying when I wrote it. But if it
> > were in the ecos code base, then others could improve on it and
> > it would mature over time. I cannot see any fundamental
> > reasons why it cannot (or should not) be done the way I did it.
> > To summarize it up: the patch maintains compatibility with
> > existing software. Only software that _wants_ to use the
> > extended interface has to be aware of the changes.
> > We may wait for someone to come up with a perfect solution, or
> > someone willing to spend big bucks for this feature. But
> > then, we may have to wait for quite a while...
> > Thomas
> > -----------------------------------------------
> > Thomas Koeller, Software Development
> > Basler Vision Technologies
> > An der Strusbek 60-62
> > 22926 Ahrensburg
> > Germany
> > Tel +49 (4102) 463-390
> > Fax +49 (4102) 463-46390
> > mailto:Thomas.Koeller@baslerweb.com
> > http://www.baslerweb.com
> > > -----Original Message-----
> > > From: Jonathan Larmour [mailto:jifl@eCosCentric.com]
> > > Sent: Thursday, January 30, 2003 8:01 AM
> > > To: eCos Patches List; Koeller, T.
> > > Subject: AT91 patches
> > >
> > >
> > > I have been working on trying to get the AT91 changes
> > > incorporated for the
> > > last while. The big problem, as described before, is the
> > > flash driver.
> > > Thomas's patch appeared to add support for different flash
> > > sector sizes.
> > > However it impacted flash device access in redboot that
> > > didn't need this.
> > >
> > > Now, support for differing flash sector sizes is a good thing
> > > when the
> > > hardware has it. The obvious benefit is the reduced
> > overhead for FIS
> > > directories and fconfig areas.
> > >
> > > With that in mind I tried to do what I could to fix this by
> > making it
> > > configurable at least. To that end I made a bunch of
> changes in the
> > > generic driver layer that were fine. I also made quite a
> > few changes
> > > analogous to what Thomas did in the redboot flash.c.
> > >
> > > However a few things became apparent:
> > >
> > > * I was making more and more changes that would be quite
> > > difficult to test
> > > in the absence of any hardware with differing sector sizes
> > > (although I
> > > realised I could spend some time getting the synth flash
> > > driver to pretend
> > > to do this). What's more the changes could well break normal
> > > targets, not
> > > just the AT91. That's unacceptable.
> > > * RedBoot's flash code has the idea of fixed block sizes
> very very
> > > ingrained. All the code can be changed only by breaking lots of
> > > fundamental design assumptions. It mixes numbers of sectors
> > > with sizes of
> > > sectors freely, including in CDL options and configuration
> > > from the drivers.
> > > * The more changes I had to make, the more it would end
> up being as
> > > invasive to fixed sized flash as Thomas's patch, just in a
> > > different way.
> > > * Thomas's patch wasn't complete anyway. It would loosely
> > > appear to work,
> > > but things would go wrong when flash limits exceeded certain
> > > boundaries
> > > (primarily where the sector size switches) or you want
> > > control over what
> > > goes into what sized blocks. It would end up as a somewhat
> > > schizophrenic
> > > RedBoot. It's fundamental really because RedBoot would still
> > > be oriented
> > > towards a fixed size.
> > >
> > > So my conclusion is that I can't see any way to reasonably
> > apply the
> > > existing flash driver with "true" mixed sector sizes at
> > all. The only
> > > sensible way to do it in the near term is to change the
> > > driver to use the
> > > same bootblock system as the existing drivers, which means
> > > they are read
> > > and written in chunks of the "larger" sector size.
> > >
> > > What's more that isn't something I can do either, not having
> > > an AT91 EB40
> > > board to test something like this. So unless someone out
> > > there is willing
> > > to donate one, I can't see the flash driver being included
> > > for a while
> > > until someone with one does it.
> > >
> > > I can do the rest of the eb40 port (and probably will soon),
> > > but without
> > > the flash driver, it's somewhat crippled in terms of
> > redboot support.
> > >
> > > Suggestions?
> > >
> > > In general, my recommendation is that in the not too distant
> > > future we
> > > will need a new flash system, designed from scratch to
> > > support multiple
> > > different devices any or each with different sector sizes,
> > > and NAND flash.
> > > To be honest, that requires a rewrite, mostly of the RedBoot
> > > code, and I
> > > can't foresee any compatibility with the existing hardware
> > > flash drivers
> > > as the layering isn't too good - too many dependencies and
> > > assumptions
> > > between the layers (e.g. passing _down_ the number of blocks
> > > in the device
> > > from the generic driver to the hardware one, and using the single
> > > flash_info global). At least not without a painful number
> > of ifdefs.
> > > Instead it would be a big switch between the old flash system
> > > and a new
> > > one - they could exist in the codebase at the same time, but
> > > new low level
> > > drivers would be needed for the new one. Based on the old
> > > ones for sure,
> > > so it's not really starting over, but the structure would be
> > > different.
> > >
> > > Of course no-one's likely to write such a system unless
> > > there's enough
> > > impetus, so I'm not going to hold my breath.
> > >
> > > Jifl
> > > --
> > > eCosCentric http://www.eCosCentric.com/
> > > <info@eCosCentric.com>
> > > --[ "You can complain because roses have thorns, or you ]--
> > > --[ can rejoice because thorns have roses." -Lincoln ]--
> > > Opinions==mine
> > >
> > --
> > Before posting, please read the FAQ:
> > http://sources.redhat.com/fom/ecos
> > and search the list archive:
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss
More information about the Ecos-discuss