keymile boards: support of boardId / hwkey lists
authorThomas Herzmann <thomas.herzmann@keymile.com>
Thu, 9 Dec 2010 10:02:09 +0000 (11:02 +0100)
committerWolfgang Denk <wd@denx.de>
Fri, 29 Apr 2011 22:45:29 +0000 (00:45 +0200)
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>

include/configs/keymile-common.h

index 1344ca9..e9a97b7 100644 (file)
        "release="                                                      \
                "setenv actual_bank ${initial_boot_bank} && "           \
                "setenv subbootcmds \""                                 \
+               "checkboardidlist "                                     \
                "checkboardid "                                         \
                "ubiattach ubicopy "                                    \
                "cramfsloadfdt cramfsloadkernel "                       \
        "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"             \
        ""