Linux移植过程中出现ECC检验坏块导致的问题

错误关键字:end_request: I/O error, dev mtdblock4, sector 0


是因为Flash中有坏块导致ECC校验通不过,解决办法就是禁止ECC校验


解决办法:

禁止Flash ECC校验
我们的内核都是通过UBOOT写到Nand Flash的, UBOOT通过的软件ECC算法产生ECC校验码, 这与内核校验的ECC码不一样, 内核中的ECC码是由S3C2410中Nand Flash控制器产生的. 所以, 我们在这里选择禁止内核ECC校验.
修改drivers/mtd/nand/s3c2410.c 文件:
vi drivers/mtd/nand/s3c2410.c
找到s3c2410_nand_init_chip()函数,在该函数体最后加上一条语句:
chip->ecc.mode = NAND_ECC_NONE;


至此  自己手动配置的Linux内核+原厂提供的根文件系统 启动成功

其中qt系统乱了  不过反正是启动起来了

你可能感兴趣的:(linux,ECC)