On 07/02/2013 03:57:58 PM, Marek Vasut wrote:
Dear Scott Wood,

> On 07/02/2013 10:11:55 AM, Marek Vasut wrote:
> > The driver triggered a BUG() in nand_base.c:3214/nand_scan_tail()
> > because the ecc.strength was incorrectly set in case of NAND_ECC_HW
> > instead of NAND_ECC_HW_SYNDROME ECC mode.
> >
> > Signed-off-by: Marek Vasut <[email protected]>
> > Cc: Benoît Thébaudeau <[email protected]>
> > Cc: Fabio Estevam <[email protected]>
> > Cc: Scott Wood <[email protected]>
> > ---
> >
> >  drivers/mtd/nand/mxc_nand.c |    7 ++-----
> >  1 file changed, 2 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c
> > index ac435f2..08c7b8b 100644
> > --- a/drivers/mtd/nand/mxc_nand.c
> > +++ b/drivers/mtd/nand/mxc_nand.c
> > @@ -1238,15 +1238,12 @@ int board_nand_init(struct nand_chip *this)
> >
> >               this->ecc.write_oob = mxc_nand_write_oob_syndrome;
> >               this->ecc.bytes = 9;
> >               this->ecc.prepad = 7;
> >
> > -     } else {
> > -             this->ecc.mode = NAND_ECC_HW;
> > -     }
> > -
> > -     if (this->ecc.mode == NAND_ECC_HW) {
> >
> >               if (is_mxc_nfc_1())
> >               
> >                       this->ecc.strength = 1;
> >               
> >               else
> >               
> >                       this->ecc.strength = 4;
> >
> > +     } else {
> > +             this->ecc.mode = NAND_ECC_HW;
> >
> >       }
>
> Where does ecc.strength now get set for the non-SYNDROME case?

Gone ;-) The strength only needs to be set for the SYNDROME case according to
the code in nand_base.c .

Read it again. Note the lack of a "break;" before "case NAND_ECC_HW_SYNDROME:".

-Scott
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to