[U-Boot] OMAP3 NAND ECC bug report

Arno Steffen arno.steffen at googlemail.com
Fri Oct 21 11:28:35 CEST 2011


I think reason that SW_ECC is not working, is in omap_gpmc.c:

omap_nand_switch_ecc():

	  case NAND_ECC_SOFT:
		nand->ecc.mode = NAND_ECC_SOFT;
		/* Use mtd default settings */
		nand->ecc.layout = NULL;
		printf("SW ECC selected\n");

The ecc struct is not setup?!? Someone has an idea?

@TI stuff: if you are not the right person to address this, can you
please forward?
Thanks

 - Arno



2011/10/20 Arno Steffen <arno.steffen at googlemail.com>:
> I did tests with OMAP3 uboot. The SW-ECC (testet 1 bit, 4 bit BCH)
> doesn't correct errors in environment (during power-up).
> Compiling uboot for default HW-ECC - correction works fine.
> Testet with TI's PSP 4.02.00.07 (almost like arago latest version).
>
> I modified single bits by adding a patch (thanks Scott Wood) to uboot,
> that allows write in raw mode to flash. Single bit error can corrected
> with HW-ECC, not with SW-ECC.
> This report is only about uboot environment, which is read in startup.
> I didn't test it, but from my experience the correction works fine,
> beside the initial reading of the environment, as for reading and
> starting the kernel.
>
> Imho this is very critical, as reliability is suffered if a device
> isn't booting.
>
> Best regards
> Arno
>
> PS:
> The link below refers to a previous discussion.
> http://lists.denx.de/pipermail/u-boot/2011-September/100486.html
>
> in omap_gpmc.c I used this in board_nand_init()
>
> ...
>        nand->chip_delay = 100;
>        nand->ecc.mode = NAND_ECC_4BIT_SOFT;
>        nand_curr_device = 0;
>        omap_nand_switch_ecc(NAND_ECC_4BIT_SOFT, 1);
>        return 0;
> }
>


More information about the U-Boot mailing list