All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3] usb: dfu: Migrate CONFIG_SYS_DFU_DATA_BUF_SIZE and CONFIG_SYS_DFU_MAX_FILE_SIZE to Kconfig
@ 2021-06-01 11:21 Aswath Govindraju
  2021-06-01 15:58 ` Matthias Brugger
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Aswath Govindraju @ 2021-06-01 11:21 UTC (permalink / raw)
  Cc: Lokesh Vutla, Vignesh Raghavendra, Kishon Vijay Abraham I,
	Pratyush Yadav, Aswath Govindraju, Tom Warren, Stephen Warren,
	Peter.Chubb, Oleksandr Suvorov, Heiko Schocher,
	Andreas Geisreiter, Ludwig Zenz, Samuel Egli, Allen Martin,
	Jaehoon Chung, Lukasz Majewski, Chander Kashyap, Richard Hu,
	Fabio Estevam, Matthias Brugger, Robert Baldyga, Dinh Nguyen,
	Chin-Liang See, Marek Vasut, Dalon Westergreen,
	Wolfgang Grandegger, Stefan Roese, Mike Looijmans,
	Otavio Salvador, Michal Simek, Adam Ford, Jagan Teki,
	Ashok Reddy Soma, Ley Foon Tan, Simon Glass, Patrick Delaunay,
	Ovidiu Panait, u-boot

Currently the config options CONFIG_SYS_DFU_DATA_BUF_SIZE and
CONFIG_SYS_DFU_MAX_FILE_SIZE are being set in include/configs/<board>.h
files and also in <board_name>_defconfig files without a Kconfig option. It
is easier for users to set these configs in defconfig files than in config
header files as they are a part of the source code.

Add Kconfig symbols, and update the defconfigs by using tools/moveconfig.py
script.

Suggested-by: Pratyush Yadav <p.yadav@ti.com>
Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
Acked-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
---

Changes since v2:
- Rebased the patch on top of current HEAD
- Picked up Oleksandr Suvorov's Acked-by

Link to v2 patch,
https://patchwork.ozlabs.org/project/uboot/patch/20210226071849.29070-1-a-govindraju@ti.com/

Changes since v1:
- Removed CONFIG_SYS_DFU_MAX_FILE_SIZE in defconfig files, where it was
  not defined previously. The list of files in which this change is made
  are listed below,
  configs/colibri-imx6ull_defconfig
  configs/colibri_vf_defconfig
  configs/corvus_defconfig
  configs/dh_imx6_defconfig
  configs/draco_defconfig
  configs/etamin_defconfig 
  configs/odroid-xu3_defconfig
  configs/odroid_defconfig
  configs/origen_defconfig
  configs/pico-dwarf-imx6ul_defconfig
  configs/pico-hobbit-imx6ul_defconfig
  configs/pico-imx6_defconfig
  configs/pico-imx6ul_defconfig
  configs/pico-pi-imx6ul_defconfig
  configs/pxm2_defconfig
  configs/rastaban_defconfig 
  configs/rut_defconfig
  configs/s5p_goni_defconfig
  configs/s5pc210_universal_defconfig
  configs/smartweb_defconfig  
  configs/socfpga_arria5_defconfig
  configs/socfpga_cyclone5_defconfig
  configs/socfpga_dbm_soc1_defconfig
  configs/socfpga_de0_nano_soc_defconfig
  configs/socfpga_de10_nano_defconfig 
  configs/socfpga_mcvevk_defconfig
  configs/socfpga_sockit_defconfig
  configs/socfpga_socrates_defconfig
  configs/socfpga_vining_fpga_defconfig
  configs/taurus_defconfig
  configs/thuban_defconfig
  configs/topic_miami_defconfig
  configs/topic_miamilite_defconfig
  configs/topic_miamiplus_defconfig 
  configs/trats2_defconfig 
  configs/trats_defconfig
  configs/warp7_bl33_defconfig
  configs/warp7_defconfig
  configs/warp_defconfig
  configs/xilinx_versal_virt_defconfig
  configs/xilinx_zynq_virt_defconfig
  configs/xilinx_zynqmp_virt_defconfig

Link to v1,
https://patchwork.ozlabs.org/project/uboot/patch/20210223061427.20742-1-a-govindraju@ti.com/ 

 configs/am65x_evm_a53_defconfig           |  2 ++
 configs/am65x_evm_r5_usbdfu_defconfig     |  2 ++
 configs/am65x_hs_evm_a53_defconfig        |  2 ++
 configs/beaver_defconfig                  |  2 ++
 configs/cei-tk1-som_defconfig             |  2 ++
 configs/colibri-imx6ull_defconfig         |  1 +
 configs/colibri_vf_defconfig              |  1 +
 configs/corvus_defconfig                  |  1 +
 configs/dalmore_defconfig                 |  2 ++
 configs/dh_imx6_defconfig                 |  1 +
 configs/draco_defconfig                   |  1 +
 configs/etamin_defconfig                  |  1 +
 configs/jetson-tk1_defconfig              |  2 ++
 configs/nyan-big_defconfig                |  2 ++
 configs/odroid-xu3_defconfig              |  1 +
 configs/odroid_defconfig                  |  1 +
 configs/origen_defconfig                  |  1 +
 configs/p2371-0000_defconfig              |  2 ++
 configs/p2371-2180_defconfig              |  2 ++
 configs/p2571_defconfig                   |  2 ++
 configs/p3450-0000_defconfig              |  2 ++
 configs/pico-dwarf-imx6ul_defconfig       |  1 +
 configs/pico-hobbit-imx6ul_defconfig      |  1 +
 configs/pico-imx6_defconfig               |  1 +
 configs/pico-imx6ul_defconfig             |  1 +
 configs/pico-pi-imx6ul_defconfig          |  1 +
 configs/pxm2_defconfig                    |  1 +
 configs/rastaban_defconfig                |  1 +
 configs/rpi_4_32b_defconfig               |  2 ++
 configs/rpi_4_defconfig                   |  2 ++
 configs/rut_defconfig                     |  1 +
 configs/s5p_goni_defconfig                |  1 +
 configs/s5pc210_universal_defconfig       |  1 +
 configs/smartweb_defconfig                |  1 +
 configs/socfpga_arria5_defconfig          |  1 +
 configs/socfpga_cyclone5_defconfig        |  1 +
 configs/socfpga_dbm_soc1_defconfig        |  1 +
 configs/socfpga_de0_nano_soc_defconfig    |  1 +
 configs/socfpga_de10_nano_defconfig       |  1 +
 configs/socfpga_mcvevk_defconfig          |  1 +
 configs/socfpga_sockit_defconfig          |  1 +
 configs/socfpga_socrates_defconfig        |  1 +
 configs/socfpga_vining_fpga_defconfig     |  1 +
 configs/taurus_defconfig                  |  1 +
 configs/thuban_defconfig                  |  1 +
 configs/topic_miami_defconfig             |  1 +
 configs/topic_miamilite_defconfig         |  1 +
 configs/topic_miamiplus_defconfig         |  1 +
 configs/trats2_defconfig                  |  1 +
 configs/trats_defconfig                   |  1 +
 configs/venice2_defconfig                 |  2 ++
 configs/warp7_bl33_defconfig              |  1 +
 configs/warp7_defconfig                   |  1 +
 configs/warp_defconfig                    |  1 +
 configs/xilinx_versal_virt_defconfig      |  1 +
 configs/xilinx_zynq_virt_defconfig        |  1 +
 configs/xilinx_zynqmp_virt_defconfig      |  1 +
 drivers/dfu/Kconfig                       | 20 ++++++++++++++++++++
 include/configs/am65x_evm.h               |  8 --------
 include/configs/colibri-imx6ull.h         |  1 -
 include/configs/colibri_vf.h              |  1 -
 include/configs/corvus.h                  |  1 -
 include/configs/dh_imx6.h                 |  1 -
 include/configs/exynos4-common.h          |  1 -
 include/configs/odroid_xu3.h              |  1 -
 include/configs/pico-imx6.h               |  1 -
 include/configs/pico-imx6ul.h             |  1 -
 include/configs/rpi.h                     |  3 ---
 include/configs/s5p_goni.h                |  1 -
 include/configs/siemens-am33x-common.h    |  1 -
 include/configs/smartweb.h                |  1 -
 include/configs/socfpga_common.h          |  1 -
 include/configs/taurus.h                  |  1 -
 include/configs/tegra-common-usb-gadget.h |  2 --
 include/configs/warp.h                    |  1 -
 include/configs/warp7.h                   |  1 -
 include/configs/xilinx_versal.h           |  1 -
 include/configs/xilinx_zynqmp.h           |  1 -
 include/configs/zynq-common.h             |  1 -
 include/dfu.h                             |  6 ------
 scripts/config_whitelist.txt              |  2 --
 81 files changed, 92 insertions(+), 39 deletions(-)

diff --git a/configs/am65x_evm_a53_defconfig b/configs/am65x_evm_a53_defconfig
index 01e027f607f9..7f2b825378f1 100644
--- a/configs/am65x_evm_a53_defconfig
+++ b/configs/am65x_evm_a53_defconfig
@@ -90,6 +90,8 @@ CONFIG_CLK_TI_SCI=y
 CONFIG_DFU_MMC=y
 CONFIG_DFU_RAM=y
 CONFIG_DFU_SF=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x20000
+CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
 CONFIG_DMA_CHANNELS=y
 CONFIG_TI_K3_NAVSS_UDMA=y
 CONFIG_TI_SCI_PROTOCOL=y
diff --git a/configs/am65x_evm_r5_usbdfu_defconfig b/configs/am65x_evm_r5_usbdfu_defconfig
index 161634222517..b45a6d242955 100644
--- a/configs/am65x_evm_r5_usbdfu_defconfig
+++ b/configs/am65x_evm_r5_usbdfu_defconfig
@@ -65,6 +65,8 @@ CONFIG_BLK=y
 CONFIG_CLK=y
 CONFIG_SPL_CLK=y
 CONFIG_CLK_TI_SCI=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x5000
+CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
 CONFIG_TI_SCI_PROTOCOL=y
 CONFIG_DA8XX_GPIO=y
 CONFIG_DM_I2C=y
diff --git a/configs/am65x_hs_evm_a53_defconfig b/configs/am65x_hs_evm_a53_defconfig
index ec0c7df0f7e5..33526f0cf73b 100644
--- a/configs/am65x_hs_evm_a53_defconfig
+++ b/configs/am65x_hs_evm_a53_defconfig
@@ -85,6 +85,8 @@ CONFIG_CLK_TI_SCI=y
 CONFIG_DFU_MMC=y
 CONFIG_DFU_RAM=y
 CONFIG_DFU_SF=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x20000
+CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
 CONFIG_DMA_CHANNELS=y
 CONFIG_TI_K3_NAVSS_UDMA=y
 CONFIG_TI_SCI_PROTOCOL=y
diff --git a/configs/beaver_defconfig b/configs/beaver_defconfig
index 4c892443b970..cf18feef407b 100644
--- a/configs/beaver_defconfig
+++ b/configs/beaver_defconfig
@@ -34,6 +34,8 @@ CONFIG_SPL_DM=y
 CONFIG_DFU_MMC=y
 CONFIG_DFU_RAM=y
 CONFIG_DFU_SF=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
+CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
 CONFIG_SYS_I2C_TEGRA=y
 CONFIG_SF_DEFAULT_MODE=0
 CONFIG_SF_DEFAULT_SPEED=24000000
diff --git a/configs/cei-tk1-som_defconfig b/configs/cei-tk1-som_defconfig
index 987e3ac8e95f..c1ff9d7f1428 100644
--- a/configs/cei-tk1-som_defconfig
+++ b/configs/cei-tk1-som_defconfig
@@ -34,6 +34,8 @@ CONFIG_SPL_DM=y
 CONFIG_DFU_MMC=y
 CONFIG_DFU_RAM=y
 CONFIG_DFU_SF=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
+CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
 CONFIG_SYS_I2C_TEGRA=y
 CONFIG_SF_DEFAULT_MODE=0
 CONFIG_SF_DEFAULT_SPEED=24000000
diff --git a/configs/colibri-imx6ull_defconfig b/configs/colibri-imx6ull_defconfig
index 6d207daa8220..1a08ec06549e 100644
--- a/configs/colibri-imx6ull_defconfig
+++ b/configs/colibri-imx6ull_defconfig
@@ -62,6 +62,7 @@ CONFIG_BOUNCE_BUFFER=y
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_ENV=y
 CONFIG_DFU_NAND=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_MXC=y
 CONFIG_FSL_USDHC=y
diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig
index 31df3500d95c..13399ca839aa 100644
--- a/configs/colibri_vf_defconfig
+++ b/configs/colibri_vf_defconfig
@@ -62,6 +62,7 @@ CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_VERSION_VARIABLE=y
 CONFIG_DM=y
 CONFIG_DFU_NAND=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
 CONFIG_VYBRID_GPIO=y
 # CONFIG_MMC_HW_PARTITIONING is not set
 CONFIG_FSL_ESDHC_IMX=y
diff --git a/configs/corvus_defconfig b/configs/corvus_defconfig
index 491f5630822e..8206c4cdc98f 100644
--- a/configs/corvus_defconfig
+++ b/configs/corvus_defconfig
@@ -51,6 +51,7 @@ CONFIG_BLK=y
 CONFIG_CLK=y
 CONFIG_CLK_AT91=y
 CONFIG_DFU_NAND=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
 CONFIG_AT91_GPIO=y
 # CONFIG_MMC is not set
 CONFIG_MTD=y
diff --git a/configs/dalmore_defconfig b/configs/dalmore_defconfig
index f2c1e849787e..fc152121225d 100644
--- a/configs/dalmore_defconfig
+++ b/configs/dalmore_defconfig
@@ -33,6 +33,8 @@ CONFIG_SPL_DM=y
 CONFIG_DFU_MMC=y
 CONFIG_DFU_RAM=y
 CONFIG_DFU_SF=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
+CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
 CONFIG_SYS_I2C_TEGRA=y
 CONFIG_SF_DEFAULT_MODE=0
 CONFIG_SF_DEFAULT_SPEED=24000000
diff --git a/configs/dh_imx6_defconfig b/configs/dh_imx6_defconfig
index db7d683eb783..934798e094e7 100644
--- a/configs/dh_imx6_defconfig
+++ b/configs/dh_imx6_defconfig
@@ -64,6 +64,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DWC_AHSATA=y
 CONFIG_BOOTCOUNT_LIMIT=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_MXC=y
 CONFIG_MISC=y
diff --git a/configs/draco_defconfig b/configs/draco_defconfig
index d48f8082755b..e3ccdea5f5e4 100644
--- a/configs/draco_defconfig
+++ b/configs/draco_defconfig
@@ -76,6 +76,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_ENV=y
 CONFIG_DFU_NAND=y
 # CONFIG_SPL_DM_MMC is not set
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
 CONFIG_MMC_OMAP_HS=y
 CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
diff --git a/configs/etamin_defconfig b/configs/etamin_defconfig
index 3256fd3493ec..10534d36b115 100644
--- a/configs/etamin_defconfig
+++ b/configs/etamin_defconfig
@@ -77,6 +77,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_ENV=y
 CONFIG_DFU_NAND=y
 # CONFIG_SPL_DM_MMC is not set
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
 CONFIG_MMC_OMAP_HS=y
 CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
diff --git a/configs/jetson-tk1_defconfig b/configs/jetson-tk1_defconfig
index 74d315d14359..0e7216621646 100644
--- a/configs/jetson-tk1_defconfig
+++ b/configs/jetson-tk1_defconfig
@@ -34,6 +34,8 @@ CONFIG_SPL_DM=y
 CONFIG_DFU_MMC=y
 CONFIG_DFU_RAM=y
 CONFIG_DFU_SF=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
+CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
 CONFIG_SYS_I2C_TEGRA=y
 CONFIG_SF_DEFAULT_MODE=0
 CONFIG_SF_DEFAULT_SPEED=24000000
diff --git a/configs/nyan-big_defconfig b/configs/nyan-big_defconfig
index 3a47c5a0d01f..349f918727b7 100644
--- a/configs/nyan-big_defconfig
+++ b/configs/nyan-big_defconfig
@@ -51,6 +51,8 @@ CONFIG_SPL_DM=y
 CONFIG_DFU_MMC=y
 CONFIG_DFU_RAM=y
 CONFIG_DFU_SF=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
+CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
 CONFIG_SYS_I2C_TEGRA=y
 CONFIG_CROS_EC_KEYB=y
 CONFIG_CROS_EC=y
diff --git a/configs/odroid-xu3_defconfig b/configs/odroid-xu3_defconfig
index 755a2ca9add9..bc71b45c0fb7 100644
--- a/configs/odroid-xu3_defconfig
+++ b/configs/odroid-xu3_defconfig
@@ -41,6 +41,7 @@ CONFIG_ADC=y
 CONFIG_ADC_EXYNOS=y
 CONFIG_DFU_MMC=y
 CONFIG_SET_DFU_ALT_INFO=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_MMC_DW=y
 CONFIG_MTD=y
diff --git a/configs/odroid_defconfig b/configs/odroid_defconfig
index 9f2b0b205d56..36719d91f66f 100644
--- a/configs/odroid_defconfig
+++ b/configs/odroid_defconfig
@@ -42,6 +42,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DFU_MMC=y
 CONFIG_SET_DFU_ALT_INFO=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
 CONFIG_SYS_I2C_S3C24X0=y
 CONFIG_MMC_DW=y
 CONFIG_MMC_SDHCI=y
diff --git a/configs/origen_defconfig b/configs/origen_defconfig
index 4c4dc1a0db64..650276e379e3 100644
--- a/configs/origen_defconfig
+++ b/configs/origen_defconfig
@@ -31,6 +31,7 @@ CONFIG_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
 CONFIG_MMC_DW=y
 CONFIG_MMC_SDHCI=y
 CONFIG_MMC_SDHCI_SDMA=y
diff --git a/configs/p2371-0000_defconfig b/configs/p2371-0000_defconfig
index da3be084be25..97232bb80946 100644
--- a/configs/p2371-0000_defconfig
+++ b/configs/p2371-0000_defconfig
@@ -28,6 +28,8 @@ CONFIG_SYS_MMC_ENV_PART=2
 CONFIG_DFU_MMC=y
 CONFIG_DFU_RAM=y
 CONFIG_DFU_SF=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
+CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
 CONFIG_SYS_I2C_TEGRA=y
 CONFIG_SF_DEFAULT_MODE=0
 CONFIG_SF_DEFAULT_SPEED=24000000
diff --git a/configs/p2371-2180_defconfig b/configs/p2371-2180_defconfig
index c7f4404bbacb..af490891e2bc 100644
--- a/configs/p2371-2180_defconfig
+++ b/configs/p2371-2180_defconfig
@@ -32,6 +32,8 @@ CONFIG_SYS_MMC_ENV_PART=2
 CONFIG_DFU_MMC=y
 CONFIG_DFU_RAM=y
 CONFIG_DFU_SF=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
+CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
 CONFIG_SYS_I2C_TEGRA=y
 CONFIG_SF_DEFAULT_MODE=0
 CONFIG_SF_DEFAULT_SPEED=24000000
diff --git a/configs/p2571_defconfig b/configs/p2571_defconfig
index 973034096743..68bfb8f28cdd 100644
--- a/configs/p2571_defconfig
+++ b/configs/p2571_defconfig
@@ -29,6 +29,8 @@ CONFIG_SYS_MMC_ENV_PART=2
 CONFIG_DFU_MMC=y
 CONFIG_DFU_RAM=y
 CONFIG_DFU_SF=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
+CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
 CONFIG_SYS_I2C_TEGRA=y
 CONFIG_SF_DEFAULT_MODE=0
 CONFIG_SF_DEFAULT_SPEED=24000000
diff --git a/configs/p3450-0000_defconfig b/configs/p3450-0000_defconfig
index 6e6a8133b4d4..12c3f9bb28e7 100644
--- a/configs/p3450-0000_defconfig
+++ b/configs/p3450-0000_defconfig
@@ -33,6 +33,8 @@ CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_DFU_MMC=y
 CONFIG_DFU_RAM=y
 CONFIG_DFU_SF=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
+CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
 CONFIG_SYS_I2C_TEGRA=y
 CONFIG_SF_DEFAULT_MODE=0
 CONFIG_SF_DEFAULT_SPEED=24000000
diff --git a/configs/pico-dwarf-imx6ul_defconfig b/configs/pico-dwarf-imx6ul_defconfig
index 9695eb26576a..8d17a24d6272 100644
--- a/configs/pico-dwarf-imx6ul_defconfig
+++ b/configs/pico-dwarf-imx6ul_defconfig
@@ -43,6 +43,7 @@ CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_USB_FUNCTION_FASTBOOT=y
 CONFIG_FASTBOOT_BUF_SIZE=0x10000000
 CONFIG_FASTBOOT_FLASH=y
diff --git a/configs/pico-hobbit-imx6ul_defconfig b/configs/pico-hobbit-imx6ul_defconfig
index 5c1ca0b8d7f4..6f74c6e27749 100644
--- a/configs/pico-hobbit-imx6ul_defconfig
+++ b/configs/pico-hobbit-imx6ul_defconfig
@@ -44,6 +44,7 @@ CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_USB_FUNCTION_FASTBOOT=y
 CONFIG_FASTBOOT_BUF_SIZE=0x10000000
 CONFIG_FASTBOOT_FLASH=y
diff --git a/configs/pico-imx6_defconfig b/configs/pico-imx6_defconfig
index 0f27c5475538..f0109814339f 100644
--- a/configs/pico-imx6_defconfig
+++ b/configs/pico-imx6_defconfig
@@ -58,6 +58,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_USB_FUNCTION_FASTBOOT=y
 CONFIG_FASTBOOT_BUF_ADDR=0x12000000
 CONFIG_FASTBOOT_BUF_SIZE=0x10000000
diff --git a/configs/pico-imx6ul_defconfig b/configs/pico-imx6ul_defconfig
index 159fb6b6cd7d..a54b22f5a538 100644
--- a/configs/pico-imx6ul_defconfig
+++ b/configs/pico-imx6ul_defconfig
@@ -47,6 +47,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_USB_FUNCTION_FASTBOOT=y
 CONFIG_FASTBOOT_BUF_SIZE=0x10000000
 CONFIG_FASTBOOT_FLASH=y
diff --git a/configs/pico-pi-imx6ul_defconfig b/configs/pico-pi-imx6ul_defconfig
index 51b71a77e5e5..bb1a9d654246 100644
--- a/configs/pico-pi-imx6ul_defconfig
+++ b/configs/pico-pi-imx6ul_defconfig
@@ -44,6 +44,7 @@ CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_USB_FUNCTION_FASTBOOT=y
 CONFIG_FASTBOOT_BUF_SIZE=0x10000000
 CONFIG_FASTBOOT_FLASH=y
diff --git a/configs/pxm2_defconfig b/configs/pxm2_defconfig
index 90ef4c8d99ac..1d14ea918327 100644
--- a/configs/pxm2_defconfig
+++ b/configs/pxm2_defconfig
@@ -77,6 +77,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_ENV=y
 CONFIG_DFU_NAND=y
 # CONFIG_SPL_DM_MMC is not set
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
 CONFIG_MMC_OMAP_HS=y
 CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
diff --git a/configs/rastaban_defconfig b/configs/rastaban_defconfig
index 63c62a5c0745..29ade173f4a8 100644
--- a/configs/rastaban_defconfig
+++ b/configs/rastaban_defconfig
@@ -76,6 +76,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_ENV=y
 CONFIG_DFU_NAND=y
 # CONFIG_SPL_DM_MMC is not set
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
 CONFIG_MMC_OMAP_HS=y
 CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
diff --git a/configs/rpi_4_32b_defconfig b/configs/rpi_4_32b_defconfig
index 47ea466454fc..64d969ffe57c 100644
--- a/configs/rpi_4_32b_defconfig
+++ b/configs/rpi_4_32b_defconfig
@@ -24,6 +24,8 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DM_DMA=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
+CONFIG_SYS_DFU_MAX_FILE_SIZE=0x200000
 CONFIG_MMC_SDHCI=y
 CONFIG_MMC_SDHCI_SDMA=y
 CONFIG_MMC_SDHCI_BCM2835=y
diff --git a/configs/rpi_4_defconfig b/configs/rpi_4_defconfig
index 9cd1477107fa..025ac7bc0b28 100644
--- a/configs/rpi_4_defconfig
+++ b/configs/rpi_4_defconfig
@@ -24,6 +24,8 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DM_DMA=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
+CONFIG_SYS_DFU_MAX_FILE_SIZE=0x200000
 CONFIG_MMC_SDHCI=y
 CONFIG_MMC_SDHCI_SDMA=y
 CONFIG_MMC_SDHCI_BCM2835=y
diff --git a/configs/rut_defconfig b/configs/rut_defconfig
index 6fc06f1ed974..ab99f17e31d5 100644
--- a/configs/rut_defconfig
+++ b/configs/rut_defconfig
@@ -78,6 +78,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_ENV=y
 CONFIG_DFU_NAND=y
 # CONFIG_SPL_DM_MMC is not set
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
 CONFIG_MMC_OMAP_HS=y
 CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
diff --git a/configs/s5p_goni_defconfig b/configs/s5p_goni_defconfig
index 28d8be6b01f6..72f9ce16a950 100644
--- a/configs/s5p_goni_defconfig
+++ b/configs/s5p_goni_defconfig
@@ -36,6 +36,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 # CONFIG_NET is not set
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
 CONFIG_DM_I2C_GPIO=y
 CONFIG_MMC_SDHCI=y
 CONFIG_MMC_SDHCI_S5P=y
diff --git a/configs/s5pc210_universal_defconfig b/configs/s5pc210_universal_defconfig
index 759034a8a5c6..734a99f8efa5 100644
--- a/configs/s5pc210_universal_defconfig
+++ b/configs/s5pc210_universal_defconfig
@@ -33,6 +33,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
 CONFIG_SYS_I2C_S3C24X0=y
 CONFIG_MMC_DW=y
 CONFIG_MMC_SDHCI=y
diff --git a/configs/smartweb_defconfig b/configs/smartweb_defconfig
index 1f600d02780a..dc7b27742f87 100644
--- a/configs/smartweb_defconfig
+++ b/configs/smartweb_defconfig
@@ -53,6 +53,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_CLK=y
 CONFIG_CLK_AT91=y
 CONFIG_DFU_NAND=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
 CONFIG_AT91_GPIO=y
 # CONFIG_MMC is not set
 CONFIG_MTD=y
diff --git a/configs/socfpga_arria5_defconfig b/configs/socfpga_arria5_defconfig
index d4f9bade3d01..e6e6cb24e155 100644
--- a/configs/socfpga_arria5_defconfig
+++ b/configs/socfpga_arria5_defconfig
@@ -39,6 +39,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_VERSION_VARIABLE=y
 CONFIG_SPL_DM_SEQ_ALIAS=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_DWAPB_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_DW=y
diff --git a/configs/socfpga_cyclone5_defconfig b/configs/socfpga_cyclone5_defconfig
index ae7fd501917a..ff7aa1df2a4a 100644
--- a/configs/socfpga_cyclone5_defconfig
+++ b/configs/socfpga_cyclone5_defconfig
@@ -39,6 +39,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_VERSION_VARIABLE=y
 CONFIG_SPL_DM_SEQ_ALIAS=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_DWAPB_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_DW=y
diff --git a/configs/socfpga_dbm_soc1_defconfig b/configs/socfpga_dbm_soc1_defconfig
index 033c40736ed8..70a891b003a4 100644
--- a/configs/socfpga_dbm_soc1_defconfig
+++ b/configs/socfpga_dbm_soc1_defconfig
@@ -44,6 +44,7 @@ CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_VERSION_VARIABLE=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_DWAPB_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_DW=y
diff --git a/configs/socfpga_de0_nano_soc_defconfig b/configs/socfpga_de0_nano_soc_defconfig
index 53efc9f5bdad..35ad9a2ea726 100644
--- a/configs/socfpga_de0_nano_soc_defconfig
+++ b/configs/socfpga_de0_nano_soc_defconfig
@@ -39,6 +39,7 @@ CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_VERSION_VARIABLE=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_DWAPB_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_DW=y
diff --git a/configs/socfpga_de10_nano_defconfig b/configs/socfpga_de10_nano_defconfig
index d94b9584dea8..92d9336f3580 100644
--- a/configs/socfpga_de10_nano_defconfig
+++ b/configs/socfpga_de10_nano_defconfig
@@ -36,6 +36,7 @@ CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_VERSION_VARIABLE=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_DWAPB_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_DW=y
diff --git a/configs/socfpga_mcvevk_defconfig b/configs/socfpga_mcvevk_defconfig
index b24b417a6bc3..2e7a9a21e675 100644
--- a/configs/socfpga_mcvevk_defconfig
+++ b/configs/socfpga_mcvevk_defconfig
@@ -37,6 +37,7 @@ CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_VERSION_VARIABLE=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_DWAPB_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_DW=y
diff --git a/configs/socfpga_sockit_defconfig b/configs/socfpga_sockit_defconfig
index 4ea9b41a7e21..32f203143324 100644
--- a/configs/socfpga_sockit_defconfig
+++ b/configs/socfpga_sockit_defconfig
@@ -39,6 +39,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_VERSION_VARIABLE=y
 CONFIG_SPL_DM_SEQ_ALIAS=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_DWAPB_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_DW=y
diff --git a/configs/socfpga_socrates_defconfig b/configs/socfpga_socrates_defconfig
index 16c9b927a9bd..756388ee5704 100644
--- a/configs/socfpga_socrates_defconfig
+++ b/configs/socfpga_socrates_defconfig
@@ -40,6 +40,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_VERSION_VARIABLE=y
 CONFIG_SPL_DM_SEQ_ALIAS=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_DWAPB_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_DW=y
diff --git a/configs/socfpga_vining_fpga_defconfig b/configs/socfpga_vining_fpga_defconfig
index 3984b9bc7849..174494c16e57 100644
--- a/configs/socfpga_vining_fpga_defconfig
+++ b/configs/socfpga_vining_fpga_defconfig
@@ -53,6 +53,7 @@ CONFIG_SPL_DM_SEQ_ALIAS=y
 CONFIG_DFU_MMC=y
 CONFIG_DFU_RAM=y
 CONFIG_DFU_SF=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_DWAPB_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_LED_STATUS=y
diff --git a/configs/taurus_defconfig b/configs/taurus_defconfig
index a79cdf3fa7ce..dbd642862413 100644
--- a/configs/taurus_defconfig
+++ b/configs/taurus_defconfig
@@ -71,6 +71,7 @@ CONFIG_BLK=y
 CONFIG_CLK=y
 CONFIG_CLK_AT91=y
 CONFIG_DFU_NAND=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
 CONFIG_AT91_GPIO=y
 # CONFIG_MMC is not set
 CONFIG_MTD=y
diff --git a/configs/thuban_defconfig b/configs/thuban_defconfig
index d1cc9a69bec8..247538a5d9fb 100644
--- a/configs/thuban_defconfig
+++ b/configs/thuban_defconfig
@@ -76,6 +76,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_ENV=y
 CONFIG_DFU_NAND=y
 # CONFIG_SPL_DM_MMC is not set
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
 CONFIG_MMC_OMAP_HS=y
 CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
diff --git a/configs/topic_miami_defconfig b/configs/topic_miami_defconfig
index ec66bb09584a..3681919f8503 100644
--- a/configs/topic_miami_defconfig
+++ b/configs/topic_miami_defconfig
@@ -38,6 +38,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_SPL_DM_SEQ_ALIAS=y
 CONFIG_DFU_RAM=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x600000
 CONFIG_FPGA_XILINX=y
 CONFIG_FPGA_ZYNQPL=y
 CONFIG_DM_I2C=y
diff --git a/configs/topic_miamilite_defconfig b/configs/topic_miamilite_defconfig
index e4145948859e..301a357ec70f 100644
--- a/configs/topic_miamilite_defconfig
+++ b/configs/topic_miamilite_defconfig
@@ -38,6 +38,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_SPL_DM_SEQ_ALIAS=y
 CONFIG_DFU_RAM=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x600000
 CONFIG_FPGA_XILINX=y
 CONFIG_FPGA_ZYNQPL=y
 CONFIG_DM_I2C=y
diff --git a/configs/topic_miamiplus_defconfig b/configs/topic_miamiplus_defconfig
index 0041ee153669..27cd9132e86b 100644
--- a/configs/topic_miamiplus_defconfig
+++ b/configs/topic_miamiplus_defconfig
@@ -37,6 +37,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_SPL_DM_SEQ_ALIAS=y
 CONFIG_DFU_RAM=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x600000
 CONFIG_FPGA_XILINX=y
 CONFIG_FPGA_ZYNQPL=y
 CONFIG_DM_I2C=y
diff --git a/configs/trats2_defconfig b/configs/trats2_defconfig
index 8439ddc26775..a3955e1ffc5a 100644
--- a/configs/trats2_defconfig
+++ b/configs/trats2_defconfig
@@ -34,6 +34,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
 CONFIG_DM_I2C_GPIO=y
 CONFIG_SYS_I2C_S3C24X0=y
 CONFIG_MMC_DW=y
diff --git a/configs/trats_defconfig b/configs/trats_defconfig
index 931c69ba6f17..64cd5dcdb3b2 100644
--- a/configs/trats_defconfig
+++ b/configs/trats_defconfig
@@ -33,6 +33,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
 CONFIG_DM_I2C_GPIO=y
 CONFIG_SYS_I2C_S3C24X0=y
 CONFIG_MMC_DW=y
diff --git a/configs/venice2_defconfig b/configs/venice2_defconfig
index ca18677dd4c7..9c14cef2b999 100644
--- a/configs/venice2_defconfig
+++ b/configs/venice2_defconfig
@@ -32,6 +32,8 @@ CONFIG_SPL_DM=y
 CONFIG_DFU_MMC=y
 CONFIG_DFU_RAM=y
 CONFIG_DFU_SF=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
+CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
 CONFIG_SYS_I2C_TEGRA=y
 CONFIG_SF_DEFAULT_MODE=0
 CONFIG_SF_DEFAULT_SPEED=24000000
diff --git a/configs/warp7_bl33_defconfig b/configs/warp7_bl33_defconfig
index c5c5d99c6ca6..5452a49061c5 100644
--- a/configs/warp7_bl33_defconfig
+++ b/configs/warp7_bl33_defconfig
@@ -35,6 +35,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_DM_I2C=y
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_FSL_USDHC=y
diff --git a/configs/warp7_defconfig b/configs/warp7_defconfig
index 910419938cd2..43471e754a9f 100644
--- a/configs/warp7_defconfig
+++ b/configs/warp7_defconfig
@@ -41,6 +41,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_DM_I2C=y
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_FSL_USDHC=y
diff --git a/configs/warp_defconfig b/configs/warp_defconfig
index 34acc9e6c844..04f756aacf8c 100644
--- a/configs/warp_defconfig
+++ b/configs/warp_defconfig
@@ -33,6 +33,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 # CONFIG_NET is not set
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DFU_MMC=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_FSL_USDHC=y
 CONFIG_MXC_UART=y
diff --git a/configs/xilinx_versal_virt_defconfig b/configs/xilinx_versal_virt_defconfig
index f4e9a80728d7..121c3ae72051 100644
--- a/configs/xilinx_versal_virt_defconfig
+++ b/configs/xilinx_versal_virt_defconfig
@@ -54,6 +54,7 @@ CONFIG_TFTP_BLOCKSIZE=4096
 CONFIG_CLK_VERSAL=y
 CONFIG_DFU_TIMEOUT=y
 CONFIG_DFU_RAM=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1800000
 CONFIG_FPGA_XILINX=y
 CONFIG_FPGA_VERSALPL=y
 CONFIG_DM_I2C=y
diff --git a/configs/xilinx_zynq_virt_defconfig b/configs/xilinx_zynq_virt_defconfig
index 7e56395a521f..e53ef2443ec1 100644
--- a/configs/xilinx_zynq_virt_defconfig
+++ b/configs/xilinx_zynq_virt_defconfig
@@ -68,6 +68,7 @@ CONFIG_SPL_DM_SEQ_ALIAS=y
 CONFIG_DFU_TIMEOUT=y
 CONFIG_DFU_MMC=y
 CONFIG_DFU_RAM=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x600000
 CONFIG_FPGA_XILINX=y
 CONFIG_FPGA_ZYNQPL=y
 CONFIG_DM_I2C=y
diff --git a/configs/xilinx_zynqmp_virt_defconfig b/configs/xilinx_zynqmp_virt_defconfig
index e939b04ef6a5..b0cc9d9ba88a 100644
--- a/configs/xilinx_zynqmp_virt_defconfig
+++ b/configs/xilinx_zynqmp_virt_defconfig
@@ -90,6 +90,7 @@ CONFIG_DFU_NAND=y
 CONFIG_DFU_RAM=y
 CONFIG_DFU_SF=y
 CONFIG_DFU_MTD=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1800000
 CONFIG_USB_FUNCTION_FASTBOOT=y
 CONFIG_FASTBOOT_FLASH=y
 CONFIG_FASTBOOT_FLASH_MMC_DEV=0
diff --git a/drivers/dfu/Kconfig b/drivers/dfu/Kconfig
index 121dc54f5463..b50547476cbd 100644
--- a/drivers/dfu/Kconfig
+++ b/drivers/dfu/Kconfig
@@ -92,5 +92,25 @@ config SET_DFU_ALT_INFO
 	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
diff --git a/include/configs/am65x_evm.h b/include/configs/am65x_evm.h
index 76d73086fb89..8c50fe9d11ff 100644
--- a/include/configs/am65x_evm.h
+++ b/include/configs/am65x_evm.h
@@ -22,7 +22,6 @@
 #ifdef CONFIG_TARGET_AM654_A53_EVM
 #define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SPL_TEXT_BASE +	\
 					 CONFIG_SYS_K3_NON_SECURE_MSRAM_SIZE)
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x20000
 #else
 /*
  * Maximum size in memory allocated to the SPL BSS. Keep it as tight as
@@ -45,7 +44,6 @@
 /* Configure R5 SPL post-relocation malloc pool in DDR */
 #define CONFIG_SYS_SPL_MALLOC_START	0x84000000
 #define CONFIG_SYS_SPL_MALLOC_SIZE	SZ_16M
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x5000
 #endif
 
 #ifdef CONFIG_SYS_K3_SPL_ATF
@@ -56,12 +54,6 @@
 #define CONFIG_SKIP_LOWLEVEL_INIT
 #endif
 
-/*
- * If the maximum size is not declared then it is defined as
- * CONFIG_SYS_DFU_DATA_BUF_SIZE.
- */
-#define CONFIG_SYS_DFU_MAX_FILE_SIZE	(1024 * 1024 * 8)   /* 8 MiB */
-
 #define CONFIG_SPL_MAX_SIZE		CONFIG_SYS_K3_MAX_DOWNLODABLE_IMAGE_SIZE
 
 #define CONFIG_SYS_BOOTM_LEN		SZ_64M
diff --git a/include/configs/colibri-imx6ull.h b/include/configs/colibri-imx6ull.h
index 22ee2ba03e46..f84931653fbc 100644
--- a/include/configs/colibri-imx6ull.h
+++ b/include/configs/colibri-imx6ull.h
@@ -143,7 +143,6 @@
 #define CONFIG_USBD_HS
 
 /* USB Device Firmware Update support */
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_16M
 #define DFU_DEFAULT_POLL_TIMEOUT	300
 
 #if defined(CONFIG_VIDEO) || defined(CONFIG_DM_VIDEO)
diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
index cae7c14bfb90..5bd440f1db33 100644
--- a/include/configs/colibri_vf.h
+++ b/include/configs/colibri_vf.h
@@ -143,6 +143,5 @@
 #define CONFIG_EHCI_HCD_INIT_AFTER_RESET
 
 /* USB DFU */
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE (SZ_1M)
 
 #endif /* __CONFIG_H */
diff --git a/include/configs/corvus.h b/include/configs/corvus.h
index 55f77e4400a2..bd4d6e8e39f4 100644
--- a/include/configs/corvus.h
+++ b/include/configs/corvus.h
@@ -81,7 +81,6 @@
 #define CONFIG_AT91_WANTS_COMMON_PHY
 
 /* DFU class support */
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(SZ_1M)
 #define DFU_MANIFEST_POLL_TIMEOUT	25000
 
 #define CONFIG_SYS_LOAD_ADDR	ATMEL_BASE_CS6
diff --git a/include/configs/dh_imx6.h b/include/configs/dh_imx6.h
index 4a469af5e60b..d9be1c38c44a 100644
--- a/include/configs/dh_imx6.h
+++ b/include/configs/dh_imx6.h
@@ -66,7 +66,6 @@
 
 /* USB Gadget (DFU, UMS) */
 #if defined(CONFIG_CMD_DFU) || defined(CONFIG_CMD_USB_MASS_STORAGE)
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(16 * 1024 * 1024)
 #define DFU_DEFAULT_POLL_TIMEOUT	300
 
 /* USB IDs */
diff --git a/include/configs/exynos4-common.h b/include/configs/exynos4-common.h
index 005f65d4ed6a..5e2aca371e7e 100644
--- a/include/configs/exynos4-common.h
+++ b/include/configs/exynos4-common.h
@@ -19,7 +19,6 @@
 /* SD/MMC configuration */
 #define CONFIG_MMC_DEFAULT_DEV	0
 
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_32M
 #define DFU_DEFAULT_POLL_TIMEOUT 300
 
 /* USB Samsung's IDs */
diff --git a/include/configs/odroid_xu3.h b/include/configs/odroid_xu3.h
index 0c86196152fc..fc70dc6a7323 100644
--- a/include/configs/odroid_xu3.h
+++ b/include/configs/odroid_xu3.h
@@ -27,7 +27,6 @@
 #define CONFIG_USB_EHCI_EXYNOS
 
 /* DFU */
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_32M
 #define DFU_DEFAULT_POLL_TIMEOUT	300
 #define DFU_MANIFEST_POLL_TIMEOUT	25000
 
diff --git a/include/configs/pico-imx6.h b/include/configs/pico-imx6.h
index 19c8aeb71b6e..6199f0d72e76 100644
--- a/include/configs/pico-imx6.h
+++ b/include/configs/pico-imx6.h
@@ -38,7 +38,6 @@
 #define CONFIG_MXC_USB_PORTSC		(PORT_PTS_UTMI | PORT_PTS_PTW)
 #define CONFIG_MXC_USB_FLAGS		0
 
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_16M
 #define DFU_DEFAULT_POLL_TIMEOUT 300
 
 #define CONFIG_DFU_ENV_SETTINGS \
diff --git a/include/configs/pico-imx6ul.h b/include/configs/pico-imx6ul.h
index 747ef09f37d9..04a2531f7447 100644
--- a/include/configs/pico-imx6ul.h
+++ b/include/configs/pico-imx6ul.h
@@ -49,7 +49,6 @@
 
 #define CONFIG_USBD_HS
 
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_16M
 #define DFU_DEFAULT_POLL_TIMEOUT 300
 
 #define CONFIG_DFU_ENV_SETTINGS \
diff --git a/include/configs/rpi.h b/include/configs/rpi.h
index 834f1cd23640..46ada884b487 100644
--- a/include/configs/rpi.h
+++ b/include/configs/rpi.h
@@ -74,9 +74,6 @@
 
 /* DFU over USB/UDC */
 #ifdef CONFIG_CMD_DFU
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_1M
-#define CONFIG_SYS_DFU_MAX_FILE_SIZE	SZ_2M
-
 #ifdef CONFIG_ARM64
 #define KERNEL_FILENAME		"Image"
 #else
diff --git a/include/configs/s5p_goni.h b/include/configs/s5p_goni.h
index 9688bdc4c035..6af6009e6126 100644
--- a/include/configs/s5p_goni.h
+++ b/include/configs/s5p_goni.h
@@ -41,7 +41,6 @@
 #define CONFIG_PWM			1
 
 /* USB Composite download gadget - g_dnl */
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_32M
 #define DFU_DEFAULT_POLL_TIMEOUT 300
 
 /* USB Samsung's IDs */
diff --git a/include/configs/siemens-am33x-common.h b/include/configs/siemens-am33x-common.h
index e18af7493c7f..f96dd774b178 100644
--- a/include/configs/siemens-am33x-common.h
+++ b/include/configs/siemens-am33x-common.h
@@ -143,7 +143,6 @@
 #define CONFIG_USBD_HS
 
 /* USB Device Firmware Update support */
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(1 << 20)
 #define DFU_MANIFEST_POLL_TIMEOUT	25000
 
 #endif /* CONFIG_SPL_BUILD */
diff --git a/include/configs/smartweb.h b/include/configs/smartweb.h
index 6e715dc0c1be..5e8637e49484 100644
--- a/include/configs/smartweb.h
+++ b/include/configs/smartweb.h
@@ -122,7 +122,6 @@
 #define CONFIG_USB_GADGET_AT91
 
 /* DFU class support */
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_1M
 #define DFU_MANIFEST_POLL_TIMEOUT	25000
 #endif
 
diff --git a/include/configs/socfpga_common.h b/include/configs/socfpga_common.h
index 62b327cd6e52..c5e4292f1964 100644
--- a/include/configs/socfpga_common.h
+++ b/include/configs/socfpga_common.h
@@ -148,7 +148,6 @@ unsigned int cm_get_qspi_controller_clk_hz(void);
  * USB Gadget (DFU, UMS)
  */
 #if defined(CONFIG_CMD_DFU) || defined(CONFIG_CMD_USB_MASS_STORAGE)
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(16 * 1024 * 1024)
 #define DFU_DEFAULT_POLL_TIMEOUT	300
 
 /* USB IDs */
diff --git a/include/configs/taurus.h b/include/configs/taurus.h
index 39eae8e2ba04..6e869462f1e6 100644
--- a/include/configs/taurus.h
+++ b/include/configs/taurus.h
@@ -92,7 +92,6 @@
 #define CONFIG_USB_GADGET_AT91
 
 /* DFU class support */
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(SZ_1M)
 #define DFU_MANIFEST_POLL_TIMEOUT	25000
 #endif
 
diff --git a/include/configs/tegra-common-usb-gadget.h b/include/configs/tegra-common-usb-gadget.h
index e6b61c4e8fd3..201f4bc093c9 100644
--- a/include/configs/tegra-common-usb-gadget.h
+++ b/include/configs/tegra-common-usb-gadget.h
@@ -13,8 +13,6 @@
 #define CONFIG_CI_UDC_HAS_HOSTPC
 #endif
 /* DFU protocol */
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_1M
-#define CONFIG_SYS_DFU_MAX_FILE_SIZE SZ_32M
 #endif
 
 #endif /* _TEGRA_COMMON_USB_GADGET_H_ */
diff --git a/include/configs/warp.h b/include/configs/warp.h
index 0f97804eb29c..bda8ff9a34f3 100644
--- a/include/configs/warp.h
+++ b/include/configs/warp.h
@@ -50,7 +50,6 @@
 
 #define CONFIG_USBD_HS
 
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_16M
 #define DFU_DEFAULT_POLL_TIMEOUT 300
 
 /* I2C Configs */
diff --git a/include/configs/warp7.h b/include/configs/warp7.h
index 8eb106027440..a5d52e3977fd 100644
--- a/include/configs/warp7.h
+++ b/include/configs/warp7.h
@@ -149,7 +149,6 @@
 #define CONFIG_USBD_HS
 
 /* USB Device Firmware Update support */
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_16M
 #define DFU_DEFAULT_POLL_TIMEOUT	300
 
 #define CONFIG_USBNET_DEV_ADDR		"de:ad:be:af:00:01"
diff --git a/include/configs/xilinx_versal.h b/include/configs/xilinx_versal.h
index 380f93a2f68e..ebe81968d130 100644
--- a/include/configs/xilinx_versal.h
+++ b/include/configs/xilinx_versal.h
@@ -47,7 +47,6 @@
 #define CONFIG_SYS_MAXARGS		64
 
 #if defined(CONFIG_CMD_DFU)
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x1800000
 #define DFU_DEFAULT_POLL_TIMEOUT	300
 #define CONFIG_THOR_RESET_OFF
 #endif
diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h
index 986af2be7819..cadaf1a96312 100644
--- a/include/configs/xilinx_zynqmp.h
+++ b/include/configs/xilinx_zynqmp.h
@@ -52,7 +52,6 @@
 #define CONFIG_SYS_LOAD_ADDR		0x8000000
 
 #if defined(CONFIG_ZYNQMP_USB)
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x1800000
 #define DFU_DEFAULT_POLL_TIMEOUT	300
 #define CONFIG_THOR_RESET_OFF
 
diff --git a/include/configs/zynq-common.h b/include/configs/zynq-common.h
index 39035f8bebca..7859b77603f1 100644
--- a/include/configs/zynq-common.h
+++ b/include/configs/zynq-common.h
@@ -58,7 +58,6 @@
 #ifdef CONFIG_USB_EHCI_ZYNQ
 # define CONFIG_EHCI_IS_TDI
 
-# define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x600000
 # define DFU_DEFAULT_POLL_TIMEOUT	300
 # define CONFIG_THOR_RESET_OFF
 #endif
diff --git a/include/dfu.h b/include/dfu.h
index d18b70172829..afada3959b72 100644
--- a/include/dfu.h
+++ b/include/dfu.h
@@ -100,12 +100,6 @@ struct virt_internal_data {
 };
 
 #define DFU_NAME_SIZE			32
-#ifndef CONFIG_SYS_DFU_DATA_BUF_SIZE
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE		(1024*1024*8)	/* 8 MiB */
-#endif
-#ifndef CONFIG_SYS_DFU_MAX_FILE_SIZE
-#define CONFIG_SYS_DFU_MAX_FILE_SIZE CONFIG_SYS_DFU_DATA_BUF_SIZE
-#endif
 #ifndef DFU_DEFAULT_POLL_TIMEOUT
 #define DFU_DEFAULT_POLL_TIMEOUT 0
 #endif
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index 8f92b82719a2..0f5ac8ff5229 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -1988,8 +1988,6 @@ CONFIG_SYS_DEBUG_SERVER_FW_IN_NOR
 CONFIG_SYS_DEFAULT_LPDDR2_TIMINGS
 CONFIG_SYS_DEFAULT_VIDEO_MODE
 CONFIG_SYS_DEF_EEPROM_ADDR
-CONFIG_SYS_DFU_DATA_BUF_SIZE
-CONFIG_SYS_DFU_MAX_FILE_SIZE
 CONFIG_SYS_DIAG_ADDR
 CONFIG_SYS_DIALOG_PMIC_I2C_ADDR
 CONFIG_SYS_DIMM_SLOTS_PER_CTLR
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v3] usb: dfu: Migrate CONFIG_SYS_DFU_DATA_BUF_SIZE and CONFIG_SYS_DFU_MAX_FILE_SIZE to Kconfig
  2021-06-01 11:21 [PATCH v3] usb: dfu: Migrate CONFIG_SYS_DFU_DATA_BUF_SIZE and CONFIG_SYS_DFU_MAX_FILE_SIZE to Kconfig Aswath Govindraju
@ 2021-06-01 15:58 ` Matthias Brugger
  2021-06-02  8:37 ` Lukasz Majewski
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Matthias Brugger @ 2021-06-01 15:58 UTC (permalink / raw)
  To: Aswath Govindraju
  Cc: Lokesh Vutla, Vignesh Raghavendra, Kishon Vijay Abraham I,
	Pratyush Yadav, Tom Warren, Stephen Warren, Peter.Chubb,
	Oleksandr Suvorov, Heiko Schocher, Andreas Geisreiter,
	Ludwig Zenz, Samuel Egli, Allen Martin, Jaehoon Chung,
	Lukasz Majewski, Chander Kashyap, Richard Hu, Fabio Estevam,
	Robert Baldyga, Dinh Nguyen, Chin-Liang See, Marek Vasut,
	Dalon Westergreen, Wolfgang Grandegger, Stefan Roese,
	Mike Looijmans, Otavio Salvador, Michal Simek, Adam Ford,
	Jagan Teki, Ashok Reddy Soma, Ley Foon Tan, Simon Glass,
	Patrick Delaunay, Ovidiu Panait, u-boot



On 01/06/2021 13:21, Aswath Govindraju wrote:
> Currently the config options CONFIG_SYS_DFU_DATA_BUF_SIZE and
> CONFIG_SYS_DFU_MAX_FILE_SIZE are being set in include/configs/<board>.h
> files and also in <board_name>_defconfig files without a Kconfig option. It
> is easier for users to set these configs in defconfig files than in config
> header files as they are a part of the source code.
> 
> Add Kconfig symbols, and update the defconfigs by using tools/moveconfig.py
> script.
> 
> Suggested-by: Pratyush Yadav <p.yadav@ti.com>
> Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
> Acked-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>

For Raspberry Pi parts:
Acked-by: Matthias Brugger <mbrugger@suse.com>

> ---
> 
> Changes since v2:
> - Rebased the patch on top of current HEAD
> - Picked up Oleksandr Suvorov's Acked-by
> 
> Link to v2 patch,
> https://patchwork.ozlabs.org/project/uboot/patch/20210226071849.29070-1-a-govindraju@ti.com/
> 
> Changes since v1:
> - Removed CONFIG_SYS_DFU_MAX_FILE_SIZE in defconfig files, where it was
>   not defined previously. The list of files in which this change is made
>   are listed below,
>   configs/colibri-imx6ull_defconfig
>   configs/colibri_vf_defconfig
>   configs/corvus_defconfig
>   configs/dh_imx6_defconfig
>   configs/draco_defconfig
>   configs/etamin_defconfig 
>   configs/odroid-xu3_defconfig
>   configs/odroid_defconfig
>   configs/origen_defconfig
>   configs/pico-dwarf-imx6ul_defconfig
>   configs/pico-hobbit-imx6ul_defconfig
>   configs/pico-imx6_defconfig
>   configs/pico-imx6ul_defconfig
>   configs/pico-pi-imx6ul_defconfig
>   configs/pxm2_defconfig
>   configs/rastaban_defconfig 
>   configs/rut_defconfig
>   configs/s5p_goni_defconfig
>   configs/s5pc210_universal_defconfig
>   configs/smartweb_defconfig  
>   configs/socfpga_arria5_defconfig
>   configs/socfpga_cyclone5_defconfig
>   configs/socfpga_dbm_soc1_defconfig
>   configs/socfpga_de0_nano_soc_defconfig
>   configs/socfpga_de10_nano_defconfig 
>   configs/socfpga_mcvevk_defconfig
>   configs/socfpga_sockit_defconfig
>   configs/socfpga_socrates_defconfig
>   configs/socfpga_vining_fpga_defconfig
>   configs/taurus_defconfig
>   configs/thuban_defconfig
>   configs/topic_miami_defconfig
>   configs/topic_miamilite_defconfig
>   configs/topic_miamiplus_defconfig 
>   configs/trats2_defconfig 
>   configs/trats_defconfig
>   configs/warp7_bl33_defconfig
>   configs/warp7_defconfig
>   configs/warp_defconfig
>   configs/xilinx_versal_virt_defconfig
>   configs/xilinx_zynq_virt_defconfig
>   configs/xilinx_zynqmp_virt_defconfig
> 
> Link to v1,
> https://patchwork.ozlabs.org/project/uboot/patch/20210223061427.20742-1-a-govindraju@ti.com/ 
> 
>  configs/am65x_evm_a53_defconfig           |  2 ++
>  configs/am65x_evm_r5_usbdfu_defconfig     |  2 ++
>  configs/am65x_hs_evm_a53_defconfig        |  2 ++
>  configs/beaver_defconfig                  |  2 ++
>  configs/cei-tk1-som_defconfig             |  2 ++
>  configs/colibri-imx6ull_defconfig         |  1 +
>  configs/colibri_vf_defconfig              |  1 +
>  configs/corvus_defconfig                  |  1 +
>  configs/dalmore_defconfig                 |  2 ++
>  configs/dh_imx6_defconfig                 |  1 +
>  configs/draco_defconfig                   |  1 +
>  configs/etamin_defconfig                  |  1 +
>  configs/jetson-tk1_defconfig              |  2 ++
>  configs/nyan-big_defconfig                |  2 ++
>  configs/odroid-xu3_defconfig              |  1 +
>  configs/odroid_defconfig                  |  1 +
>  configs/origen_defconfig                  |  1 +
>  configs/p2371-0000_defconfig              |  2 ++
>  configs/p2371-2180_defconfig              |  2 ++
>  configs/p2571_defconfig                   |  2 ++
>  configs/p3450-0000_defconfig              |  2 ++
>  configs/pico-dwarf-imx6ul_defconfig       |  1 +
>  configs/pico-hobbit-imx6ul_defconfig      |  1 +
>  configs/pico-imx6_defconfig               |  1 +
>  configs/pico-imx6ul_defconfig             |  1 +
>  configs/pico-pi-imx6ul_defconfig          |  1 +
>  configs/pxm2_defconfig                    |  1 +
>  configs/rastaban_defconfig                |  1 +
>  configs/rpi_4_32b_defconfig               |  2 ++
>  configs/rpi_4_defconfig                   |  2 ++
>  configs/rut_defconfig                     |  1 +
>  configs/s5p_goni_defconfig                |  1 +
>  configs/s5pc210_universal_defconfig       |  1 +
>  configs/smartweb_defconfig                |  1 +
>  configs/socfpga_arria5_defconfig          |  1 +
>  configs/socfpga_cyclone5_defconfig        |  1 +
>  configs/socfpga_dbm_soc1_defconfig        |  1 +
>  configs/socfpga_de0_nano_soc_defconfig    |  1 +
>  configs/socfpga_de10_nano_defconfig       |  1 +
>  configs/socfpga_mcvevk_defconfig          |  1 +
>  configs/socfpga_sockit_defconfig          |  1 +
>  configs/socfpga_socrates_defconfig        |  1 +
>  configs/socfpga_vining_fpga_defconfig     |  1 +
>  configs/taurus_defconfig                  |  1 +
>  configs/thuban_defconfig                  |  1 +
>  configs/topic_miami_defconfig             |  1 +
>  configs/topic_miamilite_defconfig         |  1 +
>  configs/topic_miamiplus_defconfig         |  1 +
>  configs/trats2_defconfig                  |  1 +
>  configs/trats_defconfig                   |  1 +
>  configs/venice2_defconfig                 |  2 ++
>  configs/warp7_bl33_defconfig              |  1 +
>  configs/warp7_defconfig                   |  1 +
>  configs/warp_defconfig                    |  1 +
>  configs/xilinx_versal_virt_defconfig      |  1 +
>  configs/xilinx_zynq_virt_defconfig        |  1 +
>  configs/xilinx_zynqmp_virt_defconfig      |  1 +
>  drivers/dfu/Kconfig                       | 20 ++++++++++++++++++++
>  include/configs/am65x_evm.h               |  8 --------
>  include/configs/colibri-imx6ull.h         |  1 -
>  include/configs/colibri_vf.h              |  1 -
>  include/configs/corvus.h                  |  1 -
>  include/configs/dh_imx6.h                 |  1 -
>  include/configs/exynos4-common.h          |  1 -
>  include/configs/odroid_xu3.h              |  1 -
>  include/configs/pico-imx6.h               |  1 -
>  include/configs/pico-imx6ul.h             |  1 -
>  include/configs/rpi.h                     |  3 ---
>  include/configs/s5p_goni.h                |  1 -
>  include/configs/siemens-am33x-common.h    |  1 -
>  include/configs/smartweb.h                |  1 -
>  include/configs/socfpga_common.h          |  1 -
>  include/configs/taurus.h                  |  1 -
>  include/configs/tegra-common-usb-gadget.h |  2 --
>  include/configs/warp.h                    |  1 -
>  include/configs/warp7.h                   |  1 -
>  include/configs/xilinx_versal.h           |  1 -
>  include/configs/xilinx_zynqmp.h           |  1 -
>  include/configs/zynq-common.h             |  1 -
>  include/dfu.h                             |  6 ------
>  scripts/config_whitelist.txt              |  2 --
>  81 files changed, 92 insertions(+), 39 deletions(-)
> 
> diff --git a/configs/am65x_evm_a53_defconfig b/configs/am65x_evm_a53_defconfig
> index 01e027f607f9..7f2b825378f1 100644
> --- a/configs/am65x_evm_a53_defconfig
> +++ b/configs/am65x_evm_a53_defconfig
> @@ -90,6 +90,8 @@ CONFIG_CLK_TI_SCI=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x20000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
>  CONFIG_DMA_CHANNELS=y
>  CONFIG_TI_K3_NAVSS_UDMA=y
>  CONFIG_TI_SCI_PROTOCOL=y
> diff --git a/configs/am65x_evm_r5_usbdfu_defconfig b/configs/am65x_evm_r5_usbdfu_defconfig
> index 161634222517..b45a6d242955 100644
> --- a/configs/am65x_evm_r5_usbdfu_defconfig
> +++ b/configs/am65x_evm_r5_usbdfu_defconfig
> @@ -65,6 +65,8 @@ CONFIG_BLK=y
>  CONFIG_CLK=y
>  CONFIG_SPL_CLK=y
>  CONFIG_CLK_TI_SCI=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x5000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
>  CONFIG_TI_SCI_PROTOCOL=y
>  CONFIG_DA8XX_GPIO=y
>  CONFIG_DM_I2C=y
> diff --git a/configs/am65x_hs_evm_a53_defconfig b/configs/am65x_hs_evm_a53_defconfig
> index ec0c7df0f7e5..33526f0cf73b 100644
> --- a/configs/am65x_hs_evm_a53_defconfig
> +++ b/configs/am65x_hs_evm_a53_defconfig
> @@ -85,6 +85,8 @@ CONFIG_CLK_TI_SCI=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x20000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
>  CONFIG_DMA_CHANNELS=y
>  CONFIG_TI_K3_NAVSS_UDMA=y
>  CONFIG_TI_SCI_PROTOCOL=y
> diff --git a/configs/beaver_defconfig b/configs/beaver_defconfig
> index 4c892443b970..cf18feef407b 100644
> --- a/configs/beaver_defconfig
> +++ b/configs/beaver_defconfig
> @@ -34,6 +34,8 @@ CONFIG_SPL_DM=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/cei-tk1-som_defconfig b/configs/cei-tk1-som_defconfig
> index 987e3ac8e95f..c1ff9d7f1428 100644
> --- a/configs/cei-tk1-som_defconfig
> +++ b/configs/cei-tk1-som_defconfig
> @@ -34,6 +34,8 @@ CONFIG_SPL_DM=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/colibri-imx6ull_defconfig b/configs/colibri-imx6ull_defconfig
> index 6d207daa8220..1a08ec06549e 100644
> --- a/configs/colibri-imx6ull_defconfig
> +++ b/configs/colibri-imx6ull_defconfig
> @@ -62,6 +62,7 @@ CONFIG_BOUNCE_BUFFER=y
>  CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_MXC=y
>  CONFIG_FSL_USDHC=y
> diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig
> index 31df3500d95c..13399ca839aa 100644
> --- a/configs/colibri_vf_defconfig
> +++ b/configs/colibri_vf_defconfig
> @@ -62,6 +62,7 @@ CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_DM=y
>  CONFIG_DFU_NAND=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_VYBRID_GPIO=y
>  # CONFIG_MMC_HW_PARTITIONING is not set
>  CONFIG_FSL_ESDHC_IMX=y
> diff --git a/configs/corvus_defconfig b/configs/corvus_defconfig
> index 491f5630822e..8206c4cdc98f 100644
> --- a/configs/corvus_defconfig
> +++ b/configs/corvus_defconfig
> @@ -51,6 +51,7 @@ CONFIG_BLK=y
>  CONFIG_CLK=y
>  CONFIG_CLK_AT91=y
>  CONFIG_DFU_NAND=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_AT91_GPIO=y
>  # CONFIG_MMC is not set
>  CONFIG_MTD=y
> diff --git a/configs/dalmore_defconfig b/configs/dalmore_defconfig
> index f2c1e849787e..fc152121225d 100644
> --- a/configs/dalmore_defconfig
> +++ b/configs/dalmore_defconfig
> @@ -33,6 +33,8 @@ CONFIG_SPL_DM=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/dh_imx6_defconfig b/configs/dh_imx6_defconfig
> index db7d683eb783..934798e094e7 100644
> --- a/configs/dh_imx6_defconfig
> +++ b/configs/dh_imx6_defconfig
> @@ -64,6 +64,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DWC_AHSATA=y
>  CONFIG_BOOTCOUNT_LIMIT=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_MXC=y
>  CONFIG_MISC=y
> diff --git a/configs/draco_defconfig b/configs/draco_defconfig
> index d48f8082755b..e3ccdea5f5e4 100644
> --- a/configs/draco_defconfig
> +++ b/configs/draco_defconfig
> @@ -76,6 +76,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
>  # CONFIG_SPL_DM_MMC is not set
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_MMC_OMAP_HS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/etamin_defconfig b/configs/etamin_defconfig
> index 3256fd3493ec..10534d36b115 100644
> --- a/configs/etamin_defconfig
> +++ b/configs/etamin_defconfig
> @@ -77,6 +77,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
>  # CONFIG_SPL_DM_MMC is not set
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_MMC_OMAP_HS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/jetson-tk1_defconfig b/configs/jetson-tk1_defconfig
> index 74d315d14359..0e7216621646 100644
> --- a/configs/jetson-tk1_defconfig
> +++ b/configs/jetson-tk1_defconfig
> @@ -34,6 +34,8 @@ CONFIG_SPL_DM=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/nyan-big_defconfig b/configs/nyan-big_defconfig
> index 3a47c5a0d01f..349f918727b7 100644
> --- a/configs/nyan-big_defconfig
> +++ b/configs/nyan-big_defconfig
> @@ -51,6 +51,8 @@ CONFIG_SPL_DM=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_CROS_EC_KEYB=y
>  CONFIG_CROS_EC=y
> diff --git a/configs/odroid-xu3_defconfig b/configs/odroid-xu3_defconfig
> index 755a2ca9add9..bc71b45c0fb7 100644
> --- a/configs/odroid-xu3_defconfig
> +++ b/configs/odroid-xu3_defconfig
> @@ -41,6 +41,7 @@ CONFIG_ADC=y
>  CONFIG_ADC_EXYNOS=y
>  CONFIG_DFU_MMC=y
>  CONFIG_SET_DFU_ALT_INFO=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_SUPPORT_EMMC_BOOT=y
>  CONFIG_MMC_DW=y
>  CONFIG_MTD=y
> diff --git a/configs/odroid_defconfig b/configs/odroid_defconfig
> index 9f2b0b205d56..36719d91f66f 100644
> --- a/configs/odroid_defconfig
> +++ b/configs/odroid_defconfig
> @@ -42,6 +42,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DFU_MMC=y
>  CONFIG_SET_DFU_ALT_INFO=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_SYS_I2C_S3C24X0=y
>  CONFIG_MMC_DW=y
>  CONFIG_MMC_SDHCI=y
> diff --git a/configs/origen_defconfig b/configs/origen_defconfig
> index 4c4dc1a0db64..650276e379e3 100644
> --- a/configs/origen_defconfig
> +++ b/configs/origen_defconfig
> @@ -31,6 +31,7 @@ CONFIG_OF_CONTROL=y
>  CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_MMC_DW=y
>  CONFIG_MMC_SDHCI=y
>  CONFIG_MMC_SDHCI_SDMA=y
> diff --git a/configs/p2371-0000_defconfig b/configs/p2371-0000_defconfig
> index da3be084be25..97232bb80946 100644
> --- a/configs/p2371-0000_defconfig
> +++ b/configs/p2371-0000_defconfig
> @@ -28,6 +28,8 @@ CONFIG_SYS_MMC_ENV_PART=2
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/p2371-2180_defconfig b/configs/p2371-2180_defconfig
> index c7f4404bbacb..af490891e2bc 100644
> --- a/configs/p2371-2180_defconfig
> +++ b/configs/p2371-2180_defconfig
> @@ -32,6 +32,8 @@ CONFIG_SYS_MMC_ENV_PART=2
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/p2571_defconfig b/configs/p2571_defconfig
> index 973034096743..68bfb8f28cdd 100644
> --- a/configs/p2571_defconfig
> +++ b/configs/p2571_defconfig
> @@ -29,6 +29,8 @@ CONFIG_SYS_MMC_ENV_PART=2
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/p3450-0000_defconfig b/configs/p3450-0000_defconfig
> index 6e6a8133b4d4..12c3f9bb28e7 100644
> --- a/configs/p3450-0000_defconfig
> +++ b/configs/p3450-0000_defconfig
> @@ -33,6 +33,8 @@ CONFIG_ENV_IS_IN_SPI_FLASH=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/pico-dwarf-imx6ul_defconfig b/configs/pico-dwarf-imx6ul_defconfig
> index 9695eb26576a..8d17a24d6272 100644
> --- a/configs/pico-dwarf-imx6ul_defconfig
> +++ b/configs/pico-dwarf-imx6ul_defconfig
> @@ -43,6 +43,7 @@ CONFIG_ENV_IS_IN_MMC=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_BUF_SIZE=0x10000000
>  CONFIG_FASTBOOT_FLASH=y
> diff --git a/configs/pico-hobbit-imx6ul_defconfig b/configs/pico-hobbit-imx6ul_defconfig
> index 5c1ca0b8d7f4..6f74c6e27749 100644
> --- a/configs/pico-hobbit-imx6ul_defconfig
> +++ b/configs/pico-hobbit-imx6ul_defconfig
> @@ -44,6 +44,7 @@ CONFIG_ENV_IS_IN_MMC=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_BUF_SIZE=0x10000000
>  CONFIG_FASTBOOT_FLASH=y
> diff --git a/configs/pico-imx6_defconfig b/configs/pico-imx6_defconfig
> index 0f27c5475538..f0109814339f 100644
> --- a/configs/pico-imx6_defconfig
> +++ b/configs/pico-imx6_defconfig
> @@ -58,6 +58,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_BUF_ADDR=0x12000000
>  CONFIG_FASTBOOT_BUF_SIZE=0x10000000
> diff --git a/configs/pico-imx6ul_defconfig b/configs/pico-imx6ul_defconfig
> index 159fb6b6cd7d..a54b22f5a538 100644
> --- a/configs/pico-imx6ul_defconfig
> +++ b/configs/pico-imx6ul_defconfig
> @@ -47,6 +47,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_NET_RANDOM_ETHADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_BUF_SIZE=0x10000000
>  CONFIG_FASTBOOT_FLASH=y
> diff --git a/configs/pico-pi-imx6ul_defconfig b/configs/pico-pi-imx6ul_defconfig
> index 51b71a77e5e5..bb1a9d654246 100644
> --- a/configs/pico-pi-imx6ul_defconfig
> +++ b/configs/pico-pi-imx6ul_defconfig
> @@ -44,6 +44,7 @@ CONFIG_ENV_IS_IN_MMC=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_BUF_SIZE=0x10000000
>  CONFIG_FASTBOOT_FLASH=y
> diff --git a/configs/pxm2_defconfig b/configs/pxm2_defconfig
> index 90ef4c8d99ac..1d14ea918327 100644
> --- a/configs/pxm2_defconfig
> +++ b/configs/pxm2_defconfig
> @@ -77,6 +77,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
>  # CONFIG_SPL_DM_MMC is not set
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_MMC_OMAP_HS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/rastaban_defconfig b/configs/rastaban_defconfig
> index 63c62a5c0745..29ade173f4a8 100644
> --- a/configs/rastaban_defconfig
> +++ b/configs/rastaban_defconfig
> @@ -76,6 +76,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
>  # CONFIG_SPL_DM_MMC is not set
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_MMC_OMAP_HS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/rpi_4_32b_defconfig b/configs/rpi_4_32b_defconfig
> index 47ea466454fc..64d969ffe57c 100644
> --- a/configs/rpi_4_32b_defconfig
> +++ b/configs/rpi_4_32b_defconfig
> @@ -24,6 +24,8 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DM_DMA=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x200000
>  CONFIG_MMC_SDHCI=y
>  CONFIG_MMC_SDHCI_SDMA=y
>  CONFIG_MMC_SDHCI_BCM2835=y
> diff --git a/configs/rpi_4_defconfig b/configs/rpi_4_defconfig
> index 9cd1477107fa..025ac7bc0b28 100644
> --- a/configs/rpi_4_defconfig
> +++ b/configs/rpi_4_defconfig
> @@ -24,6 +24,8 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DM_DMA=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x200000
>  CONFIG_MMC_SDHCI=y
>  CONFIG_MMC_SDHCI_SDMA=y
>  CONFIG_MMC_SDHCI_BCM2835=y
> diff --git a/configs/rut_defconfig b/configs/rut_defconfig
> index 6fc06f1ed974..ab99f17e31d5 100644
> --- a/configs/rut_defconfig
> +++ b/configs/rut_defconfig
> @@ -78,6 +78,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
>  # CONFIG_SPL_DM_MMC is not set
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_MMC_OMAP_HS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/s5p_goni_defconfig b/configs/s5p_goni_defconfig
> index 28d8be6b01f6..72f9ce16a950 100644
> --- a/configs/s5p_goni_defconfig
> +++ b/configs/s5p_goni_defconfig
> @@ -36,6 +36,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  # CONFIG_NET is not set
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_DM_I2C_GPIO=y
>  CONFIG_MMC_SDHCI=y
>  CONFIG_MMC_SDHCI_S5P=y
> diff --git a/configs/s5pc210_universal_defconfig b/configs/s5pc210_universal_defconfig
> index 759034a8a5c6..734a99f8efa5 100644
> --- a/configs/s5pc210_universal_defconfig
> +++ b/configs/s5pc210_universal_defconfig
> @@ -33,6 +33,7 @@ CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_SYS_I2C_S3C24X0=y
>  CONFIG_MMC_DW=y
>  CONFIG_MMC_SDHCI=y
> diff --git a/configs/smartweb_defconfig b/configs/smartweb_defconfig
> index 1f600d02780a..dc7b27742f87 100644
> --- a/configs/smartweb_defconfig
> +++ b/configs/smartweb_defconfig
> @@ -53,6 +53,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_CLK=y
>  CONFIG_CLK_AT91=y
>  CONFIG_DFU_NAND=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_AT91_GPIO=y
>  # CONFIG_MMC is not set
>  CONFIG_MTD=y
> diff --git a/configs/socfpga_arria5_defconfig b/configs/socfpga_arria5_defconfig
> index d4f9bade3d01..e6e6cb24e155 100644
> --- a/configs/socfpga_arria5_defconfig
> +++ b/configs/socfpga_arria5_defconfig
> @@ -39,6 +39,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_cyclone5_defconfig b/configs/socfpga_cyclone5_defconfig
> index ae7fd501917a..ff7aa1df2a4a 100644
> --- a/configs/socfpga_cyclone5_defconfig
> +++ b/configs/socfpga_cyclone5_defconfig
> @@ -39,6 +39,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_dbm_soc1_defconfig b/configs/socfpga_dbm_soc1_defconfig
> index 033c40736ed8..70a891b003a4 100644
> --- a/configs/socfpga_dbm_soc1_defconfig
> +++ b/configs/socfpga_dbm_soc1_defconfig
> @@ -44,6 +44,7 @@ CONFIG_ENV_IS_IN_MMC=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_de0_nano_soc_defconfig b/configs/socfpga_de0_nano_soc_defconfig
> index 53efc9f5bdad..35ad9a2ea726 100644
> --- a/configs/socfpga_de0_nano_soc_defconfig
> +++ b/configs/socfpga_de0_nano_soc_defconfig
> @@ -39,6 +39,7 @@ CONFIG_ENV_IS_IN_MMC=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_de10_nano_defconfig b/configs/socfpga_de10_nano_defconfig
> index d94b9584dea8..92d9336f3580 100644
> --- a/configs/socfpga_de10_nano_defconfig
> +++ b/configs/socfpga_de10_nano_defconfig
> @@ -36,6 +36,7 @@ CONFIG_ENV_IS_IN_MMC=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_mcvevk_defconfig b/configs/socfpga_mcvevk_defconfig
> index b24b417a6bc3..2e7a9a21e675 100644
> --- a/configs/socfpga_mcvevk_defconfig
> +++ b/configs/socfpga_mcvevk_defconfig
> @@ -37,6 +37,7 @@ CONFIG_ENV_IS_IN_MMC=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_sockit_defconfig b/configs/socfpga_sockit_defconfig
> index 4ea9b41a7e21..32f203143324 100644
> --- a/configs/socfpga_sockit_defconfig
> +++ b/configs/socfpga_sockit_defconfig
> @@ -39,6 +39,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_socrates_defconfig b/configs/socfpga_socrates_defconfig
> index 16c9b927a9bd..756388ee5704 100644
> --- a/configs/socfpga_socrates_defconfig
> +++ b/configs/socfpga_socrates_defconfig
> @@ -40,6 +40,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_vining_fpga_defconfig b/configs/socfpga_vining_fpga_defconfig
> index 3984b9bc7849..174494c16e57 100644
> --- a/configs/socfpga_vining_fpga_defconfig
> +++ b/configs/socfpga_vining_fpga_defconfig
> @@ -53,6 +53,7 @@ CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_LED_STATUS=y
> diff --git a/configs/taurus_defconfig b/configs/taurus_defconfig
> index a79cdf3fa7ce..dbd642862413 100644
> --- a/configs/taurus_defconfig
> +++ b/configs/taurus_defconfig
> @@ -71,6 +71,7 @@ CONFIG_BLK=y
>  CONFIG_CLK=y
>  CONFIG_CLK_AT91=y
>  CONFIG_DFU_NAND=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_AT91_GPIO=y
>  # CONFIG_MMC is not set
>  CONFIG_MTD=y
> diff --git a/configs/thuban_defconfig b/configs/thuban_defconfig
> index d1cc9a69bec8..247538a5d9fb 100644
> --- a/configs/thuban_defconfig
> +++ b/configs/thuban_defconfig
> @@ -76,6 +76,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
>  # CONFIG_SPL_DM_MMC is not set
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_MMC_OMAP_HS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/topic_miami_defconfig b/configs/topic_miami_defconfig
> index ec66bb09584a..3681919f8503 100644
> --- a/configs/topic_miami_defconfig
> +++ b/configs/topic_miami_defconfig
> @@ -38,6 +38,7 @@ CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_RAM=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x600000
>  CONFIG_FPGA_XILINX=y
>  CONFIG_FPGA_ZYNQPL=y
>  CONFIG_DM_I2C=y
> diff --git a/configs/topic_miamilite_defconfig b/configs/topic_miamilite_defconfig
> index e4145948859e..301a357ec70f 100644
> --- a/configs/topic_miamilite_defconfig
> +++ b/configs/topic_miamilite_defconfig
> @@ -38,6 +38,7 @@ CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_RAM=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x600000
>  CONFIG_FPGA_XILINX=y
>  CONFIG_FPGA_ZYNQPL=y
>  CONFIG_DM_I2C=y
> diff --git a/configs/topic_miamiplus_defconfig b/configs/topic_miamiplus_defconfig
> index 0041ee153669..27cd9132e86b 100644
> --- a/configs/topic_miamiplus_defconfig
> +++ b/configs/topic_miamiplus_defconfig
> @@ -37,6 +37,7 @@ CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_RAM=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x600000
>  CONFIG_FPGA_XILINX=y
>  CONFIG_FPGA_ZYNQPL=y
>  CONFIG_DM_I2C=y
> diff --git a/configs/trats2_defconfig b/configs/trats2_defconfig
> index 8439ddc26775..a3955e1ffc5a 100644
> --- a/configs/trats2_defconfig
> +++ b/configs/trats2_defconfig
> @@ -34,6 +34,7 @@ CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_DM_I2C_GPIO=y
>  CONFIG_SYS_I2C_S3C24X0=y
>  CONFIG_MMC_DW=y
> diff --git a/configs/trats_defconfig b/configs/trats_defconfig
> index 931c69ba6f17..64cd5dcdb3b2 100644
> --- a/configs/trats_defconfig
> +++ b/configs/trats_defconfig
> @@ -33,6 +33,7 @@ CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_DM_I2C_GPIO=y
>  CONFIG_SYS_I2C_S3C24X0=y
>  CONFIG_MMC_DW=y
> diff --git a/configs/venice2_defconfig b/configs/venice2_defconfig
> index ca18677dd4c7..9c14cef2b999 100644
> --- a/configs/venice2_defconfig
> +++ b/configs/venice2_defconfig
> @@ -32,6 +32,8 @@ CONFIG_SPL_DM=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/warp7_bl33_defconfig b/configs/warp7_bl33_defconfig
> index c5c5d99c6ca6..5452a49061c5 100644
> --- a/configs/warp7_bl33_defconfig
> +++ b/configs/warp7_bl33_defconfig
> @@ -35,6 +35,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_NET_RANDOM_ETHADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DM_I2C=y
>  CONFIG_SUPPORT_EMMC_BOOT=y
>  CONFIG_FSL_USDHC=y
> diff --git a/configs/warp7_defconfig b/configs/warp7_defconfig
> index 910419938cd2..43471e754a9f 100644
> --- a/configs/warp7_defconfig
> +++ b/configs/warp7_defconfig
> @@ -41,6 +41,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_NET_RANDOM_ETHADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DM_I2C=y
>  CONFIG_SUPPORT_EMMC_BOOT=y
>  CONFIG_FSL_USDHC=y
> diff --git a/configs/warp_defconfig b/configs/warp_defconfig
> index 34acc9e6c844..04f756aacf8c 100644
> --- a/configs/warp_defconfig
> +++ b/configs/warp_defconfig
> @@ -33,6 +33,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  # CONFIG_NET is not set
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_SUPPORT_EMMC_BOOT=y
>  CONFIG_FSL_USDHC=y
>  CONFIG_MXC_UART=y
> diff --git a/configs/xilinx_versal_virt_defconfig b/configs/xilinx_versal_virt_defconfig
> index f4e9a80728d7..121c3ae72051 100644
> --- a/configs/xilinx_versal_virt_defconfig
> +++ b/configs/xilinx_versal_virt_defconfig
> @@ -54,6 +54,7 @@ CONFIG_TFTP_BLOCKSIZE=4096
>  CONFIG_CLK_VERSAL=y
>  CONFIG_DFU_TIMEOUT=y
>  CONFIG_DFU_RAM=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1800000
>  CONFIG_FPGA_XILINX=y
>  CONFIG_FPGA_VERSALPL=y
>  CONFIG_DM_I2C=y
> diff --git a/configs/xilinx_zynq_virt_defconfig b/configs/xilinx_zynq_virt_defconfig
> index 7e56395a521f..e53ef2443ec1 100644
> --- a/configs/xilinx_zynq_virt_defconfig
> +++ b/configs/xilinx_zynq_virt_defconfig
> @@ -68,6 +68,7 @@ CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_TIMEOUT=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x600000
>  CONFIG_FPGA_XILINX=y
>  CONFIG_FPGA_ZYNQPL=y
>  CONFIG_DM_I2C=y
> diff --git a/configs/xilinx_zynqmp_virt_defconfig b/configs/xilinx_zynqmp_virt_defconfig
> index e939b04ef6a5..b0cc9d9ba88a 100644
> --- a/configs/xilinx_zynqmp_virt_defconfig
> +++ b/configs/xilinx_zynqmp_virt_defconfig
> @@ -90,6 +90,7 @@ CONFIG_DFU_NAND=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
>  CONFIG_DFU_MTD=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1800000
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_FLASH=y
>  CONFIG_FASTBOOT_FLASH_MMC_DEV=0
> diff --git a/drivers/dfu/Kconfig b/drivers/dfu/Kconfig
> index 121dc54f5463..b50547476cbd 100644
> --- a/drivers/dfu/Kconfig
> +++ b/drivers/dfu/Kconfig
> @@ -92,5 +92,25 @@ config SET_DFU_ALT_INFO
>  	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
> diff --git a/include/configs/am65x_evm.h b/include/configs/am65x_evm.h
> index 76d73086fb89..8c50fe9d11ff 100644
> --- a/include/configs/am65x_evm.h
> +++ b/include/configs/am65x_evm.h
> @@ -22,7 +22,6 @@
>  #ifdef CONFIG_TARGET_AM654_A53_EVM
>  #define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SPL_TEXT_BASE +	\
>  					 CONFIG_SYS_K3_NON_SECURE_MSRAM_SIZE)
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x20000
>  #else
>  /*
>   * Maximum size in memory allocated to the SPL BSS. Keep it as tight as
> @@ -45,7 +44,6 @@
>  /* Configure R5 SPL post-relocation malloc pool in DDR */
>  #define CONFIG_SYS_SPL_MALLOC_START	0x84000000
>  #define CONFIG_SYS_SPL_MALLOC_SIZE	SZ_16M
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x5000
>  #endif
>  
>  #ifdef CONFIG_SYS_K3_SPL_ATF
> @@ -56,12 +54,6 @@
>  #define CONFIG_SKIP_LOWLEVEL_INIT
>  #endif
>  
> -/*
> - * If the maximum size is not declared then it is defined as
> - * CONFIG_SYS_DFU_DATA_BUF_SIZE.
> - */
> -#define CONFIG_SYS_DFU_MAX_FILE_SIZE	(1024 * 1024 * 8)   /* 8 MiB */
> -
>  #define CONFIG_SPL_MAX_SIZE		CONFIG_SYS_K3_MAX_DOWNLODABLE_IMAGE_SIZE
>  
>  #define CONFIG_SYS_BOOTM_LEN		SZ_64M
> diff --git a/include/configs/colibri-imx6ull.h b/include/configs/colibri-imx6ull.h
> index 22ee2ba03e46..f84931653fbc 100644
> --- a/include/configs/colibri-imx6ull.h
> +++ b/include/configs/colibri-imx6ull.h
> @@ -143,7 +143,6 @@
>  #define CONFIG_USBD_HS
>  
>  /* USB Device Firmware Update support */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_16M
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  
>  #if defined(CONFIG_VIDEO) || defined(CONFIG_DM_VIDEO)
> diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
> index cae7c14bfb90..5bd440f1db33 100644
> --- a/include/configs/colibri_vf.h
> +++ b/include/configs/colibri_vf.h
> @@ -143,6 +143,5 @@
>  #define CONFIG_EHCI_HCD_INIT_AFTER_RESET
>  
>  /* USB DFU */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE (SZ_1M)
>  
>  #endif /* __CONFIG_H */
> diff --git a/include/configs/corvus.h b/include/configs/corvus.h
> index 55f77e4400a2..bd4d6e8e39f4 100644
> --- a/include/configs/corvus.h
> +++ b/include/configs/corvus.h
> @@ -81,7 +81,6 @@
>  #define CONFIG_AT91_WANTS_COMMON_PHY
>  
>  /* DFU class support */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(SZ_1M)
>  #define DFU_MANIFEST_POLL_TIMEOUT	25000
>  
>  #define CONFIG_SYS_LOAD_ADDR	ATMEL_BASE_CS6
> diff --git a/include/configs/dh_imx6.h b/include/configs/dh_imx6.h
> index 4a469af5e60b..d9be1c38c44a 100644
> --- a/include/configs/dh_imx6.h
> +++ b/include/configs/dh_imx6.h
> @@ -66,7 +66,6 @@
>  
>  /* USB Gadget (DFU, UMS) */
>  #if defined(CONFIG_CMD_DFU) || defined(CONFIG_CMD_USB_MASS_STORAGE)
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(16 * 1024 * 1024)
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  
>  /* USB IDs */
> diff --git a/include/configs/exynos4-common.h b/include/configs/exynos4-common.h
> index 005f65d4ed6a..5e2aca371e7e 100644
> --- a/include/configs/exynos4-common.h
> +++ b/include/configs/exynos4-common.h
> @@ -19,7 +19,6 @@
>  /* SD/MMC configuration */
>  #define CONFIG_MMC_DEFAULT_DEV	0
>  
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_32M
>  #define DFU_DEFAULT_POLL_TIMEOUT 300
>  
>  /* USB Samsung's IDs */
> diff --git a/include/configs/odroid_xu3.h b/include/configs/odroid_xu3.h
> index 0c86196152fc..fc70dc6a7323 100644
> --- a/include/configs/odroid_xu3.h
> +++ b/include/configs/odroid_xu3.h
> @@ -27,7 +27,6 @@
>  #define CONFIG_USB_EHCI_EXYNOS
>  
>  /* DFU */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_32M
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  #define DFU_MANIFEST_POLL_TIMEOUT	25000
>  
> diff --git a/include/configs/pico-imx6.h b/include/configs/pico-imx6.h
> index 19c8aeb71b6e..6199f0d72e76 100644
> --- a/include/configs/pico-imx6.h
> +++ b/include/configs/pico-imx6.h
> @@ -38,7 +38,6 @@
>  #define CONFIG_MXC_USB_PORTSC		(PORT_PTS_UTMI | PORT_PTS_PTW)
>  #define CONFIG_MXC_USB_FLAGS		0
>  
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_16M
>  #define DFU_DEFAULT_POLL_TIMEOUT 300
>  
>  #define CONFIG_DFU_ENV_SETTINGS \
> diff --git a/include/configs/pico-imx6ul.h b/include/configs/pico-imx6ul.h
> index 747ef09f37d9..04a2531f7447 100644
> --- a/include/configs/pico-imx6ul.h
> +++ b/include/configs/pico-imx6ul.h
> @@ -49,7 +49,6 @@
>  
>  #define CONFIG_USBD_HS
>  
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_16M
>  #define DFU_DEFAULT_POLL_TIMEOUT 300
>  
>  #define CONFIG_DFU_ENV_SETTINGS \
> diff --git a/include/configs/rpi.h b/include/configs/rpi.h
> index 834f1cd23640..46ada884b487 100644
> --- a/include/configs/rpi.h
> +++ b/include/configs/rpi.h
> @@ -74,9 +74,6 @@
>  
>  /* DFU over USB/UDC */
>  #ifdef CONFIG_CMD_DFU
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_1M
> -#define CONFIG_SYS_DFU_MAX_FILE_SIZE	SZ_2M
> -
>  #ifdef CONFIG_ARM64
>  #define KERNEL_FILENAME		"Image"
>  #else
> diff --git a/include/configs/s5p_goni.h b/include/configs/s5p_goni.h
> index 9688bdc4c035..6af6009e6126 100644
> --- a/include/configs/s5p_goni.h
> +++ b/include/configs/s5p_goni.h
> @@ -41,7 +41,6 @@
>  #define CONFIG_PWM			1
>  
>  /* USB Composite download gadget - g_dnl */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_32M
>  #define DFU_DEFAULT_POLL_TIMEOUT 300
>  
>  /* USB Samsung's IDs */
> diff --git a/include/configs/siemens-am33x-common.h b/include/configs/siemens-am33x-common.h
> index e18af7493c7f..f96dd774b178 100644
> --- a/include/configs/siemens-am33x-common.h
> +++ b/include/configs/siemens-am33x-common.h
> @@ -143,7 +143,6 @@
>  #define CONFIG_USBD_HS
>  
>  /* USB Device Firmware Update support */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(1 << 20)
>  #define DFU_MANIFEST_POLL_TIMEOUT	25000
>  
>  #endif /* CONFIG_SPL_BUILD */
> diff --git a/include/configs/smartweb.h b/include/configs/smartweb.h
> index 6e715dc0c1be..5e8637e49484 100644
> --- a/include/configs/smartweb.h
> +++ b/include/configs/smartweb.h
> @@ -122,7 +122,6 @@
>  #define CONFIG_USB_GADGET_AT91
>  
>  /* DFU class support */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_1M
>  #define DFU_MANIFEST_POLL_TIMEOUT	25000
>  #endif
>  
> diff --git a/include/configs/socfpga_common.h b/include/configs/socfpga_common.h
> index 62b327cd6e52..c5e4292f1964 100644
> --- a/include/configs/socfpga_common.h
> +++ b/include/configs/socfpga_common.h
> @@ -148,7 +148,6 @@ unsigned int cm_get_qspi_controller_clk_hz(void);
>   * USB Gadget (DFU, UMS)
>   */
>  #if defined(CONFIG_CMD_DFU) || defined(CONFIG_CMD_USB_MASS_STORAGE)
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(16 * 1024 * 1024)
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  
>  /* USB IDs */
> diff --git a/include/configs/taurus.h b/include/configs/taurus.h
> index 39eae8e2ba04..6e869462f1e6 100644
> --- a/include/configs/taurus.h
> +++ b/include/configs/taurus.h
> @@ -92,7 +92,6 @@
>  #define CONFIG_USB_GADGET_AT91
>  
>  /* DFU class support */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(SZ_1M)
>  #define DFU_MANIFEST_POLL_TIMEOUT	25000
>  #endif
>  
> diff --git a/include/configs/tegra-common-usb-gadget.h b/include/configs/tegra-common-usb-gadget.h
> index e6b61c4e8fd3..201f4bc093c9 100644
> --- a/include/configs/tegra-common-usb-gadget.h
> +++ b/include/configs/tegra-common-usb-gadget.h
> @@ -13,8 +13,6 @@
>  #define CONFIG_CI_UDC_HAS_HOSTPC
>  #endif
>  /* DFU protocol */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_1M
> -#define CONFIG_SYS_DFU_MAX_FILE_SIZE SZ_32M
>  #endif
>  
>  #endif /* _TEGRA_COMMON_USB_GADGET_H_ */
> diff --git a/include/configs/warp.h b/include/configs/warp.h
> index 0f97804eb29c..bda8ff9a34f3 100644
> --- a/include/configs/warp.h
> +++ b/include/configs/warp.h
> @@ -50,7 +50,6 @@
>  
>  #define CONFIG_USBD_HS
>  
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_16M
>  #define DFU_DEFAULT_POLL_TIMEOUT 300
>  
>  /* I2C Configs */
> diff --git a/include/configs/warp7.h b/include/configs/warp7.h
> index 8eb106027440..a5d52e3977fd 100644
> --- a/include/configs/warp7.h
> +++ b/include/configs/warp7.h
> @@ -149,7 +149,6 @@
>  #define CONFIG_USBD_HS
>  
>  /* USB Device Firmware Update support */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_16M
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  
>  #define CONFIG_USBNET_DEV_ADDR		"de:ad:be:af:00:01"
> diff --git a/include/configs/xilinx_versal.h b/include/configs/xilinx_versal.h
> index 380f93a2f68e..ebe81968d130 100644
> --- a/include/configs/xilinx_versal.h
> +++ b/include/configs/xilinx_versal.h
> @@ -47,7 +47,6 @@
>  #define CONFIG_SYS_MAXARGS		64
>  
>  #if defined(CONFIG_CMD_DFU)
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x1800000
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  #define CONFIG_THOR_RESET_OFF
>  #endif
> diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h
> index 986af2be7819..cadaf1a96312 100644
> --- a/include/configs/xilinx_zynqmp.h
> +++ b/include/configs/xilinx_zynqmp.h
> @@ -52,7 +52,6 @@
>  #define CONFIG_SYS_LOAD_ADDR		0x8000000
>  
>  #if defined(CONFIG_ZYNQMP_USB)
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x1800000
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  #define CONFIG_THOR_RESET_OFF
>  
> diff --git a/include/configs/zynq-common.h b/include/configs/zynq-common.h
> index 39035f8bebca..7859b77603f1 100644
> --- a/include/configs/zynq-common.h
> +++ b/include/configs/zynq-common.h
> @@ -58,7 +58,6 @@
>  #ifdef CONFIG_USB_EHCI_ZYNQ
>  # define CONFIG_EHCI_IS_TDI
>  
> -# define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x600000
>  # define DFU_DEFAULT_POLL_TIMEOUT	300
>  # define CONFIG_THOR_RESET_OFF
>  #endif
> diff --git a/include/dfu.h b/include/dfu.h
> index d18b70172829..afada3959b72 100644
> --- a/include/dfu.h
> +++ b/include/dfu.h
> @@ -100,12 +100,6 @@ struct virt_internal_data {
>  };
>  
>  #define DFU_NAME_SIZE			32
> -#ifndef CONFIG_SYS_DFU_DATA_BUF_SIZE
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE		(1024*1024*8)	/* 8 MiB */
> -#endif
> -#ifndef CONFIG_SYS_DFU_MAX_FILE_SIZE
> -#define CONFIG_SYS_DFU_MAX_FILE_SIZE CONFIG_SYS_DFU_DATA_BUF_SIZE
> -#endif
>  #ifndef DFU_DEFAULT_POLL_TIMEOUT
>  #define DFU_DEFAULT_POLL_TIMEOUT 0
>  #endif
> diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
> index 8f92b82719a2..0f5ac8ff5229 100644
> --- a/scripts/config_whitelist.txt
> +++ b/scripts/config_whitelist.txt
> @@ -1988,8 +1988,6 @@ CONFIG_SYS_DEBUG_SERVER_FW_IN_NOR
>  CONFIG_SYS_DEFAULT_LPDDR2_TIMINGS
>  CONFIG_SYS_DEFAULT_VIDEO_MODE
>  CONFIG_SYS_DEF_EEPROM_ADDR
> -CONFIG_SYS_DFU_DATA_BUF_SIZE
> -CONFIG_SYS_DFU_MAX_FILE_SIZE
>  CONFIG_SYS_DIAG_ADDR
>  CONFIG_SYS_DIALOG_PMIC_I2C_ADDR
>  CONFIG_SYS_DIMM_SLOTS_PER_CTLR
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v3] usb: dfu: Migrate CONFIG_SYS_DFU_DATA_BUF_SIZE and CONFIG_SYS_DFU_MAX_FILE_SIZE to Kconfig
  2021-06-01 11:21 [PATCH v3] usb: dfu: Migrate CONFIG_SYS_DFU_DATA_BUF_SIZE and CONFIG_SYS_DFU_MAX_FILE_SIZE to Kconfig Aswath Govindraju
  2021-06-01 15:58 ` Matthias Brugger
