<snip> > With the current ndfc code, the error correction gets the bits wrong. > Switching it back to the original way and the correction is correct. > > diff --git a/drivers/mtd/nand/ndfc.c b/drivers/mtd/nand/ndfc.c > index 89bf85a..497e175 100644 > --- a/drivers/mtd/nand/ndfc.c > +++ b/drivers/mtd/nand/ndfc.c > @@ -101,9 +101,8 @@ static int ndfc_calculate_ecc(struct mtd_info *mtd, > > wmb(); > ecc = in_be32(ndfc->ndfcbase + NDFC_ECC); > - /* The NDFC uses Smart Media (SMC) bytes order */ > - ecc_code[0] = p[2]; > - ecc_code[1] = p[1]; > + ecc_code[0] = p[1]; > + ecc_code[1] = p[2]; > ecc_code[2] = p[3]; > > return 0; > > Does anybody see a problem with my method of reproducing the bug? This > bug is deadly for our customers. I don't want to make the change unless > it is absolutely necessary..
Just one question: did you enabled MTD_NAND_ECC_SMC in configs? -vimal > > Cheers, > Sean > > ______________________________________________________ > Linux MTD discussion mailing list > http://lists.infradead.org/mailman/listinfo/linux-mtd/ > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot