[U-Boot] [PATCH] net: Add tftp speed indication
Simon Glass
sjg at chromium.org
Thu Oct 11 02:03:11 CEST 2012
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.
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 at chromium.org>
---
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);
--
1.7.7.3
More information about the U-Boot
mailing list