diff mbox

[U-Boot,v2,20/21] keymile boards: support of boardId / hwkey lists

Message ID 1300179844-8951-21-git-send-email-hs@denx.de
State Accepted
Commit 48d9539ad2408da644f0b58c157b25a3e1d4341d
Headers show

Commit Message

Heiko Schocher March 15, 2011, 9:04 a.m. UTC
From: Thomas Herzmann <thomas.herzmann@keymile.com>

In order to support boardId / hwkey lists, the u-boot default
environment has been updated: Added a script checkboardidlist
which checks the list of boardId / hwkey if the boadrId / hwkey
of the IVM is included in that list. This feature is used if you
got different HW variants but you only want to create one boot
package. E.g. supx5 board series.

Signed-off-by: Thomas Herzmann <thomas.herzmann@keymile.com>
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
cc: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Heiko Schocher <hs@denx.de>
---
Changes for v2:
  - nothing

 include/configs/keymile-common.h |   29 ++++++++++++++++++++++++++++-
 1 files changed, 28 insertions(+), 1 deletions(-)
diff mbox

Patch

diff --git a/include/configs/keymile-common.h b/include/configs/keymile-common.h
index 6c6169b..4597ee9 100644
--- a/include/configs/keymile-common.h
+++ b/include/configs/keymile-common.h
@@ -243,6 +243,7 @@ 
 	"release="							\
 		"setenv actual_bank ${initial_boot_bank} && "		\
 		"setenv subbootcmds \""					\
+		"checkboardidlist "					\
 		"checkboardid "						\
 		"ubiattach ubicopy "					\
 		"cramfsloadfdt cramfsloadkernel "			\
@@ -392,8 +393,34 @@ 
 	"default="							\
 		"setenv default 'run newenv; reset' &&  "		\
 		"run release && saveenv; reset\0"			\
+	"checkboardidlist="						\
+		"if test \"x${boardIdListHex}\" != \"x\"; then "	\
+		"IVMbidhwk=${IVM_BoardId}_${IVM_HWKey}; "		\
+		"found=0; "						\
+		"for bidhwk in \"${boardIdListHex}\"; do "		\
+		"echo trying $bidhwk ...; "				\
+		"if test \"x$bidhwk\" = \"x$IVMbidhwk\"; then "		\
+		"found=1; "						\
+		"echo match found for $bidhwk; "			\
+		"if test \"x$bidhwk\" != \"x${boardId}_${hwKey}\";then "\
+			"setenv boardid ${IVM_BoardId}; "		\
+			"setenv boardId ${IVM_BoardId}; "		\
+			"setenv hwkey ${IVM_HWKey}; "			\
+			"setenv hwKey ${IVM_HWKey}; "			\
+			"echo \"boardId set to ${boardId}\"; "		\
+			"echo \"hwKey   set to ${hwKey}\"; "		\
+			"saveenv; "					\
+		"fi; "							\
+		"fi; "							\
+		"done; "						\
+		"else "							\
+			"echo \"boardIdListHex not set, not checked\"; "\
+			"found=1; "					\
+		"fi; "							\
+		"test \"$found\" = 1 \0"				\
 	"checkboardid="							\
-		"test \"x${boardId}\" = \"x${IVM_BoardId}\"\0"		\
+		"test \"x${boardId}\" = \"x${IVM_BoardId}\" && "	\
+		"test \"x${hwKey}\" = \"x${IVM_HWKey}\"\0"		\
 	"printbootargs=print bootargs\0"				\
 	"rootfsfile="xstr(CONFIG_HOSTNAME) "/rootfsImage\0"		\
 	""