- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于大页面nand flashvivi移植
基于大页面nand flashvivi移植
摘 要:介绍了基于大页面nand flash的vivi移植方法。对vivi中与nand flash有关的操作作了较为详细的分析,并就如何将vivi移植到配有大页面nand的开发板中作了分析,指出了vivi源码中需要修改的地方。为需要移植vivi bootloader的开发人员提供了可行的参考。
关键词:大页面;nand flash;vivi??
中图分类号:TP311.52 文献标识码:A 文章编号:1672-7800(2011)011-0129-03?お?
??
1 nand flash简介??
1.1 常见nand flash的大小和参数??
以前的nand flash的pagesize(页大小),多为512B+16B的OOB(out of band),block大小为 64*(512B+16B)=32KB+1KB;现在的nand flash多为2048B+64B的OOB,block大小为64*(2048B+64B)=128KB+4KB。??
1.2 spare area/oob??
这块区域的主要用途有:①标记是否坏块;②存储ECC校验数据;③存储一些和文件系统有关的数据,如yaffs2就会利用这个空间存储相关数据。??
1.3 nand flash的特点??
(1)nand flash写的最小单位是页page,擦除的最小单位是block;??
(2)写入数据之前必须先进行擦除操作;??
(3)nand flash的读写容易出错,所以最好在读写过程中做ecc校验;??
(4)nand flash出厂时一般都有坏块,在oob区域有坏块标记,如512B页面大小的flash的坏块标记存放在oob的第6个字节,而2048B页面大小的则存放在oob的第1个字节,写镜像时需要注意这些坏块标记。??
1.4 大页面与小页面nand操作上的主要差别??
主要是读写指令上的差别:①小页面的读指令有3种:00h、01h、50h分别指向前256B、后256B、oob区域,之后写入地址,然后便可读数据。大页面的读指令是先写入00h,再写入地址,接着写入30h,然后才能读数据;②小页面的写指令有3种组合:00h+80h+10h、01h+80h+10h、50h+80h+10h,在80h与10h之间先写入地址,然后写入数据;而大页面的写指令就是先写入80h,再写入地址及数据,最后写入10h终止写操作。??
2 vivi简析??
vivi为一款基于s3c2410芯片的bootloader,其基本原理可参考。其源码基于小页面nand,所以要移植到配有大页面nand的开发板中需要对其进行修改。??
2.1 vivi对内存及nand flash的划分??
如图1,图2所示。??
2.2 vivi常用命令的分析??
(1)part命令:①part del/add…均是对内存中mtd_part中的数据进行操作;②part reset将内存中存放的初始值default_mtd_partitions的内容重新读入内存的mtd_part中;③part save则将内存中vivi_priv中的数据全部写入param块;如果没有使用param块,则这些数据将存入以VIVI_PRIV_ROM_BASE为起始偏移的48k大小的nand中。??
(2)param命令:①param set…:如果是param set linux_cmd_line ...则将...复制到内存的vivi_priv中的linux_cmd_line处;如果不是linux_cmd_line则在内存中的parameter_tlb中搜索名字,若找到则将其对应的值修改为当前值;②param reset则将内存中存放的初始值default_vivi_parameters重新读入内存的param_tlb中,将内存中存放的初始值linux_cmd重新读入内存的linux_cmd中;③param save则将当前内存中vivi_priv中的数据存入nand的param块中。??
(3)load命令:load flash…命令最终将调用write_to_nand:当part的flag不是bon_fs时将首先擦除part所在块(nand_erase),然后写入(nand_write);若是bon_fs则先调用read_bon_partition,然后调用write_bon_image写入镜像。 ??
(4)boot命令:①boot命令将从默认的media_type=中的kernel部分启动内核;②boot smc及
您可能关注的文档
最近下载
- 小学二年级数学一单元检测卷.doc VIP
- 2025中国农业银行秋招发布时间笔试备考题库及答案解析.docx VIP
- 三级医院评审医技组药事检查手册.ppt VIP
- 2024年昆仑物流有限公司秋季高校毕业生招聘45人笔试参考题库附带答案详解.pdf
- yc-ii22 路十路口说明书.doc VIP
- 北京恒安卫士协议书.docx VIP
- T_CPSS 1003-2023 直流散热风扇通用性能测试规范 .docx VIP
- 10.2 我们与法律同行 课件(共22张PPT)2025年统编版道德与法治七年级下册.pptx VIP
- 护理查房制度理论知识考核试题及答案.docx VIP
- 房屋市政工程安全生产标准化指导图册(2025版).pptx
原创力文档


文档评论(0)