This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

UBIFS error文件系统崩溃问题

Other Parts Discussed in Thread: AM3354, AM3352

近期公司产品出现概率性返修,经分析,与UBIFS error文件系统错误相关,请大神们解决!!问题描述如下:

【产品平台说明】

①硬件CPU:AM3354

②Linux内核版本:Linux version 3.2.0

③gcc编译器版本:gcc version 4.5.3 20110311 (prerelease)

④文件系统:ubifs

【问题现象】

(每个产品的问题不太一样,但是,都统一指向了UBIFS文件系统错误,如下列举两个现象供大神分析??)

 

第1种现象:系统无法正常启动,内核启动打印信息如下:

U-Boot SPL 2011.09 (Sep 11 2013 - 08:39:49)
Texas Instruments Revision detection unimplemented


U-Boot 2011.09 (Sep 11 2013 - 08:39:49)

DRAM:  256 MiB
NAND:  256 MiB
MMC:   OMAP SD/MMC: 0
*** Warning - bad CRC, using default environment

Net:   cpsw
Hit any key to stop autoboot:  0
Booting from nand ...
HW ECC BCH8 Selected

NAND read: device 0 offset 0x280000, size 0x500000
 5242880 bytes read: OK
## Booting kernel from Legacy Image at 80007fc0 ...
   Image Name:   Linux-3.2.0
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2960864 Bytes = 2.8 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   XIP Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Linux version 3.2.0 (rm@localhost.localdomain) (gcc version 4.5.3 20110311 (prerelease) (GCC) ) #113 Mon Nov 3 17:05:49 CST 2014

.............................

此处Linux内核正常启动,无异常信息(省略打印信息)......

...................................

[    4.001856] rtc-s35390a 1-0030: setting system clock to 2000-01-02 21:31:24 UTC (946848684)
[    4.078074] UBIFS: recovery needed
[    4.235435] UBIFS: recovery completed
[    4.239322] UBIFS: mounted UBI device 0, volume 0, name "rootfs"
[    4.245663] UBIFS: file system size:   199225344 bytes (194556 KiB, 189 MiB, 1569 LEBs)
[    4.254106] UBIFS: journal size:       9023488 bytes (8812 KiB, 8 MiB, 72 LEBs)
[    4.261799] UBIFS: media format:       w4/r0 (latest is w4/r0)
[    4.267951] UBIFS: default compressor: lzo
[    4.272260] UBIFS: reserved for root:  0 bytes (0 KiB)
[    4.280961] VFS: Mounted root (ubifs filesystem) on device 0:13.
[    4.288499] Freeing init memory: 608K
INIT: version 2.86 booting

/*此处开始打印UBIFS文件系统错误.......*/
[    4.754005] UBIFS error (pid 823): ubifs_check_node: bad CRC: calculated 0xbe587da8, read 0xe45bdd67
[    4.763690] UBIFS error (pid 823): ubifs_check_node: bad node at LEB 211:113632
[    4.771406] UBIFS error (pid 823): ubifs_read_node: expected node type 9
[    4.778479] UBIFS error (pid 823): ubifs_iget: failed to read inode 189, error -117
[    4.786577] UBIFS error (pid 823): ubifs_lookup: dead directory entry 'default', error -117
[    4.795383] UBIFS warning (pid 823): ubifs_ro_mode: switched to read-only mode, error -117
[    4.804094] Backtrace:
[    4.806720] [<c0017978>] (dump_backtrace+0x0/0x110) from [<c03dc4ec>] (dump_stack+0x18/0x1c)
[    4.815640]  r6:cf37d000 r5:cf47a368 r4:60008400 r3:c05f6c48
[    4.821655] [<c03dc4d4>] (dump_stack+0x0/0x1c) from [<c01736d0>] (ubifs_ro_mode+0x74/0x78)
[    4.830387] [<c017365c>] (ubifs_ro_mode+0x0/0x78) from [<c016d5bc>] (ubifs_lookup+0x148/0x150)
[    4.839461]  r4:cf480298 r3:c05f6c48
[    4.843253] [<c016d474>] (ubifs_lookup+0x0/0x150) from [<c00b0858>] (d_alloc_and_lookup+0x4c/0x6c)
[    4.852694]  r8:00000001 r7:00000000 r6:cfab1ed8 r5:cf480298 r4:cf47a368
[    4.859812] [<c00b080c>] (d_alloc_and_lookup+0x0/0x6c) from [<c00b2810>] (do_lookup+0x254/0x34c)
[    4.869070]  r6:cfab1e44 r5:cfab1ed8 r4:cfab1e3c r3:00000000
[    4.875080] [<c00b25bc>] (do_lookup+0x0/0x34c) from [<c00b2a3c>] (link_path_walk+0x134/0x7d0)
[    4.884080] [<c00b2908>] (link_path_walk+0x0/0x7d0) from [<c00b44f8>] (path_openat+0xa4/0x398)
[    4.893153] [<c00b4454>] (path_openat+0x0/0x398) from [<c00b48fc>] (do_filp_open+0x34/0x88)
[    4.901972] [<c00b48c8>] (do_filp_open+0x0/0x88) from [<c00a6b00>] (do_sys_open+0xe8/0x180)
[    4.910771]  r7:00000001 r6:00000003 r5:00020000 r4:cf93c000
[    4.916781] [<c00a6a18>] (do_sys_open+0x0/0x180) from [<c00a6bc0>] (sys_open+0x28/0x2c)
[    4.925243] [<c00a6b98>] (sys_open+0x0/0x2c) from [<c0014280>] (ret_fast_syscall+0x0/0x30)
INIT: Entering runlevel: 51: can

