[PATCH] dfu: dfu_sf: Read the SPI flash in 16 MiB chunks
Lukasz Majewski
lukma at denx.de
Mon Oct 25 08:30:10 CEST 2021
Hi Marek,
> On 9/14/21 11:31 AM, Lukasz Majewski wrote:
> > On Tue, 14 Sep 2021 05:26:51 +0200
> > Marek Vasut <marex at denx.de> wrote:
> >
> >> Not all SPI flashes and controllers can do continuous transfer
> >> longer than 16 MiB, so perform the DFU read in 16 MiB chunks.
> >>
> >> Signed-off-by: Marek Vasut <marex at denx.de>
> >> Cc: Lukasz Majewski <lukma at denx.de>
> >> ---
> >> drivers/dfu/dfu_sf.c | 14 ++++++++++++--
> >> 1 file changed, 12 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/dfu/dfu_sf.c b/drivers/dfu/dfu_sf.c
> >> index 7e64ab772f0..b72493ced86 100644
> >> --- a/drivers/dfu/dfu_sf.c
> >> +++ b/drivers/dfu/dfu_sf.c
> >> @@ -24,8 +24,18 @@ static int dfu_get_medium_size_sf(struct
> >> dfu_entity *dfu, u64 *size) static int dfu_read_medium_sf(struct
> >> dfu_entity *dfu, u64 offset, void *buf, long *len)
> >> {
> >> - return spi_flash_read(dfu->data.sf.dev,
> >> dfu->data.sf.start + offset,
> >> - *len, buf);
> >> + long seglen = *len;
> >> + int ret;
> >> +
> >> + if (seglen > (16 << 20))
> >> + seglen = (16 << 20);
> >> +
> >> + ret = spi_flash_read(dfu->data.sf.dev, dfu->data.sf.start
> >> + offset,
> >> + seglen, buf);
> >> + if (!ret)
> >> + *len = seglen;
> >> +
> >> + return ret;
> >> }
> >>
> >> static u64 find_sector(struct dfu_entity *dfu, u64 start, u64
> >> offset)
> >
> > Reviewed-by: Lukasz Majewski <lukma at denx.de>
>
> Is there going to be a PR with this or shall Tom pick it directly,
> since it is just one patch ?
Please, Tom pick it up...
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 at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20211025/af9aa0e3/attachment.sig>
More information about the U-Boot
mailing list