diff options
author | Patrick Delaunay <patrick.delaunay@foss.st.com> | 2021-03-04 19:47:56 +0300 |
---|---|---|
committer | Patrice Chotard <patrice.chotard@foss.st.com> | 2021-06-18 11:09:41 +0300 |
commit | 2dc41fccf347e8acba980d7bad1507cfadf11476 (patch) | |
tree | 13accbec4c54559ae3ec03ed496d6c5b2597e6e9 /drivers/dfu | |
parent | 88f7ca03b4a2dca45c33ae360c99f6dbe3fe394d (diff) | |
download | u-boot-2dc41fccf347e8acba980d7bad1507cfadf11476.tar.xz |
dfu: dfu_mtd: set max_buf_size to erasesize also for NOR devices
For NOR devices the logical DFU buffer size is the sector_size,
as it is done in dfu_sf.c or in spi/sf_mtd.c
(sf_mtd_info.erasesize = flash->sector_size)
For NAND the DFU size was already limited to erasesize as
has_pages = true.
So the mtd dfu backend can use this erasesize for all the MTD devices,
NOR and NAND with dfu->max_buf_size = mtd->erasesize
This difference was initially copied from MTD command, where
data is fully available in RAM without size limitation.
This patch avoids to have many sector write in dfu_mtd.c at the end
of the DFU transfer and avoids issues with USB timeout or WATCHDOG.
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Diffstat (limited to 'drivers/dfu')
-rw-r--r-- | drivers/dfu/dfu_mtd.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/dfu/dfu_mtd.c b/drivers/dfu/dfu_mtd.c index ec40b8f6bb..894b570875 100644 --- a/drivers/dfu/dfu_mtd.c +++ b/drivers/dfu/dfu_mtd.c @@ -254,7 +254,6 @@ int dfu_fill_entity_mtd(struct dfu_entity *dfu, char *devstr, char *s) { char *st; struct mtd_info *mtd; - bool has_pages; int ret, part; mtd = get_mtd_device_nm(devstr); @@ -264,9 +263,7 @@ int dfu_fill_entity_mtd(struct dfu_entity *dfu, char *devstr, char *s) dfu->dev_type = DFU_DEV_MTD; dfu->data.mtd.info = mtd; - - has_pages = mtd->type == MTD_NANDFLASH || mtd->type == MTD_MLCNANDFLASH; - dfu->max_buf_size = has_pages ? mtd->erasesize : 0; + dfu->max_buf_size = mtd->erasesize; st = strsep(&s, " "); if (!strcmp(st, "raw")) { |