请教高手:相当奇怪,内核打印:No NAND device found,但能正常进入根文件系统
内核打印 No NAND device found,但是能挂载根文件系统,能正常启动应用程序,下面是内核打印的部分内容:
brd: module loaded
loop: module loaded
ssc ssc.0: Atmel SSC device at 0xc4880000 (irq 14)
nand_get_flash_type: second ID read did not match 52,52 against 7c,03
No NAND device found.
烧写以前内核的镜像文件,就很正常,显示如下:
brd: module loaded
loop: module loaded
nbd: registered device at major 43
ssc ssc.0: Atmel SSC device at 0xc4880000 (irq 14)
NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit
)
Scanning device for bad blocks
Bad eraseblock 3426 at 0x000003588000
Creating 7 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x000000000000-0x000000020000 : "bootstrap"
0x000000020000-0x000000060000 : "uboot"
0x000000060000-0x000000080000 : "env1"
0x000000080000-0x0000000a0000 : "env2"
0x0000000a0000-0x0000002a0000 : "linux"
0x0000002a0000-0x0000007a0000 : "root"
0x0000007a0000-0x000004000000 : "user"
atmel_spi atmel_spi.1: Atmel SPI Controller at 0xfffcc000 (irq 13)
这应该可以排除硬件问题吧,再仔细看了内核代码,发现内核调用nand_get_flash_type去读取NAND FLASH (三星的)ID,两次读取ID,两次的ID不一样,匹配不成功,上面打印出来的ID信息好像是乱码,我想,FLASH ID读写不成功,有可能读写时序不对,但为什么还能成功挂载根文件系统,这不是矛盾了吗?求高手指点
[解决办法]
不知道你们的系统是怎么配的,相当一部分根文件系统会挂到ramfs里,所以NAND Flash有没有问题完全不影响系统启动(不以NAND作为启动设备的话)。另外,现在的NAND Flash多是MLC的,读写次数有限的,能不读写就不读写,所以一般不会把根文件系统挂到NAND上。mount看一下吧。