From: Lukasz Majewski <lukma@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/2] dfu: Fix up the Kconfig mess
Date: Wed, 14 Feb 2018 08:21:06 +0100 [thread overview]
Message-ID: <20180214082106.01f77e11@jawa> (raw)
In-Reply-To: <20180213214839.9977-1-marek.vasut+renesas@gmail.com>
Hi Marek,
> Clean up the screaming mess of configuration options that DFU is.
> It was impossible to configure DFU such that TFTP is enabled and
> USB is not, this patch fixes that and assures that DFU TFTP and
> DFU USB can be enabled separatelly and that the correct pieces
> of code are compiled in.
Unfortunately, this change causes build breaks:
https://travis-ci.org/lmajewski/u-boot-dfu/jobs/341189959
>
> Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
> Cc: Lukasz Majewski <lukma@denx.de>
> ---
> cmd/Kconfig | 3 ++-
> cmd/dfu.c | 18 +++++++++++++-----
> common/Makefile | 6 ++++--
> drivers/dfu/Kconfig | 13 ++++++++++++-
> drivers/dfu/Makefile | 2 +-
> 5 files changed, 32 insertions(+), 10 deletions(-)
>
> diff --git a/cmd/Kconfig b/cmd/Kconfig
> index 7368b6df52..1ef4c31202 100644
> --- a/cmd/Kconfig
> +++ b/cmd/Kconfig
> @@ -582,7 +582,8 @@ config CMD_DEMO
>
> config CMD_DFU
> bool "dfu"
> - select USB_FUNCTION_DFU
> + imply USB_FUNCTION_DFU if USB_GADGET
> + imply TFTP_FUNCTION_DFU if NET
> help
> Enables the command "dfu" which is used to have U-Boot
> create a DFU class device via USB. This command requires that the
> "dfu_alt_info" diff --git a/cmd/dfu.c b/cmd/dfu.c
> index 04291f6c08..76b89ca5ed 100644
> --- a/cmd/dfu.c
> +++ b/cmd/dfu.c
> @@ -25,12 +25,14 @@ static int do_dfu(cmd_tbl_t *cmdtp, int flag, int
> argc, char * const argv[]) if (argc < 4)
> return CMD_RET_USAGE;
>
> +#ifdef CONFIG_USB_FUNCTION_DFU
> char *usb_controller = argv[1];
> +#endif
> char *interface = argv[2];
> char *devstring = argv[3];
>
> - int ret;
> -#ifdef CONFIG_DFU_TFTP
> + int ret = 0;
> +#ifdef CONFIG_TFTP_FUNCTION_DFU
> unsigned long addr = 0;
> if (!strcmp(argv[1], "tftp")) {
> if (argc == 5)
> @@ -39,7 +41,7 @@ static int do_dfu(cmd_tbl_t *cmdtp, int flag, int
> argc, char * const argv[]) return update_tftp(addr, interface,
> devstring); }
> #endif
> -
> +#ifdef CONFIG_USB_FUNCTION_DFU
> ret = dfu_init_env_entities(interface, devstring);
> if (ret)
> goto done;
> @@ -56,18 +58,24 @@ static int do_dfu(cmd_tbl_t *cmdtp, int flag, int
> argc, char * const argv[])
> done:
> dfu_free_entities();
> +#endif
> return ret;
> }
>
> U_BOOT_CMD(dfu, CONFIG_SYS_MAXARGS, 1, do_dfu,
> "Device Firmware Upgrade",
> +#ifdef CONFIG_USB_FUNCTION_DFU
> "<USB_controller> <interface> <dev> [list]\n"
> " - device firmware upgrade via <USB_controller>\n"
> " 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"
> +#endif
> +#ifdef CONFIG_TFTP_FUNCTION_DFU
> +#ifdef CONFIG_USB_FUNCTION_DFU
> + "dfu "
> +#endif
> + "tftp <interface> <dev> [<addr>]\n"
> " - device firmware upgrade via TFTP\n"
> " on device <dev>, attached to interface\n"
> " <interface>\n"
> diff --git a/common/Makefile b/common/Makefile
> index c7bde239c1..cdd0ab19d8 100644
> --- a/common/Makefile
> +++ b/common/Makefile
> @@ -66,7 +66,9 @@ endif # !CONFIG_SPL_BUILD
> obj-$(CONFIG_$(SPL_TPL_)BOOTSTAGE) += bootstage.o
>
> ifdef CONFIG_SPL_BUILD
> -obj-$(CONFIG_SPL_DFU_SUPPORT) += dfu.o
> +ifdef CONFIG_SPL_DFU_SUPPORT
> +obj-$(CONFIG_USB_FUNCTION_DFU) += dfu.o
> +endif
> obj-$(CONFIG_SPL_DFU_SUPPORT) += cli_hush.o
> obj-$(CONFIG_SPL_HASH_SUPPORT) += hash.o
> obj-$(CONFIG_SPL_YMODEM_SUPPORT) += xyzModem.o
> @@ -128,7 +130,7 @@ endif
>
> obj-y += cli.o
> obj-$(CONFIG_FSL_DDR_INTERACTIVE) += cli_simple.o cli_readline.o
> -obj-$(CONFIG_CMD_DFU) += dfu.o
> +obj-$(CONFIG_USB_FUNCTION_DFU) += dfu.o
> obj-y += command.o
> obj-$(CONFIG_$(SPL_)LOG) += log.o
> obj-$(CONFIG_$(SPL_)LOG_CONSOLE) += log_console.o
> diff --git a/drivers/dfu/Kconfig b/drivers/dfu/Kconfig
> index fa27efbb40..1a578546c7 100644
> --- a/drivers/dfu/Kconfig
> +++ b/drivers/dfu/Kconfig
> @@ -1,12 +1,23 @@
> menu "DFU support"
>
> +config DFU
> + bool
> +
> config USB_FUNCTION_DFU
> bool
> select HASH
> + select DFU
> + depends on USB_GADGET
> +
> +config TFTP_FUNCTION_DFU
> + bool
> + select DFU
> + depends on NET
>
> -if CMD_DFU
> +if DFU
> config DFU_TFTP
> bool "DFU via TFTP"
> + depends on TFTP_FUNCTION_DFU
> help
> This option allows performing update of DFU-managed medium
> with data sent via TFTP boot.
> diff --git a/drivers/dfu/Makefile b/drivers/dfu/Makefile
> index 61f2b71f91..7f35871ddc 100644
> --- a/drivers/dfu/Makefile
> +++ b/drivers/dfu/Makefile
> @@ -5,7 +5,7 @@
> # SPDX-License-Identifier: GPL-2.0+
> #
>
> -obj-$(CONFIG_USB_FUNCTION_DFU) += dfu.o
> +obj-$(CONFIG_DFU) += dfu.o
> obj-$(CONFIG_DFU_MMC) += dfu_mmc.o
> obj-$(CONFIG_DFU_NAND) += dfu_nand.o
> obj-$(CONFIG_DFU_RAM) += dfu_ram.o
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180214/be636574/attachment.sig>
next prev parent reply other threads:[~2018-02-14 7:21 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-13 21:48 [U-Boot] [PATCH 1/2] dfu: Fix up the Kconfig mess Marek Vasut
2018-02-13 21:48 ` [U-Boot] [PATCH 2/2] dfu: tftp: Fix arm64 build warnings Marek Vasut
2018-02-14 7:21 ` Lukasz Majewski [this message]
2018-02-15 0:24 ` [U-Boot] [PATCH 1/2] dfu: Fix up the Kconfig mess Lukasz Majewski
2018-02-15 10:21 ` Marek Vasut
2018-02-15 11:02 ` Lukasz Majewski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180214082106.01f77e11@jawa \
--to=lukma@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.