硬件介绍:
处理器 MPC8377A,基于PowerPC
问题:
开发板文档介绍启动流程时,其中三步是如下所述:
6. Linux操作系统启动后,自动执行脚本/etc/rc.d/rc.local
7. 脚本/etc/rc.d/rc.local 挂接了/myapp 为JFFS2 文件系统和/mynand 为YAFFS2 文件系统后,
执行/myap/myapp.sh 启动脚本。
8. 至此,系统启动完成。
通过串口打印出的消息看,当进行到第7步时,挂载/myapp没问题,但挂载/mynand时出现了问题。其中/mynand对应的硬件是256M的nand flash。问题消息如下:
Now Mount yaffs2 file system
yaffs: dev is 32505859 name is "mtdblock3"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.3, "mtdblock3"
Machine check in kernel mode.
Caused by (from SRR1=49030): Transfer error ack signal
Oops: Machine check, sig: 7 [#1]
MPC837x RDB
Modules linked in:
NIP: c000f654 LR: c020a720 CTR: 00000009
REGS: dfac9c70 TRAP: 0200 Not tainted (2.6.25)
MSR: 00049030 <EE,ME,IR,DR> CR: 22000044 XER: 00000000
TASK = deadb420[1441] 'jffs2_gcd_mtd1' THREAD: dfac8000
GPR00: ff00ff00 dfac9d20 deadb420 deb08e60 e20eea78 00000028 00000028 00000000
GPR08: 00d6ea78 00000009 00000000 00d6ea9f 22000088 100a4348 c033b8dc c033b84c
GPR16: c033b890 c033b56c dfac9d38 dfac9dc8 deb289f8 deb08e88 00000000 deb289c0
GPR24: 00000028 00000001 deb28a34 c03b6e2c 00d6ea78 00000028 00000000 00d6ea78
NIP [c000f654] _memcpy_fromio+0x78/0xc4
LR [c020a720] simple_map_copy_from+0x50/0x60
Call Trace:
[dfac9d20] [00000028] 0x28 (unreliable)
[dfac9d30] [c0208724] cfi_amdstd_read+0x90/0x1a0
[dfac9d80] [c0201074] part_read+0x5c/0xe4
[dfac9d90] [c0150b5c] jffs2_flash_read+0x180/0x258
[dfac9dc0] [c014723c] jffs2_get_inode_nodes+0x14c/0xd74
[dfac9e20] [c0147eac] jffs2_do_read_inode_internal+0x48/0x84c
[dfac9e90] [c014870c] jffs2_do_crccheck_inode+0x5c/0xb8
[dfac9f00] [c014cbd0] jffs2_garbage_collect_pass+0x1b0/0x798
[dfac9f50] [c014e794] jffs2_garbage_collect_thread+0x9c/0x118
[dfac9ff0] [c000fb3c] kernel_thread+0x44/0x60
Instruction dump:
4e800020 2b850004 409d0040 3805fffc 3925fffb 2b800001 5529f0be 39290001
7d2903a6 419c004c 80040000 90030000 <7c0006ac> 38840004 38630004 38a5fffc
---[ end trace f91a5d41545543cf ]---
block 129 is bad
block 130 is bad
block 190 is bad
block 676 is bad
block 700 is bad
之后就一直显示block XXX is bad,等了半小时也没进系统。
网上介绍说是YAFFS2文件系统的坏块问题,但应该如何处理此问题呢?
由于是新手,恳请各位能给予一些指导。
这块板子的uboot没有在nand flash上,而是在另一块Nor flash上,所以 nand scrub后,Uboot还存在。
实际情况下,nand scrub后,可以进入系统;但重启后,又是停留在检测坏块阶段了。不能每次都用Uboot来nand scrub吧?
现在还有新问题,就是存储uboot的那块nor flash,用erase擦除根文件系统ramdisk区域时,会出现error,擦除出错,当然也不能成功再烧写ramdisk进去了。
我已经联系售后了,看看他们解决吧,多谢了