From: Marek Vasut <marek.vasut@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] Config: Add "board options" column to boards.cfg
Date: Tue, 21 Sep 2010 01:26:44 +0200 [thread overview]
Message-ID: <1285025204-8463-1-git-send-email-marek.vasut@gmail.com> (raw)
There are some boards where it's not currently possible to detect all board
information at runtime, therefore I introduced a new column called "options" to
boards.cfg .
This column can contain multiple options, separated by comma [,] . This column
is case sensitive. In case there's a simple options like 256M_U_BOOT, it's plain
expanded to "#define CONFIG_256M_U_BOOT" in config.h . In case there's an
assignment, like "ram=8192", it's expanded to "#define CONFIG_RAM 8192" in
config.h . There can also be multiple such options, then each is expanded to
separate "#define CONFIG_xyz" statement.
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>
---
v2: Add multiple options support
Makefile | 22 ----------------------
boards.cfg | 9 +++++++--
mkconfig | 20 +++++++++++++++++++-
3 files changed, 26 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..6c47448 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
@@ -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..f877b83 100755
--- a/mkconfig
+++ b/mkconfig
@@ -17,6 +17,7 @@ cpu=""
board=""
vendor=""
soc=""
+options=""
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" != "-" ] && options="$7"
if [ "${ARCH}" -a "${ARCH}" != "${arch}" ]; then
echo "Failed: \$ARCH=${ARCH}, should be '${arch}' for ${BOARD_NAME}" 1>&2
@@ -129,6 +131,22 @@ for i in ${TARGETS} ; do
echo "#define CONFIG_MK_${i} 1" >>config.h ;
done
+if [ -n "${options}" ] ; then
+ echo "${options}" | tr "," "\n" | while read line ; do
+ echo "#define CONFIG_${line}" | tr "=" "\t" >>config.h ;
+ done ;
+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
next reply other threads:[~2010-09-20 23:26 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-20 23:26 Marek Vasut [this message]
2010-09-20 23:36 ` [U-Boot] [PATCH] Config: Add "board options" column to boards.cfg Mike Frysinger
2010-09-21 6:21 ` 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=1285025204-8463-1-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