]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - common/cmd_dfu.c
arm: remove bogus cp_delay() function
[karo-tx-uboot.git] / common / cmd_dfu.c
index 161d38bf283d753d3b61efdfd86ca8450b4944ea..f060db75c6c8d161e71bd85374f0ac148457f14a 100644 (file)
@@ -1,6 +1,9 @@
 /*
  * cmd_dfu.c -- dfu command
  *
+ * Copyright (C) 2015
+ * Lukasz Majewski <l.majewski@majess.pl>
+ *
  * Copyright (C) 2012 Samsung Electronics
  * authors: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
  *         Lukasz Majewski <l.majewski@samsung.com>
@@ -9,9 +12,11 @@
  */
 
 #include <common.h>
+#include <watchdog.h>
 #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[])
 {
@@ -25,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)
@@ -64,7 +78,8 @@ static int do_dfu(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                if (ctrlc())
                        goto exit;
 
-               usb_gadget_handle_interrupts();
+               WATCHDOG_RESET();
+               usb_gadget_handle_interrupts(controller_index);
        }
 exit:
        g_dnl_unregister();
@@ -87,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
 );