通过观看其他人的问题与处理(s3c-nand: ECC uncorrectable error
detected)。最后通过在uboot下擦除整个nand后重新烧写解决。在擦除之前大家最后先准备后一张可以启动uboot的SD卡。
具体方法为:
1.uboot命令行中运行下面命令:
nand erase 0
该命令将删除整块nandflash。
2.使用SD启动的uboot重新烧写各个镜像文件。
请按照下面的步骤调试:
1.使用uboot下使用nand erase 0擦除flash。
2.使用SD启动的uboot烧写nand启动的uboot。
3.使用nand启动的uboot烧写linux内核与cramfs
上面可以解决的下面不要进行修改
=====================================================
我使用这个方法试了好几次,可是问题依然存在,无奈之下只好看一下内核启动的代码,发现这个问题是因为nand
flash驱动启动了HW_ECC校验,具体HW_ECC哪里有问题没有细看,我把ECC改为none,重新编译了一下内核,启动以后问题得到解决,具体修改的代码如下为/drivers/mtd/nand/S3c_nand.c,大概是812行左右,具体代码如下:
#if defined(CONFIG_MTD_NAND_S3C_HWECC)
nand->ecc.mode =
NAND_ECC_NONE;(以前是NAND_ECC_HW)
nand->ecc.hwctl =
s3c_nand_enable_hwecc;
nand->ecc.calculate =
s3c_nand_calculate_ecc;
nand->ecc.correct =
s3c_nand_correct_data;