u-boot nand读写问题

帅得不敢出门
博客专家认证
2010-02-25 09:14:18
u-boot 1.1.15
kernel 2.6.23.17
mkyaffsimage源码为最新的
jffs2用mkfs.jffs2
根据
http://blog.csdn.net/arriod/archive/2008/07/31/2743064.aspx
修改 在u-boot中加入了yaffs2系统烧写功能
但是不管是yaffs yaffs2 jffs2用u-boot的nand write.xxx命令都无法正确写入数据
用内核的nand write写jffs2可以正确写入但是写yaffs yaffs2也不正确
后来又修改了mkyaffsimage.c的源码
根据http://blog.csdn.net/lanmanck/archive/2009/07/17/4356242.aspx
依然不行
后来又根据
http://www.unixresources.net/linux/clf/embedded/archive/00/00/68/60/686030.html
修改还是不行
也试过u-boot用NAND_ECC_NONE kernel用NAND_ECC_NONE开yaffs的ecc 似乎都米有作用

不知道大家知道还有用啥补丁?
...全文
1148 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingleqq 2010-05-17
  • 打赏
  • 举报
回复
我也有同样的问题,楼主可以说的明白点吗??或者给出关键性的代码。
帅得不敢出门 2010-03-07
  • 打赏
  • 举报
回复
自己解决了
在u-boot中加上necc=1
mkyaffsimag.c
mkyaffs2imag.c
分别修改write_chunk
mkyaffsimag.c 使用新的xxPackTag1结构(咋拼我忘了),这样内核(新的)与yaffs oob结构才会匹配
mkyaffs2imag.c 把xxpackTag2结构后移2byte 因kernel oob 最低两byte不使用,oobfree从低3byte开始共占38byte 从39开始为eccspace
pottichu 2010-03-01
  • 打赏
  • 举报
回复
老兄阿, 烧个 yaffs 不用那么麻烦。
你直接用 nfs 启动, 格式化(擦除) mtd 分区, 然后把分区mount 上来,
直接把文件系统 copy 进去就得了, 连做 yaffs2 包这一步都省了。

另外对于不同的 flash , mkyaffsimage 是有区别的, 因为块的大小不一样,

128MB 以下容量 NAND FLASH 芯片的一页大小为 528 字节,用来存放数据,另外每一页还有 16 字节的备用空间( SpareData,OOB ),用来存储 ECC 校验 / 坏块标志等信息,再由若干页组成一个块,通常一块为 32 页 16K 。以前的 nand flash 的

Pagesize 页大小,多为 512B+16B 的 oob , block 大小为 64* ( 512B+16B ) =32KB+1KB

现在目前市场上见到的,绝大多数,都是新的 nand falsh ,其 Pagesize 页大小多为 2KB+64B 的 oob , block 大小多为 64pages 页 =64* ( 2K+64B ) =128KB+4KB ,一个 nand flash 中的芯片,一般含有 4096 个块,比如 samsung 的 K9F4G08U0M ,所以这个 nand flash 大小就是

4096 Blocks = 4096 * 64 * ( 2K+64B ) =512MB

即:

1 Page = (2K + 64)Bytes

1 Block = (2K + 64)B x 64 Pages

= (128K + 4K) Bytes

1 Device = (2K+64)B x 64Pages x 4,096 Blocks

= 4,224 Mbits =512MB
Wenxy1 2010-03-01
  • 打赏
  • 举报
回复
对,有些flash对文件系统的支持不好,例如有些flash IC支持yaffs,但不支持yaffs2.
JassonRose 2010-03-01
  • 打赏
  • 举报
回复
仔细看下你用的Flash的Datasheet。还有你所用的uboot是否支持这种FLASH
帅得不敢出门 2010-02-25
  • 打赏
  • 举报
回复
nand 128M 8bit
板子 sh

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