/*此处开始打印UBIFS文件系统错误.......*/
[    5.045726] UBIFS error (pid 826): ubifs_check_node: bad CRC: calculated 0xbe587da8, read 0xe45bdd67
[    5.055414] UBIFS error (pid 826): ubifs_check_node: bad node at LEB 211:113632
[    5.063116] UBIFS error (pid 826): ubifs_read_node: expected node type 9
[    5.070190] UBIFS error (pid 826): ubifs_iget: failed to read inode 189, error -117
[    5.078290] UBIFS error (pid 826): ubifs_lookup: dead directory entry 'default', error -117
/etc/init.d/rc: .: line 18: can't open /etc/default/rcS
Cannot create Qt/Embedded data directory: /tmp/qtembedded-0
Cannot create Qt/Embedded data directory: /tmp/qtembedded-0
Cannot create Qt/Embedded data directory: /tmp/qtembedded-0
Cannot create Qt/Embedded data directory: /tmp/qtembedded-0
Cannot create Qt/Embedded data directory: /tmp/qtembedded-0
Cannot create Qt/Embedded data directory: /tmp/qtembedded-0
Cannot create Qt/Embedded data directory: /tmp/qtembedded-0
Cannot create Qt/Embedded data directory: /tmp/qtembedded-0
Cannot create Qt/Embedded data directory: /tmp/qtembedded-0
Cannot create Qt/Embedded data directory: /tmp/qtembedded-0
INIT: Id "tty2" respawning too fast: disabled for 5 minutes
[    9.584319] UBIFS error (pid 858): make_reservation: cannot reserve 160 bytes in jhead 1, error -30
[    9.593872] UBIFS error (pid 858): ubifs_write_inode: can't write inode 5005, error -30

/*此时Linux系统直接死掉,不向下走了..........*/

 

 

 

第2种现象:系统启动成功,文件无法操作,操作文件会导致文件系统崩溃,变为只读:

U-Boot SPL 2011.09 (Sep 11 2013 - 08:39:49)
Texas Instruments Revision detection unimplemented
U-Boot 2011.09 (Sep 11 2013 - 08:39:49)

DRAM:  256 MiB
NAND:  256 MiB
MMC:   OMAP SD/MMC: 0
*** Warning - bad CRC, using default environment

Net:   cpsw
Hit any key to stop autoboot:  0
Booting from nand ...
HW ECC BCH8 Selected

NAND read: device 0 offset 0x280000, size 0x500000
 5242880 bytes read: OK
## Booting kernel from Legacy Image at 80007fc0 ...
   Image Name:   Linux-3.2.0
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2960864 Bytes = 2.8 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   XIP Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Linux version 3.2.0 (rm@localhost.localdomain) (gcc version 4.5.3 20110311 (prerelease) (GCC) ) #113 Mon Nov 3 17:05:49 CST 2014

.............................

此处Linux内核正常启动,无异常信息(省略打印信息)......

...................................

 

4.001908] rtc-s35390a 1-0030: setting system clock to 2000-01-04 01:28:44 UTC (946949324)
[    4.078180] UBIFS: recovery needed
[    4.180129] UBIFS: recovery completed
[    4.184043] UBIFS: mounted UBI device 0, volume 0, name "rootfs"
[    4.190372] UBIFS: file system size:   199225344 bytes (194556 KiB, 189 MiB, 1569 LEBs)
[    4.198815] UBIFS: journal size:       9023488 bytes (8812 KiB, 8 MiB, 72 LEBs)
[    4.206518] UBIFS: media format:       w4/r0 (latest is w4/r0)
[    4.212655] UBIFS: default compressor: lzo
[    4.216996] UBIFS: reserved for root:  0 bytes (0 KiB)
[    4.226220] VFS: Mounted root (ubifs filesystem) on device 0:13.
[    4.233732] Freeing init memory: 608K
INIT: version 2.86 booting
Please wait: booting...
Starting udev
[    5.093881] udevd (841): /proc/841/oom_adj is deprecated, please use /proc/841/oom_score_adj instead.
[    9.827571] alignment: ignoring faults is unsafe on this CPU.  Defaulting to fixup mode.
Root filesystem already rw, not remounting
Caching udev devnodes
ALSA: Restoring mixer settings...
Configuring network interfaces... /usr/sbin/alsactl: load_state:1625: No soundcards found...
[   10.684082] net eth0: CPSW phy found : id is : 0x1cc915
done.
Setting up IP spoofing protection: rp_filter.
[   10.784501] net eth1: CPSW phy found : id is : 0x1cc915
INIT: Entering runlevel: 5
Starting system message bus: dbus.
Starting telnet daemon.
Starting syslogd/klogd: done
Starting thttpd.

root@am335x:~# --1--fd=16---
[   13.363970] net eth0: CPSW phy found : id is : 0x1cc915
[   15.354352] PHY: 0:01 - Link is Up - 100/Full

/*此时Linux系统已经成功启动*/

/*下面对系统中的文件进行删除操作时,出错了..................*/

root@am335x:~# cd /home/                                                                                                                                              
root@am335x:/home# ls
app         app.tar.gz  app_U       chargeData  mtar        root
root@am335x:/home# rm -rf app.tar.gz    /*删除一个文件*/                                                                                                                              
root@am335x:/home# cd /usr/                                                                                                                                           
root@am335x:/usr# cd qt/lib/fonts/                                                                                                                                    
root@am335x:/usr/qt/lib/fonts# rm wenquanyi_160_75.qpf /*删除一个文件*/                                                                                                               
root@am335x:/usr/qt/lib/fonts# rm wenquanyi_160_50.qpf  /*删除一个文件*/   

