2011年(9)
分类: LINUX
2011-11-22 23:52:21
u-boot 版本为 2011.03
步骤1
在移植中首先用
tar -jxvf u-boot-latest.tar.bz2
解压到自己的目录下
步骤2
然后进入u-boot-2011.03文件夹
cd u-boot-2011.03/board/samsung/
建立smdk6410文件夹
mkdir smdk6410
复制6400文件夹下的所有代码到6410下
cp -rf smdk6400/* smdk6410
进入smdk6410
cd smdk6410
将smdk6400_and_spl.c和smdk6400.c改为
smdk6410_and_spl.c和smdk6410.c
打开smdk6410中的Makefile
将COBJS-y := smdk6400.o
改为COBJS-y := smdk6410.o
打开board/samsung/smdk6410/u-boot-nand.lds
在.bss __rel_dyn_start (OVERLAY) : {
前加上 _end = .;
这个是Uboot中的一个bug,会导致undefined reference to `_end'
还要修改后面步骤4中nand_spl/board/samsung/smdk6410文件夹的u-boot.lds
回U-boot根目录 进入include/configs/
复制smdk6400.h 并改名为smdk6410.h
步骤3
打开U-boot根目录下的Makefile
首先指定交叉编译工具
找到CROSS_COMPILE?=在等号后面添加arm-linux-
找到smdk6400_noUSB_config /
将有关6400的所有行复制并将其中的6400替换为6410
smdk6410_noUSB_config /
smdk6410_config : unconfig
@mkdir -p $(obj)include $(obj)board/samsung/smdk6410
@mkdir -p $(obj)nand_spl/board/samsung/smdk6410
@echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h
@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
@if [ -z "$(findstring smdk6410_noUSB_config,$@)" ]; then /
echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/smdk6410/config.tmp;/
else /
echo "RAM_TEXT = 0xc7e00000" >> $(obj)board/samsung/smdk6410/config.tmp;/
fi
@$(MKCONFIG) smdk6410 arm arm1176 smdk6410 samsung s3c64xx
@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
步骤4
从U-boot根目录,进入nand_spl/board/samsung/
cd nand_spl/board/samsung/
新建目录smdk6410并将smdk6400下的所有文件复制到smdj6410中
mkdir smdk6410
cp -ar smdk6400/* smdk6410/
进入nand_spl/board/samsung/smdk6410文件夹
打开u-boot.lds
在.bss __rel_dyn_start (OVERLAY) : {
前加上 _end = .;
步骤5
然后make smdk6410_config
make编译