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 1344ca9a78d734f6a0cfe36ee75340fdbf22f6c4..e9a97b7f384205ffd02b8b6865ea0995e88e02a1 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"             \
        ""