/********经过上面的删除文件操作后,UBIFS文件系统开始报错,并变为只读***********/                                                                                                           
[   67.372753] UBIFS error (pid 2021): ubifs_check_node: bad CRC: calculated 0x8819f8fc, read 0xd9c5d8fd
[   67.382503] UBIFS error (pid 2021): ubifs_check_node: bad node at LEB 224:384
[   67.390038] UBIFS error (pid 2021): ubifs_read_node: expected node type 9
[   67.397198] UBIFS warning (pid 2021): ubifs_ro_mode: switched to read-only mode, error -117
[   67.406001] Backtrace:
[   67.408631] [<c0017978>] (dump_backtrace+0x0/0x110) from [<c03dc4ec>] (dump_stack+0x18/0x1c)
[   67.417540]  r6:ffffff8b r5:cf519048 r4:60008400 r3:c05f6c48
[   67.423557] [<c03dc4d4>] (dump_stack+0x0/0x1c) from [<c01736d0>] (ubifs_ro_mode+0x74/0x78)
[   67.432288] [<c017365c>] (ubifs_ro_mode+0x0/0x78) from [<c016a0b4>] (ubifs_jnl_delete_inode+0x94/0xb4)
[   67.442097]  r4:cf37d000 r3:00000000
[   67.445899] [<c016a020>] (ubifs_jnl_delete_inode+0x0/0xb4) from [<c016efd8>] (ubifs_evict_inode+0xc0/0x100)
[   67.456164]  r9:cfb8a000 r8:c0014428 r7:0000000a r6:c03f2688 r5:cf37d000
[   67.463184] r4:cf519048
[   67.465985] [<c016ef18>] (ubifs_evict_inode+0x0/0x100) from [<c00bcebc>] (evict+0x7c/0x160)
[   67.474791]  r5:c03f2688 r4:cf519048
[   67.478578] [<c00bce40>] (evict+0x0/0x160) from [<c00bd0b0>] (iput+0x110/0x1b0)
[   67.486282]  r5:cf376600 r4:cf519048
[   67.490078] [<c00bcfa0>] (iput+0x0/0x1b0) from [<c00b3a2c>] (do_unlinkat+0x120/0x164)
[   67.498329]  r6:cf519048 r5:cf58d118 r4:00000000 r3:00000000
[   67.504341] [<c00b390c>] (do_unlinkat+0x0/0x164) from [<c00b4d3c>] (sys_unlink+0x18/0x1c)
[   67.512944]  r6:00000000 r5:00000000 r4:bebd1da9
[   67.517868] [<c00b4d24>] (sys_unlink+0x0/0x1c) from [<c0014280>] (ret_fast_syscall+0x0/0x30)
[   67.526763] UBIFS error (pid 2021): ubifs_evict_inode: can't delete inode 8398, error -117

 

请大神们解决,紧急啊!!!!!

  • 问下,客户大概是一种什么样的应用场景,是不是会经常出现异常掉电。

  • 你好!

          非常感谢你的及时回答!!

          我们分析此问题的开始,也是怀疑产品频繁掉电引起的,为验证此原因,我们做了工装平台,做频繁上下电实验

          实验1:开机启动到命令行--->立刻断电--->停留5s     持续了3天3夜(估算:3000次左右)

          实验2:开机未启动完成(内核刚启动一半)--->立刻断电--->停留5s     持续了1夜(估算:700次左右)

         但是,无法复现市场上返回的产品的问题现象

        目前,我们苦于无法复现问题现象,无法分析出此问题的根本原因?

        请问:

         ①可能的原因有哪些?是内核的原因还是UBI-FS文件系统的原因?

         ②与产品的应用程序是否有关联?如:应用程序做哪些操作可能会导致此问题?

         ③目前TI的客户中,有没有遇到此类问题?怎么解决的?

         盼复,谢谢!!

  • 如果是工业环境,建议换成鲁棒性更强的YAFFS文件系统。

    或者把根文件系统做成只读的

  • 你好!

             非常感谢你提供的方案!多谢多谢!!

             我们的产品应用环境是工业环境!

             你提供的两个方案有没有参考文档&资料

              ①如何制作鲁棒性更强的YAFFS文件系统,TI有没有直接可以在直接用的?(硬件CPU:AM3354   Linux内核版本:Linux version 3.2.0)

              ②如何将根文件系统做成只读?

     

              另外:

             由于涉及市场产品的召回返工,动作比较大,为了确保方案的有效性,我们想知道:

             目前TI的客户有没有遇到类似问题的?他们是如何解决的?最终是否杜绝了产品问题?

              盼复!!谢谢!!

  • 文件系统是一个纯软的,基于mtd驱动,可以脱离具体的平台,可以参考 http://processors.wiki.ti.com/index.php/Create_a_YAFFS_Target_Image?keyMatch=yaffs&tisearch=Search-EN 或者更多的baidu上的资料。

  • 关于,文件系统只读的设置,是在uboot中的命令行参数把rw改为ro

  • 不知用ramfs可不可行,这样每次系统重启都是初始状态

  • 你好!

        同行你的问题解决了吗?这个问题很多人遇到的TI一直没有能解决问题的答复。

        我感觉是ECC纠错的问题,我也遇到和你同样问题,我用这个型号TC58NVG1S3HTA00的NAND FLASH就会出现

        ECC是8bit的就会出现,那个出问题的机器,你可要看看nand是不是那个坏块正好在文件系统的分区上,如果是的话开关机多次后

       只要对这个坏块区读写数据操作了,就会出现你发的那个报错的打印,系统起不来我们现在还没有解决。

      你的情况怎么样??

  • 你好!

               我们的问题还没有解决!目前还在想办法.....

  • 你好!

          希望能一起研究这个问题。我感觉是ECC纠错出了问题,你是用BCH8吗?

           只要文件系统分区上有坏块,就会出现文件系统起不了。

  • 你好!

              一起解决问题啊!我的邮箱zhangjl@hzzh.com   请与我直接联系,共同探讨!谢谢!

  • 你好!

           你用的U-BOOT版本是多少的?

            我下载了一个2013的u-boot貌似可以跳个坏块.目前再开关机测试中

  • 你好!

           我们的UBOOT版本u-boot-2011.09-psp04.06.00.08-IAC335X。

           我们也一直在做开关机跳变测试和长期系统运行测试,但是,还无法复现问题现象!

           你们通过开关机测试能复现问题吗? 期待你的实验结论?

           谢谢!

  • 你好,我们也遇到同样的问题,我换了YAFFS和Cramfs还是问题依旧,和你们做实验的情况差不多,我们用20台装置同时做实验,也是定时上电进行测试,可是出现的概率似乎还挺多(一天测试大概1000多次),2、3天就会出现此现象,但有些装置连续测试了10多天,至今也没有出现过问题,请问你们的问题解决了吗?

    如果有什么进展可否与我分享一下,我的QQ:38902292,加时请说:A8,或发邮件,咱们相互交流一下!

  • 你好!

          感谢你对问题的关注!

          目前我们的问题还在分析中....有结论了,我再回复!谢谢!

  • 你好!

        问题解决了吗?

  • 这个问题的根源在下面,至于解决方案,目前从实际的实践角度来说,我们是建议客户将重要的系统分区,作为read only或者是使用ramdisk等方式,确保系统不会出问题。然后在经常需要读写的数据区,单独划分出一个分区来,这样就可以避免系统宕机的问题。数据分区是可以被检测出问题,并erase掉重置的。如果是重要的数据不能接受这种方式的话,就建议使用更稳定一些的存储方式,比如nor flash, spi flash等。

    I'm afraid this may be a UBIFS issues:

    http://www.linux-mtd.infradead.org/doc/ubifs.html#L_powercut

    I would like to highlight the specific text:

    "Year 2011 note: however, there is an unsolved unstable bits issue which makes UBI/UBIFS fail to recover after a power cut on modern SLC and MLC flashes. This issue has not been observed on older SLC NANDs back at the time UBI/UBIFS was being developed. Note, the below text is quite old and has been written before the unstable bits issue has been first discovered."

    You can also read more about the "unstable bits" issue that the documentation covers. It seems that switching from what I'm guessing is an older 1-bit ECC SLC NAND to the newer NAND that requires 8-bit ECC, they are running into this very issue.

    Since this is an older Linux kernel used in Android, I'm also assuming the UBI/UBIFS is rather old as well. So, this is still a known issue, but any work to improve it in more recent revisions probably doesn't exist in the Android package.

    There are several links and discussions on the UBI/UBIFS mailing lists that might help validate and debug the problem, but this is beyond the scope of what TI supports. And, as implied by the documentation, there is not a verified fix at this time.

  • 你好!

           我们的问题还没有解决!当前的进展情况:

           ①部分板子存在uboot启动不了,将uboot分区的内容导出,发现其内容并没有损坏,通过串口加载uboot内容,发现系统可以运行起来,此现象无法解释?但是,uboot的异常原因应该与kernel,fs不相关。

           ②ubifs error文件系统存在问题的板子,通过分析发现,全部都是1~3个字节发生变化1-bit内容!

           ③还有一种情况:出厂调试没有问题,产品到客户现场开通调试,初次上电就启动不了!此现象将问题原因指向产品运输过程?目前我们在做振动试验?

           ④从硬件电路分析,我们CPU外围电路增加了SP706复位电路,通过电路波形分析,发现此复位电路会导致上电时序和电平的变化,在手动干扰MR引脚时,会导致复位引脚一直为低电平,锁死CPU,目前还在分析原因?

           请问:

           ①你们的uboot,kernel版本是多少?

           ②问题现象是什么?在哪些条件下可以复现问题?

          保持交流,谢谢!!

  • jinlei zhang 你好!

        感谢你对此问题的关注,我们使用的版本是:

              u-boot-2011.09-psp04.06.00.07

               linux-3.2.0-04.06.00.08

              看来你们问题分析的比我们要深入一些,我们目前遇到的问题只是出现于文件系统分区,uboot和内核分区还没有遇到被损坏的情况,

    我们也做了大量的测试和分析,包括更换文件系统类型和分区隔离,但是都没有效果。通过大量实验分析,nand芯片的问题可能性很大,我们的测试

    样本里有一部分经常出问题,而另一部分却一直没有出现过问题,我们的测试环境和条件都是一样的(1天掉电1500次左右),所以现在只能是先把问题定位到

    芯片本身,但为什么会有这么大的概率(大概30%),目前正在通过nand厂家来寻求帮助。

              如有需要可以加我的QQ:38902292,来加强交流,希望能早日解决此问题。

              到现在为止,网上与我交流此问题已经达到8人,感觉这款平台应该存在未知某些BUG,也希望Ti的技术支持能够参与进来,不要让大家失望!

  • 你好!

            我们用的uboot和kernel版本一样!

             从uboot无法启动的情况来看,问题原因指向FLASH问题的可能性非常大:我们发现很多存在问题的板子,其文件损坏仅仅1bit,此1bit损坏很可能是FLASH本身发生自变位引起,目前需要考虑:

           ①分析FLASH自变位的可能条件有哪些?进而复现&确认问题?

           ②由于是NAND-FLASH,也许其自变位是一种正常现象,那么,此问题的解决就要依赖uboot和kernel对FLASH纠错机制的合理性?需要与TI厂家一起探讨此问题!

         请问:

           ①我们的FLASH芯片型号为29F2G08ABAEA,贵公司的FLASH芯片型号是哪个?

     

  • Hi,

    UBI_FS文件系统是会校验的,NAND Flash在频繁读写下就会出问题。

    我们客户在现场使用1年以上才出现这个问题。

    我们原来有可以也出文件系统变只读的问题

    建议更换文件系统。

  • 你好,我们用的也是这个型号的片子。ECC校验是4bit的

  • 你好,我们换个Cramfs、Yaffs2、JFFS2,都不行~所以怀疑与芯片的关系大一些!

  • 我们也是这个问题啊,kernel 3.2.0,  uboot 2009.11。

    而且今天通过串口用 rx命令接收文件,导致了ubifs error的产生。

  • 有类似问题的,希望可以一起交流,麻花藤:454619501

  •  只读文件系统还是有问题,一般来说二种现象:一个是bad crc,文件系统都启动不了,还有一种启动后运行我的文件是Attached to slUBIFS error (pid 1012): ubifs_decompress: cannot decompress 2922 bytes, compressor lzo, error -22
    ave procId 0.
    PUBIFS error (pid 1012): read_block: bad data node (block 43, inode 756)
  • 此问题已解决,属于ECC纠错问题,请大家参考此贴http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/p/292431/1032684#pi317334=1

    去TI代码库更新nandflash驱动。

    更新后,生成新的内核镜像,烧录到文件系统出故障的设备中,设备运行正常。

  • 你好,我也遇到了这个问题,我看我的内核源码和你打补丁之后的是一样的。我的root部分是只读的,现在还没什么问题,我的用户数据区处于不稳定状态,有时能正常挂载,有时会出现[    4.389895] UBIFS: recovery needed
    [    4.543009] UBIFS error (pid 585): ubifs_read_node: bad node type (0 but expected 9)
    [    4.551141] UBIFS error (pid 585): ubifs_read_node: bad node at LEB 15:103152, LEB mapping status 1
    mount: mounting ubi1_0 on /weds failed: Invalid argument
    can't mount ubi1_0  这种问题还有时会出现ecc error错误,我用的是东芝的nand,不知道现在有没有好的解决办法?

  • 问题解决了吗?我们也遇到了类似的问题,希望能得到大家的帮助,谢谢!

  • 我们最终判断是东芝的nand不稳定的原因

  • liqin xiao您好,

     

    最近敝司也碰到类似的状况,

    关于您提到的:

    ----

    ②ubifs error文件系统存在问题的板子,通过分析发现,全部都是1~3个字节发生变化1-bit内容!

    ----

    请问是怎麽分析的?

     

    另外你最后提到:

    ----

    我们最终判断是东芝的nand不稳定的原因

    ----

    是怎麽得出这个结论的?

     

    谢谢。

  • 我们公司的am3352平台也遇到这个问题,请问解决了吗

  • 问题大概写一下: 

    SDK version: SDK6.0
    Flash 型号: S34ML02G200TFI00
    文件系统类型: UBI

    串口打印信息:

    U-Boot 2013.01.01 (Sep 18 2014 - 16:08:16)

    I2C: ready
    DRAM: 512 MiB
    WARNING: Caches not enabled
    NAND: 256 MiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
    musb-hdrc: MHDRC RTL version 2.0
    musb-hdrc: setup fifo_mode 4
    musb-hdrc: 28/31 max ep, 16384/16384 memory
    USB Peripheral mode controller at 47401000 using PIO, IRQ 0
    musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
    musb-hdrc: MHDRC RTL version 2.0
    musb-hdrc: setup fifo_mode 4
    musb-hdrc: 28/31 max ep, 16384/16384 memory
    USB Host mode controller at 47401800 using PIO, IRQ 0
    Net: cpsw, usb_ether
    Erasing Nand...
    Erasing at 0x260000 -- 100% complete.
    Writing to Nand... done
    Hit any key to stop autoboot: 0

    NAND read: device 0 offset 0x7080000, size 0x500000
    5242880 bytes read: OK
    ## Booting kernel from Legacy Image at 81000000 ...
    Image Name: Linux-3.2.0
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 3519520 Bytes = 3.4 MiB
    Load Address: 80008000
    Entry Point: 80008000
    Verifying Checksum ... OK
    Loading Kernel Image ... OK
    OK

    Starting kernel ...

    Uncompressing Linux... done, booting the kernel.
    [ 0.000000] Linux version 3.2.0 (root@ubuntu) (gcc version 4.7.3 20130226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03) ) #363 Fri May 6 09:51:05 CST 2016
    [ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
    [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [ 0.000000] Machine: am335xevm
    [ 0.000000] Memory policy: ECC disabled, Data cache writeback
    [ 0.000000] AM335X ES2.1 (neon )
    [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048
    [ 0.000000] Kernel command line: console=ttyO0,115200n8 noinitrd ip=off mem=512M rootwait=1 ro ubi.mtd=7,2048 rootfstype=ubifs root=ubi0:rootfs
    [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    [ 0.000000] Memory: 512MB = 512MB total
    [ 0.000000] Memory: 512656k/512656k available, 11632k reserved, 0K highmem
    [ 0.000000] Virtual kernel memory layout:
    [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
    [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
    [ 0.000000] vmalloc : 0xe0800000 - 0xff000000 ( 488 MB)
    [ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)
    [ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)
    [ 0.000000] .text : 0xc0008000 - 0xc0621000 (6244 kB)
    [ 0.000000] .init : 0xc0621000 - 0xc065b000 ( 232 kB)
    [ 0.000000] .data : 0xc065c000 - 0xc06c39a0 ( 415 kB)
    [ 0.000000] .bss : 0xc06c39c4 - 0xc06ed848 ( 168 kB)
    [ 0.000000] NR_IRQS:396
    [ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    [ 0.000000] Total of 128 interrupts on 1 active controller
    [ 0.000000] OMAP clockevent source: GPTIMER2 at 24000000 Hz
    [ 0.000000] omap_dm_timer_switch_src: Switching to HW default clocksource(sys_clkin_ck) for timer1, this may impact timekeeping in low power state
    [ 0.000000] OMAP clocksource: GPTIMER1 at 24000000 Hz
    [ 0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
    [ 0.000000] Console: colour dummy device 80x30
    [ 0.000207] Calibrating delay loop... 597.60 BogoMIPS (lpj=2988032)
    [ 0.056727] pid_max: default: 32768 minimum: 301
    [ 0.056870] Security Framework initialized
    [ 0.056974] Mount-cache hash table entries: 512
    [ 0.057372] CPU: Testing write buffer coherency: ok
    [ 0.078429] omap_hwmod: gfx: failed to hardreset
    [ 0.094911] omap_hwmod: pruss: failed to hardreset
    [ 0.096311] print_constraints: dummy:
    [ 0.096693] NET: Registered protocol family 16
    [ 0.099148] OMAP GPIO hardware version 0.1
    [ 0.101886] omap_mux_init: Add partition: #1: core, flags: 0
    [ 0.103921] omap_i2c.1: alias fck already exists
    [ 0.104893] omap2_mcspi.1: alias fck already exists
    [ 0.105136] omap2_mcspi.2: alias fck already exists
    [ 0.106186] edma.0: alias fck already exists
    [ 0.106211] edma.0: alias fck already exists
    [ 0.106232] edma.0: alias fck already exists
    [ 0.139418] bio: create slab <bio-0> at 0
    [ 0.141620] SCSI subsystem initialized
    [ 0.143439] usbcore: registered new interface driver usbfs
    [ 0.143793] usbcore: registered new interface driver hub
    [ 0.144024] usbcore: registered new device driver usb
    [ 0.144344] registerd cppi-dma Intr @ IRQ 17
    [ 0.144359] Cppi41 Init Done Qmgr-base(e087a000) dma-base(e0878000)
    [ 0.144371] Cppi41 Init Done
    [ 0.144401] musb-ti81xx musb-ti81xx: musb0, board_mode=0x11, plat_mode=0x1
    [ 0.144716] musb-ti81xx musb-ti81xx: musb1, board_mode=0x11, plat_mode=0x1
    [ 0.145998] omap_i2c omap_i2c.1: bus 1 rev2.4.0 at 100 kHz
    [ 0.147971] Advanced Linux Sound Architecture Driver Version 1.0.24.
    [ 0.149247] Switching to clocksource gp timer
    [ 0.167732] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
    [ 0.167880] musb-hdrc musb-hdrc.0: dma type: dma-cppi41
    [ 0.168228] MUSB0 controller's USBSS revision = 4ea20800
    [ 0.168766] musb-hdrc musb-hdrc.0: MUSB HDRC host driver
    [ 0.168891] musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 1
    [ 0.169036] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    [ 0.169054] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [ 0.169070] usb usb1: Product: MUSB HDRC host driver
    [ 0.169082] usb usb1: Manufacturer: Linux 3.2.0 musb-hcd
    [ 0.169094] usb usb1: SerialNumber: musb-hdrc.0
    [ 0.170110] hub 1-0:1.0: USB hub found
    [ 0.170144] hub 1-0:1.0: 1 port detected
    [ 0.170820] musb-hdrc musb-hdrc.0: USB Host mode controller at e083c000 using DMA, IRQ 18
    [ 0.171003] musb-hdrc musb-hdrc.1: dma type: dma-cppi41
    [ 0.171369] MUSB1 controller's USBSS revision = 4ea20800
    [ 0.171877] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
    [ 0.171930] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 2
    [ 0.172032] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
    [ 0.172049] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [ 0.172064] usb usb2: Product: MUSB HDRC host driver
    [ 0.172076] usb usb2: Manufacturer: Linux 3.2.0 musb-hcd
    [ 0.172088] usb usb2: SerialNumber: musb-hdrc.1
    [ 0.172993] hub 2-0:1.0: USB hub found
    [ 0.173023] hub 2-0:1.0: 1 port detected
    [ 0.173592] musb-hdrc musb-hdrc.1: USB Host mode controller at e083e800 using DMA, IRQ 19
    [ 0.174030] NET: Registered protocol family 2
    [ 0.174233] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
    [ 0.174654] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
    [ 0.175012] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
    [ 0.175219] TCP: Hash tables configured (established 16384 bind 16384)
    [ 0.175233] TCP reno registered
    [ 0.175248] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.175275] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.175549] NET: Registered protocol family 1
    [ 0.175845] NetWinder Floating Point Emulator V0.97 (double precision)
    [ 0.195352] VFS: Disk quotas dquot_6.5.2
    [ 0.195426] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    [ 0.195738] JFFS2 version 2.2. (NAND) (SUMMARY) 漏 2001-2006 Red Hat, Inc.
    [ 0.196070] JFS: nTxBlock = 4005, nTxLock = 32041
    [ 0.197651] NILFS version 2 loaded
    [ 0.197680] msgmni has been set to 1001
    [ 0.201724] alg: No test for stdrng (krng)
    [ 0.202450] io scheduler noop registered
    [ 0.202468] io scheduler deadline registered
    [ 0.202547] io scheduler cfq registered (default)
    [ 0.204013] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
    [ 0.835553] console [ttyO0] enabled
    [ 0.839990] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
    [ 0.847890] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
    [ 0.855832] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
    [ 0.863736] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
    [ 0.871632] omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
    [ 0.880062] omap4_rng omap4_rng: OMAP4 Random Number Generator ver. 2.00
    [ 0.897939] brd: module loaded
    [ 0.907048] loop: module loaded
    [ 0.910609] i2c-core: driver [tsl2550] using legacy suspend method
    [ 0.917116] i2c-core: driver [tsl2550] using legacy resume method
    [ 0.923609] at24 1-0050: 256 byte 24c02 EEPROM, writable, 2 bytes/write
    [ 0.935345] MAC: 0:f:1e:e5:16:4c
    [ 0.938832] The board is a AM335x Beaglebone Black.
    [ 0.944098] could not look up rtc
    [ 0.948166] ---nandflash--- init for Spansion driver
    [ 0.954078] omap-gpmc omap-gpmc: GPMC revision 6.0
    [ 0.959134] Registering NAND on CS0
    [ 0.963715] omap_hsmmc.0: alias fck already exists
    [ 0.969407] ---si4705--- i2c2 init for si470x driver register
    [ 0.975504] omap_i2c.2: alias fck already exists
    [ 0.980858] omap_i2c omap_i2c.2: bus 2 rev2.4.0 at 100 kHz
    [ 0.987032] omap_i2c.3: alias fck already exists
    [ 1.009347] omap_i2c omap_i2c.3: bus 3 rev2.4.0 at 100 kHz
    [ 1.015902] davinci-mcasp.0: alias fck already exists
    [ 1.021632] ---cs4334--- i2s driver register
    [ 1.029986] SSFDC read-only Flash Translation layer
    [ 1.035131] mtdoops: mtd device (mtddev=name/number) must be supplied
    [ 1.042634] omap2-nand driver initializing
    [ 1.047272] ONFI flash detected
    [ 1.050737] ONFI param page 0 valid
    [ 1.054416] NAND device: Manufacturer ID: 0x01, Chip ID: 0xda (AMD S34ML02G2)
    [ 1.062183] Creating 11 MTD partitions on "omap2-nand.0":
    [ 1.067884] 0x000000000000-0x000000020000 : "SPL"
    [ 1.074488] 0x000000020000-0x000000040000 : "SPL.backup1"
    [ 1.081686] 0x000000040000-0x000000060000 : "SPL.backup2"
    [ 1.088848] 0x000000060000-0x000000080000 : "SPL.backup3"
    [ 1.096075] 0x000000080000-0x000000260000 : "U-Boot"
    [ 1.103547] 0x000000260000-0x000000280000 : "U-Boot Env"
    [ 1.110565] 0x000000280000-0x000000c80000 : "Kernel1"
    [ 1.121429] 0x000000c80000-0x000007080000 : "rootfs1"
    [ 1.169781] 0x000007080000-0x000007a80000 : "Kernel2"
    [ 1.180685] 0x000007a80000-0x00000de80000 : "rootfs2"
    [ 1.229056] 0x00000de80000-0x000010000000 : "jffs2"
    [ 1.250075] OneNAND driver initializing
    [ 1.254856] UBI: attaching mtd7 to ubi0
    [ 1.258902] UBI: physical eraseblock size: 131072 bytes (128 KiB)
    [ 1.265534] UBI: logical eraseblock size: 126976 bytes
    [ 1.271227] UBI: smallest flash I/O unit: 2048
    [ 1.276178] UBI: VID header offset: 2048 (aligned 2048)
    [ 1.282509] UBI: data offset: 4096
    [ 2.118951] UBI: max. sequence number: 1316
    [ 2.137639] UBI: attached mtd7 to ubi0
    [ 2.141641] UBI: MTD device name: "rootfs1"
    [ 2.147055] UBI: MTD device size: 100 MiB
    [ 2.152292] UBI: number of good PEBs: 800
    [ 2.157152] UBI: number of bad PEBs: 0
    [ 2.161840] UBI: number of corrupted PEBs: 0
    [ 2.166519] UBI: max. allowed volumes: 128
    [ 2.171379] UBI: wear-leveling threshold: 4096
    [ 2.176329] UBI: number of internal volumes: 1
    [ 2.181017] UBI: number of user volumes: 1
    [ 2.185693] UBI: available PEBs: 0
    [ 2.190382] UBI: total number of reserved PEBs: 800
    [ 2.195517] UBI: number of PEBs reserved for bad PEB handling: 8
    [ 2.201850] UBI: max/mean erase counter: 3/1
    [ 2.206338] UBI: image sequence number: 1378019605
    [ 2.211983] UBI: background thread "ubi_bgt0d" started, PID 603
    [ 2.219689] tun: Universal TUN/TAP device driver, 1.6
    [ 2.225010] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
    [ 2.279336] davinci_mdio davinci_mdio.0: davinci mdio revision 1.6
    [ 2.285858] davinci_mdio davinci_mdio.0: detected phy mask ffffff7a
    [ 2.294457] davinci_mdio.0: probed
    [ 2.298043] davinci_mdio davinci_mdio.0: phy[0]: device 0:00, driver RTL8211E Gigabit Ethernet
    [ 2.307140] davinci_mdio davinci_mdio.0: phy[2]: device 0:02, driver RTL8211E Gigabit Ethernet
    [ 2.316222] davinci_mdio davinci_mdio.0: phy[7]: device 0:07, driver RTL8211E Gigabit Ethernet
    [ 2.325459] PPP generic driver version 2.4.2
    [ 2.330410] PPP BSD Compression module registered
    [ 2.335365] PPP Deflate Compression module registered
    [ 2.341459] PPP MPPE Compression module registered
    [ 2.346508] NET: Registered protocol family 24
    [ 2.351564] usbcore: registered new interface driver zd1201
    [ 2.357889] usbcore: registered new interface driver hwa-rc
    [ 2.364792] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    [ 2.372141] usbcore: registered new interface driver hwa-hc
    [ 2.378261] usbcore: registered new interface driver cdc_wdm
    [ 2.384436] usbcore: registered new interface driver uas
    [ 2.390050] Initializing USB Mass Storage driver...
    [ 2.395460] usbcore: registered new interface driver usb-storage
    [ 2.401810] USB Mass Storage support registered.
    [ 2.407088] usbcore: registered new interface driver usbserial
    [ 2.413422] USB Serial support registered for generic
    [ 2.418921] usbcore: registered new interface driver usbserial_generic
    [ 2.425816] usbserial: USB Serial Driver core
    [ 2.430566] USB Serial support registered for GSM modem (1-port)
    [ 2.437222] usbcore: registered new interface driver option
    [ 2.443107] option: v0.7.2:USB Driver for GSM modems
    [ 2.448828] mousedev: PS/2 mouse device common for all mice
    [ 2.455270] i2c /dev entries driver
    [ 2.459906] Linux video capture interface: v2.00
    [ 2.469131] OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    [ 2.476137] cpuidle: using governor ladder
    [ 2.481048] cpuidle: using governor menu
    [ 2.487674] omap4_aes_mod_init: loading AM33X AES driver
    [ 2.493421] omap4-aes omap4-aes: AM33X AES hw accel rev: 3.02
    [ 2.500057] omap4_aes_probe: probe() done
    [ 2.504530] omap4_sham_mod_init: loading AM33X SHA/MD5 driver
    [ 2.510743] omap4-sham omap4-sham: AM33X SHA/MD5 hw accel rev: 4.03
    [ 2.523071] omap4_sham_probe: probe() done
    [ 2.530248] usbcore: registered new interface driver usbhid
    [ 2.536125] usbhid: USB HID core driver
    [ 2.541130] tiadc tiadc: attached adc driver
    [ 2.546471] usbcore: registered new interface driver snd-usb-audio
    [ 2.553254] usbcore: registered new interface driver snd-ua101
    [ 2.560295] cs4334 cs4334: setting sysclk to 12288000Hz
    [ 2.566894] CS4334 SoC Audio Codec 0.1
    [ 2.571717] asoc: cs4334-hifi <-> davinci-mcasp.0 mapping ok
    [ 2.580469] ALSA device list:
    [ 2.583598] #0: AM335X EVM
    [ 2.586626] oprofile: hardware counters not available
    [ 2.591965] oprofile: using timer interrupt.
    [ 2.596636] nf_conntrack version 0.5.0 (8010 buckets, 32040 max)
    [ 2.603466] ip_tables: (C) 2000-2006 Netfilter Core Team
    [ 2.609189] TCP cubic registered
    [ 2.612615] Initializing XFRM netlink socket
    [ 2.617137] NET: Registered protocol family 17
    [ 2.621844] 8021q: 802.1Q VLAN Support v1.8
    [ 2.626269] Registering the dns_resolver key type
    [ 2.631300] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [ 2.639394] ThumbEE CPU extension supported.
    [ 2.643951] mux: Failed to setup hwmod io irq -22
    [ 2.649651] Power Management for AM33XX family
    [ 2.654542] Trying to load am335x-pm-firmware.bin (60 secs timeout)
    [ 2.661296] Copied the M3 firmware to UMEM
    [ 2.665697] Cortex M3 Firmware Version = 0x181
    [ 2.670993] sr_init: platform driver register failed
    [ 2.679962] clock: disabling unused clocks to save power
    [ 2.699210] Detected MACID=0:f:1e:e5:16:4c
    [ 2.704804] cpsw: Detected MACID = 20:0f:1e:e5:16:4c
    [ 2.711235] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
    [ 2.781653] UBIFS: recovery needed
    [ 2.869239] UBIFS error (pid 1): ubifs_check_node: bad CRC: calculated 0xec56aed4, read 0xb2ed373c
    [ 2.878698] UBIFS error (pid 1): ubifs_check_node: bad node at LEB 298:5464
    [ 2.886042] UBIFS error (pid 1): ubifs_scanned_corruption: corruption at LEB 298:5464
    [ 2.902044] UBIFS error (pid 1): ubifs_scan: LEB 298 scanning failed
    [ 2.909534] VFS: Cannot open root device "ubi0:rootfs" or unknown-block(0,0)
    [ 2.916961] Please append a correct "root=" boot option; here are the available partitions:
    [ 2.925817] 1f00 128 mtdblock0 (driver?)
    [ 2.931159] 1f01 128 mtdblock1 (driver?)
    [ 2.936484] 1f02 128 mtdblock2 (driver?)
    [ 2.941822] 1f03 128 mtdblock3 (driver?)
    [ 2.947145] 1f04 1920 mtdblock4 (driver?)
    [ 2.952480] 1f05 128 mtdblock5 (driver?)
    [ 2.957805] 1f06 10240 mtdblock6 (driver?)
    [ 2.963142] 1f07 102400 mtdblock7 (driver?)
    [ 2.968466] 1f08 10240 mtdblock8 (driver?)
    [ 2.973801] 1f09 102400 mtdblock9 (driver?)
    [ 2.979124] 1f0a 34304 mtdblock10 (driver?)
    [ 2.984551] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
    [ 2.993261] Backtrace:
    [ 2.995876] [<c0017dbc>] (dump_backtrace+0x0/0x10c) from [<c046f458>] (dump_stack+0x18/0x1c)
    [ 3.004777] r6:00008001 r5:c0573ae8 r4:c06c6688 r3:c067e60c
    [ 3.010775] [<c046f440>] (dump_stack+0x0/0x1c) from [<c046f654>] (panic+0x64/0x194)
    [ 3.018855] [<c046f5f0>] (panic+0x0/0x194) from [<c0621c58>] (mount_block_root+0x1d4/0x294)
    [ 3.027657] r3:00000004 r2:00000000 r1:df02df68 r0:c0573ae8
    [ 3.033641] r7:c06518a8
    [ 3.036319] [<c0621a84>] (mount_block_root+0x0/0x294) from [<c0621f04>] (prepare_namespace+0x94/0x1c0)
    [ 3.046148] [<c0621e70>] (prepare_namespace+0x0/0x1c0) from [<c06218fc>] (kernel_init+0xf4/0x120)
    [ 3.055501] r5:c065a5e8 r4:c065a5e8
    [ 3.059304] [<c0621808>] (kernel_init+0x0/0x120) from [<c004117c>] (do_exit+0x0/0x65c)
    [ 3.067638] r5:c0621808 r4:00000000



  • 这个应该是没有找到文件系统,一般有两个原因,一是文件系统盘没装好,另一个是运行后受损,我目前能够想到的办法就是,将重要文件单独分区,经常写的部分单独分区,此分区坏了可以重新格式化或者丢掉什么的

  • 李工,

    出现这种问题,一般是异常断电的时候文件系统崩溃了。

    目前有些客户会反馈这个问题,有些则没有。

    这个问题和系统设计有关,有些是板级干扰导致的,有些是NAND本身的问题。短期解决办法就是把根文件系统做成只读的。

    从根本上杜绝这个问题,就是在系统设计中,加入掉电检测,然后用超级电容维持一段时间让系统正常下电。

  • 你这里提到的解决办法,我早都试过了,不能解决问题,还是得从nand驱动或ECC入手!希望TI能够重视此问题,

    为大家提供一个稳妥的解决方案!

  • 这个问题要从电源稳定性和存储芯片方面查查,应为我们在使用这个料没法发现这个问题

  • @Dai qy

    你是在哪个版本的SDK上做的掉电测试?

  • @Jian Zhou,你好,我们的内核版本是linux-3.2.0-04.06.00.08,Uboot版本是u-boot-2011.09-psp04.06.00.07

  • 这个版本有点老了,是12年的版本,建议在AM335x上的最新SDK版本上做一个专项测试。

  • Hi,@Jian Zhou 你好:

          我们的这个产品也是12年开始研发的,目前项目已经定型,有很多定制开发的设备驱动,

    如果采用新的内核,不知道移植工作量大不大?而且还需要投入人力、物力来进行稳定性测试。

    估计实施起来很有难度。不知道有什么简单Patch可以快速升级没有?

  • 你好,请问你的是怎么测试的?我制作了一个yaffs2的利用mtd_pagetest.ko,mtd_readtest.ko等测试模块测试并没有测试出崩溃的信息现象。

  • 请问,你的设备运行正常后,有没有进行掉电测试或者其它方面的测试,毕竟很多人遇到了这个问题。

  • 您好,请问最终有解决这个问题吗?

  • 一模一样的平台,一模一样的故障现象
    我们的设备sqlite有每天2w条记录的写入,不知道算不算频繁,对flash有没有影响?
    也有不干净的断电。
  • 还是没有彻底解决!
  • 你好,我最近调DM368,也遇到了和楼主一模一样的问题,为了解决这问题,我将flash分成了数据区和文件系统区。文件系统是只读的,数据区可读写。可是板子放一个月左右还是出现问题。做过5万次的断电重启草操作也没有出问题

    请问这个问题解决了吗? 谢谢!

  • 你好,我最近调DM368,也遇到了和楼主一模一样的问题,为了解决这问题,我将flash分成了数据区和文件系统区。文件系统是只读的,数据区可读写。可是板子放一个月左右还是出现问题。做过5万次的断电重启草操作也没有出问题

    请问这个问题解决了吗? 谢谢!
  • 是TI 的nandflash 驱动的ECC校验有bug ,找官方的补丁。

  •  有这个补丁释出了吗?有链接吗?

    如果有的话,估计最新的SDK应该合并进去了