一、移植環境
二、移植步驟
目前u-boot對很多CPU直接支持,可以查看board目錄的一些子目錄,如:board/samsung/目錄下就是對三星一些ARM處理器的支持,有smdk2400、smdk2410和smdk6400,但沒有2440,所以我們就在這裡建立自己的開發板項目。 1)因2440和2410的資源差不多,主頻和外設有點差別,所以我們就在board/samsung/下建立自己開發板的項目,取名叫mini2440#tar -jxvf u-boot-2009.08.tar.bz2 //解壓源碼
#cd u-boot-2009.08/board/samsung/ //進入目錄
#mkdir mini2440 //創建mini2440文件夾
#cp -rf smdk2410/* mini2440 / //將2410下所有的代碼復制到2440下
#cd mini2440 //進入mini2440目錄
#mv smdk2410.c mini2440.c //將mini2440下的smdk2410.c改名為mini2440.c
#cd //回到u-boot根目錄
#cp include/configs/smdk2410.h include/configs/mini2440.h //建立2440頭文件
#gedit board/samsung/mini2440/Makefile //修改my2440下Makefile的編譯項,如下:
COBJS := mini2440.o flash.o //因在my2440下我們將smdk2410.c改名為my2440.c
3)修改u-boot跟目錄下的Makefile文件。查找到smdk2410_config的地方,在他下面按照smdk2410_config的格式建立mini2440_config的編譯選項,另外還要指定交叉編譯器
#gedit Makefile
CROSS_COMPILE ?= arm-linux- //指定交叉編譯器為arm-linux-gcc
smdk2410_config : unconfig //2410編譯選項格式
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0
mini2440_config : unconfig //2440編譯選項格式
@$(MKCONFIG) $(@:_config=) arm arm920t mini2440 samsung s3c24x0
*說明:arm :CPU的架構(ARCH)
arm920t:CPU的類型
mini2440:對應在board目錄下建立新的開發板項目的目錄
samsung:新開發板項目目錄的上級目錄,如直接在board下建立新的開發板項目的目錄,則這裡就為NULL
s3c24x0:CPU型號
*注意:編譯選項格式的第二行要用Tab鍵開始,否則編譯會出錯
4)測試編譯新建的mini2440開發板項目
#make mini2440_config //如果出現Configuring formini2440board...則表示設置正確
#make//編譯後在根目錄下會出現u-boot.bin文件,則u-boot移植的第一步就算完成了
到此為止,u-boot對自己的mini2440開發板還沒有任何用處,以上的移植只是搭建了一個mini2440開發板u-boot的框架,要使其功能實現,還要根據mini2440開發板的具體資源情況來對u-boot源碼進行修改。