目前u-boot-2010.09对很多CPU直接支持,可以查看board目录的一些子目录,如:board/samsung/目录下就是对三星一些ARM处理器的支持,有smdk2400、smdk2410和smdk6400,但没有6410,所以我们就在这里建立自己的开发板项目。
本文章仅供技术交流请勿商用,转载请注明地址:http://blog.csdn.net/muge0913/article/details/7167599
1)因6410和6400的资源差不多,主频和外设有点差别,所以我们就在board/samsung/下建立自己开发板的项目,取名叫th6410
#tar -jxvf u-boot-2010.09.tar.bz2 //解压源码 #cd u-boot-2010.09/board/samsung/ //进入目录 #mkdir th6410 //创建th6410文件夹
2)因6410和6400的资源差不多,所以就以6400项目的代码作为模板,以后再修改
#cp -rf smdk6400/* th6410/ //将6400下所有的代码复制到6410下 #cd th6410 //进入th6410目录 #mv smdk6400.c th6410.c //将th6410下的smdk6400.c改名为th6410.c #vim /Makefile //修改th6410下Makefile的编译项,如下: COBJS := th6410.o //因在th6410下我们将smdk6400.c改名为th6410.c
#cd ../../../ //回到u-boot根目录 #cp include/configs/smdk6400.h include/configs/th6410.h //建立th6410头文件
3)修改u-boot跟目录下的Makefile文件。查找到smdk6400_config的地方,在他下面按照smdk6400_config的格式建立th6410_config的编译选项,另外还要指定交叉编译器
vim Makefile
指定交叉编译工具,找到CROSS_COMPILE?=在等号后面添加arm-linux-
:/CROSS CROSS_COMPILE ?=arm-linux- export CROSS_COMPILE th6410_noUSB_config / th6410_config : unconfig @mkdir -p $(obj)include $(obj)board/samsung/th6410 @mkdir -p $(obj)nand_spl/board/samsung/th6410 @echo "#define CONFIG_NAND_U_BOOT" >$(obj)include/config.h @echo "CONFIG_NAND_U_BOOT = y" >>$(obj)include/config.mk @if [ -z "$(findstring th6410_noUSB_config,$@)" ];then / echo "RAM_TEXT = 0x57e00000">> $(obj)board/samsung/th6410/config.tmp;/ else / echo "RAM_TEXT = 0xc7e00000">> $(obj)board/samsung/th6410/config.tmp;/ fi @$(MKCONFIG) th6410 arm arm1176 smdk6410 samsung s3c64xx @echo "CONFIG_NAND_U_BOOT = y" >>$(obj)include/config.mk
注:*说明:arm :CPU的架构(ARCH)
arm1176:CPU的类型
smdk6410 :对应在board目录下建立新的开发板项目的目录
samsung:新开发板项目目录的上级目录,如直接在board下建立新的开发板项目的目录,则这里就为NULL
s3c64xx:CPU型号
*注意:编译选项格式的第二行要用Tab键开始,否则编译会出错
4)
1、从U-boot根目录,进入nand_spl/board/samsung/
cd nand_spl/board/samsung/
2、新建目录th6410并将smdk6400下的所有文件复制到th6410中
mkdir th6410 cp -ar smdk6400/* th6410/
4)测试编译新建的th6410开发板项目
#make th6410_config ARCH=arm//如果出现Configuring for th6410 board...则表示设置正确 #make ARCH=arm //编译后在根目录下会出现u-boot.bin文件,则u-boot移植的第一步就算完成了
到此为止,u-boot对自己的th6410开发板还没有任何用处,以上的移植只是搭建了一个th6410开发板u-boot的框架,要使其功能实现,还要根据th6410开发板的具体资源情况来对u-boot源码进行修改。
本文章仅供技术交流请勿商用,转载请注明地址:http://blog.csdn.net/muge0913/article/details/7167599