On Thu, Nov 18, 2010 at 4:20 PM, Scott Wood <scottw...@freescale.com> wrote: > On Thu, 18 Nov 2010 16:13:52 -0800 > Steve Sakoman <st...@sakoman.com> wrote: > >> The code generating both errors is in the nand_do_read_ops function in >> nand_base.c: >> >> if (mtd->ecc_stats.failed - stats.failed) >> return -EBADMSG; >> >> return mtd->ecc_stats.corrected - stats.corrected ? -EUCLEAN : 0; >> } >> >> I understand that the -EUCLEAN error indicates a correctable ECC error. >> What does the -EBADMSG error indicate? > > An uncorrectable ECC error (or other failure). > >> This condition doesn't seem to bother the linux driver, but u-boot doesn't >> like it at all! > > Check whether the ECC layout and code is the same for this driver in > both U-Boot and Linux.
Well, the mystery is solved. The strange behavior was a combination of the -EUCLEAN issue in u-boot and the following bizarre bug that crept into the Linux OMAP NAND driver in 2.6.26: http://article.gmane.org/gmane.linux.ports.arm.omap/46545 I will submit a patch to deal with the u-boot issue tomorrow, and it seems that a fix is already queued for Linux 2.6.37. Thanks to Scott Wood for helping with the -EUCLEAN issue and Scott Ellis for noticing that what might be the same issue was being discussed on both the u-boot and linux lists today. Steve _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot