end_request: I/O error, dev mtdblock4, sector 0
移植内核时出现了这种错误,这种错误通常是由校验造成的.这种情况的解决办法为:
禁止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;
|