diff options
author | Holger Brunck <holger.brunck@keymile.com> | 2011-05-04 01:47:30 +0000 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2011-05-10 23:19:43 +0200 |
commit | a9417ce74a8b79b1a3ab879d05f4f54138422c6e (patch) | |
tree | 818044e1bd2a4ed643c3ec98169ad179854761b3 | |
parent | eae3b0644c05dd863e77b9989c18cb33c4d6c363 (diff) | |
download | u-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>
-rw-r--r-- | board/keymile/common/common.c | 34 |
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"); |