[U-Boot] [PATCH] cmd_sf: add handler for +len arg for all commands
Maxime Hadjinlian
maxime.hadjinlian at gmail.com
Sun Oct 5 20:40:26 CEST 2014
Hi Thomas, all,
On Sun, Oct 5, 2014 at 7:43 PM, <thomas.langer at lantiq.com> wrote:
> Hello Maxime,
>
> can you explain the usecase?
> I think, only the erase is executed per sector, all other commands are working fine with a byte oriented length.
I need to write a file that is downloaded through TFTP. So I can get
the filesize through the variable of the same name, but if it's not
rounded, the write command may fail.
I can save the filesize in another variable, but at next boot, when I
need to read this file, I can't read the file, since I only know it's
size in byte, I need to be able to round it again.
>
> Best regards,
> Thomas
>
> ---
> Sent from my phone.
>
> Maxime Hadjinlian <maxime.hadjinlian at gmail.com> hat geschrieben:
>
>
> This patch adds [+]len handler for the all the commands that will
> automatically round up the requested erase length to the flash's
> sector_size.
> It was previously only available for the erase command.
>
> Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian at gmail.com>
> ---
>
> common/cmd_sf.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/common/cmd_sf.c b/common/cmd_sf.c
> index c60e8d1..d5af3fe 100644
> --- a/common/cmd_sf.c
> +++ b/common/cmd_sf.c
> @@ -245,8 +245,8 @@ static int do_spi_flash_read_write(int argc, char * const argv[])
> offset = simple_strtoul(argv[2], &endp, 16);
> if (*argv[2] == 0 || *endp != 0)
> return -1;
> - len = simple_strtoul(argv[3], &endp, 16);
> - if (*argv[3] == 0 || *endp != 0)
> + len = sf_parse_len_arg(argv[3], &len);
> + if (ret != 1)
> return -1;
>
> /* Consistency checking */
> @@ -529,15 +529,15 @@ usage:
> U_BOOT_CMD(
> sf, 5, 1, do_spi_flash,
> "SPI flash sub-system",
> + "Note: `+len' round up `len' to block size\n"
> "probe [[bus:]cs] [hz] [mode] - init flash device on given SPI bus\n"
> " and chip select\n"
> - "sf read addr offset len - read `len' bytes starting at\n"
> + "sf read addr offset [+]len - read `len' bytes starting at\n"
> " `offset' to memory at `addr'\n"
> - "sf write addr offset len - write `len' bytes from memory\n"
> + "sf write addr offset [+]len - write `len' bytes from memory\n"
> " at `addr' to flash at `offset'\n"
> "sf erase offset [+]len - erase `len' bytes from `offset'\n"
> - " `+len' round up `len' to block size\n"
> - "sf update addr offset len - erase and write `len' bytes from memory\n"
> + "sf update addr offset [+]len - erase and write `len' bytes from memory\n"
> " at `addr' to flash at `offset'"
> SF_TEST_HELP
> );
> --
> 2.1.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
More information about the U-Boot
mailing list