The new 'dfutftp' command has syntax similar to 'dfu' command.
This new command however, requires some extra env variables to allow
update_tftp() code to work properly. For more explanation, please consult
./doc/README.dfutftp

Signed-off-by: Lukasz Majewski <l.majew...@majess.pl>
---
 common/Makefile      |  1 +
 common/cmd_dfutftp.c | 43 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+)
 create mode 100644 common/cmd_dfutftp.c

diff --git a/common/Makefile b/common/Makefile
index d6c1d48..483905c 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -211,6 +211,7 @@ obj-$(CONFIG_UPDATE_TFTP) += update.o
 obj-$(CONFIG_USB_KEYBOARD) += usb_kbd.o
 obj-$(CONFIG_CMD_DFU) += cmd_dfu.o
 obj-$(CONFIG_CMD_GPT) += cmd_gpt.o
+obj-$(CONFIG_CMD_DFUTFTP) += cmd_dfutftp.o
 
 # Power
 obj-$(CONFIG_CMD_PMIC) += cmd_pmic.o
diff --git a/common/cmd_dfutftp.c b/common/cmd_dfutftp.c
new file mode 100644
index 0000000..2b75a09
--- /dev/null
+++ b/common/cmd_dfutftp.c
@@ -0,0 +1,43 @@
+/*
+ * cmd_dfutftp.c -- dfutftp command
+ *
+ * Copyright (C) 2015
+ * Lukasz Majewski <l.majew...@majess.pl>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include <common.h>
+#include <net.h>
+
+static
+int do_dfutftp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+       unsigned long addr = 0;
+
+       if (argc < 4 || argc > 5)
+               return CMD_RET_USAGE;
+
+       char *interface = argv[2];
+       char *devstring = argv[3];
+
+       if (argc == 5)
+               addr = simple_strtoul(argv[4], NULL, 0);
+
+       /* Below env variables are descibed in detail at ./doc/README.dfutftp */
+       setenv("update_tftp_exec_at_boot", "true");
+       setenv("update_tftp_dfu", "true");
+       setenv("update_tftp_dfu_interface", interface);
+       setenv("update_tftp_dfu_devstring", devstring);
+
+       return update_tftp(addr);
+}
+
+U_BOOT_CMD(dfutftp, CONFIG_SYS_MAXARGS, 1, do_dfutftp,
+          "Device Firmware Upgrade via TFTP",
+          "<ETH_controller> <interface> <dev>\n"
+          "  - device firmware upgrade via <ETH_controller>\n"
+          "    using TFTP protocol on device <dev>, attached\n"
+          "    to interface <interface>\n"
+          "    [addr] - address where FIT image has been stored\n"
+);
-- 
2.1.4

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to