diff options
-rw-r--r-- | cmd/Kconfig | 2 | ||||
-rw-r--r-- | cmd/dfu.c | 18 | ||||
-rw-r--r-- | common/Makefile | 6 | ||||
-rw-r--r-- | drivers/dfu/Kconfig | 12 | ||||
-rw-r--r-- | drivers/dfu/Makefile | 2 |
5 files changed, 30 insertions, 10 deletions
diff --git a/cmd/Kconfig b/cmd/Kconfig index 885712f00f3..d997f0c7a66 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -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" diff --git a/cmd/dfu.c b/cmd/dfu.c index 04291f6c080..76b89ca5ed6 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 c7bde239c1e..cdd0ab19d85 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 fa27efbb405..b077444059a 100644 --- a/drivers/dfu/Kconfig +++ b/drivers/dfu/Kconfig @@ -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 + +config TFTP_FUNCTION_DFU + bool + depends on NET -if CMD_DFU +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. diff --git a/drivers/dfu/Makefile b/drivers/dfu/Makefile index 61f2b71f918..7f35871ddc6 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 |