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;
}