[U-Boot] [PATCH v2 1/5] Build: Add "board options" column to boards.cfg

Marek Vasut
2010-10-17T00:12:16Z

Dne Ne 17. ??jna 2010 01:57:38 Wolfgang Denk napsal(a):
> From: Marek Vasut <marek.vasut@gmail.com>
>
> 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 .
>

Didn't you say CONFIG_MK_ was being changed to plain CONFIG_ ? You left
CONFIG_MK_RAM above.

Cheers

> 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 at denx.de: edited commit message; added code to deal with an
> optional board configuration name]
>
> Signed-off-by: Wolfgang Denk <wd@denx.de>
> ---
> boards.cfg | 4 ++--
> mkconfig | 34 +++++++++++++++++++++++++++++-----
> 2 files changed, 31 insertions(+), 7 deletions(-)
>
> diff --git a/boards.cfg b/boards.cfg
> index 91d75d3..1f44525 100644
> --- a/boards.cfg
> +++ b/boards.cfg
> @@ -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
> diff --git a/mkconfig b/mkconfig
> index b661071..f3054ce 100755
> --- a/mkconfig
> +++ b/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