Problems in TI omap2-nand driver OMAP_ECC_BCH8_CODE_HW_DETECTION_SW mode

Ted Juan ted.juan at gmail.com
Mon May 12 01:57:06 PDT 2014


Hi All,

Sorry, there is no problem. I got it.

The latest bch.c decode_bch() has XOR read_ecc and calc_ecc in it.



2014-05-12 16:08 GMT+08:00 Ted Juan <ted.juan at gmail.com>:
> Hi All,
>
> TI am3517/3505 can use the  OMAP_ECC_BCH8_CODE_HW_DETECTION_SW mode in
> the latest linux-mtd git tree.
>
> I post the latest driver and older driver as below.
>
> Wouldn't the latest driver get bad performance since it always do the
> decode_bch() ?
>
> Thanks,
> regards,
>
> Ted
>
>
> ==========the latest omap2.c driver==========
>
> int nand_bch_correct_data(struct mtd_info *mtd, unsigned char *buf,
>                           unsigned char *read_ecc, unsigned char *calc_ecc)
> {
>         const struct nand_chip *chip = mtd->priv;
>         struct nand_bch_control *nbc = chip->ecc.priv;
>         unsigned int *errloc = nbc->errloc;
>         int i, count;
>
>         count = decode_bch(nbc->bch, NULL, chip->ecc.size, read_ecc, calc_ecc,
>                            NULL, errloc);
>         if (count > 0) {
>
>        ......................
> }
>
>
> ==========older omap2.c driver==========
>
> static int omap_correct_data_bch(int correct_bits, struct mtd_info *mtd,
>                                  uint8_t *dat, uint8_t *read_ecc,
>                                  uint8_t *calc_ecc)
> {
>
>   ..................
>
>   for (i = 0; i < blockCnt; i++) {
>     /* check if any ecc error */
>     eccflag = 0;
>     for (j = 0; (j < eccsize) && (eccflag == 0); j++)
>       if (calc_ecc[j] != 0)
>        eccflag = 1;
>
>     if (eccflag == 1) {
>       eccflag = 0;
>       for (j = 0; (j < eccsize) && (eccflag == 0); j++)
>        if (read_ecc[j] != 0xFF)
>          eccflag = 1;
>     }
>
>     if (eccflag == 1) {
>       /*printk(KERN_INFO "...bch correct(%d 512 byte)\n", i+1);*/
>       count = decode_bch(mode, calc_ecc, err_loc);
>
>   ...............
>
>
> }



More information about the linux-mtd mailing list