From mboxrd@z Thu Jan 1 00:00:00 1970 From: Igor Grinberg Date: Thu, 11 Oct 2012 13:00:49 +0200 Subject: [U-Boot] [PATCH] net: Add tftp speed indication In-Reply-To: <1349913791-10564-1-git-send-email-sjg@chromium.org> References: <1349913791-10564-1-git-send-email-sjg@chromium.org> Message-ID: <5076A6E1.4040104@compulab.co.il> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 10/11/12 02:03, Simon Glass wrote: > This prints a tftp speed indication after the download completes. This > is the 3.6 MiB/s indicator below. > > To enable this, define CONFIG_TFTP_SPEED in your board config. This is relatively small (and nice) addition to the tftpboot command. Do we really need to introduce yet another config option for this? Can this be just added with no need to specify the config option? > > 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 > --- > README | 9 +++++++++ > net/tftp.c | 15 +++++++++++++++ > 2 files changed, 24 insertions(+), 0 deletions(-) > > diff --git a/README b/README > index 0d17e7d..f754bd5 100644 > --- a/README > +++ b/README > @@ -2349,6 +2349,15 @@ The following options need to be configured: > A better solution is to properly configure the firewall, > but sometimes that is not allowed. > > +- TFTP Speed: > + CONFIG_TFTP_SPEED > + > + If this is defined, the approximate download speed of the > + tftp operation will be displayed after the # progress > + markers, like this: > + > + Loading: ########### (more #) ############ 3.6 MiB/s > + > - Show boot progress: > CONFIG_SHOW_BOOT_PROGRESS > > diff --git a/net/tftp.c b/net/tftp.c > index 59a8ebb..59161db 100644 > --- a/net/tftp.c > +++ b/net/tftp.c > @@ -41,6 +41,10 @@ > static ulong TftpTimeoutMSecs = TIMEOUT; > static int TftpTimeoutCountMax = TIMEOUT_COUNT; > > +#ifdef CONFIG_TFTP_SPEED > +static ulong time_start; /* Record time we started tftp */ > +#endif > + > /* > * These globals govern the timeout behavior when attempting a connection to a > * TFTP server. TftpRRQTimeoutMSecs specifies the number of milliseconds to > @@ -299,6 +303,14 @@ static void tftp_complete(void) > TftpNumchars++; > } > #endif > +#ifdef CONFIG_TFTP_SPEED > + time_start = get_timer(time_start); > + if (time_start > 0) { > + puts(" "); > + print_size(NetBootFileXferSize / > + time_start * 1000, "/s"); > + } > +#endif > puts("\ndone\n"); > net_set_state(NETLOOP_SUCCESS); > } > @@ -775,6 +787,9 @@ void TftpStart(enum proto_t protocol) > TftpState = STATE_SEND_RRQ; > } > > +#ifdef CONFIG_TFTP_SPEED > + time_start = get_timer(0); > +#endif > TftpTimeoutCountMax = TftpRRQTimeoutCountMax; > > NetSetTimeout(TftpTimeoutMSecs, TftpTimeout); -- Regards, Igor.