Autodetection problems

Ralph Siemsen ralphs at
Thu Mar 10 18:37:06 EST 2005

I'm using kernel 2.6.10 on a PPC440GX with TWO 32MiB Intel J-series 
Strataflash.  These are x16 devices and they are arranged in parallel 
across the 32-bit data bus (interleave=2).  They share a common chip 
select and are mapped at the top of the address space.

With mostly default options to the kernel, the MTD autodetection logic 
performs two calls to do_cfi_probe() at offset 0x000000 and 0x2000000, 
and then proclaims, erroneously:
    Found 1 x32 devices at 0x0 in 32-bit bank
Attempts to use the flash in this state fail miserably (tons of block 
bitmap errors, cannot access beyond 32MiB, etc).

Thanks to suggestion by ThomasG, I switched on the advanced options, 
selected _only_ 32-bit buswidth, and _only_ interleave of 2.  Now the 
kernel reports what I expected:
    Found 2 x16 devices at 0x0 in 32-bit bank
and everything works like it a charm.

Though I'd mention this in case anyone encounters similar situation. 
I'm not sure if the autodetection code is meant to work in my situation...

PS. I also learned that having jffs2 debug level set at 2 causes 
considerably slowdown - doing an "ls" was taking 11 seconds.  Putting 
debug back to 0 makes everything work quickly as you'd expect.

I'm currently not subscribed to the list, please cc: any replies!

More information about the linux-mtd mailing list