韦东山Linux嵌入式课程社区
直播中

李萌

7年用户 177经验值
私信 关注

NAND上面都是坏块

NAND 上面都是坏块怎么办啊?

u-boot 上执行nand bad 发现nand 上都是坏块,

下载内核时 ,

执行 nand scan 时 nand上也都是坏块!!

难道 u-boot和  内核的nand驱动都写错了??

请 南方大哥 指点一下!!!!

回帖(6)

牛晓渊

2019-5-20 13:04:22
对于每页大小为512字节的nand flash,每页都有16字节的oob区。
使用oob区的第6个字节来表示是不是坏块:oob[5]不是0xff就表明是坏块。烧写flash时不会修改oob[5]。
坏块出现太多的话,应该是你执行烧写命令时,将oob区的数据写错了。
解决方法了:
nand scrub
这个命令强制擦除整个flash,所有的oob数据也被擦除了。
它有副作用:真正的坏块也被当作好块了,不过一般坏块比较少,影响不大。
举报

刁海鹏

2019-5-20 13:12:18
但是现在,u-boot识别为坏块,写不进根文件系统啊??!!!

该怎么办啊?!?!?

急需帮助
举报

晁莹

2019-5-20 13:40:17
有坏块是正常的,这不会影响系统──nand flash本身的坏块问题比较严重,yaffs文件系统支持有坏块的flash。

现在你的问题的根文件系统无法挂接,请参考:
http://www.100ask.net/showtopic-15.aspx
举报

苏畅

2019-5-20 13:49:36
block 4073 is bad
block 4074 is bad
block 4075 is bad
block 4076 is bad
block 4078 is bad
block 4079 is bad
block 4080 is bad
block 4081 is bad
block 4082 is bad
block 4084 is bad
block 4086 is bad
block 4087 is bad
block 4089 is bad
block 4090 is bad
block 4092 is bad
block 4093 is bad
block 4094 is bad
block 4095 is bad
VFS: Mounted root (yaffs filesystem) readonly.
mount_devfs_fs(): unable to mount devfs, err: -2
Freeing init memory: 72K
Warning: unable to open an initial console.
Failed to execute /linuxrc.  Attempting defaults...
Kernel panic - not syncing: No init found.  Try passing init= option to kernel.


其中.config 中的
CONFIG_CMDLINE="noinitrd root=/dev/mtdblock0 init=/linuxrc console=ttySAC0,115200"

是不是 init=/linuxrc  有问题??
举报

更多回帖

发帖
×
20
完善资料,
赚取积分