ralphs at netwinder.org
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