Build: Add "board options" column to boards.cfg
There are some boards where it's currently not possible to detect all board information at runtime, therefore a new column was added to boards.cfg . This column can contain multiple options: a board configuration name, optionally followed by a colon (':') and a list of options, which are separated by comma (','). In case of simple options like '256M_U_BOOT', these expand to "#define CONFIG_MK_256M_U_BOOT 1" in config.h . In case of assignments like 'RAM=8192', these expand to "#define CONFIG_MK_RAM 8192" in config.h . Example: FOO:HAS_BAR,BAZ=64 means: - the name of the board config file is include/configs/FOO.h - the generated file include/config.h will contain these lines: #define CONFIG_HAS_BAR 1 #define CONFIG_BAZ 64 Signed-off-by: Marek Vasut <marek.vasut@gmail.com> [wd@denx.de: edited commit message; added code to deal with an optional board configuration name] Signed-off-by: Wolfgang Denk <wd@denx.de>
This commit is contained in:
parent
74c7a95f28
commit
9329cdfb30
@ -17,8 +17,8 @@
|
||||
#
|
||||
# :.,$! sort -f -k2,2 -k3,3 -k6,6 -k5,5 -k1,1
|
||||
#
|
||||
# Target ARCH CPU Board name Vendor SoC
|
||||
###########################################################################
|
||||
# Target ARCH CPU Board name Vendor SoC Options
|
||||
###############################################################################################
|
||||
|
||||
qong arm arm1136 - davedenx mx31
|
||||
mx31ads arm arm1136 - freescale mx31
|
||||
|
34
mkconfig
34
mkconfig
@ -5,7 +5,7 @@
|
||||
#
|
||||
# Parameters: Target Architecture CPU Board [VENDOR] [SOC]
|
||||
#
|
||||
# (C) 2002-2006 DENX Software Engineering, Wolfgang Denk <wd@denx.de>
|
||||
# (C) 2002-2010 DENX Software Engineering, Wolfgang Denk <wd@denx.de>
|
||||
#
|
||||
|
||||
APPEND=no # Default: Create new config file
|
||||
@ -17,6 +17,7 @@ cpu=""
|
||||
board=""
|
||||
vendor=""
|
||||
soc=""
|
||||
options=""
|
||||
|
||||
if [ \( $# -eq 2 \) -a \( "$1" = "-A" \) ] ; then
|
||||
# Automatic mode
|
||||
@ -41,11 +42,12 @@ while [ $# -gt 0 ] ; do
|
||||
done
|
||||
|
||||
[ $# -lt 4 ] && exit 1
|
||||
[ $# -gt 6 ] && exit 1
|
||||
[ $# -gt 7 ] && exit 1
|
||||
|
||||
# Strip all options and/or _config suffixes
|
||||
CONFIG_NAME="${1%_config}"
|
||||
|
||||
[ "${BOARD_NAME}" ] || BOARD_NAME="${CONFIG_NAME}"
|
||||
[ "${BOARD_NAME}" ] || BOARD_NAME="${1%_config}"
|
||||
|
||||
arch="$2"
|
||||
cpu="$3"
|
||||
@ -56,13 +58,34 @@ else
|
||||
fi
|
||||
[ $# -gt 4 ] && [ "$5" != "-" ] && vendor="$5"
|
||||
[ $# -gt 5 ] && [ "$6" != "-" ] && soc="$6"
|
||||
[ $# -gt 6 ] && [ "$7" != "-" ] && {
|
||||
# check if we have a board config name in the options field
|
||||
# the options field mave have a board config name and a list
|
||||
# of options, both separated by a colon (':'); the options are
|
||||
# separated by commas (',').
|
||||
#
|
||||
# Check for board name
|
||||
tmp="${7%:*}"
|
||||
if [ "$tmp" ] ; then
|
||||
CONFIG_NAME="$tmp"
|
||||
fi
|
||||
# Check if we only have a colon...
|
||||
if [ "${tmp}" != "$7" ] ; then
|
||||
options=${7#*:}
|
||||
TARGETS="`echo ${options} | sed 's:,: :g'` ${TARGETS}"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "${ARCH}" -a "${ARCH}" != "${arch}" ]; then
|
||||
echo "Failed: \$ARCH=${ARCH}, should be '${arch}' for ${BOARD_NAME}" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Configuring for ${BOARD_NAME} board..."
|
||||
if [ "$options" ] ; then
|
||||
echo "Configuring for ${BOARD_NAME} - Board: ${CONFIG_NAME}, Options: ${options}"
|
||||
else
|
||||
echo "Configuring for ${BOARD_NAME} board..."
|
||||
fi
|
||||
|
||||
#
|
||||
# Create link to architecture specific headers
|
||||
@ -126,7 +149,8 @@ fi
|
||||
echo "/* Automatically generated - do not edit */" >>config.h
|
||||
|
||||
for i in ${TARGETS} ; do
|
||||
echo "#define CONFIG_MK_${i} 1" >>config.h ;
|
||||
i="`echo ${i} | sed '/=/ {s/=/\t/;q } ; { s/$/\t1/ }'`"
|
||||
echo "#define CONFIG_MK_${i}" >>config.h ;
|
||||
done
|
||||
|
||||
cat << EOF >> config.h
|
||||
|
Loading…
Reference in New Issue
Block a user