dfu: Fix up the Kconfig mess
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. Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com> Cc: Lukasz Majewski <lukma@denx.de>
This commit is contained in:
parent
462c117ce0
commit
0f44d33536
@ -588,7 +588,7 @@ config CMD_DEMO
|
||||
|
||||
config CMD_DFU
|
||||
bool "dfu"
|
||||
select USB_FUNCTION_DFU
|
||||
select DFU
|
||||
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"
|
||||
|
18
cmd/dfu.c
18
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"
|
||||
|
@ -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
|
||||
|
@ -1,12 +1,22 @@
|
||||
menu "DFU support"
|
||||
|
||||
config DFU
|
||||
bool
|
||||
imply USB_FUNCTION_DFU if USB_GADGET
|
||||
|
||||
config USB_FUNCTION_DFU
|
||||
bool
|
||||
select HASH
|
||||
depends on USB_GADGET
|
||||
|
||||
if CMD_DFU
|
||||
config TFTP_FUNCTION_DFU
|
||||
bool
|
||||
depends on NET
|
||||
|
||||
if DFU
|
||||
config DFU_TFTP
|
||||
bool "DFU via TFTP"
|
||||
select TFTP_FUNCTION_DFU
|
||||
help
|
||||
This option allows performing update of DFU-managed medium with data
|
||||
sent via TFTP boot.
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user