build uboot 分為兩部份: config - build
一般的 software configure 都是 run ./configure 然後再 make
但是因為 uboot 是 build for target board,不是 host
所以 configure 是要把 uboot configure 成你的 target board.
make tt2b_config
意思就是把uboot configure 成我的板子:tt2b
在 Makefile 中可以找到 tt2b_config 這個 target。
可以順便看一下其他的 XXX_config
大部分的 XXX_config 都是 call MKCONFIG...
多了:
# include/asm
# include/asm-arm/arch
# include/asm-arm/proc
# include/config.h
# include/config.mk
tt2b 這個 板子是去執行一個 shell script ...
- 產生 include/config.h
- 和其他人一樣,執行 MKCONFIG
所以來看一個 MKCONFIG..
tt2b 呼叫的 argument 是:
$MKCONFIG -a tt2b arm arm1136 sssoc NULL sssoc
大概看一下..
mkconfig 這個 shell script 後面的 argument 分別是:
"-a" 一開始被 shift 掉.. 所以 tt2b 算 $1
echo "ARCH = $2" > config.mk
echo "CPU = $3" >> config.mk
echo "BOARD = $4" >> config.mk
echo "VENDOR = $5" >> config.mk
echo "SOC = $6" >> config.mk
第一個 argument "tt2b" 會被用在 新產生的 include/config.h 里:
cd ./include
echo "/* Automatically generated - do not edit */" >>config.h
echo "#include <configs/$1.h>" >>config.h
$2, $3 還被用來建 inlude/asm,, proc 的 folder link
所以 uboot 的 config 是用 mkconfig 這個 shell 來完成的。
他要產生
- include/config.h
- include/config.mk
- include/asm