[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