[U-Boot] [PATCH 7/8] dfu: command: Provide support for 'dfutftp' command to handle receiving data via TFTP

Joe Hershberger joe.hershberger at gmail.com
Wed Jul 15 20:39:44 CEST 2015


Hi Lukasz,

On Sun, Jul 12, 2015 at 10:30 AM, Lukasz Majewski <l.majewski at majess.pl> wrote:
> 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

It would be great if it didn't require them. It would also be great if
there were just a dfu command and "tftp" were a subcommand. It's a
more common pattern now instead of adding new, top-level commands.

> Signed-off-by: Lukasz Majewski <l.majewski at 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.majewski at 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 at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot


More information about the U-Boot mailing list