@ 2021-06-02  8:37 ` Lukasz Majewski
  2021-06-08  8:04 ` Aswath Govindraju
  2021-06-09 12:19 ` Tom Rini
  3 siblings, 0 replies; 6+ messages in thread
From: Lukasz Majewski @ 2021-06-02  8:37 UTC (permalink / raw)
  To: Aswath Govindraju
  Cc: Lokesh Vutla, Vignesh Raghavendra, Kishon Vijay Abraham I,
	Pratyush Yadav, Tom Warren, Stephen Warren, Peter.Chubb,
	Oleksandr Suvorov, Heiko Schocher, Andreas Geisreiter,
	Ludwig Zenz, Samuel Egli, Allen Martin, Jaehoon Chung,
	Chander Kashyap, Richard Hu, Fabio Estevam, Matthias Brugger,
	Robert Baldyga, Dinh Nguyen, Chin-Liang See, Marek Vasut,
	Dalon Westergreen, Wolfgang Grandegger, Stefan Roese,
	Mike Looijmans, Otavio Salvador, Michal Simek, Adam Ford,
	Jagan Teki, Ashok Reddy Soma, Ley Foon Tan, Simon Glass,
	Patrick Delaunay, Ovidiu Panait, u-boot

[-- Attachment #1: Type: text/plain, Size: 45312 bytes --]

On Tue, 1 Jun 2021 16:51:47 +0530
Aswath Govindraju <a-govindraju@ti.com> wrote:

> Currently the config options CONFIG_SYS_DFU_DATA_BUF_SIZE and
> CONFIG_SYS_DFU_MAX_FILE_SIZE are being set in
> include/configs/<board>.h files and also in <board_name>_defconfig
> files without a Kconfig option. It is easier for users to set these
> configs in defconfig files than in config header files as they are a
> part of the source code.
> 
> Add Kconfig symbols, and update the defconfigs by using
> tools/moveconfig.py script.

Acked-by: Lukasz Majewski <lukma@denx.de>

> 
> Suggested-by: Pratyush Yadav <p.yadav@ti.com>
> Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
> Acked-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
> ---
> 
> Changes since v2:
> - Rebased the patch on top of current HEAD
> - Picked up Oleksandr Suvorov's Acked-by
> 
> Link to v2 patch,
> https://patchwork.ozlabs.org/project/uboot/patch/20210226071849.29070-1-a-govindraju@ti.com/
> 
> Changes since v1:
> - Removed CONFIG_SYS_DFU_MAX_FILE_SIZE in defconfig files, where it
> was not defined previously. The list of files in which this change is
> made are listed below,
>   configs/colibri-imx6ull_defconfig
>   configs/colibri_vf_defconfig
>   configs/corvus_defconfig
>   configs/dh_imx6_defconfig
>   configs/draco_defconfig
>   configs/etamin_defconfig 
>   configs/odroid-xu3_defconfig
>   configs/odroid_defconfig
>   configs/origen_defconfig
>   configs/pico-dwarf-imx6ul_defconfig
>   configs/pico-hobbit-imx6ul_defconfig
>   configs/pico-imx6_defconfig
>   configs/pico-imx6ul_defconfig
>   configs/pico-pi-imx6ul_defconfig
>   configs/pxm2_defconfig
>   configs/rastaban_defconfig 
>   configs/rut_defconfig
>   configs/s5p_goni_defconfig
>   configs/s5pc210_universal_defconfig
>   configs/smartweb_defconfig  
>   configs/socfpga_arria5_defconfig
>   configs/socfpga_cyclone5_defconfig
>   configs/socfpga_dbm_soc1_defconfig
>   configs/socfpga_de0_nano_soc_defconfig
>   configs/socfpga_de10_nano_defconfig 
>   configs/socfpga_mcvevk_defconfig
>   configs/socfpga_sockit_defconfig
>   configs/socfpga_socrates_defconfig
>   configs/socfpga_vining_fpga_defconfig
>   configs/taurus_defconfig
>   configs/thuban_defconfig
>   configs/topic_miami_defconfig
>   configs/topic_miamilite_defconfig
>   configs/topic_miamiplus_defconfig 
>   configs/trats2_defconfig 
>   configs/trats_defconfig
>   configs/warp7_bl33_defconfig
>   configs/warp7_defconfig
>   configs/warp_defconfig
>   configs/xilinx_versal_virt_defconfig
>   configs/xilinx_zynq_virt_defconfig
>   configs/xilinx_zynqmp_virt_defconfig
> 
> Link to v1,
> https://patchwork.ozlabs.org/project/uboot/patch/20210223061427.20742-1-a-govindraju@ti.com/ 
> 
>  configs/am65x_evm_a53_defconfig           |  2 ++
>  configs/am65x_evm_r5_usbdfu_defconfig     |  2 ++
>  configs/am65x_hs_evm_a53_defconfig        |  2 ++
>  configs/beaver_defconfig                  |  2 ++
>  configs/cei-tk1-som_defconfig             |  2 ++
>  configs/colibri-imx6ull_defconfig         |  1 +
>  configs/colibri_vf_defconfig              |  1 +
>  configs/corvus_defconfig                  |  1 +
>  configs/dalmore_defconfig                 |  2 ++
>  configs/dh_imx6_defconfig                 |  1 +
>  configs/draco_defconfig                   |  1 +
>  configs/etamin_defconfig                  |  1 +
>  configs/jetson-tk1_defconfig              |  2 ++
>  configs/nyan-big_defconfig                |  2 ++
>  configs/odroid-xu3_defconfig              |  1 +
>  configs/odroid_defconfig                  |  1 +
>  configs/origen_defconfig                  |  1 +
>  configs/p2371-0000_defconfig              |  2 ++
>  configs/p2371-2180_defconfig              |  2 ++
>  configs/p2571_defconfig                   |  2 ++
>  configs/p3450-0000_defconfig              |  2 ++
>  configs/pico-dwarf-imx6ul_defconfig       |  1 +
>  configs/pico-hobbit-imx6ul_defconfig      |  1 +
>  configs/pico-imx6_defconfig               |  1 +
>  configs/pico-imx6ul_defconfig             |  1 +
>  configs/pico-pi-imx6ul_defconfig          |  1 +
>  configs/pxm2_defconfig                    |  1 +
>  configs/rastaban_defconfig                |  1 +
>  configs/rpi_4_32b_defconfig               |  2 ++
>  configs/rpi_4_defconfig                   |  2 ++
>  configs/rut_defconfig                     |  1 +
>  configs/s5p_goni_defconfig                |  1 +
>  configs/s5pc210_universal_defconfig       |  1 +
>  configs/smartweb_defconfig                |  1 +
>  configs/socfpga_arria5_defconfig          |  1 +
>  configs/socfpga_cyclone5_defconfig        |  1 +
>  configs/socfpga_dbm_soc1_defconfig        |  1 +
>  configs/socfpga_de0_nano_soc_defconfig    |  1 +
>  configs/socfpga_de10_nano_defconfig       |  1 +
>  configs/socfpga_mcvevk_defconfig          |  1 +
>  configs/socfpga_sockit_defconfig          |  1 +
>  configs/socfpga_socrates_defconfig        |  1 +
>  configs/socfpga_vining_fpga_defconfig     |  1 +
>  configs/taurus_defconfig                  |  1 +
>  configs/thuban_defconfig                  |  1 +
>  configs/topic_miami_defconfig             |  1 +
>  configs/topic_miamilite_defconfig         |  1 +
>  configs/topic_miamiplus_defconfig         |  1 +
>  configs/trats2_defconfig                  |  1 +
>  configs/trats_defconfig                   |  1 +
>  configs/venice2_defconfig                 |  2 ++
>  configs/warp7_bl33_defconfig              |  1 +
>  configs/warp7_defconfig                   |  1 +
>  configs/warp_defconfig                    |  1 +
>  configs/xilinx_versal_virt_defconfig      |  1 +
>  configs/xilinx_zynq_virt_defconfig        |  1 +
>  configs/xilinx_zynqmp_virt_defconfig      |  1 +
>  drivers/dfu/Kconfig                       | 20 ++++++++++++++++++++
>  include/configs/am65x_evm.h               |  8 --------
>  include/configs/colibri-imx6ull.h         |  1 -
>  include/configs/colibri_vf.h              |  1 -
>  include/configs/corvus.h                  |  1 -
>  include/configs/dh_imx6.h                 |  1 -
>  include/configs/exynos4-common.h          |  1 -
>  include/configs/odroid_xu3.h              |  1 -
>  include/configs/pico-imx6.h               |  1 -
>  include/configs/pico-imx6ul.h             |  1 -
>  include/configs/rpi.h                     |  3 ---
>  include/configs/s5p_goni.h                |  1 -
>  include/configs/siemens-am33x-common.h    |  1 -
>  include/configs/smartweb.h                |  1 -
>  include/configs/socfpga_common.h          |  1 -
>  include/configs/taurus.h                  |  1 -
>  include/configs/tegra-common-usb-gadget.h |  2 --
>  include/configs/warp.h                    |  1 -
>  include/configs/warp7.h                   |  1 -
>  include/configs/xilinx_versal.h           |  1 -
>  include/configs/xilinx_zynqmp.h           |  1 -
>  include/configs/zynq-common.h             |  1 -
>  include/dfu.h                             |  6 ------
>  scripts/config_whitelist.txt              |  2 --
>  81 files changed, 92 insertions(+), 39 deletions(-)
> 
> diff --git a/configs/am65x_evm_a53_defconfig
> b/configs/am65x_evm_a53_defconfig index 01e027f607f9..7f2b825378f1
> 100644 --- a/configs/am65x_evm_a53_defconfig
> +++ b/configs/am65x_evm_a53_defconfig
> @@ -90,6 +90,8 @@ CONFIG_CLK_TI_SCI=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x20000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
>  CONFIG_DMA_CHANNELS=y
>  CONFIG_TI_K3_NAVSS_UDMA=y
>  CONFIG_TI_SCI_PROTOCOL=y
> diff --git a/configs/am65x_evm_r5_usbdfu_defconfig
> b/configs/am65x_evm_r5_usbdfu_defconfig index
> 161634222517..b45a6d242955 100644 ---
> a/configs/am65x_evm_r5_usbdfu_defconfig +++
> b/configs/am65x_evm_r5_usbdfu_defconfig @@ -65,6 +65,8 @@ CONFIG_BLK=y
>  CONFIG_CLK=y
>  CONFIG_SPL_CLK=y
>  CONFIG_CLK_TI_SCI=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x5000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
>  CONFIG_TI_SCI_PROTOCOL=y
>  CONFIG_DA8XX_GPIO=y
>  CONFIG_DM_I2C=y
> diff --git a/configs/am65x_hs_evm_a53_defconfig
> b/configs/am65x_hs_evm_a53_defconfig index ec0c7df0f7e5..33526f0cf73b
> 100644 --- a/configs/am65x_hs_evm_a53_defconfig
> +++ b/configs/am65x_hs_evm_a53_defconfig
> @@ -85,6 +85,8 @@ CONFIG_CLK_TI_SCI=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x20000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
>  CONFIG_DMA_CHANNELS=y
>  CONFIG_TI_K3_NAVSS_UDMA=y
>  CONFIG_TI_SCI_PROTOCOL=y
> diff --git a/configs/beaver_defconfig b/configs/beaver_defconfig
> index 4c892443b970..cf18feef407b 100644
> --- a/configs/beaver_defconfig
> +++ b/configs/beaver_defconfig
> @@ -34,6 +34,8 @@ CONFIG_SPL_DM=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/cei-tk1-som_defconfig
> b/configs/cei-tk1-som_defconfig index 987e3ac8e95f..c1ff9d7f1428
> 100644 --- a/configs/cei-tk1-som_defconfig
> +++ b/configs/cei-tk1-som_defconfig
> @@ -34,6 +34,8 @@ CONFIG_SPL_DM=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/colibri-imx6ull_defconfig
> b/configs/colibri-imx6ull_defconfig index 6d207daa8220..1a08ec06549e
> 100644 --- a/configs/colibri-imx6ull_defconfig
> +++ b/configs/colibri-imx6ull_defconfig
> @@ -62,6 +62,7 @@ CONFIG_BOUNCE_BUFFER=y
>  CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_MXC=y
>  CONFIG_FSL_USDHC=y
> diff --git a/configs/colibri_vf_defconfig
> b/configs/colibri_vf_defconfig index 31df3500d95c..13399ca839aa 100644
> --- a/configs/colibri_vf_defconfig
> +++ b/configs/colibri_vf_defconfig
> @@ -62,6 +62,7 @@ CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_DM=y
>  CONFIG_DFU_NAND=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_VYBRID_GPIO=y
>  # CONFIG_MMC_HW_PARTITIONING is not set
>  CONFIG_FSL_ESDHC_IMX=y
> diff --git a/configs/corvus_defconfig b/configs/corvus_defconfig
> index 491f5630822e..8206c4cdc98f 100644
> --- a/configs/corvus_defconfig
> +++ b/configs/corvus_defconfig
> @@ -51,6 +51,7 @@ CONFIG_BLK=y
>  CONFIG_CLK=y
>  CONFIG_CLK_AT91=y
>  CONFIG_DFU_NAND=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_AT91_GPIO=y
>  # CONFIG_MMC is not set
>  CONFIG_MTD=y
> diff --git a/configs/dalmore_defconfig b/configs/dalmore_defconfig
> index f2c1e849787e..fc152121225d 100644
> --- a/configs/dalmore_defconfig
> +++ b/configs/dalmore_defconfig
> @@ -33,6 +33,8 @@ CONFIG_SPL_DM=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/dh_imx6_defconfig b/configs/dh_imx6_defconfig
> index db7d683eb783..934798e094e7 100644
> --- a/configs/dh_imx6_defconfig
> +++ b/configs/dh_imx6_defconfig
> @@ -64,6 +64,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DWC_AHSATA=y
>  CONFIG_BOOTCOUNT_LIMIT=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_MXC=y
>  CONFIG_MISC=y
> diff --git a/configs/draco_defconfig b/configs/draco_defconfig
> index d48f8082755b..e3ccdea5f5e4 100644
> --- a/configs/draco_defconfig
> +++ b/configs/draco_defconfig
> @@ -76,6 +76,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
>  # CONFIG_SPL_DM_MMC is not set
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_MMC_OMAP_HS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/etamin_defconfig b/configs/etamin_defconfig
> index 3256fd3493ec..10534d36b115 100644
> --- a/configs/etamin_defconfig
> +++ b/configs/etamin_defconfig
> @@ -77,6 +77,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
>  # CONFIG_SPL_DM_MMC is not set
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_MMC_OMAP_HS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/jetson-tk1_defconfig
> b/configs/jetson-tk1_defconfig index 74d315d14359..0e7216621646 100644
> --- a/configs/jetson-tk1_defconfig
> +++ b/configs/jetson-tk1_defconfig
> @@ -34,6 +34,8 @@ CONFIG_SPL_DM=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/nyan-big_defconfig b/configs/nyan-big_defconfig
> index 3a47c5a0d01f..349f918727b7 100644
> --- a/configs/nyan-big_defconfig
> +++ b/configs/nyan-big_defconfig
> @@ -51,6 +51,8 @@ CONFIG_SPL_DM=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_CROS_EC_KEYB=y
>  CONFIG_CROS_EC=y
> diff --git a/configs/odroid-xu3_defconfig
> b/configs/odroid-xu3_defconfig index 755a2ca9add9..bc71b45c0fb7 100644
> --- a/configs/odroid-xu3_defconfig
> +++ b/configs/odroid-xu3_defconfig
> @@ -41,6 +41,7 @@ CONFIG_ADC=y
>  CONFIG_ADC_EXYNOS=y
>  CONFIG_DFU_MMC=y
>  CONFIG_SET_DFU_ALT_INFO=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_SUPPORT_EMMC_BOOT=y
>  CONFIG_MMC_DW=y
>  CONFIG_MTD=y
> diff --git a/configs/odroid_defconfig b/configs/odroid_defconfig
> index 9f2b0b205d56..36719d91f66f 100644
> --- a/configs/odroid_defconfig
> +++ b/configs/odroid_defconfig
> @@ -42,6 +42,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DFU_MMC=y
>  CONFIG_SET_DFU_ALT_INFO=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_SYS_I2C_S3C24X0=y
>  CONFIG_MMC_DW=y
>  CONFIG_MMC_SDHCI=y
> diff --git a/configs/origen_defconfig b/configs/origen_defconfig
> index 4c4dc1a0db64..650276e379e3 100644
> --- a/configs/origen_defconfig
> +++ b/configs/origen_defconfig
> @@ -31,6 +31,7 @@ CONFIG_OF_CONTROL=y
>  CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_MMC_DW=y
>  CONFIG_MMC_SDHCI=y
>  CONFIG_MMC_SDHCI_SDMA=y
> diff --git a/configs/p2371-0000_defconfig
> b/configs/p2371-0000_defconfig index da3be084be25..97232bb80946 100644
> --- a/configs/p2371-0000_defconfig
> +++ b/configs/p2371-0000_defconfig
> @@ -28,6 +28,8 @@ CONFIG_SYS_MMC_ENV_PART=2
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/p2371-2180_defconfig
> b/configs/p2371-2180_defconfig index c7f4404bbacb..af490891e2bc 100644
> --- a/configs/p2371-2180_defconfig
> +++ b/configs/p2371-2180_defconfig
> @@ -32,6 +32,8 @@ CONFIG_SYS_MMC_ENV_PART=2
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/p2571_defconfig b/configs/p2571_defconfig
> index 973034096743..68bfb8f28cdd 100644
> --- a/configs/p2571_defconfig
> +++ b/configs/p2571_defconfig
> @@ -29,6 +29,8 @@ CONFIG_SYS_MMC_ENV_PART=2
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/p3450-0000_defconfig
> b/configs/p3450-0000_defconfig index 6e6a8133b4d4..12c3f9bb28e7 100644
> --- a/configs/p3450-0000_defconfig
> +++ b/configs/p3450-0000_defconfig
> @@ -33,6 +33,8 @@ CONFIG_ENV_IS_IN_SPI_FLASH=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/pico-dwarf-imx6ul_defconfig
> b/configs/pico-dwarf-imx6ul_defconfig index
> 9695eb26576a..8d17a24d6272 100644 ---
> a/configs/pico-dwarf-imx6ul_defconfig +++
> b/configs/pico-dwarf-imx6ul_defconfig @@ -43,6 +43,7 @@
> CONFIG_ENV_IS_IN_MMC=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_BUF_SIZE=0x10000000
>  CONFIG_FASTBOOT_FLASH=y
> diff --git a/configs/pico-hobbit-imx6ul_defconfig
> b/configs/pico-hobbit-imx6ul_defconfig index
> 5c1ca0b8d7f4..6f74c6e27749 100644 ---
> a/configs/pico-hobbit-imx6ul_defconfig +++
> b/configs/pico-hobbit-imx6ul_defconfig @@ -44,6 +44,7 @@
> CONFIG_ENV_IS_IN_MMC=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_BUF_SIZE=0x10000000
>  CONFIG_FASTBOOT_FLASH=y
> diff --git a/configs/pico-imx6_defconfig b/configs/pico-imx6_defconfig
> index 0f27c5475538..f0109814339f 100644
> --- a/configs/pico-imx6_defconfig
> +++ b/configs/pico-imx6_defconfig
> @@ -58,6 +58,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_BUF_ADDR=0x12000000
>  CONFIG_FASTBOOT_BUF_SIZE=0x10000000
> diff --git a/configs/pico-imx6ul_defconfig
> b/configs/pico-imx6ul_defconfig index 159fb6b6cd7d..a54b22f5a538
> 100644 --- a/configs/pico-imx6ul_defconfig
> +++ b/configs/pico-imx6ul_defconfig
> @@ -47,6 +47,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_NET_RANDOM_ETHADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_BUF_SIZE=0x10000000
>  CONFIG_FASTBOOT_FLASH=y
> diff --git a/configs/pico-pi-imx6ul_defconfig
> b/configs/pico-pi-imx6ul_defconfig index 51b71a77e5e5..bb1a9d654246
> 100644 --- a/configs/pico-pi-imx6ul_defconfig
> +++ b/configs/pico-pi-imx6ul_defconfig
> @@ -44,6 +44,7 @@ CONFIG_ENV_IS_IN_MMC=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_BUF_SIZE=0x10000000
>  CONFIG_FASTBOOT_FLASH=y
> diff --git a/configs/pxm2_defconfig b/configs/pxm2_defconfig
> index 90ef4c8d99ac..1d14ea918327 100644
> --- a/configs/pxm2_defconfig
> +++ b/configs/pxm2_defconfig
> @@ -77,6 +77,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
>  # CONFIG_SPL_DM_MMC is not set
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_MMC_OMAP_HS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/rastaban_defconfig b/configs/rastaban_defconfig
> index 63c62a5c0745..29ade173f4a8 100644
> --- a/configs/rastaban_defconfig
> +++ b/configs/rastaban_defconfig
> @@ -76,6 +76,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
>  # CONFIG_SPL_DM_MMC is not set
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_MMC_OMAP_HS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/rpi_4_32b_defconfig b/configs/rpi_4_32b_defconfig
> index 47ea466454fc..64d969ffe57c 100644
> --- a/configs/rpi_4_32b_defconfig
> +++ b/configs/rpi_4_32b_defconfig
> @@ -24,6 +24,8 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DM_DMA=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x200000
>  CONFIG_MMC_SDHCI=y
>  CONFIG_MMC_SDHCI_SDMA=y
>  CONFIG_MMC_SDHCI_BCM2835=y
> diff --git a/configs/rpi_4_defconfig b/configs/rpi_4_defconfig
> index 9cd1477107fa..025ac7bc0b28 100644
> --- a/configs/rpi_4_defconfig
> +++ b/configs/rpi_4_defconfig
> @@ -24,6 +24,8 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DM_DMA=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x200000
>  CONFIG_MMC_SDHCI=y
>  CONFIG_MMC_SDHCI_SDMA=y
>  CONFIG_MMC_SDHCI_BCM2835=y
> diff --git a/configs/rut_defconfig b/configs/rut_defconfig
> index 6fc06f1ed974..ab99f17e31d5 100644
> --- a/configs/rut_defconfig
> +++ b/configs/rut_defconfig
> @@ -78,6 +78,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
>  # CONFIG_SPL_DM_MMC is not set
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_MMC_OMAP_HS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/s5p_goni_defconfig b/configs/s5p_goni_defconfig
> index 28d8be6b01f6..72f9ce16a950 100644
> --- a/configs/s5p_goni_defconfig
> +++ b/configs/s5p_goni_defconfig
> @@ -36,6 +36,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  # CONFIG_NET is not set
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_DM_I2C_GPIO=y
>  CONFIG_MMC_SDHCI=y
>  CONFIG_MMC_SDHCI_S5P=y
> diff --git a/configs/s5pc210_universal_defconfig
> b/configs/s5pc210_universal_defconfig index
> 759034a8a5c6..734a99f8efa5 100644 ---
> a/configs/s5pc210_universal_defconfig +++
> b/configs/s5pc210_universal_defconfig @@ -33,6 +33,7 @@
> CONFIG_ENV_OVERWRITE=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_SYS_I2C_S3C24X0=y
>  CONFIG_MMC_DW=y
>  CONFIG_MMC_SDHCI=y
> diff --git a/configs/smartweb_defconfig b/configs/smartweb_defconfig
> index 1f600d02780a..dc7b27742f87 100644
> --- a/configs/smartweb_defconfig
> +++ b/configs/smartweb_defconfig
> @@ -53,6 +53,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_CLK=y
>  CONFIG_CLK_AT91=y
>  CONFIG_DFU_NAND=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_AT91_GPIO=y
>  # CONFIG_MMC is not set
>  CONFIG_MTD=y
> diff --git a/configs/socfpga_arria5_defconfig
> b/configs/socfpga_arria5_defconfig index d4f9bade3d01..e6e6cb24e155
> 100644 --- a/configs/socfpga_arria5_defconfig
> +++ b/configs/socfpga_arria5_defconfig
> @@ -39,6 +39,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_cyclone5_defconfig
> b/configs/socfpga_cyclone5_defconfig index ae7fd501917a..ff7aa1df2a4a
> 100644 --- a/configs/socfpga_cyclone5_defconfig
> +++ b/configs/socfpga_cyclone5_defconfig
> @@ -39,6 +39,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_dbm_soc1_defconfig
> b/configs/socfpga_dbm_soc1_defconfig index 033c40736ed8..70a891b003a4
> 100644 --- a/configs/socfpga_dbm_soc1_defconfig
> +++ b/configs/socfpga_dbm_soc1_defconfig
> @@ -44,6 +44,7 @@ CONFIG_ENV_IS_IN_MMC=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_de0_nano_soc_defconfig
> b/configs/socfpga_de0_nano_soc_defconfig index
> 53efc9f5bdad..35ad9a2ea726 100644 ---
> a/configs/socfpga_de0_nano_soc_defconfig +++
> b/configs/socfpga_de0_nano_soc_defconfig @@ -39,6 +39,7 @@
> CONFIG_ENV_IS_IN_MMC=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_de10_nano_defconfig
> b/configs/socfpga_de10_nano_defconfig index
> d94b9584dea8..92d9336f3580 100644 ---
> a/configs/socfpga_de10_nano_defconfig +++
> b/configs/socfpga_de10_nano_defconfig @@ -36,6 +36,7 @@
> CONFIG_ENV_IS_IN_MMC=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_mcvevk_defconfig
> b/configs/socfpga_mcvevk_defconfig index b24b417a6bc3..2e7a9a21e675
> 100644 --- a/configs/socfpga_mcvevk_defconfig
> +++ b/configs/socfpga_mcvevk_defconfig
> @@ -37,6 +37,7 @@ CONFIG_ENV_IS_IN_MMC=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_sockit_defconfig
> b/configs/socfpga_sockit_defconfig index 4ea9b41a7e21..32f203143324
> 100644 --- a/configs/socfpga_sockit_defconfig
> +++ b/configs/socfpga_sockit_defconfig
> @@ -39,6 +39,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_socrates_defconfig
> b/configs/socfpga_socrates_defconfig index 16c9b927a9bd..756388ee5704
> 100644 --- a/configs/socfpga_socrates_defconfig
> +++ b/configs/socfpga_socrates_defconfig
> @@ -40,6 +40,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_vining_fpga_defconfig
> b/configs/socfpga_vining_fpga_defconfig index
> 3984b9bc7849..174494c16e57 100644 ---
> a/configs/socfpga_vining_fpga_defconfig +++
> b/configs/socfpga_vining_fpga_defconfig @@ -53,6 +53,7 @@
> CONFIG_SPL_DM_SEQ_ALIAS=y CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_LED_STATUS=y
> diff --git a/configs/taurus_defconfig b/configs/taurus_defconfig
> index a79cdf3fa7ce..dbd642862413 100644
> --- a/configs/taurus_defconfig
> +++ b/configs/taurus_defconfig
> @@ -71,6 +71,7 @@ CONFIG_BLK=y
>  CONFIG_CLK=y
>  CONFIG_CLK_AT91=y
>  CONFIG_DFU_NAND=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_AT91_GPIO=y
>  # CONFIG_MMC is not set
>  CONFIG_MTD=y
> diff --git a/configs/thuban_defconfig b/configs/thuban_defconfig
> index d1cc9a69bec8..247538a5d9fb 100644
> --- a/configs/thuban_defconfig
> +++ b/configs/thuban_defconfig
> @@ -76,6 +76,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
>  # CONFIG_SPL_DM_MMC is not set
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_MMC_OMAP_HS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/topic_miami_defconfig
> b/configs/topic_miami_defconfig index ec66bb09584a..3681919f8503
> 100644 --- a/configs/topic_miami_defconfig
> +++ b/configs/topic_miami_defconfig
> @@ -38,6 +38,7 @@ CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_RAM=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x600000
>  CONFIG_FPGA_XILINX=y
>  CONFIG_FPGA_ZYNQPL=y
>  CONFIG_DM_I2C=y
> diff --git a/configs/topic_miamilite_defconfig
> b/configs/topic_miamilite_defconfig index e4145948859e..301a357ec70f
> 100644 --- a/configs/topic_miamilite_defconfig
> +++ b/configs/topic_miamilite_defconfig
> @@ -38,6 +38,7 @@ CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_RAM=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x600000
>  CONFIG_FPGA_XILINX=y
>  CONFIG_FPGA_ZYNQPL=y
>  CONFIG_DM_I2C=y
> diff --git a/configs/topic_miamiplus_defconfig
> b/configs/topic_miamiplus_defconfig index 0041ee153669..27cd9132e86b
> 100644 --- a/configs/topic_miamiplus_defconfig
> +++ b/configs/topic_miamiplus_defconfig
> @@ -37,6 +37,7 @@ CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_RAM=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x600000
>  CONFIG_FPGA_XILINX=y
>  CONFIG_FPGA_ZYNQPL=y
>  CONFIG_DM_I2C=y
> diff --git a/configs/trats2_defconfig b/configs/trats2_defconfig
> index 8439ddc26775..a3955e1ffc5a 100644
> --- a/configs/trats2_defconfig
> +++ b/configs/trats2_defconfig
> @@ -34,6 +34,7 @@ CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_DM_I2C_GPIO=y
>  CONFIG_SYS_I2C_S3C24X0=y
>  CONFIG_MMC_DW=y
> diff --git a/configs/trats_defconfig b/configs/trats_defconfig
> index 931c69ba6f17..64cd5dcdb3b2 100644
> --- a/configs/trats_defconfig
> +++ b/configs/trats_defconfig
> @@ -33,6 +33,7 @@ CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_DM_I2C_GPIO=y
>  CONFIG_SYS_I2C_S3C24X0=y
>  CONFIG_MMC_DW=y
> diff --git a/configs/venice2_defconfig b/configs/venice2_defconfig
> index ca18677dd4c7..9c14cef2b999 100644
> --- a/configs/venice2_defconfig
> +++ b/configs/venice2_defconfig
> @@ -32,6 +32,8 @@ CONFIG_SPL_DM=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/warp7_bl33_defconfig
> b/configs/warp7_bl33_defconfig index c5c5d99c6ca6..5452a49061c5 100644
> --- a/configs/warp7_bl33_defconfig
> +++ b/configs/warp7_bl33_defconfig
> @@ -35,6 +35,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_NET_RANDOM_ETHADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DM_I2C=y
>  CONFIG_SUPPORT_EMMC_BOOT=y
>  CONFIG_FSL_USDHC=y
> diff --git a/configs/warp7_defconfig b/configs/warp7_defconfig
> index 910419938cd2..43471e754a9f 100644
> --- a/configs/warp7_defconfig
> +++ b/configs/warp7_defconfig
> @@ -41,6 +41,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_NET_RANDOM_ETHADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DM_I2C=y
>  CONFIG_SUPPORT_EMMC_BOOT=y
>  CONFIG_FSL_USDHC=y
> diff --git a/configs/warp_defconfig b/configs/warp_defconfig
> index 34acc9e6c844..04f756aacf8c 100644
> --- a/configs/warp_defconfig
> +++ b/configs/warp_defconfig
> @@ -33,6 +33,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  # CONFIG_NET is not set
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_SUPPORT_EMMC_BOOT=y
>  CONFIG_FSL_USDHC=y
>  CONFIG_MXC_UART=y
> diff --git a/configs/xilinx_versal_virt_defconfig
> b/configs/xilinx_versal_virt_defconfig index
> f4e9a80728d7..121c3ae72051 100644 ---
> a/configs/xilinx_versal_virt_defconfig +++
> b/configs/xilinx_versal_virt_defconfig @@ -54,6 +54,7 @@
> CONFIG_TFTP_BLOCKSIZE=4096 CONFIG_CLK_VERSAL=y
>  CONFIG_DFU_TIMEOUT=y
>  CONFIG_DFU_RAM=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1800000
>  CONFIG_FPGA_XILINX=y
>  CONFIG_FPGA_VERSALPL=y
>  CONFIG_DM_I2C=y
> diff --git a/configs/xilinx_zynq_virt_defconfig
> b/configs/xilinx_zynq_virt_defconfig index 7e56395a521f..e53ef2443ec1
> 100644 --- a/configs/xilinx_zynq_virt_defconfig
> +++ b/configs/xilinx_zynq_virt_defconfig
> @@ -68,6 +68,7 @@ CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_TIMEOUT=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x600000
>  CONFIG_FPGA_XILINX=y
>  CONFIG_FPGA_ZYNQPL=y
>  CONFIG_DM_I2C=y
> diff --git a/configs/xilinx_zynqmp_virt_defconfig
> b/configs/xilinx_zynqmp_virt_defconfig index
> e939b04ef6a5..b0cc9d9ba88a 100644 ---
> a/configs/xilinx_zynqmp_virt_defconfig +++
> b/configs/xilinx_zynqmp_virt_defconfig @@ -90,6 +90,7 @@
> CONFIG_DFU_NAND=y CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
>  CONFIG_DFU_MTD=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1800000
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_FLASH=y
>  CONFIG_FASTBOOT_FLASH_MMC_DEV=0
> diff --git a/drivers/dfu/Kconfig b/drivers/dfu/Kconfig
> index 121dc54f5463..b50547476cbd 100644
> --- a/drivers/dfu/Kconfig
> +++ b/drivers/dfu/Kconfig
> @@ -92,5 +92,25 @@ config SET_DFU_ALT_INFO
>  	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
> diff --git a/include/configs/am65x_evm.h b/include/configs/am65x_evm.h
> index 76d73086fb89..8c50fe9d11ff 100644
> --- a/include/configs/am65x_evm.h
> +++ b/include/configs/am65x_evm.h
> @@ -22,7 +22,6 @@
>  #ifdef CONFIG_TARGET_AM654_A53_EVM
>  #define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SPL_TEXT_BASE
> +	\ CONFIG_SYS_K3_NON_SECURE_MSRAM_SIZE)
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x20000
>  #else
>  /*
>   * Maximum size in memory allocated to the SPL BSS. Keep it as tight
> as @@ -45,7 +44,6 @@
>  /* Configure R5 SPL post-relocation malloc pool in DDR */
>  #define CONFIG_SYS_SPL_MALLOC_START	0x84000000
>  #define CONFIG_SYS_SPL_MALLOC_SIZE	SZ_16M
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x5000
>  #endif
>  
>  #ifdef CONFIG_SYS_K3_SPL_ATF
> @@ -56,12 +54,6 @@
>  #define CONFIG_SKIP_LOWLEVEL_INIT
>  #endif
>  
> -/*
> - * If the maximum size is not declared then it is defined as
> - * CONFIG_SYS_DFU_DATA_BUF_SIZE.
> - */
> -#define CONFIG_SYS_DFU_MAX_FILE_SIZE	(1024 * 1024 * 8)   /* 8
> MiB */ -
>  #define CONFIG_SPL_MAX_SIZE
> CONFIG_SYS_K3_MAX_DOWNLODABLE_IMAGE_SIZE 
>  #define CONFIG_SYS_BOOTM_LEN		SZ_64M
> diff --git a/include/configs/colibri-imx6ull.h
> b/include/configs/colibri-imx6ull.h index 22ee2ba03e46..f84931653fbc
> 100644 --- a/include/configs/colibri-imx6ull.h
> +++ b/include/configs/colibri-imx6ull.h
> @@ -143,7 +143,6 @@
>  #define CONFIG_USBD_HS
>  
>  /* USB Device Firmware Update support */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_16M
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  
>  #if defined(CONFIG_VIDEO) || defined(CONFIG_DM_VIDEO)
> diff --git a/include/configs/colibri_vf.h
> b/include/configs/colibri_vf.h index cae7c14bfb90..5bd440f1db33 100644
> --- a/include/configs/colibri_vf.h
> +++ b/include/configs/colibri_vf.h
> @@ -143,6 +143,5 @@
>  #define CONFIG_EHCI_HCD_INIT_AFTER_RESET
>  
>  /* USB DFU */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE (SZ_1M)
>  
>  #endif /* __CONFIG_H */
> diff --git a/include/configs/corvus.h b/include/configs/corvus.h
> index 55f77e4400a2..bd4d6e8e39f4 100644
> --- a/include/configs/corvus.h
> +++ b/include/configs/corvus.h
> @@ -81,7 +81,6 @@
>  #define CONFIG_AT91_WANTS_COMMON_PHY
>  
>  /* DFU class support */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(SZ_1M)
>  #define DFU_MANIFEST_POLL_TIMEOUT	25000
>  
>  #define CONFIG_SYS_LOAD_ADDR	ATMEL_BASE_CS6
> diff --git a/include/configs/dh_imx6.h b/include/configs/dh_imx6.h
> index 4a469af5e60b..d9be1c38c44a 100644
> --- a/include/configs/dh_imx6.h
> +++ b/include/configs/dh_imx6.h
> @@ -66,7 +66,6 @@
>  
>  /* USB Gadget (DFU, UMS) */
>  #if defined(CONFIG_CMD_DFU) || defined(CONFIG_CMD_USB_MASS_STORAGE)
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(16 * 1024 * 1024)
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  
>  /* USB IDs */
> diff --git a/include/configs/exynos4-common.h
> b/include/configs/exynos4-common.h index 005f65d4ed6a..5e2aca371e7e
> 100644 --- a/include/configs/exynos4-common.h
> +++ b/include/configs/exynos4-common.h
> @@ -19,7 +19,6 @@
>  /* SD/MMC configuration */
>  #define CONFIG_MMC_DEFAULT_DEV	0
>  
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_32M
>  #define DFU_DEFAULT_POLL_TIMEOUT 300
>  
>  /* USB Samsung's IDs */
> diff --git a/include/configs/odroid_xu3.h
> b/include/configs/odroid_xu3.h index 0c86196152fc..fc70dc6a7323 100644
> --- a/include/configs/odroid_xu3.h
> +++ b/include/configs/odroid_xu3.h
> @@ -27,7 +27,6 @@
>  #define CONFIG_USB_EHCI_EXYNOS
>  
>  /* DFU */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_32M
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  #define DFU_MANIFEST_POLL_TIMEOUT	25000
>  
> diff --git a/include/configs/pico-imx6.h b/include/configs/pico-imx6.h
> index 19c8aeb71b6e..6199f0d72e76 100644
> --- a/include/configs/pico-imx6.h
> +++ b/include/configs/pico-imx6.h
> @@ -38,7 +38,6 @@
>  #define CONFIG_MXC_USB_PORTSC		(PORT_PTS_UTMI |
> PORT_PTS_PTW) #define CONFIG_MXC_USB_FLAGS		0
>  
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_16M
>  #define DFU_DEFAULT_POLL_TIMEOUT 300
>  
>  #define CONFIG_DFU_ENV_SETTINGS \
> diff --git a/include/configs/pico-imx6ul.h
> b/include/configs/pico-imx6ul.h index 747ef09f37d9..04a2531f7447
> 100644 --- a/include/configs/pico-imx6ul.h
> +++ b/include/configs/pico-imx6ul.h
> @@ -49,7 +49,6 @@
>  
>  #define CONFIG_USBD_HS
>  
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_16M
>  #define DFU_DEFAULT_POLL_TIMEOUT 300
>  
>  #define CONFIG_DFU_ENV_SETTINGS \
> diff --git a/include/configs/rpi.h b/include/configs/rpi.h
> index 834f1cd23640..46ada884b487 100644
> --- a/include/configs/rpi.h
> +++ b/include/configs/rpi.h
> @@ -74,9 +74,6 @@
>  
>  /* DFU over USB/UDC */
>  #ifdef CONFIG_CMD_DFU
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_1M
> -#define CONFIG_SYS_DFU_MAX_FILE_SIZE	SZ_2M
> -
>  #ifdef CONFIG_ARM64
>  #define KERNEL_FILENAME		"Image"
>  #else
> diff --git a/include/configs/s5p_goni.h b/include/configs/s5p_goni.h
> index 9688bdc4c035..6af6009e6126 100644
> --- a/include/configs/s5p_goni.h
> +++ b/include/configs/s5p_goni.h
> @@ -41,7 +41,6 @@
>  #define CONFIG_PWM			1
>  
>  /* USB Composite download gadget - g_dnl */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_32M
>  #define DFU_DEFAULT_POLL_TIMEOUT 300
>  
>  /* USB Samsung's IDs */
> diff --git a/include/configs/siemens-am33x-common.h
> b/include/configs/siemens-am33x-common.h index
> e18af7493c7f..f96dd774b178 100644 ---
> a/include/configs/siemens-am33x-common.h +++
> b/include/configs/siemens-am33x-common.h @@ -143,7 +143,6 @@
>  #define CONFIG_USBD_HS
>  
>  /* USB Device Firmware Update support */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(1 << 20)
>  #define DFU_MANIFEST_POLL_TIMEOUT	25000
>  
>  #endif /* CONFIG_SPL_BUILD */
> diff --git a/include/configs/smartweb.h b/include/configs/smartweb.h
> index 6e715dc0c1be..5e8637e49484 100644
> --- a/include/configs/smartweb.h
> +++ b/include/configs/smartweb.h
> @@ -122,7 +122,6 @@
>  #define CONFIG_USB_GADGET_AT91
>  
>  /* DFU class support */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_1M
>  #define DFU_MANIFEST_POLL_TIMEOUT	25000
>  #endif
>  
> diff --git a/include/configs/socfpga_common.h
> b/include/configs/socfpga_common.h index 62b327cd6e52..c5e4292f1964
> 100644 --- a/include/configs/socfpga_common.h
> +++ b/include/configs/socfpga_common.h
> @@ -148,7 +148,6 @@ unsigned int cm_get_qspi_controller_clk_hz(void);
>   * USB Gadget (DFU, UMS)
>   */
>  #if defined(CONFIG_CMD_DFU) || defined(CONFIG_CMD_USB_MASS_STORAGE)
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(16 * 1024 * 1024)
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  
>  /* USB IDs */
> diff --git a/include/configs/taurus.h b/include/configs/taurus.h
> index 39eae8e2ba04..6e869462f1e6 100644
> --- a/include/configs/taurus.h
> +++ b/include/configs/taurus.h
> @@ -92,7 +92,6 @@
>  #define CONFIG_USB_GADGET_AT91
>  
>  /* DFU class support */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(SZ_1M)
>  #define DFU_MANIFEST_POLL_TIMEOUT	25000
>  #endif
>  
> diff --git a/include/configs/tegra-common-usb-gadget.h
> b/include/configs/tegra-common-usb-gadget.h index
> e6b61c4e8fd3..201f4bc093c9 100644 ---
> a/include/configs/tegra-common-usb-gadget.h +++
> b/include/configs/tegra-common-usb-gadget.h @@ -13,8 +13,6 @@
>  #define CONFIG_CI_UDC_HAS_HOSTPC
>  #endif
>  /* DFU protocol */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_1M
> -#define CONFIG_SYS_DFU_MAX_FILE_SIZE SZ_32M
>  #endif
>  
>  #endif /* _TEGRA_COMMON_USB_GADGET_H_ */
> diff --git a/include/configs/warp.h b/include/configs/warp.h
> index 0f97804eb29c..bda8ff9a34f3 100644
> --- a/include/configs/warp.h
> +++ b/include/configs/warp.h
> @@ -50,7 +50,6 @@
>  
>  #define CONFIG_USBD_HS
>  
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_16M
>  #define DFU_DEFAULT_POLL_TIMEOUT 300
>  
>  /* I2C Configs */
> diff --git a/include/configs/warp7.h b/include/configs/warp7.h
> index 8eb106027440..a5d52e3977fd 100644
> --- a/include/configs/warp7.h
> +++ b/include/configs/warp7.h
> @@ -149,7 +149,6 @@
>  #define CONFIG_USBD_HS
>  
>  /* USB Device Firmware Update support */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_16M
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  
>  #define CONFIG_USBNET_DEV_ADDR		"de:ad:be:af:00:01"
> diff --git a/include/configs/xilinx_versal.h
> b/include/configs/xilinx_versal.h index 380f93a2f68e..ebe81968d130
> 100644 --- a/include/configs/xilinx_versal.h
> +++ b/include/configs/xilinx_versal.h
> @@ -47,7 +47,6 @@
>  #define CONFIG_SYS_MAXARGS		64
>  
>  #if defined(CONFIG_CMD_DFU)
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x1800000
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  #define CONFIG_THOR_RESET_OFF
>  #endif
> diff --git a/include/configs/xilinx_zynqmp.h
> b/include/configs/xilinx_zynqmp.h index 986af2be7819..cadaf1a96312
> 100644 --- a/include/configs/xilinx_zynqmp.h
> +++ b/include/configs/xilinx_zynqmp.h
> @@ -52,7 +52,6 @@
>  #define CONFIG_SYS_LOAD_ADDR		0x8000000
>  
>  #if defined(CONFIG_ZYNQMP_USB)
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x1800000
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  #define CONFIG_THOR_RESET_OFF
>  
> diff --git a/include/configs/zynq-common.h
> b/include/configs/zynq-common.h index 39035f8bebca..7859b77603f1
> 100644 --- a/include/configs/zynq-common.h
> +++ b/include/configs/zynq-common.h
> @@ -58,7 +58,6 @@
>  #ifdef CONFIG_USB_EHCI_ZYNQ
>  # define CONFIG_EHCI_IS_TDI
>  
> -# define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x600000
>  # define DFU_DEFAULT_POLL_TIMEOUT	300
>  # define CONFIG_THOR_RESET_OFF
>  #endif
> diff --git a/include/dfu.h b/include/dfu.h
> index d18b70172829..afada3959b72 100644
> --- a/include/dfu.h
> +++ b/include/dfu.h
> @@ -100,12 +100,6 @@ struct virt_internal_data {
>  };
>  
>  #define DFU_NAME_SIZE			32
> -#ifndef CONFIG_SYS_DFU_DATA_BUF_SIZE
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE
> (1024*1024*8)	/* 8 MiB */ -#endif
> -#ifndef CONFIG_SYS_DFU_MAX_FILE_SIZE
> -#define CONFIG_SYS_DFU_MAX_FILE_SIZE CONFIG_SYS_DFU_DATA_BUF_SIZE
> -#endif
>  #ifndef DFU_DEFAULT_POLL_TIMEOUT
>  #define DFU_DEFAULT_POLL_TIMEOUT 0
>  #endif
> diff --git a/scripts/config_whitelist.txt
> b/scripts/config_whitelist.txt index 8f92b82719a2..0f5ac8ff5229 100644
> --- a/scripts/config_whitelist.txt
> +++ b/scripts/config_whitelist.txt
> @@ -1988,8 +1988,6 @@ CONFIG_SYS_DEBUG_SERVER_FW_IN_NOR
>  CONFIG_SYS_DEFAULT_LPDDR2_TIMINGS
>  CONFIG_SYS_DEFAULT_VIDEO_MODE
>  CONFIG_SYS_DEF_EEPROM_ADDR
> -CONFIG_SYS_DFU_DATA_BUF_SIZE
> -CONFIG_SYS_DFU_MAX_FILE_SIZE
>  CONFIG_SYS_DIAG_ADDR
>  CONFIG_SYS_DIALOG_PMIC_I2C_ADDR
>  CONFIG_SYS_DIMM_SLOTS_PER_CTLR



Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v3] usb: dfu: Migrate CONFIG_SYS_DFU_DATA_BUF_SIZE and CONFIG_SYS_DFU_MAX_FILE_SIZE to Kconfig
  2021-06-01 11:21 [PATCH v3] usb: dfu: Migrate CONFIG_SYS_DFU_DATA_BUF_SIZE and CONFIG_SYS_DFU_MAX_FILE_SIZE to Kconfig Aswath Govindraju
  2021-06-01 15:58 ` Matthias Brugger
  2021-06-02  8:37 ` Lukasz Majewski
@ 2021-06-08  8:04 ` Aswath Govindraju
  2021-06-08 12:07   ` Tom Rini
  2021-06-09 12:19 ` Tom Rini
  3 siblings, 1 reply; 6+ messages in thread
