移植uboot(支持yaffs2及制作补丁)

支持yaffs2:
进入include/configs  smdk2444.h,加上:
#define CONFIG_CMD_NAND_YAFFS

/drivers/mtd/nand nand_util 修改一处逻辑错误,否则会导致只烧写一页数据:

567行:把if(!rval)改为:if(rval)

烧写的时候用 nand wirte.yaffs2

556行:把ops.mode = MTD_OOB_AUTO;
改为:ops.mode = MTD_OOB_RAN;(原始的OOB,源文件是什么OOB,写入nand中就是什么OOB)

nand_util.c:518行:
//if (!need_skip && !(flags & WITH_DROP_FFS)) {

改为:if (!need_skip && !(flags & WITH_DROP_FFS) && !(flags & WITH_YAFFS_OOB)) {

用nand dump 检测根文件系统映像写进nand的内容是正确的,
dump出来的内容与UltraEdit打开的映像文件的内容不符,则首先解决uboot烧写yaffs的问题。
启动yaffs根文件系统,启动参数要把 rootfstype=jffs2去掉,否则无法正确启动。
一期原来的uboot是不能正确烧写yaffs根文件的。

nand 数据查看命令:如: nand dump 26000,


制作补丁:

make disclean
rm u-boot.dis
仅保留修改后的源码,要与没经修改的源码比较
把修改后的源码目录改为:mv u-boot-2012.04.01 u-boot-2012.04.01_100ask
得到源码目录:tar xjf u-boot-2012.04.01.tar.bz2
生成补丁:diff -urN u-boot-2012.04.01 u-boot-2012.04.01_100ask > u-boot-2012.04.01_100ask.patch 

补丁文件的使用:(即使用补丁修改没经修改过的源代码)

book@book-desktop:/work/system$cd u-boot-2012.04.01
book@book-desktop:/work/system/u-boot-2012.04.01$patch -p1 < ../u-boot-2012.04.01_100ask.patch
book@book-desktop:/work/system/u-boot-2012.04.01$make smdk2440_config
book@book-desktop:/work/system/u-boot-2012.04.01$make
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值