一、配置u-boot
1、在u-boot的顶层目录下,执行"make smdk2410_config"
二、配置步骤的分析:
分析"make smdk2410_config"
1、执行"时"make smdk2410_config,其实是执行./mkconfig smdk2410 arm arm920t smdk2400 NULL s3c24x0(这些参数在顶层makefile中有)
因为在顶层Makefile里有一句:
smdk2410_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
(mkconfig) (目标) (架构) (cpu) (开发板) (VENDOR) (SoC)
$0 $1 $2 $3 $4 $5 $6
在顶层目录下的mkconfig中找到了mkconfig后面所接的参数的含义:
Parameters(参数): Target Architecture CPU Board [VENDOR] [SOC]
2、因为实际上是执行了./mkconfig smdk2410 arm arm arm920t NULL s3c24x0,所以转而要分
析顶层目录下的mkconfig文件了。
三、分析mkconfig文件
1、确定一个参数BOARD_NAME=smdk2410。
2、cd ./include(进入include目录,以下动作都是基于include/目录)。
3、rm -f asm; ln -s asm-arm asm(首先删除原来的asm文件,接着再新建asm连接文件,指向./asm-arm/目录,这样以后的#include <arm/xxx>,实际上就是#include <asm-arm/xxx>。 #include <>一般是指包含include下的目录或文件)。
4、rm -f asm-arm/arch; ln -s arch-s3c24x0 asm-arm/arch(首先删除./asm-arm/目录下的arch文件,接着新建./asm-arm/arch文件,让它指向./asm-arm/arch-s3c24x0/目录,这样以后的#include <arm/arch/xxx>,实际上就是#include <asm-arm/arch-s3c24x0/xxx>。arch文件和arch-s3c24x0都在include/asm-arm/目录下。)
5、rm -f asm-arm/proc; ln -s proc-armv asm-arm/proc(同理,建立一个proc连接文件指向proc-armv目录)
>表示新建,>>表示追加
6、echo "ARCH = $2" > config.mk
echo "CPU = $3" >> config.mk
echo "BOARD = $4" >> config.mk
echo "SOC = $6" >> config.mk
新建一个include/config.mk文件,里面的信息为:
ARCH = arm
CPU = arm920t
BOARD = smdk2400
SOC = s3c24x0
7、> config.h
echo "/* Automatically generated - do not edit */" >>config.h
echo "#include <configs/$1.h>" >>config.h
新建一个include/config.h文件,里面的内容为:
/* Automatically generated - do not edit */
#include <configs/smdk2410.h>
至此,顶层mkconfig文件已经分析完毕,除了确定BOARD_NAME=smdk2410外,其余的动作都是在include/目录下发生的