public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
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>

  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox