diff options
| -rw-r--r-- | common/Makefile | 1 | ||||
| -rw-r--r-- | common/cmd_thordown.c | 72 | 
2 files changed, 73 insertions, 0 deletions
| diff --git a/common/Makefile b/common/Makefile index 288690bca..8daca5b37 100644 --- a/common/Makefile +++ b/common/Makefile @@ -168,6 +168,7 @@ COBJS-y += usb.o usb_hub.o  COBJS-$(CONFIG_USB_STORAGE) += usb_storage.o  endif  COBJS-$(CONFIG_CMD_USB_MASS_STORAGE) += cmd_usb_mass_storage.o +COBJS-$(CONFIG_CMD_THOR_DOWNLOAD) += cmd_thordown.o  COBJS-$(CONFIG_CMD_XIMG) += cmd_ximg.o  COBJS-$(CONFIG_YAFFS2) += cmd_yaffs2.o  COBJS-$(CONFIG_CMD_SPL) += cmd_spl.o diff --git a/common/cmd_thordown.c b/common/cmd_thordown.c new file mode 100644 index 000000000..c4b351145 --- /dev/null +++ b/common/cmd_thordown.c @@ -0,0 +1,72 @@ +/* + * cmd_thordown.c -- USB TIZEN "THOR" Downloader gadget + * + * Copyright (C) 2013 Lukasz Majewski <l.majewski@samsung.com> + * All rights reserved. + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#include <common.h> +#include <thor.h> +#include <dfu.h> +#include <g_dnl.h> +#include <usb.h> + +int do_thor_down(cmd_tbl_t *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]; + +	const char *s = "thor"; +	int ret; + +	puts("TIZEN \"THOR\" Downloader\n"); + +	ret = dfu_init_env_entities(interface, simple_strtoul(devstring, +							      NULL, 10)); +	if (ret) +		return ret; + +	int controller_index = simple_strtoul(usb_controller, NULL, 0); +	ret = board_usb_init(controller_index, USB_INIT_DEVICE); +	if (ret) { +		error("USB init failed: %d", ret); +		ret = CMD_RET_FAILURE; +		goto exit; +	} + +	g_dnl_register(s); + +	ret = thor_init(); +	if (ret) { +		error("THOR DOWNLOAD failed: %d", ret); +		ret = CMD_RET_FAILURE; +		goto exit; +	} + +	ret = thor_handle(); +	if (ret) { +		error("THOR failed: %d", ret); +		ret = CMD_RET_FAILURE; +		goto exit; +	} + +exit: +	g_dnl_unregister(); +	dfu_free_entities(); + +	return ret; +} + +U_BOOT_CMD(thordown, CONFIG_SYS_MAXARGS, 1, do_thor_down, +	   "TIZEN \"THOR\" downloader", +	   "<USB_controller> <interface> <dev>\n" +	   "  - device software upgrade via LTHOR TIZEN dowload\n" +	   "    program via <USB_controller> on device <dev>,\n" +	   "	attached to interface <interface>\n" +); |