On Sat, Feb 2, 2019 at 11:17 AM Jörg Krause <joerg.krause@embedded.rocks> wrote: > > Hi, > > On Thu, 2019-01-17 at 07:16 -0600, Adam Ford wrote: > > The initialization of the NAND in SPL hard-coded ecc.bytes, > > ecc.size, and ecc.strength which may work for some NAND parts, > > but it not appropriate for others. With the pending patch > > "mxs_nand: Fix BCH read timeout error on boards requiring ECC" > > the driver can auto configure the ECC when these entries are > > blank. This patch has been tested in NAND flash with oob 64 > > and oob 128. > > > > Signed-off-by: Adam Ford <aford...@gmail.com> > > Maybe you can give me a hint where the driver actually does the auto > configuration? > > I've tested the patch on a custom i.MX6ULL board with a Micron NAND > flash. The SPL loader is able to boot from NAND with and without this > patch.
I am traveling right now, so I don;t have my editor or source code, but I can tell you that the patch found in http://patchwork.ozlabs.org/patch/1020160/ sets up the ECC, and if these values are not set they will get set. I won't be back to the office until a week from Monday. The reason I found I needed this patch was because I have boards with different flash parts that used different ECC values. One my board boards didn't need the patch because the ECC matched the values hard-coded here, but my other board would get ECC errors during SPL because these values didn't match what U-Boot used when it wrote to flash. If your board works with and without the patch, I am guessing the ECC values generated by the above mentioned patch probably set them to the same values that were hard coded before. adam > > Tested-by: Jörg Krause <joerg.krause@embedded.rocks> > > > diff --git a/drivers/mtd/nand/raw/mxs_nand.c > > b/drivers/mtd/nand/raw/mxs_nand.c > > index 2d84bfffe2..95fa452cef 100644 > > --- a/drivers/mtd/nand/raw/mxs_nand.c > > +++ b/drivers/mtd/nand/raw/mxs_nand.c > > @@ -1191,9 +1191,6 @@ int mxs_nand_init_spl(struct nand_chip *nand) > > nand->ecc.read_page = mxs_nand_ecc_read_page; > > > > nand->ecc.mode = NAND_ECC_HW; > > - nand->ecc.bytes = 9; > > - nand->ecc.size = 512; > > - nand->ecc.strength = 8; > > > > return 0; > > } > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot