打印

nand flash 写入文件问题

[复制链接]
356|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
喷水壶|  楼主 | 2018-8-24 16:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在调试nand flash时遇到这样一个奇怪问题,发帖求助一下,请各位大神帮忙分析一下:

  环境:   

                CPU0:  P2020E, Version: 2.1, (0x80ea0021)

                Core:  E500, Version: 5.1, (0x80211051)

                CPU0:800  MHz, CPU1:800  MHz,

                uboot 2011.09   +  linux 3.1.2  

   Nand Flash:      K9K8G08UOE-SCBO  

   片选BR6/OR6:     0xdff0c21/0xFFFC7FE





NAND device: Manufacturer ID: 0xec, Chip ID: 0xd3 (Samsung NAND 1GiB 3,3V 8-bit) Options: 1431d

Creating 4 MTD partitions on "dff00000.flash":

0x000000000000-0x000010000000 : "data0"

ftl_cs: FTL header not found.

0x000010000000-0x000020000000 : "data1"

ftl_cs: FTL header not found.

0x000020000000-0x000030000000 : "data2"

ftl_cs: FTL header not found.

0x000030000000-0x000040000000 : "data3"

ftl_cs: FTL header not found.

eLBC NAND device at 0xdff00000, bank 6



  

linux下:

     mkfs.jffs2  -b -o rootfs.jffs2 -r jffs2/  -p -s 0x800 -e 0x20000  -n

     flash_eraseall  /dev/mtd/mtd6

     dd if=rootfs.jffs2 of=/dev/mtdblock/mtdblock6

             256+0 records in

             256+0 records out

             131072 bytes (131 kB) copied, 1.24495 s, 105 kB/s



     mount -t jffs2 /dev/mtdblock/mtdblock6 /mnt



  这些步骤都没有问题,读映射后的目录/mnt 中文件也没有问题,但是往里面拷贝文件就报错了,

    cp  rootfs.jffs2  /mnt

fsl-lbc fffe05000.localbus: Parity or Uncorrectable ECC error: LTESR 0x20000001

jffs2_flush_wbuf(): Write failed with -5

Write of 1966 bytes at 0x0000a074 failed. returned -5, retlen 0

Not marking the space at 0x0000a074 as dirty because the flash driver returned retlen zero



  经过加打印,发现数据只有部分写进去了,

nand_do_write_ops:02216=>realpage 20 page 20 blockmask 63 pagebuf 19

nand_do_write_ops:02229=>writelen 2048 bytes 2048 cached 0 wbuf df21f800

nand_do_write_ops:02250=>page 20 cached 0 mode 0 oob   (null)



orig data comp:

19 85 e0 02 00 00 00 44 a4 ef 22 3e 00 00 00 03

00 00 00 01 00 00 81 ed 00 00 00 00 00 00 00 00

00 00 01 27 00 00 01 27 00 00 01 27 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

error data:

19 85 ff ff 00 00 ff ff a4 ef ff ff ff ff ff ff

00 00 ff ff 00 00 ff ff 00 00 00 00 00 00 00 00

00 00 ff ff 00 00 01 27 ff ff ff ff ff ff 00 00

00 00 ff ff ff ff ff ff ff ff ff ff 00 00 00 00







用nanddump /dev/mtd/mtd6 -s 0x2800  -n -p -l 0x800 -o 看确实该page内容只有部分写进去了。而看用dd写进去的内容却是正确的。 他们都调用

nand_write_page函数来写flash的,传入的参数也差不多,但就是dd能写进去,cp不行。



请各位大神支支招。




flash

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

433

主题

437

帖子

0

粉丝