Handling multiple NAND chips -- take 2
Derek Jones
djones at interalia.ca
Wed Feb 25 13:06:43 EST 2004
On Wed, 2004-02-25 at 10:59, David Woodhouse wrote:
> On Wed, 2004-02-25 at 18:44 +0100, J.D. Bakker wrote:
> > This is the plan; fire at will.
>
> Why? What'd poor Will do wrong?
>
> Join us on IRC and tglx can heckle you too :)
>
> > * Assumption: all devices are the same type and size.
>
My current non-linux product allows for different NAND sizes to be
populated. I would prefer that support for different sizes be added.
> I think that's acceptable. It's _definitely_ OK on NOR. On NAND we may
> be sharing some control lines between different chips, but I still think
> it's OK and we can deal with that in the board-level driver.
>
> > * No support (yet) for building a wider data bus through putting
> > multiple devices in parallel
>
> I think that's OK too.
>
> > * All detected devices are concatenated and represented as one large
> > linear array of pages
>
> Look at the DiskOnChip Millennium Plus address-mangling code and
> comments above DoC_GetDataOffset().
>
> If we could support that it would perhaps be useful.
>
> > * All devices are soldered to a motherboard. We are not interested in
> > taking devices out of the array.
>
> Not sure. Look at how the new DiskOnChip driver has to screw around
> before the chip probing, so it can pretend this is true. T'would be nice
> to deal with a sparse array, at least.
>
> And if you mean hotplug -- think SmartMedia.
>
> > * No optimizations (yet) wrt accessing device n while device m is
> > busy. Easier to get working code fast than to get fast code working,
> > and I don't see a way to take advantage of parallelism without
> > modifying higher layers
>
> OK.
>
> > The general idea is to take a 'global' page_addr and turn it into a
> > (chip,page) tuple like this:
> >
> > chip = global_page_addr / pages_per_chip;
> > page = global_page_addr % pages_per_chip;
> >
> > Does that look sane ?
>
> I think so. I prefer it to the other.
>
More information about the linux-mtd
mailing list