From: Aswath Govindraju @ 2021-06-08  8:04 UTC (permalink / raw)
  Cc: Lokesh Vutla, Vignesh Raghavendra, Kishon Vijay Abraham I,
	Pratyush Yadav, Tom Warren, Stephen Warren, Peter.Chubb,
	Oleksandr Suvorov, Heiko Schocher, Andreas Geisreiter,
	Ludwig Zenz, Samuel Egli, Allen Martin, Jaehoon Chung,
	Lukasz Majewski, Chander Kashyap, Richard Hu, Fabio Estevam,
	Matthias Brugger, Robert Baldyga, Dinh Nguyen, Chin-Liang See,
	Marek Vasut, Dalon Westergreen, Wolfgang Grandegger,
	Stefan Roese, Mike Looijmans, Otavio Salvador, Michal Simek,
	Adam Ford, Jagan Teki, Ashok Reddy Soma, Ley Foon Tan,
	Simon Glass, Patrick Delaunay, Ovidiu Panait, u-boot, Tom Rini

+ Tom Rini

I saw that this patch is delegated to Tom Rini in patchwork page but I
did not add him in the cc-list. So, I added him now.

Hi Tom,

On 01/06/21 4:51 pm, Aswath Govindraju wrote:
> Currently the config options CONFIG_SYS_DFU_DATA_BUF_SIZE and
> CONFIG_SYS_DFU_MAX_FILE_SIZE are being set in include/configs/<board>.h
> files and also in <board_name>_defconfig files without a Kconfig option. It
> is easier for users to set these configs in defconfig files than in config
> header files as they are a part of the source code.
> 
> Add Kconfig symbols, and update the defconfigs by using tools/moveconfig.py
> script.
> 

