From: Marek Szyprowski Date: Tue, 17 Nov 2020 09:56:34 +0000 (+0100) Subject: cmd: ums: add getting the default parameters from env X-Git-Tag: submit/tizen/20201208.071016~57 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2a5f99c30314ca885aeb902fae438db3cc2a04d3;p=platform%2Fkernel%2Fu-boot.git cmd: ums: add getting the default parameters from env Add reading command parameters from the environment. The same environment variables are used as for the "dfu" and "thor" commands. This allows to specify USB controller ("dfu_usb_con"), device interface ("dfu_interface") and device number ("dfu_device"). Such change allows to call "ums" without any parameters for the default storage device. Signed-off-by: Marek Szyprowski Change-Id: If725408159937dc50cb375d5c80455dac5cf9b37 --- diff --git a/cmd/usb_mass_storage.c b/cmd/usb_mass_storage.c index 14fa7233c7..fe6095effa 100644 --- a/cmd/usb_mass_storage.c +++ b/cmd/usb_mass_storage.c @@ -146,16 +146,27 @@ static int do_usb_mass_storage(struct cmd_tbl *cmdtp, int flag, int rc; int cable_ready_timeout __maybe_unused; - if (argc < 3) - return CMD_RET_USAGE; - - usb_controller = argv[1]; - if (argc >= 4) { - devtype = argv[2]; - devnum = argv[3]; + if (argc == 1) { + usb_controller = strdup(env_get("dfu_usb_con")); + devtype = strdup(env_get("dfu_interface")); + devnum = strdup(env_get("dfu_device")); + if (!usb_controller || !devtype || !devnum) { + puts("DFU: default device environment is not set.\n"); + rc = CMD_RET_USAGE; + goto cleanup_free; + } } else { - devtype = "mmc"; - devnum = argv[2]; + if (argc < 3) + return CMD_RET_USAGE; + + usb_controller = argv[1]; + if (argc >= 4) { + devtype = argv[2]; + devnum = argv[3]; + } else { + devtype = "mmc"; + devnum = argv[2]; + } } rc = ums_init(devtype, devnum); @@ -240,7 +251,12 @@ cleanup_board: usb_gadget_release(controller_index); cleanup_ums_init: ums_fini(); - +cleanup_free: + if (argc == 1) { + free((void *)usb_controller); + free((void *)devtype); + free((void *)devnum); + } return rc; }