All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wolfgang Denk <wd@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 1/5] Build: Add "board options" column to boards.cfg
Date: Sun, 17 Oct 2010 01:57:38 +0200	[thread overview]
Message-ID: <1287273462-14872-2-git-send-email-wd@denx.de> (raw)
In-Reply-To: <1286790310-5865-1-git-send-email-wd@denx.de>

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 .

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
-- 
1.7.2.3

  parent reply	other threads:[~2010-10-16 23:57 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-11  9:45 [U-Boot] [PATCH 0/3] Makefile cleanup Wolfgang Denk
2010-10-11  9:45 ` [U-Boot] [PATCH 1/3] Build: Add "board options" column to boards.cfg Wolfgang Denk
2010-10-11  9:45 ` [U-Boot] [PATCH 2/3] mkconfig: change CONFIG_MK_ prefix into plain CONFIG_ Wolfgang Denk
2010-10-11 19:17   ` Mike Frysinger
2010-10-12 19:46     ` Wolfgang Denk
2010-10-11  9:45 ` [U-Boot] [PATCH 3/3] Rename TEXT_BASE into CONFIG_SYS_TEXT_BASE Wolfgang Denk
2010-10-16 23:57 ` [U-Boot] [PATCH v2 0/5] Makefile cleanup Wolfgang Denk
2010-10-16 23:57 ` Wolfgang Denk [this message]
2010-10-17  0:12   ` [U-Boot] [PATCH v2 1/5] Build: Add "board options" column to boards.cfg Marek Vasut
2010-10-17  7:16     ` Wolfgang Denk
2010-10-17  0:13   ` Reinhard Meyer
2010-10-17  7:33     ` Wolfgang Denk
2010-10-18 20:00   ` Wolfgang Denk
2010-10-16 23:57 ` [U-Boot] [PATCH v2 2/5] mkconfig: change CONFIG_MK_ prefix into plain CONFIG_ Wolfgang Denk
2010-10-17  6:24   ` Mike Frysinger
2010-10-18 20:02   ` Wolfgang Denk
2010-10-16 23:57 ` [U-Boot] [PATCH v2 3/5] Rename TEXT_BASE into CONFIG_SYS_TEXT_BASE Wolfgang Denk
2010-10-18 20:08   ` Wolfgang Denk
2010-10-16 23:57 ` [U-Boot] [PATCH v2 4/5] autoconfig.mk: avoid apostophes around hex values Wolfgang Denk
2010-10-17  6:23   ` Mike Frysinger
2010-10-18 20:09   ` Wolfgang Denk
2010-10-16 23:57 ` [U-Boot] [PATCH v2 5/5] Makefile: move all Power Architecture boards into boards.cfg Wolfgang Denk
2010-10-18 20:12   ` Wolfgang Denk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1287273462-14872-2-git-send-email-wd@denx.de \
    --to=wd@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.