chip drivers

Jonas Holmberg jonas.holmberg at axis.com
Fri Feb 1 09:49:26 EST 2002


> > Because I don't think that will work without complex code that calls
> > the probes over and over again.
> 
> Look at drivers/mtd/maps/ocelot.c. It has two map structures and calls two 
> probe functions. 

But how would I be able to detect all chips if I had a configuration
like this:

0x00000000 - 0x003FFFFF 4MiB CFI chip
0x00400000 - 0x005FFFFF 2MiB jedec only chip
0x00600000 - 0x009FFFFF 4MiB CFI chip

I could call the cfi-probe first and it would find the first chip but it
would try to find the next chip at 0x00400000 and that's not a CFI chip
so it would continue to look at 0x00800000 and miss the chip at
0x00600000. And I would have to make the jedec_probe start looking at
0x00400000 because it wouldn't find any chip at 0x00000000.

Let's say that all chips above are 2MiB instead so that the can be
detected by the probes. Would it be possible to make a partition that is
located both in a CFI and in a non-CFI chip?
 
Can the cfi-driver really handle chips of different sizes and/or
eraseregion-layouts?

I noticed that the jedec_probe only accepts identical chips (IDs) and it
thinks that it has found a new chip if my window is bigger than all my
chips together (I'll have to fix that).

/Jonas (slightly confused)





More information about the linux-mtd mailing list