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_WRITE_ALT
	bool

config DFU_TFTP
	bool "DFU via TFTP"
	select UPDATE_COMMON
	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"
	depends on MMC
	help
	  This option enables using DFU to read and write to MMC based storage.

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_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_NAND_TRIMFFS
	bool "Skip empty pages when flashing UBI images to NAND"
	depends on DFU_NAND
	help
	  When flashing UBI images to NAND, enable the DROP_FFS flag to drop
	  trailing all-0xff pages.

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_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).

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

config SET_DFU_ALT_INFO
	bool "Dynamic set of DFU alternate information"
	help
	  This option allows to call the function set_dfu_alt_info to
	  dynamically build dfu_alt_info in board.

config SYS_DFU_DATA_BUF_SIZE
	hex "Size of buffer to be allocated for transfer to raw storage device"
	default 0x800000
	help
	  DFU transfer uses a buffer before writing data to the
	  raw storage device. This value can be used for setting the
	  size of this buffer. The size of the buffer is also configurable
	  through the "dfu_bufsiz" environment variable. If both are
	  given the size of the buffer is set to "dfu_bufsize".

config SYS_DFU_MAX_FILE_SIZE
	hex "Size of the buffer to be allocated for transferring files"
	default SYS_DFU_DATA_BUF_SIZE
	help
	  When updating files rather than the raw storage device,
	  we use a static buffer to copy the file into and then write
	  the buffer once we've been given the whole file.  Define
	  this to the maximum filesize (in bytes) for the buffer.
	  If undefined it defaults to the CONFIG_SYS_DFU_DATA_BUF_SIZE.
endif
endmenu
