I am checking the TN-29-56 document to move to on-die-ecc, but have problems with point 2.3.1.3 and ff.
Function omap_nand_switch_ecc() is in my uboot (from http://arago-project.org/git/projects/?p=u-boot-omap3.git;a=summary)
a 2 paramter function.
And also 2.4.1 looks different here: like this
switch(mode)
{
case NAND_ECC_HW:
nand->ecc.mode = NAND_ECC_HW;
#ifdef GPMC_NAND_ECC_LP_x16_LAYOUT
nand->ecc.layout = (hardware == 1) ? &hw_nand_oob_kernel : &hw_nand_oob;
#else
nand->ecc.layout = &hw_nand_oob;
#endif
nand->ecc.hwctl = omap_enable_hwecc;
nand->ecc.size = 512;
nand->ecc.bytes = 3;
nand->ecc.correct = omap_correct_data;
nand->ecc.calculate = omap_calculate_ecc;
omap_hwecc_init(nand);
#ifdef GPMC_NAND_ECC_LP_x16_LAYOUT
printf("HW ECC [%s layout] selected\n",(hardware == 1) ? "Kernel/FS" : "X-loader/U-boot");
#else
printf("HW ECC selected\n");
#endif
break;
But even if I could solve this there is another issue:
how to bring this uboot on my current board?
I compiled the x-loader, but due to change towards on-die-ecc it will not read the uboot.
If I use TI's flash tool, than I can just upload a new u-boot and than flash x-loader and uboot.
But I have to flash uboot with 4-bit-ecc enabled, if I get this right.
The uboot in the document doesn't have the ability to enable/disable on-die-Ecc (this seems to be done in x-loader only).
Or am I wrong?