移植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

猜你喜欢

转载自blog.csdn.net/qq_22863733/article/details/79075956