1menu "DFU support"
2
3config DFU
4	bool
5	imply DFU_OVER_USB if USB_GADGET
6
7config DFU_OVER_USB
8	bool
9	select HASH
10	depends on USB_GADGET_DOWNLOAD
11
12config DFU_OVER_TFTP
13	bool
14	depends on NET
15
16if DFU
17config DFU_WRITE_ALT
18	bool
19
20config DFU_TFTP
21	bool "DFU via TFTP"
22	depends on NETDEVICES
23	depends on !NET_LWIP
24	select UPDATE_COMMON
25	select DFU_OVER_TFTP
26	help
27	  This option allows performing update of DFU-managed medium with data
28	  sent via TFTP boot.
29
30	  Detailed description of this feature can be found at ./doc/README.dfutftp
31
32config DFU_TIMEOUT
33	bool "Timeout waiting for DFU"
34	help
35	  This option adds an optional timeout parameter for DFU which, if set,
36	  will cause DFU to only wait for that many seconds before exiting.
37
38config DFU_MMC
39	bool "MMC back end for DFU"
40	depends on MMC
41	help
42	  This option enables using DFU to read and write to MMC based storage.
43
44config DFU_MTD
45	bool "MTD back end for DFU"
46	depends on DM_MTD
47	help
48	  This option enables using DFU to read and write to on any MTD device.
49
50config DFU_NAND
51	bool "NAND back end for DFU"
52	depends on CMD_MTDPARTS
53	depends on MTD_RAW_NAND
54	help
55	  This option enables using DFU to read and write to NAND based
56	  storage.
57
58config DFU_NAND_TRIMFFS
59	bool "Skip empty pages when flashing UBI images to NAND"
60	depends on DFU_NAND
61	help
62	  When flashing UBI images to NAND, enable the DROP_FFS flag to drop
63	  trailing all-0xff pages.
64
65config DFU_RAM
66	bool "RAM back end for DFU"
67	help
68	  This option enables using DFU to read and write RAM on the target.
69
70config DFU_SF
71	bool "SPI flash back end for DFU"
72	depends on SPI_FLASH || DM_SPI_FLASH
73	help
74	  This option enables using DFU to read and write to SPI flash based
75	  storage.
76
77config DFU_SF_PART
78	bool "MTD partition support for SPI flash back end"
79	depends on DFU_SF && CMD_MTDPARTS
80	default y
81	help
82	  This option enables the support of "part" and "partubi" target in
83	  SPI flash DFU back end.
84
85config DFU_VIRT
86	bool "VIRTUAL flash back end for DFU"
87	help
88	  This option enables using DFU to read and write to VIRTUAL device
89	  used at board level to manage specific behavior
90	  (OTP update for example).
91
92config DFU_SCSI
93	bool "SCSI flash back end for DFU"
94	help
95	  This option enables using DFU to read and write to SCSI devices
96	  used at board level to manage specific behavior
97	  (OTP update for example).
98
99config SET_DFU_ALT_INFO
100	bool "Dynamic set of DFU alternate information"
101	help
102	  This option allows to call the function set_dfu_alt_info to
103	  dynamically build dfu_alt_info in board.
104
105config SYS_DFU_DATA_BUF_SIZE
106	hex "Size of buffer to be allocated for transfer to raw storage device"
107	default 0x800000
108	help
109	  DFU transfer uses a buffer before writing data to the
110	  raw storage device. This value can be used for setting the
111	  size of this buffer. The size of the buffer is also configurable
112	  through the "dfu_bufsiz" environment variable. If both are
113	  given the size of the buffer is set to "dfu_bufsize".
114
115config SYS_DFU_MAX_FILE_SIZE
116	hex "Size of the buffer to be allocated for transferring files"
117	default SYS_DFU_DATA_BUF_SIZE
118	help
119	  When updating files rather than the raw storage device,
120	  we use a static buffer to copy the file into and then write
121	  the buffer once we've been given the whole file.  Define
122	  this to the maximum filesize (in bytes) for the buffer.
123	  If undefined it defaults to the CONFIG_SYS_DFU_DATA_BUF_SIZE.
124
125config DFU_NAME_MAX_SIZE
126	int "Size of the name to be added in dfu entity"
127	default 32
128	depends on DFU
129	help
130	  This value is used to maximum size. If name is longer than default size,
131	  we need to change the proper maximum size.
132
133endif
134endmenu
135