加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

u-boot-2011.03在mini2440/micro2440上的移植(六)——支持yaff

发布时间:2020-12-15 18:46:22 所属栏目:百科 来源:网络整理
导读:6.1 include/conskfigs/micro2440.h 添加 #define CONFIG_CMD_NAND_YAFFS ? 【说明】 本人在阅读cmd_nand.c时发现u-boot-2011.03已经支持yaffs写入,只需添加如上定义即可,但实际写入错误,再阅读源代码,发现只要按下一步修改即可,虽然这是 最简单 的方法

6.1 include/conskfigs/micro2440.h

添加
#define CONFIG_CMD_NAND_YAFFS

?

【说明】

本人在阅读cmd_nand.c时发现u-boot-2011.03已经支持yaffs写入,只需添加如上定义即可,但实际写入错误,再阅读源代码,发现只要按下一步修改即可,虽然这是最简单的方法,但似乎并不是最优的方法。

6.2 drivers/mtd/nand/nand_util.c

int nand_write_skip_bad(nand_info_t *nand,loff_t offset,size_t *length,
???u_char *buffer,int withoob)
{
?……
?if (need_skip < 0) {
??printf ("Attempt to write outside the flash area/n");
??*length = 0;
??return -EINVAL;
?}

?if (!need_skip?&& !withoob) {
?……
?}

?while (left_to_write > 0) {
??……
#ifdef CONFIG_CMD_NAND_YAFFS
??if (withoob) {
???……
???ops.len = pagesize;
???ops.ooblen = nand->oobsize;
???ops.mode =?MTD_OOB_RAW;
???ops.ooboffs = 0;

???pages = write_size / pagesize_oob;
???for (page = 0; page < pages; page++) {
????ops.datbuf = p_buffer;
????ops.oobbuf = ops.datbuf + pagesize;

????rval = nand->write_oob(nand,offset,&ops);
???if (rval)
?????break;

????offset += pagesize;
????p_buffer += pagesize_oob;
???}
??}
??……
}

?

6.3 下载yaffs镜像

下载yaffs镜像的时候要注意分区的第一块不能写,比如友善之臂的默认分区如下:

Number of partitions: 4
name??????????? :?????? offset????????? size??????????? flag
------------------------------------------------------------
vivi??????????? :?????? 0x00000000????? 0x00040000????? 0
param?????????? :?????? 0x00040000????? 0x00020000????? 0
kernel????????? :?????? 0x00060000????? 0x00500000????? 0
root??????????? :???????0x00560000????? 0x3fa80000????? 0

也就是说yaffs镜像所在分区的起始地址在0x560000,因此使用nand write.yaffs命令下载yaffs时要写的地址为0x560000 + 0x20000 (Nand Flash每块的大小)= 0x580000,即下载命令类似如下

tftp 0x30008000 uImage

nand write.yaffs 0x30008000?0x580000?0x300000

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读