Problem with Micron 256 MB NAND on 440EPx

Andrew E. Mileski andrewm at isoar.ca
Mon May 26 19:04:34 EDT 2008


Alessandro Rubini wrote:
>> I've now verified with a logic analyzer that the NFREN strobe is active 
>> during when NFRDYBSY is low (NAND chip is busy), and latching bogus data 
>> as a result (the bus has pull-ups so 0xff).
> 
> I had a similar problem with the NDFC on an old kernel. I finally
> tracked it down to a missing mb() (i.e. eieio on the ppc).  The
> problem was triggered by DMA activity on the bus, but could also be
> exposed by lowering NDFC speed.  The hw controller would thus check
> the R/B* pin before the command reached the nand device, so it was not
> busy (yet).  Since I was working with an old kernel and always tight
> of time, I didn't check if the problem was still present in modern
> code.

I hadn't considered a sequencing problem.  I'll give your patch a try 
too.  Thanks!

I went back and noticed that tWB is hardcoded everywhere to 100ns (no 
define or config variable? *sigh*).  My chip can require up to 150ns.  I 
also increased a few other delays.  Those changes, plus the timeout 
calculation bug I posted on in another thread, and adding timeout 
expired warnings (previously silent errors), and it seems to be working 
at the moment.

I'll roll up a patch of it all when I'm satisfied with it after more 
testing.

-- 
Andrew E. Mileski



More information about the linux-mtd mailing list