From: Przemyslaw Marczak Date: Thu, 13 Nov 2014 10:40:02 +0000 (+0100) Subject: samsung: misc_init_r: insert call to platform_setup() X-Git-Tag: submit/tizen/20201110.005738~360 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3768df292a86d62b0239159720da9df43ceea03a;p=platform%2Fkernel%2Fu-boot.git samsung: misc_init_r: insert call to platform_setup() This change adds call of platform_setup() to check or set active platform configuration. Another change is setup environment variable: ${platname}, from board name in set_board_info(). Change-Id: I355736bf40f8fa3697ce0b4546f7702d2e54a0f9 Signed-off-by: Przemyslaw Marczak --- diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c index 885cf1cdb2..1d601dad1e 100644 --- a/board/samsung/common/board.c +++ b/board/samsung/common/board.c @@ -369,6 +369,9 @@ int misc_init_r(void) #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG set_board_info(); #endif +#ifdef CONFIG_PLATFORM_SETUP + platform_setup(); +#endif #ifdef CONFIG_OF_MULTI if (!board_is_trats2()) return 0; diff --git a/board/samsung/common/misc.c b/board/samsung/common/misc.c index 3442be3a32..d9646d9b4b 100644 --- a/board/samsung/common/misc.c +++ b/board/samsung/common/misc.c @@ -294,6 +294,9 @@ void set_board_info(void) #ifdef CONFIG_OF_MULTI bdname = get_board_name(); +#ifdef CONFIG_PLATFORM_SETUP + setenv("platname", bdname); +#endif #endif sprintf(info, "%s%s", bdname, bdtype); env_set("board_name", info); diff --git a/cmd/dfu.c b/cmd/dfu.c index 7310595a02..0ed1992f6b 100644 --- a/cmd/dfu.c +++ b/cmd/dfu.c @@ -45,8 +45,35 @@ static int do_dfu(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) value = simple_strtoul(argv[argc - 1], NULL, 0); #endif #endif - int ret = 0; + +#ifdef CONFIG_DFU_OVER_USB + int argv_list = 0; + bool dfu_reset = false; + switch (argc) { + case 2: + argv_list = 1; + 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 5: + argv_list = 4; + case 4: + usb_controller = argv[1]; + interface = argv[2]; + devstring = argv[3]; + break; + default: + return CMD_RET_USAGE; + } +#endif #ifdef CONFIG_DFU_OVER_TFTP if (!strcmp(argv[1], "tftp")) return update_tftp(value, interface, devstring); @@ -60,8 +87,7 @@ static int do_dfu(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) dfu_set_timeout(value * 1000); #endif - ret = CMD_RET_SUCCESS; - if (strcmp(argv[argc - 1], "list") == 0) { + if (argv_list && !strcmp(argv[argv_list], "list")) { dfu_show_entities(); goto done; } @@ -72,6 +98,17 @@ static int do_dfu(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) done: dfu_free_entities(); + + if (dfu_reset) + run_command("reset", 0); + + g_dnl_clear_detach(); +bad_args: + if (argc == 1) { + free(usb_controller); + free(interface); + free(devstring); + } #endif return ret; }