May I know if this patch is good to be picked?

Thanks,
Aswath

> Suggested-by: Pratyush Yadav <p.yadav@ti.com>
> Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
> Acked-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
> ---
> 
> Changes since v2:
> - Rebased the patch on top of current HEAD
> - Picked up Oleksandr Suvorov's Acked-by
> 
> Link to v2 patch,
> https://patchwork.ozlabs.org/project/uboot/patch/20210226071849.29070-1-a-govindraju@ti.com/
> 
> Changes since v1:
> - Removed CONFIG_SYS_DFU_MAX_FILE_SIZE in defconfig files, where it was
>   not defined previously. The list of files in which this change is made
>   are listed below,
>   configs/colibri-imx6ull_defconfig
>   configs/colibri_vf_defconfig
>   configs/corvus_defconfig
>   configs/dh_imx6_defconfig
>   configs/draco_defconfig
>   configs/etamin_defconfig 
>   configs/odroid-xu3_defconfig
>   configs/odroid_defconfig
>   configs/origen_defconfig
>   configs/pico-dwarf-imx6ul_defconfig
>   configs/pico-hobbit-imx6ul_defconfig
>   configs/pico-imx6_defconfig
>   configs/pico-imx6ul_defconfig
>   configs/pico-pi-imx6ul_defconfig
>   configs/pxm2_defconfig
>   configs/rastaban_defconfig 
>   configs/rut_defconfig
>   configs/s5p_goni_defconfig
>   configs/s5pc210_universal_defconfig
>   configs/smartweb_defconfig  
>   configs/socfpga_arria5_defconfig
>   configs/socfpga_cyclone5_defconfig
>   configs/socfpga_dbm_soc1_defconfig
>   configs/socfpga_de0_nano_soc_defconfig
>   configs/socfpga_de10_nano_defconfig 
>   configs/socfpga_mcvevk_defconfig
>   configs/socfpga_sockit_defconfig
>   configs/socfpga_socrates_defconfig
>   configs/socfpga_vining_fpga_defconfig
>   configs/taurus_defconfig
>   configs/thuban_defconfig
>   configs/topic_miami_defconfig
>   configs/topic_miamilite_defconfig
>   configs/topic_miamiplus_defconfig 
>   configs/trats2_defconfig 
>   configs/trats_defconfig
>   configs/warp7_bl33_defconfig
>   configs/warp7_defconfig
>   configs/warp_defconfig
>   configs/xilinx_versal_virt_defconfig
>   configs/xilinx_zynq_virt_defconfig
>   configs/xilinx_zynqmp_virt_defconfig
> 
> Link to v1,
> https://patchwork.ozlabs.org/project/uboot/patch/20210223061427.20742-1-a-govindraju@ti.com/ 
> 
>  configs/am65x_evm_a53_defconfig           |  2 ++
>  configs/am65x_evm_r5_usbdfu_defconfig     |  2 ++
>  configs/am65x_hs_evm_a53_defconfig        |  2 ++
>  configs/beaver_defconfig                  |  2 ++
>  configs/cei-tk1-som_defconfig             |  2 ++
>  configs/colibri-imx6ull_defconfig         |  1 +
>  configs/colibri_vf_defconfig              |  1 +
>  configs/corvus_defconfig                  |  1 +
>  configs/dalmore_defconfig                 |  2 ++
>  configs/dh_imx6_defconfig                 |  1 +
>  configs/draco_defconfig                   |  1 +
>  configs/etamin_defconfig                  |  1 +
>  configs/jetson-tk1_defconfig              |  2 ++
>  configs/nyan-big_defconfig                |  2 ++
>  configs/odroid-xu3_defconfig              |  1 +
>  configs/odroid_defconfig                  |  1 +
>  configs/origen_defconfig                  |  1 +
>  configs/p2371-0000_defconfig              |  2 ++
>  configs/p2371-2180_defconfig              |  2 ++
>  configs/p2571_defconfig                   |  2 ++
>  configs/p3450-0000_defconfig              |  2 ++
>  configs/pico-dwarf-imx6ul_defconfig       |  1 +
>  configs/pico-hobbit-imx6ul_defconfig      |  1 +
>  configs/pico-imx6_defconfig               |  1 +
>  configs/pico-imx6ul_defconfig             |  1 +
>  configs/pico-pi-imx6ul_defconfig          |  1 +
>  configs/pxm2_defconfig                    |  1 +
>  configs/rastaban_defconfig                |  1 +
>  configs/rpi_4_32b_defconfig               |  2 ++
>  configs/rpi_4_defconfig                   |  2 ++
>  configs/rut_defconfig                     |  1 +
>  configs/s5p_goni_defconfig                |  1 +
>  configs/s5pc210_universal_defconfig       |  1 +
>  configs/smartweb_defconfig                |  1 +
>  configs/socfpga_arria5_defconfig          |  1 +
>  configs/socfpga_cyclone5_defconfig        |  1 +
>  configs/socfpga_dbm_soc1_defconfig        |  1 +
>  configs/socfpga_de0_nano_soc_defconfig    |  1 +
>  configs/socfpga_de10_nano_defconfig       |  1 +
>  configs/socfpga_mcvevk_defconfig          |  1 +
>  configs/socfpga_sockit_defconfig          |  1 +
>  configs/socfpga_socrates_defconfig        |  1 +
>  configs/socfpga_vining_fpga_defconfig     |  1 +
>  configs/taurus_defconfig                  |  1 +
>  configs/thuban_defconfig                  |  1 +
>  configs/topic_miami_defconfig             |  1 +
>  configs/topic_miamilite_defconfig         |  1 +
>  configs/topic_miamiplus_defconfig         |  1 +
>  configs/trats2_defconfig                  |  1 +
>  configs/trats_defconfig                   |  1 +
>  configs/venice2_defconfig                 |  2 ++
>  configs/warp7_bl33_defconfig              |  1 +
>  configs/warp7_defconfig                   |  1 +
>  configs/warp_defconfig                    |  1 +
>  configs/xilinx_versal_virt_defconfig      |  1 +
>  configs/xilinx_zynq_virt_defconfig        |  1 +
>  configs/xilinx_zynqmp_virt_defconfig      |  1 +
>  drivers/dfu/Kconfig                       | 20 ++++++++++++++++++++
>  include/configs/am65x_evm.h               |  8 --------
>  include/configs/colibri-imx6ull.h         |  1 -
>  include/configs/colibri_vf.h              |  1 -
>  include/configs/corvus.h                  |  1 -
>  include/configs/dh_imx6.h                 |  1 -
>  include/configs/exynos4-common.h          |  1 -
>  include/configs/odroid_xu3.h              |  1 -
>  include/configs/pico-imx6.h               |  1 -
>  include/configs/pico-imx6ul.h             |  1 -
>  include/configs/rpi.h                     |  3 ---
>  include/configs/s5p_goni.h                |  1 -
>  include/configs/siemens-am33x-common.h    |  1 -
>  include/configs/smartweb.h                |  1 -
>  include/configs/socfpga_common.h          |  1 -
>  include/configs/taurus.h                  |  1 -
>  include/configs/tegra-common-usb-gadget.h |  2 --
>  include/configs/warp.h                    |  1 -
>  include/configs/warp7.h                   |  1 -
>  include/configs/xilinx_versal.h           |  1 -
>  include/configs/xilinx_zynqmp.h           |  1 -
>  include/configs/zynq-common.h             |  1 -
>  include/dfu.h                             |  6 ------
>  scripts/config_whitelist.txt              |  2 --
>  81 files changed, 92 insertions(+), 39 deletions(-)
> 
> diff --git a/configs/am65x_evm_a53_defconfig b/configs/am65x_evm_a53_defconfig
> index 01e027f607f9..7f2b825378f1 100644
> --- a/configs/am65x_evm_a53_defconfig
> +++ b/configs/am65x_evm_a53_defconfig
> @@ -90,6 +90,8 @@ CONFIG_CLK_TI_SCI=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x20000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
>  CONFIG_DMA_CHANNELS=y
>  CONFIG_TI_K3_NAVSS_UDMA=y
>  CONFIG_TI_SCI_PROTOCOL=y
> diff --git a/configs/am65x_evm_r5_usbdfu_defconfig b/configs/am65x_evm_r5_usbdfu_defconfig
> index 161634222517..b45a6d242955 100644
> --- a/configs/am65x_evm_r5_usbdfu_defconfig
> +++ b/configs/am65x_evm_r5_usbdfu_defconfig
> @@ -65,6 +65,8 @@ CONFIG_BLK=y
>  CONFIG_CLK=y
>  CONFIG_SPL_CLK=y
>  CONFIG_CLK_TI_SCI=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x5000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
>  CONFIG_TI_SCI_PROTOCOL=y
>  CONFIG_DA8XX_GPIO=y
>  CONFIG_DM_I2C=y
> diff --git a/configs/am65x_hs_evm_a53_defconfig b/configs/am65x_hs_evm_a53_defconfig
> index ec0c7df0f7e5..33526f0cf73b 100644
> --- a/configs/am65x_hs_evm_a53_defconfig
> +++ b/configs/am65x_hs_evm_a53_defconfig
> @@ -85,6 +85,8 @@ CONFIG_CLK_TI_SCI=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x20000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
>  CONFIG_DMA_CHANNELS=y
>  CONFIG_TI_K3_NAVSS_UDMA=y
>  CONFIG_TI_SCI_PROTOCOL=y
> diff --git a/configs/beaver_defconfig b/configs/beaver_defconfig
> index 4c892443b970..cf18feef407b 100644
> --- a/configs/beaver_defconfig
> +++ b/configs/beaver_defconfig
> @@ -34,6 +34,8 @@ CONFIG_SPL_DM=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/cei-tk1-som_defconfig b/configs/cei-tk1-som_defconfig
> index 987e3ac8e95f..c1ff9d7f1428 100644
> --- a/configs/cei-tk1-som_defconfig
> +++ b/configs/cei-tk1-som_defconfig
> @@ -34,6 +34,8 @@ CONFIG_SPL_DM=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/colibri-imx6ull_defconfig b/configs/colibri-imx6ull_defconfig
> index 6d207daa8220..1a08ec06549e 100644
> --- a/configs/colibri-imx6ull_defconfig
> +++ b/configs/colibri-imx6ull_defconfig
> @@ -62,6 +62,7 @@ CONFIG_BOUNCE_BUFFER=y
>  CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_MXC=y
>  CONFIG_FSL_USDHC=y
> diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig
> index 31df3500d95c..13399ca839aa 100644
> --- a/configs/colibri_vf_defconfig
> +++ b/configs/colibri_vf_defconfig
> @@ -62,6 +62,7 @@ CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_DM=y
>  CONFIG_DFU_NAND=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_VYBRID_GPIO=y
>  # CONFIG_MMC_HW_PARTITIONING is not set
>  CONFIG_FSL_ESDHC_IMX=y
> diff --git a/configs/corvus_defconfig b/configs/corvus_defconfig
> index 491f5630822e..8206c4cdc98f 100644
> --- a/configs/corvus_defconfig
> +++ b/configs/corvus_defconfig
> @@ -51,6 +51,7 @@ CONFIG_BLK=y
>  CONFIG_CLK=y
>  CONFIG_CLK_AT91=y
>  CONFIG_DFU_NAND=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_AT91_GPIO=y
>  # CONFIG_MMC is not set
>  CONFIG_MTD=y
> diff --git a/configs/dalmore_defconfig b/configs/dalmore_defconfig
> index f2c1e849787e..fc152121225d 100644
> --- a/configs/dalmore_defconfig
> +++ b/configs/dalmore_defconfig
> @@ -33,6 +33,8 @@ CONFIG_SPL_DM=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/dh_imx6_defconfig b/configs/dh_imx6_defconfig
> index db7d683eb783..934798e094e7 100644
> --- a/configs/dh_imx6_defconfig
> +++ b/configs/dh_imx6_defconfig
> @@ -64,6 +64,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DWC_AHSATA=y
>  CONFIG_BOOTCOUNT_LIMIT=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_MXC=y
>  CONFIG_MISC=y
> diff --git a/configs/draco_defconfig b/configs/draco_defconfig
> index d48f8082755b..e3ccdea5f5e4 100644
> --- a/configs/draco_defconfig
> +++ b/configs/draco_defconfig
> @@ -76,6 +76,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
>  # CONFIG_SPL_DM_MMC is not set
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_MMC_OMAP_HS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/etamin_defconfig b/configs/etamin_defconfig
> index 3256fd3493ec..10534d36b115 100644
> --- a/configs/etamin_defconfig
> +++ b/configs/etamin_defconfig
> @@ -77,6 +77,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
>  # CONFIG_SPL_DM_MMC is not set
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_MMC_OMAP_HS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/jetson-tk1_defconfig b/configs/jetson-tk1_defconfig
> index 74d315d14359..0e7216621646 100644
> --- a/configs/jetson-tk1_defconfig
> +++ b/configs/jetson-tk1_defconfig
> @@ -34,6 +34,8 @@ CONFIG_SPL_DM=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/nyan-big_defconfig b/configs/nyan-big_defconfig
> index 3a47c5a0d01f..349f918727b7 100644
> --- a/configs/nyan-big_defconfig
> +++ b/configs/nyan-big_defconfig
> @@ -51,6 +51,8 @@ CONFIG_SPL_DM=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_CROS_EC_KEYB=y
>  CONFIG_CROS_EC=y
> diff --git a/configs/odroid-xu3_defconfig b/configs/odroid-xu3_defconfig
> index 755a2ca9add9..bc71b45c0fb7 100644
> --- a/configs/odroid-xu3_defconfig
> +++ b/configs/odroid-xu3_defconfig
> @@ -41,6 +41,7 @@ CONFIG_ADC=y
>  CONFIG_ADC_EXYNOS=y
>  CONFIG_DFU_MMC=y
>  CONFIG_SET_DFU_ALT_INFO=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_SUPPORT_EMMC_BOOT=y
>  CONFIG_MMC_DW=y
>  CONFIG_MTD=y
> diff --git a/configs/odroid_defconfig b/configs/odroid_defconfig
> index 9f2b0b205d56..36719d91f66f 100644
> --- a/configs/odroid_defconfig
> +++ b/configs/odroid_defconfig
> @@ -42,6 +42,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DFU_MMC=y
>  CONFIG_SET_DFU_ALT_INFO=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_SYS_I2C_S3C24X0=y
>  CONFIG_MMC_DW=y
>  CONFIG_MMC_SDHCI=y
> diff --git a/configs/origen_defconfig b/configs/origen_defconfig
> index 4c4dc1a0db64..650276e379e3 100644
> --- a/configs/origen_defconfig
> +++ b/configs/origen_defconfig
> @@ -31,6 +31,7 @@ CONFIG_OF_CONTROL=y
>  CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_MMC_DW=y
>  CONFIG_MMC_SDHCI=y
>  CONFIG_MMC_SDHCI_SDMA=y
> diff --git a/configs/p2371-0000_defconfig b/configs/p2371-0000_defconfig
> index da3be084be25..97232bb80946 100644
> --- a/configs/p2371-0000_defconfig
> +++ b/configs/p2371-0000_defconfig
> @@ -28,6 +28,8 @@ CONFIG_SYS_MMC_ENV_PART=2
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/p2371-2180_defconfig b/configs/p2371-2180_defconfig
> index c7f4404bbacb..af490891e2bc 100644
> --- a/configs/p2371-2180_defconfig
> +++ b/configs/p2371-2180_defconfig
> @@ -32,6 +32,8 @@ CONFIG_SYS_MMC_ENV_PART=2
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/p2571_defconfig b/configs/p2571_defconfig
> index 973034096743..68bfb8f28cdd 100644
> --- a/configs/p2571_defconfig
> +++ b/configs/p2571_defconfig
> @@ -29,6 +29,8 @@ CONFIG_SYS_MMC_ENV_PART=2
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/p3450-0000_defconfig b/configs/p3450-0000_defconfig
> index 6e6a8133b4d4..12c3f9bb28e7 100644
> --- a/configs/p3450-0000_defconfig
> +++ b/configs/p3450-0000_defconfig
> @@ -33,6 +33,8 @@ CONFIG_ENV_IS_IN_SPI_FLASH=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/pico-dwarf-imx6ul_defconfig b/configs/pico-dwarf-imx6ul_defconfig
> index 9695eb26576a..8d17a24d6272 100644
> --- a/configs/pico-dwarf-imx6ul_defconfig
> +++ b/configs/pico-dwarf-imx6ul_defconfig
> @@ -43,6 +43,7 @@ CONFIG_ENV_IS_IN_MMC=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_BUF_SIZE=0x10000000
>  CONFIG_FASTBOOT_FLASH=y
> diff --git a/configs/pico-hobbit-imx6ul_defconfig b/configs/pico-hobbit-imx6ul_defconfig
> index 5c1ca0b8d7f4..6f74c6e27749 100644
> --- a/configs/pico-hobbit-imx6ul_defconfig
> +++ b/configs/pico-hobbit-imx6ul_defconfig
> @@ -44,6 +44,7 @@ CONFIG_ENV_IS_IN_MMC=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_BUF_SIZE=0x10000000
>  CONFIG_FASTBOOT_FLASH=y
> diff --git a/configs/pico-imx6_defconfig b/configs/pico-imx6_defconfig
> index 0f27c5475538..f0109814339f 100644
> --- a/configs/pico-imx6_defconfig
> +++ b/configs/pico-imx6_defconfig
> @@ -58,6 +58,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_BUF_ADDR=0x12000000
>  CONFIG_FASTBOOT_BUF_SIZE=0x10000000
> diff --git a/configs/pico-imx6ul_defconfig b/configs/pico-imx6ul_defconfig
> index 159fb6b6cd7d..a54b22f5a538 100644
> --- a/configs/pico-imx6ul_defconfig
> +++ b/configs/pico-imx6ul_defconfig
> @@ -47,6 +47,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_NET_RANDOM_ETHADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_BUF_SIZE=0x10000000
>  CONFIG_FASTBOOT_FLASH=y
> diff --git a/configs/pico-pi-imx6ul_defconfig b/configs/pico-pi-imx6ul_defconfig
> index 51b71a77e5e5..bb1a9d654246 100644
> --- a/configs/pico-pi-imx6ul_defconfig
> +++ b/configs/pico-pi-imx6ul_defconfig
> @@ -44,6 +44,7 @@ CONFIG_ENV_IS_IN_MMC=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_BUF_SIZE=0x10000000
>  CONFIG_FASTBOOT_FLASH=y
> diff --git a/configs/pxm2_defconfig b/configs/pxm2_defconfig
> index 90ef4c8d99ac..1d14ea918327 100644
> --- a/configs/pxm2_defconfig
> +++ b/configs/pxm2_defconfig
> @@ -77,6 +77,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
>  # CONFIG_SPL_DM_MMC is not set
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_MMC_OMAP_HS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/rastaban_defconfig b/configs/rastaban_defconfig
> index 63c62a5c0745..29ade173f4a8 100644
> --- a/configs/rastaban_defconfig
> +++ b/configs/rastaban_defconfig
> @@ -76,6 +76,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
>  # CONFIG_SPL_DM_MMC is not set
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_MMC_OMAP_HS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/rpi_4_32b_defconfig b/configs/rpi_4_32b_defconfig
> index 47ea466454fc..64d969ffe57c 100644
> --- a/configs/rpi_4_32b_defconfig
> +++ b/configs/rpi_4_32b_defconfig
> @@ -24,6 +24,8 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DM_DMA=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x200000
>  CONFIG_MMC_SDHCI=y
>  CONFIG_MMC_SDHCI_SDMA=y
>  CONFIG_MMC_SDHCI_BCM2835=y
> diff --git a/configs/rpi_4_defconfig b/configs/rpi_4_defconfig
> index 9cd1477107fa..025ac7bc0b28 100644
> --- a/configs/rpi_4_defconfig
> +++ b/configs/rpi_4_defconfig
> @@ -24,6 +24,8 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DM_DMA=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x200000
>  CONFIG_MMC_SDHCI=y
>  CONFIG_MMC_SDHCI_SDMA=y
>  CONFIG_MMC_SDHCI_BCM2835=y
> diff --git a/configs/rut_defconfig b/configs/rut_defconfig
> index 6fc06f1ed974..ab99f17e31d5 100644
> --- a/configs/rut_defconfig
> +++ b/configs/rut_defconfig
> @@ -78,6 +78,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
>  # CONFIG_SPL_DM_MMC is not set
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_MMC_OMAP_HS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/s5p_goni_defconfig b/configs/s5p_goni_defconfig
> index 28d8be6b01f6..72f9ce16a950 100644
> --- a/configs/s5p_goni_defconfig
> +++ b/configs/s5p_goni_defconfig
> @@ -36,6 +36,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  # CONFIG_NET is not set
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_DM_I2C_GPIO=y
>  CONFIG_MMC_SDHCI=y
>  CONFIG_MMC_SDHCI_S5P=y
> diff --git a/configs/s5pc210_universal_defconfig b/configs/s5pc210_universal_defconfig
> index 759034a8a5c6..734a99f8efa5 100644
> --- a/configs/s5pc210_universal_defconfig
> +++ b/configs/s5pc210_universal_defconfig
> @@ -33,6 +33,7 @@ CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_SYS_I2C_S3C24X0=y
>  CONFIG_MMC_DW=y
>  CONFIG_MMC_SDHCI=y
> diff --git a/configs/smartweb_defconfig b/configs/smartweb_defconfig
> index 1f600d02780a..dc7b27742f87 100644
> --- a/configs/smartweb_defconfig
> +++ b/configs/smartweb_defconfig
> @@ -53,6 +53,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_CLK=y
>  CONFIG_CLK_AT91=y
>  CONFIG_DFU_NAND=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_AT91_GPIO=y
>  # CONFIG_MMC is not set
>  CONFIG_MTD=y
> diff --git a/configs/socfpga_arria5_defconfig b/configs/socfpga_arria5_defconfig
> index d4f9bade3d01..e6e6cb24e155 100644
> --- a/configs/socfpga_arria5_defconfig
> +++ b/configs/socfpga_arria5_defconfig
> @@ -39,6 +39,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_cyclone5_defconfig b/configs/socfpga_cyclone5_defconfig
> index ae7fd501917a..ff7aa1df2a4a 100644
> --- a/configs/socfpga_cyclone5_defconfig
> +++ b/configs/socfpga_cyclone5_defconfig
> @@ -39,6 +39,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_dbm_soc1_defconfig b/configs/socfpga_dbm_soc1_defconfig
> index 033c40736ed8..70a891b003a4 100644
> --- a/configs/socfpga_dbm_soc1_defconfig
> +++ b/configs/socfpga_dbm_soc1_defconfig
> @@ -44,6 +44,7 @@ CONFIG_ENV_IS_IN_MMC=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_de0_nano_soc_defconfig b/configs/socfpga_de0_nano_soc_defconfig
> index 53efc9f5bdad..35ad9a2ea726 100644
> --- a/configs/socfpga_de0_nano_soc_defconfig
> +++ b/configs/socfpga_de0_nano_soc_defconfig
> @@ -39,6 +39,7 @@ CONFIG_ENV_IS_IN_MMC=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_de10_nano_defconfig b/configs/socfpga_de10_nano_defconfig
> index d94b9584dea8..92d9336f3580 100644
> --- a/configs/socfpga_de10_nano_defconfig
> +++ b/configs/socfpga_de10_nano_defconfig
> @@ -36,6 +36,7 @@ CONFIG_ENV_IS_IN_MMC=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_mcvevk_defconfig b/configs/socfpga_mcvevk_defconfig
> index b24b417a6bc3..2e7a9a21e675 100644
> --- a/configs/socfpga_mcvevk_defconfig
> +++ b/configs/socfpga_mcvevk_defconfig
> @@ -37,6 +37,7 @@ CONFIG_ENV_IS_IN_MMC=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_sockit_defconfig b/configs/socfpga_sockit_defconfig
> index 4ea9b41a7e21..32f203143324 100644
> --- a/configs/socfpga_sockit_defconfig
> +++ b/configs/socfpga_sockit_defconfig
> @@ -39,6 +39,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_socrates_defconfig b/configs/socfpga_socrates_defconfig
> index 16c9b927a9bd..756388ee5704 100644
> --- a/configs/socfpga_socrates_defconfig
> +++ b/configs/socfpga_socrates_defconfig
> @@ -40,6 +40,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_VERSION_VARIABLE=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_DW=y
> diff --git a/configs/socfpga_vining_fpga_defconfig b/configs/socfpga_vining_fpga_defconfig
> index 3984b9bc7849..174494c16e57 100644
> --- a/configs/socfpga_vining_fpga_defconfig
> +++ b/configs/socfpga_vining_fpga_defconfig
> @@ -53,6 +53,7 @@ CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DWAPB_GPIO=y
>  CONFIG_DM_I2C=y
>  CONFIG_LED_STATUS=y
> diff --git a/configs/taurus_defconfig b/configs/taurus_defconfig
> index a79cdf3fa7ce..dbd642862413 100644
> --- a/configs/taurus_defconfig
> +++ b/configs/taurus_defconfig
> @@ -71,6 +71,7 @@ CONFIG_BLK=y
>  CONFIG_CLK=y
>  CONFIG_CLK_AT91=y
>  CONFIG_DFU_NAND=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_AT91_GPIO=y
>  # CONFIG_MMC is not set
>  CONFIG_MTD=y
> diff --git a/configs/thuban_defconfig b/configs/thuban_defconfig
> index d1cc9a69bec8..247538a5d9fb 100644
> --- a/configs/thuban_defconfig
> +++ b/configs/thuban_defconfig
> @@ -76,6 +76,7 @@ CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_BOOTCOUNT_ENV=y
>  CONFIG_DFU_NAND=y
>  # CONFIG_SPL_DM_MMC is not set
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
>  CONFIG_MMC_OMAP_HS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/topic_miami_defconfig b/configs/topic_miami_defconfig
> index ec66bb09584a..3681919f8503 100644
> --- a/configs/topic_miami_defconfig
> +++ b/configs/topic_miami_defconfig
> @@ -38,6 +38,7 @@ CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_RAM=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x600000
>  CONFIG_FPGA_XILINX=y
>  CONFIG_FPGA_ZYNQPL=y
>  CONFIG_DM_I2C=y
> diff --git a/configs/topic_miamilite_defconfig b/configs/topic_miamilite_defconfig
> index e4145948859e..301a357ec70f 100644
> --- a/configs/topic_miamilite_defconfig
> +++ b/configs/topic_miamilite_defconfig
> @@ -38,6 +38,7 @@ CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_RAM=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x600000
>  CONFIG_FPGA_XILINX=y
>  CONFIG_FPGA_ZYNQPL=y
>  CONFIG_DM_I2C=y
> diff --git a/configs/topic_miamiplus_defconfig b/configs/topic_miamiplus_defconfig
> index 0041ee153669..27cd9132e86b 100644
> --- a/configs/topic_miamiplus_defconfig
> +++ b/configs/topic_miamiplus_defconfig
> @@ -37,6 +37,7 @@ CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_RAM=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x600000
>  CONFIG_FPGA_XILINX=y
>  CONFIG_FPGA_ZYNQPL=y
>  CONFIG_DM_I2C=y
> diff --git a/configs/trats2_defconfig b/configs/trats2_defconfig
> index 8439ddc26775..a3955e1ffc5a 100644
> --- a/configs/trats2_defconfig
> +++ b/configs/trats2_defconfig
> @@ -34,6 +34,7 @@ CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_DM_I2C_GPIO=y
>  CONFIG_SYS_I2C_S3C24X0=y
>  CONFIG_MMC_DW=y
> diff --git a/configs/trats_defconfig b/configs/trats_defconfig
> index 931c69ba6f17..64cd5dcdb3b2 100644
> --- a/configs/trats_defconfig
> +++ b/configs/trats_defconfig
> @@ -33,6 +33,7 @@ CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x2000000
>  CONFIG_DM_I2C_GPIO=y
>  CONFIG_SYS_I2C_S3C24X0=y
>  CONFIG_MMC_DW=y
> diff --git a/configs/venice2_defconfig b/configs/venice2_defconfig
> index ca18677dd4c7..9c14cef2b999 100644
> --- a/configs/venice2_defconfig
> +++ b/configs/venice2_defconfig
> @@ -32,6 +32,8 @@ CONFIG_SPL_DM=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x100000
> +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x2000000
>  CONFIG_SYS_I2C_TEGRA=y
>  CONFIG_SF_DEFAULT_MODE=0
>  CONFIG_SF_DEFAULT_SPEED=24000000
> diff --git a/configs/warp7_bl33_defconfig b/configs/warp7_bl33_defconfig
> index c5c5d99c6ca6..5452a49061c5 100644
> --- a/configs/warp7_bl33_defconfig
> +++ b/configs/warp7_bl33_defconfig
> @@ -35,6 +35,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_NET_RANDOM_ETHADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DM_I2C=y
>  CONFIG_SUPPORT_EMMC_BOOT=y
>  CONFIG_FSL_USDHC=y
> diff --git a/configs/warp7_defconfig b/configs/warp7_defconfig
> index 910419938cd2..43471e754a9f 100644
> --- a/configs/warp7_defconfig
> +++ b/configs/warp7_defconfig
> @@ -41,6 +41,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_NET_RANDOM_ETHADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_DM_I2C=y
>  CONFIG_SUPPORT_EMMC_BOOT=y
>  CONFIG_FSL_USDHC=y
> diff --git a/configs/warp_defconfig b/configs/warp_defconfig
> index 34acc9e6c844..04f756aacf8c 100644
> --- a/configs/warp_defconfig
> +++ b/configs/warp_defconfig
> @@ -33,6 +33,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  # CONFIG_NET is not set
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_DFU_MMC=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1000000
>  CONFIG_SUPPORT_EMMC_BOOT=y
>  CONFIG_FSL_USDHC=y
>  CONFIG_MXC_UART=y
> diff --git a/configs/xilinx_versal_virt_defconfig b/configs/xilinx_versal_virt_defconfig
> index f4e9a80728d7..121c3ae72051 100644
> --- a/configs/xilinx_versal_virt_defconfig
> +++ b/configs/xilinx_versal_virt_defconfig
> @@ -54,6 +54,7 @@ CONFIG_TFTP_BLOCKSIZE=4096
>  CONFIG_CLK_VERSAL=y
>  CONFIG_DFU_TIMEOUT=y
>  CONFIG_DFU_RAM=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1800000
>  CONFIG_FPGA_XILINX=y
>  CONFIG_FPGA_VERSALPL=y
>  CONFIG_DM_I2C=y
> diff --git a/configs/xilinx_zynq_virt_defconfig b/configs/xilinx_zynq_virt_defconfig
> index 7e56395a521f..e53ef2443ec1 100644
> --- a/configs/xilinx_zynq_virt_defconfig
> +++ b/configs/xilinx_zynq_virt_defconfig
> @@ -68,6 +68,7 @@ CONFIG_SPL_DM_SEQ_ALIAS=y
>  CONFIG_DFU_TIMEOUT=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DFU_RAM=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x600000
>  CONFIG_FPGA_XILINX=y
>  CONFIG_FPGA_ZYNQPL=y
>  CONFIG_DM_I2C=y
> diff --git a/configs/xilinx_zynqmp_virt_defconfig b/configs/xilinx_zynqmp_virt_defconfig
> index e939b04ef6a5..b0cc9d9ba88a 100644
> --- a/configs/xilinx_zynqmp_virt_defconfig
> +++ b/configs/xilinx_zynqmp_virt_defconfig
> @@ -90,6 +90,7 @@ CONFIG_DFU_NAND=y
>  CONFIG_DFU_RAM=y
>  CONFIG_DFU_SF=y
>  CONFIG_DFU_MTD=y
> +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x1800000
>  CONFIG_USB_FUNCTION_FASTBOOT=y
>  CONFIG_FASTBOOT_FLASH=y
>  CONFIG_FASTBOOT_FLASH_MMC_DEV=0
> diff --git a/drivers/dfu/Kconfig b/drivers/dfu/Kconfig
> index 121dc54f5463..b50547476cbd 100644
> --- a/drivers/dfu/Kconfig
> +++ b/drivers/dfu/Kconfig
> @@ -92,5 +92,25 @@ config SET_DFU_ALT_INFO
>  	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
> diff --git a/include/configs/am65x_evm.h b/include/configs/am65x_evm.h
> index 76d73086fb89..8c50fe9d11ff 100644
> --- a/include/configs/am65x_evm.h
> +++ b/include/configs/am65x_evm.h
> @@ -22,7 +22,6 @@
>  #ifdef CONFIG_TARGET_AM654_A53_EVM
>  #define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SPL_TEXT_BASE +	\
>  					 CONFIG_SYS_K3_NON_SECURE_MSRAM_SIZE)
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x20000
>  #else
>  /*
>   * Maximum size in memory allocated to the SPL BSS. Keep it as tight as
> @@ -45,7 +44,6 @@
>  /* Configure R5 SPL post-relocation malloc pool in DDR */
>  #define CONFIG_SYS_SPL_MALLOC_START	0x84000000
>  #define CONFIG_SYS_SPL_MALLOC_SIZE	SZ_16M
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x5000
>  #endif
>  
>  #ifdef CONFIG_SYS_K3_SPL_ATF
> @@ -56,12 +54,6 @@
>  #define CONFIG_SKIP_LOWLEVEL_INIT
>  #endif
>  
> -/*
> - * If the maximum size is not declared then it is defined as
> - * CONFIG_SYS_DFU_DATA_BUF_SIZE.
> - */
> -#define CONFIG_SYS_DFU_MAX_FILE_SIZE	(1024 * 1024 * 8)   /* 8 MiB */
> -
>  #define CONFIG_SPL_MAX_SIZE		CONFIG_SYS_K3_MAX_DOWNLODABLE_IMAGE_SIZE
>  
>  #define CONFIG_SYS_BOOTM_LEN		SZ_64M
> diff --git a/include/configs/colibri-imx6ull.h b/include/configs/colibri-imx6ull.h
> index 22ee2ba03e46..f84931653fbc 100644
> --- a/include/configs/colibri-imx6ull.h
> +++ b/include/configs/colibri-imx6ull.h
> @@ -143,7 +143,6 @@
>  #define CONFIG_USBD_HS
>  
>  /* USB Device Firmware Update support */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_16M
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  
>  #if defined(CONFIG_VIDEO) || defined(CONFIG_DM_VIDEO)
> diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
> index cae7c14bfb90..5bd440f1db33 100644
> --- a/include/configs/colibri_vf.h
> +++ b/include/configs/colibri_vf.h
> @@ -143,6 +143,5 @@
>  #define CONFIG_EHCI_HCD_INIT_AFTER_RESET
>  
>  /* USB DFU */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE (SZ_1M)
>  
>  #endif /* __CONFIG_H */
> diff --git a/include/configs/corvus.h b/include/configs/corvus.h
> index 55f77e4400a2..bd4d6e8e39f4 100644
> --- a/include/configs/corvus.h
> +++ b/include/configs/corvus.h
> @@ -81,7 +81,6 @@
>  #define CONFIG_AT91_WANTS_COMMON_PHY
>  
>  /* DFU class support */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(SZ_1M)
>  #define DFU_MANIFEST_POLL_TIMEOUT	25000
>  
>  #define CONFIG_SYS_LOAD_ADDR	ATMEL_BASE_CS6
> diff --git a/include/configs/dh_imx6.h b/include/configs/dh_imx6.h
> index 4a469af5e60b..d9be1c38c44a 100644
> --- a/include/configs/dh_imx6.h
> +++ b/include/configs/dh_imx6.h
> @@ -66,7 +66,6 @@
>  
>  /* USB Gadget (DFU, UMS) */
>  #if defined(CONFIG_CMD_DFU) || defined(CONFIG_CMD_USB_MASS_STORAGE)
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(16 * 1024 * 1024)
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  
>  /* USB IDs */
> diff --git a/include/configs/exynos4-common.h b/include/configs/exynos4-common.h
> index 005f65d4ed6a..5e2aca371e7e 100644
> --- a/include/configs/exynos4-common.h
> +++ b/include/configs/exynos4-common.h
> @@ -19,7 +19,6 @@
>  /* SD/MMC configuration */
>  #define CONFIG_MMC_DEFAULT_DEV	0
>  
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_32M
>  #define DFU_DEFAULT_POLL_TIMEOUT 300
>  
>  /* USB Samsung's IDs */
> diff --git a/include/configs/odroid_xu3.h b/include/configs/odroid_xu3.h
> index 0c86196152fc..fc70dc6a7323 100644
> --- a/include/configs/odroid_xu3.h
> +++ b/include/configs/odroid_xu3.h
> @@ -27,7 +27,6 @@
>  #define CONFIG_USB_EHCI_EXYNOS
>  
>  /* DFU */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_32M
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  #define DFU_MANIFEST_POLL_TIMEOUT	25000
>  
> diff --git a/include/configs/pico-imx6.h b/include/configs/pico-imx6.h
> index 19c8aeb71b6e..6199f0d72e76 100644
> --- a/include/configs/pico-imx6.h
> +++ b/include/configs/pico-imx6.h
> @@ -38,7 +38,6 @@
>  #define CONFIG_MXC_USB_PORTSC		(PORT_PTS_UTMI | PORT_PTS_PTW)
>  #define CONFIG_MXC_USB_FLAGS		0
>  
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_16M
>  #define DFU_DEFAULT_POLL_TIMEOUT 300
>  
>  #define CONFIG_DFU_ENV_SETTINGS \
> diff --git a/include/configs/pico-imx6ul.h b/include/configs/pico-imx6ul.h
> index 747ef09f37d9..04a2531f7447 100644
> --- a/include/configs/pico-imx6ul.h
> +++ b/include/configs/pico-imx6ul.h
> @@ -49,7 +49,6 @@
>  
>  #define CONFIG_USBD_HS
>  
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_16M
>  #define DFU_DEFAULT_POLL_TIMEOUT 300
>  
>  #define CONFIG_DFU_ENV_SETTINGS \
> diff --git a/include/configs/rpi.h b/include/configs/rpi.h
> index 834f1cd23640..46ada884b487 100644
> --- a/include/configs/rpi.h
> +++ b/include/configs/rpi.h
> @@ -74,9 +74,6 @@
>  
>  /* DFU over USB/UDC */
>  #ifdef CONFIG_CMD_DFU
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_1M
> -#define CONFIG_SYS_DFU_MAX_FILE_SIZE	SZ_2M
> -
>  #ifdef CONFIG_ARM64
>  #define KERNEL_FILENAME		"Image"
>  #else
> diff --git a/include/configs/s5p_goni.h b/include/configs/s5p_goni.h
> index 9688bdc4c035..6af6009e6126 100644
> --- a/include/configs/s5p_goni.h
> +++ b/include/configs/s5p_goni.h
> @@ -41,7 +41,6 @@
>  #define CONFIG_PWM			1
>  
>  /* USB Composite download gadget - g_dnl */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_32M
>  #define DFU_DEFAULT_POLL_TIMEOUT 300
>  
>  /* USB Samsung's IDs */
> diff --git a/include/configs/siemens-am33x-common.h b/include/configs/siemens-am33x-common.h
> index e18af7493c7f..f96dd774b178 100644
> --- a/include/configs/siemens-am33x-common.h
> +++ b/include/configs/siemens-am33x-common.h
> @@ -143,7 +143,6 @@
>  #define CONFIG_USBD_HS
>  
>  /* USB Device Firmware Update support */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(1 << 20)
>  #define DFU_MANIFEST_POLL_TIMEOUT	25000
>  
>  #endif /* CONFIG_SPL_BUILD */
> diff --git a/include/configs/smartweb.h b/include/configs/smartweb.h
> index 6e715dc0c1be..5e8637e49484 100644
> --- a/include/configs/smartweb.h
> +++ b/include/configs/smartweb.h
> @@ -122,7 +122,6 @@
>  #define CONFIG_USB_GADGET_AT91
>  
>  /* DFU class support */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_1M
>  #define DFU_MANIFEST_POLL_TIMEOUT	25000
>  #endif
>  
> diff --git a/include/configs/socfpga_common.h b/include/configs/socfpga_common.h
> index 62b327cd6e52..c5e4292f1964 100644
> --- a/include/configs/socfpga_common.h
> +++ b/include/configs/socfpga_common.h
> @@ -148,7 +148,6 @@ unsigned int cm_get_qspi_controller_clk_hz(void);
>   * USB Gadget (DFU, UMS)
>   */
>  #if defined(CONFIG_CMD_DFU) || defined(CONFIG_CMD_USB_MASS_STORAGE)
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(16 * 1024 * 1024)
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  
>  /* USB IDs */
> diff --git a/include/configs/taurus.h b/include/configs/taurus.h
> index 39eae8e2ba04..6e869462f1e6 100644
> --- a/include/configs/taurus.h
> +++ b/include/configs/taurus.h
> @@ -92,7 +92,6 @@
>  #define CONFIG_USB_GADGET_AT91
>  
>  /* DFU class support */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	(SZ_1M)
>  #define DFU_MANIFEST_POLL_TIMEOUT	25000
>  #endif
>  
> diff --git a/include/configs/tegra-common-usb-gadget.h b/include/configs/tegra-common-usb-gadget.h
> index e6b61c4e8fd3..201f4bc093c9 100644
> --- a/include/configs/tegra-common-usb-gadget.h
> +++ b/include/configs/tegra-common-usb-gadget.h
> @@ -13,8 +13,6 @@
>  #define CONFIG_CI_UDC_HAS_HOSTPC
>  #endif
>  /* DFU protocol */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_1M
> -#define CONFIG_SYS_DFU_MAX_FILE_SIZE SZ_32M
>  #endif
>  
>  #endif /* _TEGRA_COMMON_USB_GADGET_H_ */
> diff --git a/include/configs/warp.h b/include/configs/warp.h
> index 0f97804eb29c..bda8ff9a34f3 100644
> --- a/include/configs/warp.h
> +++ b/include/configs/warp.h
> @@ -50,7 +50,6 @@
>  
>  #define CONFIG_USBD_HS
>  
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_16M
>  #define DFU_DEFAULT_POLL_TIMEOUT 300
>  
>  /* I2C Configs */
> diff --git a/include/configs/warp7.h b/include/configs/warp7.h
> index 8eb106027440..a5d52e3977fd 100644
> --- a/include/configs/warp7.h
> +++ b/include/configs/warp7.h
> @@ -149,7 +149,6 @@
>  #define CONFIG_USBD_HS
>  
>  /* USB Device Firmware Update support */
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_16M
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  
>  #define CONFIG_USBNET_DEV_ADDR		"de:ad:be:af:00:01"
> diff --git a/include/configs/xilinx_versal.h b/include/configs/xilinx_versal.h
> index 380f93a2f68e..ebe81968d130 100644
> --- a/include/configs/xilinx_versal.h
> +++ b/include/configs/xilinx_versal.h
> @@ -47,7 +47,6 @@
>  #define CONFIG_SYS_MAXARGS		64
>  
>  #if defined(CONFIG_CMD_DFU)
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x1800000
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  #define CONFIG_THOR_RESET_OFF
>  #endif
> diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h
> index 986af2be7819..cadaf1a96312 100644
> --- a/include/configs/xilinx_zynqmp.h
> +++ b/include/configs/xilinx_zynqmp.h
> @@ -52,7 +52,6 @@
>  #define CONFIG_SYS_LOAD_ADDR		0x8000000
>  
>  #if defined(CONFIG_ZYNQMP_USB)
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x1800000
>  #define DFU_DEFAULT_POLL_TIMEOUT	300
>  #define CONFIG_THOR_RESET_OFF
>  
> diff --git a/include/configs/zynq-common.h b/include/configs/zynq-common.h
> index 39035f8bebca..7859b77603f1 100644
> --- a/include/configs/zynq-common.h
> +++ b/include/configs/zynq-common.h
> @@ -58,7 +58,6 @@
>  #ifdef CONFIG_USB_EHCI_ZYNQ
>  # define CONFIG_EHCI_IS_TDI
>  
> -# define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x600000
>  # define DFU_DEFAULT_POLL_TIMEOUT	300
>  # define CONFIG_THOR_RESET_OFF
>  #endif
> diff --git a/include/dfu.h b/include/dfu.h
> index d18b70172829..afada3959b72 100644
> --- a/include/dfu.h
> +++ b/include/dfu.h
> @@ -100,12 +100,6 @@ struct virt_internal_data {
>  };
>  
>  #define DFU_NAME_SIZE			32
> -#ifndef CONFIG_SYS_DFU_DATA_BUF_SIZE
> -#define CONFIG_SYS_DFU_DATA_BUF_SIZE		(1024*1024*8)	/* 8 MiB */
> -#endif
> -#ifndef CONFIG_SYS_DFU_MAX_FILE_SIZE
> -#define CONFIG_SYS_DFU_MAX_FILE_SIZE CONFIG_SYS_DFU_DATA_BUF_SIZE
> -#endif
>  #ifndef DFU_DEFAULT_POLL_TIMEOUT
>  #define DFU_DEFAULT_POLL_TIMEOUT 0
>  #endif
> diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
> index 8f92b82719a2..0f5ac8ff5229 100644
> --- a/scripts/config_whitelist.txt
> +++ b/scripts/config_whitelist.txt
> @@ -1988,8 +1988,6 @@ CONFIG_SYS_DEBUG_SERVER_FW_IN_NOR
>  CONFIG_SYS_DEFAULT_LPDDR2_TIMINGS
>  CONFIG_SYS_DEFAULT_VIDEO_MODE
>  CONFIG_SYS_DEF_EEPROM_ADDR
> -CONFIG_SYS_DFU_DATA_BUF_SIZE
> -CONFIG_SYS_DFU_MAX_FILE_SIZE
>  CONFIG_SYS_DIAG_ADDR
>  CONFIG_SYS_DIALOG_PMIC_I2C_ADDR
>  CONFIG_SYS_DIMM_SLOTS_PER_CTLR
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v3] usb: dfu: Migrate CONFIG_SYS_DFU_DATA_BUF_SIZE and CONFIG_SYS_DFU_MAX_FILE_SIZE to Kconfig
  2021-06-08  8:04 ` Aswath Govindraju
@ 2021-06-08 12:07   ` Tom Rini
  0 siblings, 0 replies; 6+ messages in thread
