NAND:No NAND device found!!! 0MiB
这个信息曾经困扰了我很久,终于在某一天成功的解决了。在此写下以记录教训!
首先,用Source Insight搜索这个信息的打印出处,在drivers/mtd/nand/nand_base.c文件:
intnand_scan_ident(struct mtd_info *mtd, int maxchips)
{
int i, busw, nand_maf_id;
struct nand_chip *chip = mtd->priv;
struct nand_flash_dev *type;
……
type = nand_get_flash_type(mtd, chip,busw, &nand_maf_id);
if (IS_ERR(type)) {
#ifndefCONFIG_SYS_NAND_QUIET_TEST
printk(KERN_WARNING "No NAND device found!!!\n");
#endif
……
}
根据打印条件,判断是type返回值出错,于是分析nand_get_flash_type函数,可以发现在函数中有这么两行:
if (!type)
return ERR_PTR(-ENODEV);
因此猜测是type出错了,于是向上查找type的赋值情况,在紧挨着上述两行代码