From: Przemyslaw Marczak Date: Thu, 12 Jun 2014 08:20:59 +0000 (+0200) Subject: thor:cmd: get the default command arguments from environment X-Git-Tag: accepted/tizen/unified/20241126.175211~514 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e0df621a3e2547bd4a7290a3cae77bc688c04dc2;p=platform%2Fkernel%2Fu-boot.git thor:cmd: get the default command arguments from environment This change adds support to getting the default DFU cmd line arguments from the environment. DFU and THOR uses the same command line arguments, so the DFU command environment setup can be used also with THOR. Change-Id: I2e0984c909147c13191f6d6646d094c9f02c392a Signed-off-by: Przemyslaw Marczak --- diff --git a/cmd/thordown.c b/cmd/thordown.c index 0e2ec31514..245971b733 100644 --- a/cmd/thordown.c +++ b/cmd/thordown.c @@ -16,18 +16,36 @@ int do_thor_down(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { - char *interface, *devstring; - int controller_index; + struct udevice *udc; + int controller_index; + char *usb_controller; + char *interface; + char *devstring; int ret; - if (argc < 4) - return CMD_RET_USAGE; - puts("TIZEN \"THOR\" Downloader\n"); - interface = argv[2]; - devstring = argv[3]; + switch (argc) { + case 1: + usb_controller = strdup(env_get("dfu_usb_con")); + interface = strdup(env_get("dfu_interface")); + devstring = strdup(env_get("dfu_device")); + + if (!usb_controller || !interface || !devstring) { + puts("DFU: default device environment is not set.\n"); + ret = CMD_RET_USAGE; + goto bad_args; + } + break; + case 4: + usb_controller = argv[1]; + interface = argv[2]; + devstring = argv[3]; + break; + default: + return CMD_RET_USAGE; + } ret = dfu_init_env_entities(interface, devstring); if (ret) @@ -50,7 +68,7 @@ int do_thor_down(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) ret = thor_init(udc); if (ret) { - error("THOR DOWNLOAD failed: %d", ret); + printk("THOR DOWNLOAD failed: %d", ret); if (ret == -EINTR) ret = CMD_RET_SUCCESS; else @@ -85,6 +103,12 @@ done: lcd_clear(); #endif #endif +bad_args: + if (argc == 1) { + free(usb_controller); + free(interface); + free(devstring); + } return ret; }