From: Tom Rini @ 2021-06-08 12:07 UTC (permalink / raw)
  To: Aswath Govindraju
  Cc: Lokesh Vutla, Vignesh Raghavendra, Kishon Vijay Abraham I,
	Pratyush Yadav, Tom Warren, Stephen Warren, Peter.Chubb,
	Oleksandr Suvorov, Heiko Schocher, Andreas Geisreiter,
	Ludwig Zenz, Samuel Egli, Allen Martin, Jaehoon Chung,
	Lukasz Majewski, Chander Kashyap, Richard Hu, Fabio Estevam,
	Matthias Brugger, Robert Baldyga, Dinh Nguyen, Chin-Liang See,
	Marek Vasut, Dalon Westergreen, Wolfgang Grandegger,
	Stefan Roese, Mike Looijmans, Otavio Salvador, Michal Simek,
	Adam Ford, Jagan Teki, Ashok Reddy Soma, Ley Foon Tan,
	Simon Glass, Patrick Delaunay, Ovidiu Panait, u-boot

[-- Attachment #1: Type: text/plain, Size: 1050 bytes --]

On Tue, Jun 08, 2021 at 01:34:33PM +0530, Aswath Govindraju wrote:
> + Tom Rini
> 
> I saw that this patch is delegated to Tom Rini in patchwork page but I
> did not add him in the cc-list. So, I added him now.
> 
> Hi Tom,
> 
> On 01/06/21 4:51 pm, Aswath Govindraju wrote:
> > Currently the config options CONFIG_SYS_DFU_DATA_BUF_SIZE and
> > CONFIG_SYS_DFU_MAX_FILE_SIZE are being set in include/configs/<board>.h
> > files and also in <board_name>_defconfig files without a Kconfig option. It
> > is easier for users to set these configs in defconfig files than in config
> > header files as they are a part of the source code.
> > 
> > Add Kconfig symbols, and update the defconfigs by using tools/moveconfig.py
> > script.
> > 
> 
> May I know if this patch is good to be picked?

Yes but some of the recent "this cleanup caused a hard to spot
regression" have left me of the opinion that Kconfig migrations need to
go in to -next or early -rc rather than late -rc, so, soon now.  Thanks
for your patience.

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v3] usb: dfu: Migrate CONFIG_SYS_DFU_DATA_BUF_SIZE and CONFIG_SYS_DFU_MAX_FILE_SIZE to Kconfig
  2021-06-01 11:21 [PATCH v3] usb: dfu: Migrate CONFIG_SYS_DFU_DATA_BUF_SIZE and CONFIG_SYS_DFU_MAX_FILE_SIZE to Kconfig Aswath Govindraju
                   ` (2 preceding siblings ...)
  2021-06-08  8:04 ` Aswath Govindraju
