From patchwork Fri Jan 25 07:03:45 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [U-Boot,1/1] console: Improve TFTP booting performance Date: Thu, 24 Jan 2013 21:03:45 -0000 From: Jim Lin X-Patchwork-Id: 215564 Message-Id: <1359097425-20517-1-git-send-email-jilin@nvidia.com> To: Cc: u-boot@lists.denx.de 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 --- 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 */