menu "DFU support"

config DFU
	bool
	imply DFU_OVER_USB if USB_GADGET

config DFU_OVER_USB
	bool
	select HASH
	depends on USB_GADGET

config DFU_OVER_TFTP
	bool
	depends on NET

if DFU
config DFU_TFTP
	bool "DFU via TFTP"
	select DFU_OVER_TFTP
	help
	  This option allows performing update of DFU-managed medium with data
	  sent via TFTP boot.

	  Detailed description of this feature can be found at ./doc/README.dfutftp

config DFU_TIMEOUT
	bool "Timeout waiting for DFU"
	help
	  This option adds an optional timeout parameter for DFU which, if set,
	  will cause DFU to only wait for that many seconds before exiting.

config DFU_MMC
	bool "MMC back end for DFU"
	help
	  This option enables using DFU to read and write to MMC based storage.

config DFU_NAND
	bool "NAND back end for DFU"
	depends on CMD_MTDPARTS
	depends on MTD_RAW_NAND
	help
	  This option enables using DFU to read and write to NAND based
	  storage.

config DFU_RAM
	bool "RAM back end for DFU"
	help
	  This option enables using DFU to read and write RAM on the target.

config DFU_SF
	bool "SPI flash back end for DFU"
	help
	  This option enables using DFU to read and write to SPI flash based
	  storage.

config DFU_SF_PART
	bool "MTD partition support for SPI flash back end"
	depends on DFU_SF && CMD_MTDPARTS
	default y
	help
	  This option enables the support of "part" and "partubi" target in
	  SPI flash DFU back end.

config DFU_MTD
	bool "MTD back end for DFU"
	depends on DM_MTD
	help
	  This option enables using DFU to read and write to on any MTD device.

config DFU_VIRT
	bool "VIRTUAL flash back end for DFU"
	help
	  This option enables using DFU to read and write to VIRTUAL device
	  used at board level to manage specific behavior
	  (OTP update for example).

endif
endmenu
