Hello Chin,

> +
> +     nand->ecc.mode = NAND_ECC_HW;
> +     nand->ecc.size = CONFIG_NAND_DENALI_ECC_SIZE;
> +     nand->ecc.read_oob = denali_read_oob;
> +     nand->ecc.write_oob = denali_write_oob;
> +     nand->ecc.read_page = denali_read_page;
> +     nand->ecc.read_page_raw = denali_read_page_raw;
> +     nand->ecc.write_page = denali_write_page;
> +     nand->ecc.write_page_raw = denali_write_page_raw;
> +#ifdef CONFIG_SYS_NAND_15BIT_HW_ECC_OOBFIRST
> +     /* 15bit ECC */
> +     nand->ecc.bytes = 26;
> +     nand->ecc.layout = &nand_15bit_oob;
> +#else        /* 8bit ECC */
> +     nand->ecc.bytes = 14;
> +     nand->ecc.layout = &nand_8bit_oob;
> +#endif
> +     nand->ecc.calculate = denali_ecc_calculate;
> +     nand->ecc.correct  = denali_ecc_correct;
> +     nand->ecc.hwctl  = denali_ecc_hwctl;

You set nand->ecc.mode = NAND_ECC_HW,
but it looks like you don't set  nand->ecc.strength.

So, I think initialization will fail in nand_scan_tail() function.

Here,

                if (mtd->writesize >= chip->ecc.size) {
                        if (!chip->ecc.strength) {
                                pr_warn("Driver must set ecc.strength when 
using hardware ECC\n");
                                BUG();
                        }
                        break;



Where do you set nand->ecc.strength?




Best Regards
Masahiro Yamada

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to