[U-Boot] [PATCH 1/1] console: Improve TFTP booting performance

Jim Lin jilin at nvidia.com
Fri Jan 25 08:03:45 CET 2013


TFTP booting is observed a little bit slow, especially when a USB
keyboard is installed.
The fix is to check whether Ctrl-C key is pressed every
CONFIG_CTRLC_POLL_MS ms.
If CONFIG_CTRLC_POLL_MS is not defined in configuration file, we
define it as 1000.

Signed-off-by: Jim Lin <jilin at nvidia.com>
---
 common/console.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/common/console.c b/common/console.c
index bf73178..3339a93 100644
--- a/common/console.c
+++ b/common/console.c
@@ -524,9 +524,21 @@ int vprintf(const char *fmt, va_list args)
 /* test if ctrl-c was pressed */
 static int ctrlc_disabled = 0;	/* see disable_ctrl() */
 static int ctrlc_was_pressed = 0;
+#ifndef CONFIG_CTRLC_POLL_MS
+/*
+ * Process Ctrl-C every 1000 ms by default to improve performance
+ * (like TFTP boot) when interlaced with other tasks.
+ */
+#define CONFIG_CTRLC_POLL_MS 1000
+#endif
+static unsigned long ctrlc_ts = CONFIG_CTRLC_POLL_MS;
 int ctrlc(void)
 {
 	if (!ctrlc_disabled && gd->have_console) {
+		if (get_timer(ctrlc_ts) < CONFIG_CTRLC_POLL_MS)
+			return 0;
+		else
+			ctrlc_ts = get_timer(0);
 		if (tstc()) {
 			switch (getc()) {
 			case 0x03:		/* ^C - Control C */
-- 
1.7.3


-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------


More information about the U-Boot mailing list