From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mugunthan V N Date: Thu, 17 Dec 2015 12:33:24 +0530 Subject: [U-Boot] [PATCH] spi: sf: add support for throughput mesurement of sf read/write In-Reply-To: <1445954063-29943-1-git-send-email-mugunthanvnm@ti.com> References: <1445954063-29943-1-git-send-email-mugunthanvnm@ti.com> Message-ID: <56725E3C.7040609@ti.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 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 > #include > #include > +#include > > #include > #include > @@ -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); >