summaryrefslogtreecommitdiff
path: root/board/keymile/common/common.c
diff options
context:
space:
mode:
authorHolger Brunck <holger.brunck@keymile.com>2011-05-04 01:47:30 +0000
committerWolfgang Denk <wd@denx.de>2011-05-10 23:19:43 +0200
commita9417ce74a8b79b1a3ab879d05f4f54138422c6e (patch)
tree818044e1bd2a4ed643c3ec98169ad179854761b3 /board/keymile/common/common.c
parenteae3b0644c05dd863e77b9989c18cb33c4d6c363 (diff)
downloadu-boot-imx-a9417ce74a8b79b1a3ab879d05f4f54138422c6e.zip
u-boot-imx-a9417ce74a8b79b1a3ab879d05f4f54138422c6e.tar.gz
u-boot-imx-a9417ce74a8b79b1a3ab879d05f4f54138422c6e.tar.bz2
km/common: implement setboardid command
Read out board id and HW key from the IVM eeprom and set these values as an environment variable. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Acked-by: Heiko Schocher <hs@denx.de> cc: Wolfgang Denk <wd@denx.de> cc: Detlev Zundel <dzu@denx.de> cc: Valentin Longchamp <valentin.longchamp@keymile.com>
Diffstat (limited to 'board/keymile/common/common.c')
-rw-r--r--board/keymile/common/common.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/board/keymile/common/common.c b/board/keymile/common/common.c
index 25a3850..9adfefa 100644
--- a/board/keymile/common/common.c
+++ b/board/keymile/common/common.c
@@ -26,6 +26,7 @@
#include <mpc8260.h>
#endif
#include <ioports.h>
+#include <command.h>
#include <malloc.h>
#include <hush.h>
#include <net.h>
@@ -682,3 +683,36 @@ int board_eth_init(bd_t *bis)
return -1;
}
+
+/*
+ * do_setboardid command
+ * read out the board id and the hw key from the intventory EEPROM and set
+ * this values as environment variables.
+ */
+static int do_setboardid(cmd_tbl_t *cmdtp, int flag, int argc,
+ char *const argv[])
+{
+ unsigned char buf[32];
+ char *p;
+
+ p = get_local_var("IVM_BoardId");
+ if (p == NULL) {
+ printf("can't get the IVM_Boardid\n");
+ return 1;
+ }
+ sprintf((char *)buf, "%s", p);
+ setenv("boardid", (char *)buf);
+
+ p = get_local_var("IVM_HWKey");
+ if (p == NULL) {
+ printf("can't get the IVM_HWKey\n");
+ return 1;
+ }
+ sprintf((char *)buf, "%s", p);
+ setenv("hwkey", (char *)buf);
+
+ return 0;
+}
+
+U_BOOT_CMD(km_setboardid, 1, 0, do_setboardid, "setboardid", "read out bid and "
+ "hwkey from IVM and set in environment");