查看: 1962|回复: 1

[其他] p2020 下nand flash下写文件问题

[复制链接]

该用户从未签到

1

主题

2

帖子

0

新手上路

Rank: 1

积分
13
最后登录
2015-7-16
发表于 2015-7-13 11:45:08 | 显示全部楼层 |阅读模式
在调试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不行。

请各位大神支支招。




我知道答案 目前已有1人回答

评分

参与人数 1NXP金币 +10 收起 理由
小七 + 10 有点复杂

查看全部评分

回复

使用道具 举报

该用户从未签到

40

主题

212

帖子

0

高级会员

Rank: 4

积分
618
最后登录
1970-1-1
发表于 2015-7-13 16:28:23 | 显示全部楼层
没有看明白
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-20 13:27 , Processed in 0.146541 second(s), 23 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表