From a6fdfe48d4a640b62d151219adf1290196e034e2 Mon Sep 17 00:00:00 2001 From: Jaehoon Chung Date: Thu, 20 Oct 2016 15:55:11 +0900 Subject: [PATCH] cmd: usbdown: support the checking signature feature Added the checking signature feature for preventing to flash wrong image. This funcionality does the same behavior with thor. Change-Id: I2645cd8e506ea412be39186952a0860fe64bdaf3 Signed-off-by: Jaehoon Chung --- cmd/usbdown.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/cmd/usbdown.c b/cmd/usbdown.c index 6a91174769..1b9f1fc25f 100644 --- a/cmd/usbdown.c +++ b/cmd/usbdown.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -370,6 +371,24 @@ int do_update(cmd_tbl_t *cmdtp, int flags, int argc, char * const argv[]) return -EINVAL; } +#ifdef CONFIG_SIG + /* It needs to check the signature about only u-boot image */ + if (!strncmp(usbdown->name, "u-boot", strlen(usbdown->name))) { + if (fs_set_blk_dev(from, argv[1], FS_TYPE_ANY)) + return CMD_RET_FAILURE; + + ret = fs_read(filename, (phys_addr_t)addr, 0, + size, &len_read); + if (ret) + return CMD_RET_FAILURE; + + ret = check_board_signature("u-boot-mmc.bin", + (phys_addr_t)addr, (phys_addr_t)size); + if (ret) + return CMD_RET_FAILURE; + } +#endif + if (usbdown->layout == FS_FAT) { /* loading File */ fsname = "fat"; @@ -510,7 +529,9 @@ int do_usb_down(cmd_tbl_t *cmdtp, int flags, int argc, char * const argv[]) sprintf(cmd_buf, "%s %s %s %s", cmd, part, interface, dir); sprintf(cmd_buf + strlen(cmd_buf), "/%s", name[i]); - run_command(cmd_buf, 0); + ret = run_command(cmd_buf, 0); + if (ret == CMD_RET_FAILURE) + return ret; printf("\n"); } -- 2.34.1