通过修改u-boot-1.1.4中的部分程序可以顺利生成u-boot.bin,但是由于uboot的源码是不支持NAND flash启动的,由于实验室的板子上没有Nor Flash所以必须修改uboot的部分源码使得uboot支持从NAND Flash启动。
有两种方法可以使uboot支持从NAND flash启动,一种是自己修改源码,一种是给官方的uboot的打补丁。
打补丁的方法比较简单,这里先介绍下如何使用打补丁的方法移植uboot,对于修改源码的方法到目前为止还没调试通过。
1.找到一个正确的补丁是至关重要的,我这里有一个针对u-boot-1.1.4的补丁。
2.假设补丁文件放置在/home目录下,进入u-boot-1.1.4的目录,然后使用如下命令打补丁:
patch -Np1 -i /home/u-boot-1.1.4-nandboot.patch
3.打好补丁后即可构建属于自己的u-boot,这里我们给其取名为lining2410。首先修改u-boot-1.1.4目录下的Makefile文件。在其中添加如下内容:
lining2410_config : unconfig
@./mkconfig $(@:_config=) arm arm920t lining2410 NULL s3c24x0
其中lining2410_config : unconfig的意意思是为lining2410开发板建立一个编译项;第二行中arm的意思是CPU的架构师基于ARM体系的;arm920t的意思是CPU的类型是arm920t;lining2410的意思是开发板的型号;NULL的意思是开发者的名称为空;s3c24x0的意思是基于s3c24x0的片上系统。
4.建立lining2410开发板目录
在board下建立lining2410开发板子目录,由于lining2410的开发板最接近smdk2410的开发板,所以可以用下面的命令建立lining2410开发板的目录,在/u-boot-1.1.4/board目录下使用如下命令:
cp -fr ./smdk2410 ./lining2410
cd lining2410
mv smdk2410.c lining2410.c
同时需要修改/board/lining2410目录下的Makefile文件,修改内容如下:
将OBJS := smdk410.o flash.o nand_read.o修改成
OBJS := lining2410.o flash.o nand_read.o
5.在/u-boot-1.1.4/include/configs目录下建立lining2410.h头文件,进入/u-boot-1.1.4/include/configs目录后命令行如下:
cp -fr smdk2410.h lining2410.h
6.在lining2410.h 文件中修改 #define CFG_PROMPT "lining2410 #"
7.到此即可进行编译。编译命令如下:
make distclean
make lining2410_config
make all ARCH=ARM CROSS_COMPILE=arm-linux-
阅读(1417) | 评论(0) | 转发(0) |