public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Marek Vasut <marek.vasut@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 2/2] Config: Add "board variant" column to boards.cfg
Date: Mon, 20 Sep 2010 03:57:26 +0200	[thread overview]
Message-ID: <1284947846-12811-2-git-send-email-marek.vasut@gmail.com> (raw)
In-Reply-To: <1284947846-12811-1-git-send-email-marek.vasut@gmail.com>

There are some boards where it's not currently possible to detect all board
information at runtime, therefore I introduced a new column called "variant" to
boards.cfg . If this field is set, CONFIG_fieldvalue is #define-d in config.h

Also, I had to add fallback logic, because each of the board variants has a
distinct name. This led to the mkconfig #including incorrect board configuration
file (<configs/whole-board-configuration-name.h> aka. the value in column one).
I implemented a logic which checks if such file exists and if it does not, it
includes<configs/board-name.h> aka. the value in third column.

Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
---
 Makefile   |   22 ----------------------
 boards.cfg |    9 +++++++--
 mkconfig   |   18 +++++++++++++++++-
 3 files changed, 24 insertions(+), 25 deletions(-)

diff --git a/Makefile b/Makefile
index 4dc68a5..1e5374e 100644
--- a/Makefile
+++ b/Makefile
@@ -2179,28 +2179,6 @@ scpu_config:	unconfig
 	fi
 	@$(MKCONFIG) -n $@ -a pdnb3 arm ixp pdnb3 prodrive
 
-polaris_config \
-trizepsiv_config	:	unconfig
-	@mkdir -p $(obj)include
-	@if [ "$(findstring polaris,$@)" ] ; then \
-		echo "#define CONFIG_POLARIS 1"	>>$(obj)include/config.h ; \
-	fi;
-	@$(MKCONFIG) -n $@ -a trizepsiv arm pxa trizepsiv
-
-vpac270_nor_256M_config \
-vpac270_nor_128M_config \
-vpac270_onenand_config	: unconfig
-	@mkdir -p $(obj)include
-	@if [ "$(findstring onenand,$@)" ] ; then \
-		echo "#define CONFIG_ONENAND_U_BOOT" \
-			>>$(obj)include/config.h ; \
-	fi;
-	@if [ "$(findstring 256M,$@)" ] ; then \
-		echo "#define CONFIG_256M_U_BOOT" \
-			>>$(obj)include/config.h ; \
-	fi;
-	@$(MKCONFIG) -n $@ -a vpac270 arm pxa vpac270
-
 #########################################################################
 ## ARM1136 Systems
 #########################################################################
diff --git a/boards.cfg b/boards.cfg
index 7ee733c..b29e884 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		Variant
+###############################################################################################
 
 qong		arm	arm1136		-		davedenx	mx31
 mx31ads		arm	arm1136		-		freescale	mx31
@@ -64,6 +64,11 @@ lubbock		arm	pxa
 palmld		arm	pxa
 palmtc		arm	pxa
 pleb2		arm	pxa
+polaris		arm	pxa		trizepsiv	-		-		POLARIS
+trizepsiv	arm	pxa		trizepsiv
+vpac270_nor_128M arm	pxa		vpac270
+vpac270_nor_256M arm	pxa		vpac270		-		-		256M_U_BOOT
+vpac270_onenand	arm	pxa		vpac270		-		-		ONENAND_U_BOOT
 xaeniax		arm	pxa
 xm250		arm	pxa
 zipitz2		arm	pxa
diff --git a/mkconfig b/mkconfig
index b661071..d03d70f 100755
--- a/mkconfig
+++ b/mkconfig
@@ -17,6 +17,7 @@ cpu=""
 board=""
 vendor=""
 soc=""
+variant=""
 
 if [ \( $# -eq 2 \) -a \( "$1" = "-A" \) ] ; then
 	# Automatic mode
@@ -41,7 +42,7 @@ while [ $# -gt 0 ] ; do
 done
 
 [ $# -lt 4 ] && exit 1
-[ $# -gt 6 ] && exit 1
+[ $# -gt 7 ] && exit 1
 
 CONFIG_NAME="${1%_config}"
 
@@ -56,6 +57,7 @@ else
 fi
 [ $# -gt 4 ] && [ "$5" != "-" ] && vendor="$5"
 [ $# -gt 5 ] && [ "$6" != "-" ] && soc="$6"
+[ $# -gt 6 ] && [ "$7" != "-" ] && variant="$7"
 
 if [ "${ARCH}" -a "${ARCH}" != "${arch}" ]; then
 	echo "Failed: \$ARCH=${ARCH}, should be '${arch}' for ${BOARD_NAME}" 1>&2
@@ -129,6 +131,20 @@ for i in ${TARGETS} ; do
 	echo "#define CONFIG_MK_${i} 1" >>config.h ;
 done
 
+if [ -n "${variant}" ] ; then
+	echo "#define CONFIG_${variant} 1" >>config.h ;
+fi
+
+# If there's no config file for the configuration, try config file for the
+# board instead.
+if [ ! -e configs/${CONFIG_NAME}.h ] ; then
+	if [ -e configs/${board}.h ] ; then
+		CONFIG_NAME=${board} ;
+	else
+		exit 1 ;
+	fi;
+fi
+
 cat << EOF >> config.h
 #define CONFIG_BOARDDIR board/$BOARDDIR
 #include <config_defaults.h>
-- 
1.7.1

  reply	other threads:[~2010-09-20  1:57 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-20  1:57 [U-Boot] [PATCH 1/2] USB: Make non-bulk delay longer in OHCI Marek Vasut
2010-09-20  1:57 ` Marek Vasut [this message]
2010-09-20 18:02   ` [U-Boot] [PATCH 2/2] Config: Add "board variant" column to boards.cfg Wolfgang Denk
2010-10-03 23:36 ` [U-Boot] [PATCH 1/2] USB: Make non-bulk delay longer in OHCI Marek Vasut
2010-10-04  4:43   ` Wolfgang Denk
2010-10-04 14:02     ` Marek Vasut
2010-10-04 16:42       ` Wolfgang Denk
2010-10-05 11:48         ` Detlev Zundel
2010-10-09  7:27 ` Remy Bohmer

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=1284947846-12811-2-git-send-email-marek.vasut@gmail.com \
    --to=marek.vasut@gmail.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox