Patchwork [U-Boot,v2] net: Add tftp speed indication

login
register
mail settings
Submitter Simon Glass
Date Oct. 11, 2012, 11:57 p.m.
Message ID <1349999856-15821-1-git-send-email-sjg@chromium.org>
Download mbox | patch
Permalink /patch/191025/
State Accepted, archived
Delegated to: Joe Hershberger
Headers show

Comments

Simon Glass - Oct. 11, 2012, 11:57 p.m.
This prints a tftp speed indication after the download completes. This
is the 3.6 MiB/s indicator below.

Tegra2 (SeaBoard) # tftp ...
Using asx0 device
TFTP from server 172.22.72.144; our IP address is 172.22.73.81
Filename '/tftpboot/uImage-user-seaboard-1'.
Load address: 0x408000
Loading: #################################################
         3.6 MiB/s
done

Signed-off-by: Simon Glass <sjg@chromium.org>
---
Changes in v2:
- Make this feature unconditional (remove need for CONFIG_TFTP_SPEED)
- Display speed on the next line instead of same line

 net/tftp.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
Igor Grinberg - Oct. 16, 2012, 11:22 a.m.
On 10/12/12 01:57, Simon Glass wrote:
> This prints a tftp speed indication after the download completes. This
> is the 3.6 MiB/s indicator below.
> 
> Tegra2 (SeaBoard) # tftp ...
> Using asx0 device
> TFTP from server 172.22.72.144; our IP address is 172.22.73.81
> Filename '/tftpboot/uImage-user-seaboard-1'.
> Load address: 0x408000
> Loading: #################################################
>          3.6 MiB/s
> done
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Acked-by: Igor Grinberg <grinberg@compulab.co.il>

Thanks!

> ---
> Changes in v2:
> - Make this feature unconditional (remove need for CONFIG_TFTP_SPEED)
> - Display speed on the next line instead of same line
> 
>  net/tftp.c |    8 ++++++++
>  1 files changed, 8 insertions(+), 0 deletions(-)
> 
> diff --git a/net/tftp.c b/net/tftp.c
> index 59a8ebb..09790eb 100644
> --- a/net/tftp.c
> +++ b/net/tftp.c
> @@ -40,6 +40,7 @@
>  
>  static ulong TftpTimeoutMSecs = TIMEOUT;
>  static int TftpTimeoutCountMax = TIMEOUT_COUNT;
> +static ulong time_start;   /* Record time we started tftp */
>  
>  /*
>   * These globals govern the timeout behavior when attempting a connection to a
> @@ -299,6 +300,12 @@ static void tftp_complete(void)
>  		TftpNumchars++;
>  	}
>  #endif
> +	time_start = get_timer(time_start);
> +	if (time_start > 0) {
> +		puts("\n\t ");	/* Line up with "Loading: " */
> +		print_size(NetBootFileXferSize /
> +			time_start * 1000, "/s");
> +	}
>  	puts("\ndone\n");
>  	net_set_state(NETLOOP_SUCCESS);
>  }
> @@ -775,6 +782,7 @@ void TftpStart(enum proto_t protocol)
>  		TftpState = STATE_SEND_RRQ;
>  	}
>  
> +	time_start = get_timer(0);
>  	TftpTimeoutCountMax = TftpRRQTimeoutCountMax;
>  
>  	NetSetTimeout(TftpTimeoutMSecs, TftpTimeout);

Patch

diff --git a/net/tftp.c b/net/tftp.c
index 59a8ebb..09790eb 100644
--- a/net/tftp.c
+++ b/net/tftp.c
@@ -40,6 +40,7 @@ 
 
 static ulong TftpTimeoutMSecs = TIMEOUT;
 static int TftpTimeoutCountMax = TIMEOUT_COUNT;
+static ulong time_start;   /* Record time we started tftp */
 
 /*
  * These globals govern the timeout behavior when attempting a connection to a
@@ -299,6 +300,12 @@  static void tftp_complete(void)
 		TftpNumchars++;
 	}
 #endif
+	time_start = get_timer(time_start);
+	if (time_start > 0) {
+		puts("\n\t ");	/* Line up with "Loading: " */
+		print_size(NetBootFileXferSize /
+			time_start * 1000, "/s");
+	}
 	puts("\ndone\n");
 	net_set_state(NETLOOP_SUCCESS);
 }
@@ -775,6 +782,7 @@  void TftpStart(enum proto_t protocol)
 		TftpState = STATE_SEND_RRQ;
 	}
 
+	time_start = get_timer(0);
 	TftpTimeoutCountMax = TftpRRQTimeoutCountMax;
 
 	NetSetTimeout(TftpTimeoutMSecs, TftpTimeout);