3)修改u-boot跟目錄下的Makefile文件。查找到smdk6400_config的地方,在他下面按照smdk6400_config的格式建立smdk6410_config的編譯選項(xiàng),另外還要指定交叉編譯器
#gedit Makefile
CROSS_COMPILE ?= arm-linux- //指定交叉編譯器為arm-linux-gcc
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
@if [ -z "$(findstring smdk6410_noUSB_config,$@)" ]; then \
echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/smdk6410/config.tmp;\
$(MKCONFIG) $(@:_config=) arm arm1176 smdk6410 samsung s3c64xx; \
else \
echo "RAM_TEXT = 0xc7e00000" >> $(obj)board/samsung/smdk6410/config.tmp;\
$(MKCONFIG) $(@:_noUSB_config=) arm arm1176 smdk6410 samsung s3c64xx; \
fi
@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
*說(shuō)明:arm :CPU的架構(gòu)(ARCH)
arm1176:CPU的類(lèi)型
smdk6410 :對(duì)應(yīng)在board目錄下建立新的開(kāi)發(fā)板項(xiàng)目的目錄
samsung:新開(kāi)發(fā)板項(xiàng)目目錄的上級(jí)目錄,如直接在board下建立新的開(kāi)發(fā)板項(xiàng)目的目錄,則這里就為NULL
s3c64xx:CPU型號(hào)
*注意:編譯選項(xiàng)格式的第二行要用Tab鍵開(kāi)始,否則編譯會(huì)出錯(cuò)
4)進(jìn)入頂層目錄nand_spl/board/samsung目錄新建目錄smdk6410,并將smdk6400下的文件復(fù)制到剛剛新建的smdk6410下
#cd nand_spl/board/samsung //
#cp –ar smdk6400/* smdk6410/
5)測(cè)試編譯新建的smdk6410開(kāi)發(fā)板項(xiàng)目
#make smdk6410_config //如果出現(xiàn)Configuring for smdk6410 board...則表示設(shè)置正確
#make //編譯后在根目錄下會(huì)出現(xiàn)u-boot.bin和u-boot-nand.bin文件,則u-boot移植的第一步就算完成了
由于此版本的u-boot對(duì)于串口和時(shí)鐘在開(kāi)始配置文件中就已經(jīng)初始化,對(duì)于ARM1176有很好的支持,利用從SD卡啟動(dòng)的uboot將u-boot-nand.bin下載到nand flash中,同時(shí)將開(kāi)發(fā)板上SW2設(shè)置到從Nand flash啟動(dòng)位置。利用SecureCRT.exe軟件觀察串口打印信息如下:
可以看到移植在tq6410上移植uboot已經(jīng)成功??墒荖or flash是2M可是信息上顯示為0,是因?yàn)闆](méi)有添加Nor flash的驅(qū)動(dòng)引起的,而且開(kāi)發(fā)板上自帶的是DM9000AE的100M網(wǎng)卡,而uboot默認(rèn)支持CS8900所以開(kāi)始添加uboot的相關(guān)功能。
移植是采用SD燒寫(xiě)nand flash的uboot,為了方便燒寫(xiě)和調(diào)試首先移植網(wǎng)卡實(shí)現(xiàn)tftp下載。