首先,U-Boot1.2.0還沒有支持s3c2440,這次移植是用2410的文件稍作修改而成的。其實2440和2410的區別主要是2440的主頻更高,增加了攝像頭接口和AC‘97音頻接口;寄存器方面,除了新增模塊的寄存器外,移植所要注意的是NAND FlASH控制器的寄存器有較大的變化、芯片的時鐘頻率控制寄存器(芯片PLL的寄存器)有一定的變化。其他寄存器基本是兼容的。
U-Boot源代碼下載地址 http://www.linuxidc.com/Linux/2011-07/38897.htm
一、在U-Boot中建立自己的開發板類型,並測試編譯。
我為開發板取名叫: tekkaman2440
0 在工作目錄下解壓U-Boot。
$tar zxvf u-boot.git.tar.gz
1 進入U-Boot目錄,修改Makefile
$cd u-boot.git/
$vi Makefile
#為tekkaman2440建立編譯項
sbc2410x_config: unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t sbc2410x NULL s3c24x0
tekkaman2440_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t tekkaman2440 tekkaman s3c24x0
各項的意思如下:
arm: CPU的架構(ARCH)
arm920t: CPU的類型(CPU),其對應於cpu/arm920t子目錄。
tekkaman2440: 開發板的型號(BOARD),對應於board/tekkaman/tekkaman2440目錄。
tekkaman: 開發者/或經銷商(vender)。
s3c24x0: 片上系統(SOC)。
同時在“ifndef CROSS_COMPILE ”之前 加上自己交叉編譯器的路徑,比如我使用crosstool-0.43制作的基於2.6.22.2內核和gcc-4.1.0-glibc-2.3.2的ARM9TDMI交叉編譯器,則:
CROSS_COMPILE=/home/tekkaman/working/crosstool-gcc410-k26222/gcc-4.1.0-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-
2 在/board子目錄中建立自己的開發板tekkaman2440目錄
由於我在上一步板子的
4 測試編譯能否成功
$make tekkaman2440_config
Configuring for tekkaman2440 board...
(如果出現:
$ make tekkaman2440_config
Makefile:1927: *** 遺漏分隔符 。 停止。
請在U-boot的根目錄下的Makefile的