[PATCH] NAND: Fix NAND ECC errors on AMD Au1550

Leif Lindholm leif.lindholm at i3micro.com
Tue Nov 1 10:50:39 EST 2005


On Tue, 2005-11-01 at 18:29 +0300, Sergei Shtylylov wrote:
> > Attached is an incremental patch on top of Sergeys latest patch
> > (yesterday). Is that's ok, or should I do the same for the old one?
> 
>     Alas, I have to NAK your patch.

Ok.

>     Note, that with NAND_CMD_READID page_addr of -1 is always passed (so we 
> only write out the 1-byte column address) on the address phase, and we just 
> won't get there for READID command....

>     Therefore, neither -CE wil be overridden nor local_irq_save() be executed 
> for READID case...

Well, I guess I cheated a bit.

In the more well-tested version of the driver (using your older patch),
I actually do the force-assert for (column != -1) as well.

When doing the merge here, I must have messed up something while testing
and out of pure confusion decided that I didn't have to include that
part.

> > +	if (ce_override) {
> >  		/* Apply a short delay always to ensure that we do wait tWB. */
> >  		ndelay(100);
> >  		/* Wait for a chip to become ready... */
> > @@ -442,6 +431,19 @@ static void au1550_command(struct mtd_in
> >  		local_irq_restore(flags);
> 
>     ... and later you get the CPU flags corrupted.

Oops...
See above.

>     Has your READID problem arisen with or without my patch?

Your patch fixed the problem of a collision with the NOR flash.
But only after I added the READID force-assert. Before that it caused
the NAND chip to stop being detected.

regards
	/
		Leif






More information about the linux-mtd mailing list