[U-Boot] [PATCH v4 7/9] dfu: command: Extend "dfu" command to handle receiving data via TFTP

Lukasz Majewski l.majewski at majess.pl
Mon Aug 24 00:21:48 CEST 2015


The "dfu" command has been extended to support transfers via TFTP protocol.

Signed-off-by: Lukasz Majewski <l.majewski at majess.pl>
Reviewed-by: Simon Glass <sjg at chromium.org>
Acked-by: Joe Hershberger <joe.hershberger at ni.com>
---
Changes for v2:
- Remove "dfutftp" command
- Modify "dfu" command to support optional [tftp] parameter
- Only one flag (CONFIG_DFU_TFTP) needs to be enabled

Changes for v3:
- Remove #ifdef CONFIG_DFU_TFTP to guard including <net.h>
- Do not use usb_controller variable in the 'dfu tftp' case
- Make the tftp as the explicit parameter for the 'dfu tftp' command
- Correct help message for 'dfu tftp' command

Changes for v4:
- None

Change-Id: I0f55ad0e7096acf3ba52705b3c55d1d397edc8f2
---
 common/cmd_dfu.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/common/cmd_dfu.c b/common/cmd_dfu.c
index 857148f..f060db7 100644
--- a/common/cmd_dfu.c
+++ b/common/cmd_dfu.c
@@ -1,6 +1,9 @@
 /*
  * cmd_dfu.c -- dfu command
  *
+ * Copyright (C) 2015
+ * Lukasz Majewski <l.majewski at majess.pl>
+ *
  * Copyright (C) 2012 Samsung Electronics
  * authors: Andrzej Pietrasiewicz <andrzej.p at samsung.com>
  *	    Lukasz Majewski <l.majewski at samsung.com>
@@ -13,6 +16,7 @@
 #include <dfu.h>
 #include <g_dnl.h>
 #include <usb.h>
+#include <net.h>
 
 static int do_dfu(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
@@ -26,6 +30,15 @@ static int do_dfu(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	char *devstring = argv[3];
 
 	int ret, i = 0;
+#ifdef CONFIG_DFU_TFTP
+	unsigned long addr = 0;
+	if (!strcmp(argv[1], "tftp")) {
+		if (argc == 5)
+			addr = simple_strtoul(argv[4], NULL, 0);
+
+		return update_tftp(addr, interface, devstring);
+	}
+#endif
 
 	ret = dfu_init_env_entities(interface, devstring);
 	if (ret)
@@ -89,4 +102,11 @@ U_BOOT_CMD(dfu, CONFIG_SYS_MAXARGS, 1, do_dfu,
 	"    on device <dev>, attached to interface\n"
 	"    <interface>\n"
 	"    [list] - list available alt settings\n"
+#ifdef CONFIG_DFU_TFTP
+	"dfu tftp <interface> <dev> [<addr>]\n"
+	"  - device firmware upgrade via TFTP\n"
+	"    on device <dev>, attached to interface\n"
+	"    <interface>\n"
+	"    [<addr>] - address where FIT image has been stored\n"
+#endif
 );
-- 
2.1.4



More information about the U-Boot mailing list