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_S second.
Signed-off-by: Jim Lin <ji...@nvidia.com> --- Changes in V2: 1. Change configuration name from CONFIG_CTRLC_POLL_MS to CONFIG_CTRLC_POLL_S. 2. New code will be executed only when CONFIG_CTRLC_POLL_S is defined in configuration header file. 3. Add description in README.console. common/console.c | 16 ++++++++++++++++ doc/README.console | 10 ++++++++++ 2 files changed, 26 insertions(+), 0 deletions(-) diff --git a/common/console.c b/common/console.c index bf73178..b09e129 100644 --- a/common/console.c +++ b/common/console.c @@ -521,12 +521,28 @@ int vprintf(const char *fmt, va_list args) return i; } +#ifdef CONFIG_CTRLC_POLL_S +/* + * Process Ctrl-C every CONFIG_CTRLC_POLL_S second(s) to improve performance + * (like TFTP boot) when interlaced with other tasks like USB KB + * polling. + */ +static unsigned long ctrlc_ts = (CONFIG_CTRLC_POLL_S * CONFIG_SYS_HZ); +#endif + /* test if ctrl-c was pressed */ static int ctrlc_disabled = 0; /* see disable_ctrl() */ static int ctrlc_was_pressed = 0; int ctrlc(void) { if (!ctrlc_disabled && gd->have_console) { +#ifdef CONFIG_CTRLC_POLL_S + if (get_timer(ctrlc_ts) < (CONFIG_CTRLC_POLL_S + * CONFIG_SYS_HZ)) + return 0; + else + ctrlc_ts = get_timer(0); +#endif if (tstc()) { switch (getc()) { case 0x03: /* ^C - Control C */ diff --git a/doc/README.console b/doc/README.console index b353f9f..6b38b8c 100644 --- a/doc/README.console +++ b/doc/README.console @@ -116,3 +116,13 @@ CREDITS for other contact informations): - MPC823FADS with AD7176 on a PAL TV (YCbYCr) - arse...@tin.it - GENIETV with AD7177 on a PAL TV (YCbYCr) - arse...@tin.it + +Config Switches: +---------------- +CONFIG_CTRLC_POLL_S define a value to check whether Ctrl-C is pressed + every defined second(s). This is to improve TFTP + booting if USB KB is installed and polling is used. + For example: + Define the following in configuration header file + #define CONFIG_CTRLC_POLL_S 1 + for console to check Ctrl-C every second. -- 1.7.7 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot