uboot用当时的数据算出来的ECC用的是不是bch,
计算出来的ECC是否正确
Uboot写入rootfs的时候, 把ECC放在哪里了
jffs2调用的是不是as352x_nand中的calculat_ecc和correct_ecc
是的话,calculate计算出来的ECC是多少
其对应的从nand中读出来的数据raw data是什么,要具体打印出来,或者是传输到外边一个文件中,亲自看看,并写个小程序调用bch计算一下。
其实驱动里面已经有调用bch去计算的了。但是最好自己输出或打印去看看。
jffs2去读取uboot写的,经过bch计算的,ECC的值的时候,是不是对应正确的地方,是不是和uboot当时放的位置一致。(应该是一致的,否则应该几乎所有的出错才对,不过还是要看懂代码去确认一下)
还有,那个出错的块,是不是坏块,将出错的那个块的oob(也就2K的page对应的64byte,如果是512B的page则对应的是16byte)信息都打印出来,自己根据其放置的位置,看看之前uboot写入的ECC到底是不是jffs2读出来的那个值。
ecc error的块,如果是坏块,则对应的位置,应该非0,具体去看
Spare area autoplacement default schemes
之前去看nand flash的初始化,也就是probe等相关的函数,其中初始化是否正确,是不是
包括去page大小,erase大小(根据下载的samusang的那个datasheet,确定这个1G的nand,一个block对应多少page),保证这些信息初始化是完整无误的。要结合 drivers/mtd/nand/nand_ids.c和