uboot移植FL2440(uboot编译编)
1.下载u-boot
在ftp://ftp.denx.de/pub/u-boot/下载u-boot-2014.04.tar.bz2版本uboot。
2.解压u-boot
3.在u-boot中添加我的开发板信
vim boards.cfg
根据smdk2410格式添加smdk2440
# Status, Arch, CPU:SPLCPU, SoC, Vendor, Board name, Target, Options, Maintainers
Active arm arm920t s3c24x0 samsung - smdk2440 -
4.通过复制的方式添加我的开发板头文件
cp include/configs/smdk2410.h include/configs/smdk2440.h
5.通过复制的方式添加我的开发板文件夹
cp –r board/samsung/smdk2410 board/samsung/smdk2440
更改文件名
mv board/samsung/smdk2440/smdk2410.c board/samsung/smdk2440/smdk2440.c
修改Makefile文件
vim board/samsung/smdk2440/Makefile为:
# SPDX-License-Identifier: GPL-2.0+
#
obj-y := smdk2440.o
obj-y += lowlevel_init.o
6. 修改vim include/configs/smdk2440.h文件内容为:
//#define CONFIG_S3C2410 /* specifically a SAMSUNG S3C2410 SoC */
//#define CONFIG_SMDK2410 /* on a SAMSUNG SMDK2410 Board */
#define CONFIG_S3C2440
#define CONFIG_SMDK2440
注释掉
//#define CONFIG_CMD_NAND
//#define CONFIG_YAFFS2
2个宏,不编译nandflish ,yaffs2文件系统.
7.编译
make distclean
make smdk2440_config
make CROSS_COMPILE=arm-linux- (编译用arm-linux-gcc 4.4.3版本,arm-Linux-gcc 4.4.3 在友善之臂官网下载.)
如果上述过程没有出错的话,会在u-boot的目录下出现新的u-boot.bin文件。
补充:make smdk2440_config执过程 。
首先进行配制
make smdk2440_config
现分析这个配制过程,make smdk2440_config之后,make实现执行的是
smdk2440_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2440 samsung s3c24x0
MKCONFIG 为顶层的mkconfig脚本,$(@:_config=))是smdk2440_config去除_config,上面的意思是把下面的参数传递给mkconfig
mkconfig smdk2440 arm arm920t smdk2440 samsung s3c24x0
$0 $1 $2 $3 $4 $5 $6
执行的结果是:
1、在include目录下建立如下链接文件:
asm -> asm-arm
asm/arch -> arch-s3c24x0
asm/proc -> proc-armv
2、在include目录下建立如下配制文件:
config.mk 的内容为:
CPU = arm920t
BOARD = smdk2440
VENDOR = samsung
SOC = s3c24x0
3、在include目录下建立如下头文件:
config.h的内容为:
#define CONFIG_SYS_ARCH "arm"
#define CONFIG_SYS_CPU "arm920t"
#define CONFIG_SYS_BOARD "smdk2440"
#define CONFIG_SYS_VENDOR "samsung"
#define CONFIG_SYS_SOC "s3c24x0"
#define CONFIG_BOARDDIR board/samsung/smdk2440
#include <config_cmd_defaults.h>
#include <config_defaults.h>
#include <configs/smdk2440.h>
#include <asm/config.h>
#include <config_fallbacks.h>
#include <config_uncmd_spl.h>