
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 10/30/12 15:47, Ilya Yanok wrote:
AM33XX with BCH8 can't work with nand_spl_simple correctly because custom read_page implementation is required for proper syndrome generation.
This simple driver mostly duplicates nand_spl_simple but has nand_read_page changed to suit our needs.
[snip]
- for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
this->ecc.hwctl(&mtd, NAND_ECC_READ); + nand_command(block,
page, data_pos, NAND_CMD_RNDOUT); + + this->read_buf(&mtd, p, eccsize); + + nand_command(block, page, oob_pos, NAND_CMD_RNDOUT); + + this->read_buf(&mtd, oob, eccbytes); + this->ecc.calculate(&mtd, p, &ecc_calc[i]); + + data_pos += eccsize; + oob_pos += eccbytes; + oob += eccbytes; + }
This is where the function differs. If we can't merge things together, I'd like to see about putting just this function into nand_spl_simple.c under CONFIG_SYS_NAND_HW_BCH8 since if I follow what's going on, and I need to play with the code to confirm I do, it's a generic change related to how much more we're reading back out now. But good catch finding what was going wrong with nand_spl_simple here.
- -- Tom