thor:cmd: get the default command arguments from environment
authorPrzemyslaw Marczak <p.marczak@samsung.com>
Thu, 12 Jun 2014 08:20:59 +0000 (10:20 +0200)
committerJaehoon Chung <jh80.chung@samsung.com>
Tue, 20 Oct 2020 00:46:45 +0000 (09:46 +0900)
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 <p.marczak@samsung.com>
cmd/thordown.c

index a3f6354d861c1757e8b9cc560c7fb5fcdd155746..d4ef6b090c9926c8620ea66c2a7f92ecef388265 100644 (file)
 
 int do_thor_down(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
-       if (argc < 4)
-               return CMD_RET_USAGE;
-
-       char *usb_controller = argv[1];
-       char *interface = argv[2];
-       char *devstring = argv[3];
-
+       char *usb_controller;
+       char *interface;
+       char *devstring;
        int ret;
 
        puts("TIZEN \"THOR\" Downloader\n");
 
+       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)
                goto done;
@@ -48,7 +65,7 @@ int do_thor_down(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 
        ret = thor_init();
        if (ret) {
-               error("THOR DOWNLOAD failed: %d", ret);
+               printk("THOR DOWNLOAD failed: %d", ret);
                if (ret == -EINTR)
                        ret = CMD_RET_SUCCESS;
                else
@@ -83,6 +100,12 @@ done:
                lcd_clear();
 #endif
 #endif
+bad_args:
+       if (argc == 1) {
+               free(usb_controller);
+               free(interface);
+               free(devstring);
+       }
        return ret;
 }