[U-Boot] [PATCH] spi: sf: add support for throughput mesurement of sf read/write
Mugunthan V N
mugunthanvnm at ti.com
Thu Dec 17 08:03:24 CET 2015
Jagan
On Tuesday 27 October 2015 07:24 PM, Mugunthan V N wrote:
> This patch adds time measurement and throughput calculation for
> sf read/write commands.
>
> The output of sf read changes from
>
> ---8<---
> SF: 4096 bytes @ 0x0 Read: OK
> --->8---
>
> to
>
> ---8<---
> SF: 4096 bytes @ 0x0 Read: OK in 6 ms (666 KiB/s)
> --->8---
>
> Signed-off-by: Mugunthan V N <mugunthanvnm at ti.com>
A gentle ping
Regards
Mugunthan V N
> ---
> common/cmd_sf.c | 18 +++++++++++++++---
> 1 file changed, 15 insertions(+), 3 deletions(-)
>
> diff --git a/common/cmd_sf.c b/common/cmd_sf.c
> index ac7f5df..8687f3a 100644
> --- a/common/cmd_sf.c
> +++ b/common/cmd_sf.c
> @@ -15,6 +15,7 @@
> #include <spi_flash.h>
> #include <jffs2/jffs2.h>
> #include <linux/mtd/mtd.h>
> +#include <linux/math64.h>
>
> #include <asm/io.h>
> #include <dm/device-internal.h>
> @@ -266,6 +267,7 @@ static int do_spi_flash_read_write(int argc, char * const argv[])
> int ret = 1;
> int dev = 0;
> loff_t offset, len, maxsize;
> + unsigned long time;
>
> if (argc < 3)
> return -1;
> @@ -298,17 +300,27 @@ static int do_spi_flash_read_write(int argc, char * const argv[])
> int read;
>
> read = strncmp(argv[0], "read", 4) == 0;
> +
> + time = get_timer(0);
> if (read)
> ret = spi_flash_read(flash, offset, len, buf);
> else
> ret = spi_flash_write(flash, offset, len, buf);
> + time = get_timer(time);
>
> printf("SF: %zu bytes @ %#x %s: ", (size_t)len, (u32)offset,
> read ? "Read" : "Written");
> - if (ret)
> + if (ret) {
> printf("ERROR %d\n", ret);
> - else
> - printf("OK\n");
> + } else {
> + printf("OK in %lu ms", time);
> + if (time > 0) {
> + puts(" (");
> + print_size(div_u64(len, time) * 1000, "/s");
> + puts(")");
> + }
> + puts("\n");
> + }
> }
>
> unmap_physmem(buf, len);
>
More information about the U-Boot
mailing list