此檔案是根據smdkv210single_config配置進行過刪減,可產生smdkv210single_config配置的uboot鏡像,其它配置被刪除,僅供參考。
#!/bin/sh -e# Script to create header files and links to configure# U-Boot for a specific board.## Parameters: Target Architecture CPU Board [VENDOR] [SOC]## (C) 2002-2006 DENX Software Engineering, Wolfgang Denk <wd@denx.de>#APPEND=no# Default: Create new config fileBOARD_NAME=""# Name to print in make output# 對於配置為smdkv210single_config,這裡的參數從$1開始依次為:# $1 $2 $3 $4 $5 $6# smdkv210single arm s5pc11x smdkc110 samsung s5pc110# $# 引用變數的總數量是多少# 當變數總數大於0while [ $# -gt 0 ] ; do# $1 第一個變數case "$1" in# 如果第一個變數值是 --。shift變數順序左移,以前的$2變為$1,$3變為$2,依次類推。break退出迴圈。;;結束case分支。--) shift ; break ;;# 如果第一個變數值是 -a。-a) shift ; APPEND=yes ;;# 如果第一個變數值是 -n,變數順序左移。${1%%_config} 從$1的尾部開始刪除與_config匹配的最長部分,然後返回剩餘部分。變數順序左移-n) shift ; BOARD_NAME="${1%%_config}" ; shift ;;# 如果第一個變數值是 其它,退出迴圈 。*) break ;;esacdone# 按照傳進來的參數,上面的迴圈直接退出# 如果${BOARD_NAME}值為空白,則BOARD_NAME="$1"。這裡為:BOARD_NAME=smdkv210single[ "${BOARD_NAME}" ] || BOARD_NAME="$1"# 假如參數個數小於4,退出指令碼,設定退出碼為1[ $# -lt 4 ] && exit 1# 假如參數個數大於6,退出指令碼,設定退出碼為1[ $# -gt 6 ] && exit 1# 這裡輸出:Configuring for smdkv210single board...echo "Configuring for ${BOARD_NAME} board..."## Create link to architecture specific headers## 假如$SRCTREE不等於$OBJTREE。這裡相等,兩個變數的值都為此檔案的所在 目錄的路徑if [ "$SRCTREE" != "$OBJTREE" ] ; thenmkdir -p ${OBJTREE}/includemkdir -p ${OBJTREE}/include2cd ${OBJTREE}/include2rm -f asmln -s ${SRCTREE}/include/asm-$2 asmLNPREFIX="../../include2/asm/"cd ../includerm -rf asm-$2rm -f asmmkdir asm-$2ln -s asm-$2 asmelse# 進入include目錄cd ./include# 刪除asm。-f意思為:忽略不存在的檔案,不提示rm -f asm# 這裡是asm符號連結到asm-arm。-s意思為:製作符號連結代替永久連結ln -s asm-$2 asmfi# 這裡是刪除asm-arm/archrm -f asm-$2/arch# 假如$6為空白,或值為NULL。這裡$6值為:s5pc110if [ -z "$6" -o "$6" = "NULL" ] ; thenln -s ${LNPREFIX}arch-$3 asm-$2/archelse#建立符號連結。這裡是asm-arm/arch連結到arch-s5pc110ln -s ${LNPREFIX}arch-$6 asm-$2/archfi# create link for s5pc11x SoC# 假如$3等於s5pc11x。這裡$3值為:s5pc11x,相等if [ "$3" = "s5pc11x" ] ; then# 刪除reg.h rm -f regs.h# 建立符號連結。reg.h連結到s5pc110.h ln -s $6.h regs.h# 刪除asm-arm/arch rm -f asm-$2/arch# 建立符號連結。arch-s5pc11x連結到asm-arm/arch ln -s arch-$3 asm-$2/archfi# 假如$2等於arm。這裡$2值為:arm,相等if [ "$2" = "arm" ] ; then# 刪除asm-arm/procrm -f asm-$2/proc# 建立符號連結。asm-arm/proc連結到proc-armvln -s ${LNPREFIX}proc-armv asm-$2/procfi## Create include file for Make## 建立新檔案:config.mk,寫入:ARCH = armecho "ARCH = $2" > config.mk# 向檔案:config.mk中添加一行,內容為:CPU = s5pc11xecho "CPU = $3" >> config.mk# 向檔案:config.mk中添加一行,內容為:BOARD = smdkc110echo "BOARD = $4" >> config.mk# 假如$5存在,且不為字串"NULL",向檔案:config.mk中添加一行,內容為:VENDOR = samsung[ "$5" ] && [ "$5" != "NULL" ] && echo "VENDOR = $5" >> config.mk# 假如$6存在,且不為字串"NULL",向檔案:config.mk中添加一行,內容為:SOC = s5pc110[ "$6" ] && [ "$6" != "NULL" ] && echo "SOC = $6" >> config.mk## Create board specific header file## 假如$APPEND等於yes。這裡等於no,見檔案開始處。if [ "$APPEND" = "yes" ]# Append to existing config filethen# 添加空行echo >> config.helse# 建立新檔案> config.h# Create new config filefi# 將字串"/* Automatically generated - do not edit */"添加到檔案config.h中echo "/* Automatically generated - do not edit */" >>config.h# 將字串"#include <configs/$1.h>"添加到檔案config.h中echo "#include <configs/$1.h>" >>config.h# 退出,退出碼:0exit 0