net: Add tftp speed indication

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>
This commit is contained in:
Simon Glass 2012-10-11 13:57:36 +00:00 committed by Joe Hershberger
parent d8fb710fdd
commit 85b1980273
1 changed files with 8 additions and 0 deletions

View File

@ -40,6 +40,7 @@
static ulong TftpTimeoutMSecs = TIMEOUT; static ulong TftpTimeoutMSecs = TIMEOUT;
static int TftpTimeoutCountMax = TIMEOUT_COUNT; 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 * These globals govern the timeout behavior when attempting a connection to a
@ -299,6 +300,12 @@ static void tftp_complete(void)
TftpNumchars++; TftpNumchars++;
} }
#endif #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"); puts("\ndone\n");
net_set_state(NETLOOP_SUCCESS); net_set_state(NETLOOP_SUCCESS);
} }
@ -775,6 +782,7 @@ void TftpStart(enum proto_t protocol)
TftpState = STATE_SEND_RRQ; TftpState = STATE_SEND_RRQ;
} }
time_start = get_timer(0);
TftpTimeoutCountMax = TftpRRQTimeoutCountMax; TftpTimeoutCountMax = TftpRRQTimeoutCountMax;
NetSetTimeout(TftpTimeoutMSecs, TftpTimeout); NetSetTimeout(TftpTimeoutMSecs, TftpTimeout);