@ 2021-06-09 12:19 ` Tom Rini
  3 siblings, 0 replies; 6+ messages in thread
From: Tom Rini @ 2021-06-09 12:19 UTC (permalink / raw)
  To: Aswath Govindraju
  Cc: Lokesh Vutla, Vignesh Raghavendra, Kishon Vijay Abraham I,
	Pratyush Yadav, Tom Warren, Stephen Warren, Peter.Chubb,
	Oleksandr Suvorov, Heiko Schocher, Andreas Geisreiter,
	Ludwig Zenz, Samuel Egli, Allen Martin, Jaehoon Chung,
	Lukasz Majewski, Chander Kashyap, Richard Hu, Fabio Estevam,
	Matthias Brugger, Robert Baldyga, Dinh Nguyen, Chin-Liang See,
	Marek Vasut, Dalon Westergreen, Wolfgang Grandegger,
	Stefan Roese, Mike Looijmans, Otavio Salvador, Michal Simek,
	Adam Ford, Jagan Teki, Ashok Reddy Soma, Ley Foon Tan,
	Simon Glass, Patrick Delaunay, Ovidiu Panait, u-boot

[-- Attachment #1: Type: text/plain, Size: 832 bytes --]

On Tue, Jun 01, 2021 at 04:51:47PM +0530, Aswath Govindraju wrote:

> Currently the config options CONFIG_SYS_DFU_DATA_BUF_SIZE and
> CONFIG_SYS_DFU_MAX_FILE_SIZE are being set in include/configs/<board>.h
> files and also in <board_name>_defconfig files without a Kconfig option. It
> is easier for users to set these configs in defconfig files than in config
> header files as they are a part of the source code.
> 
> Add Kconfig symbols, and update the defconfigs by using tools/moveconfig.py
> script.
> 
> Suggested-by: Pratyush Yadav <p.yadav@ti.com>
> Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
> Acked-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
> Acked-by: Matthias Brugger <mbrugger@suse.com>
> Acked-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot/next, thanks!

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-06-09 12:21 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-01 11:21 [PATCH v3] usb: dfu: Migrate CONFIG_SYS_DFU_DATA_BUF_SIZE and CONFIG_SYS_DFU_MAX_FILE_SIZE to Kconfig Aswath Govindraju
2021-06-01 15:58 ` Matthias Brugger
2021-06-02  8:37 ` Lukasz Majewski
2021-06-08  8:04 ` Aswath Govindraju
2021-06-08 12:07   ` Tom Rini
2021-06-09 12:19 ` Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.