TFTP booting is slow when a USB keyboard is installed and
CONFIG_USB_KEYBOARD is defined.
The fix is to change Ctrl-C polling to every second when NET transfer
is running.

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.
Changes in v3:
 1. Move changes to common/usb_kbd.c and doc/README.usb
 2. Rename config setting to CONFIG_USBKB_TESTC_PERIOD.
 3. Remove slow response on USB-keyboard input when TFTP boot is not running.
Changes in v4:
 1. Remove changes in doc/README.usb, common/usb_kbd.c and
    CONFIG_USBKB_TESTC_PERIOD 
 2. Modify net/net.c

 net/net.c |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/net/net.c b/net/net.c
index df94789..06b41e0 100644
--- a/net/net.c
+++ b/net/net.c
@@ -322,6 +322,11 @@ int NetLoop(enum proto_t protocol)
 {
        bd_t *bd = gd->bd;
        int ret = -1;
+#ifdef CONFIG_USB_KEYBOARD
+       unsigned long kbd_ctrlc_tms = 0;
+       unsigned long ctrlc_t;
+       int ctrlc_result;
+#endif
 
        NetRestarted = 0;
        NetDevExists = 0;
@@ -472,7 +477,22 @@ restart:
                /*
                 *      Abort if ctrl-c was pressed.
                 */
+#ifdef CONFIG_USB_KEYBOARD
+               /*
+                * Reduce ctrl-c checking to 1 second once
+                * to improve TFTP boot performance.
+                */
+               ctrlc_t = get_timer(kbd_ctrlc_tms);
+               if (ctrlc_t > CONFIG_SYS_HZ) {
+                       ctrlc_result = ctrlc();
+                       kbd_ctrlc_tms = get_timer(0);
+               } else {
+                       ctrlc_result = 0;
+               }
+               if (ctrlc_result) {
+#else
                if (ctrlc()) {
+#endif
                        /* cancel any ARP that may not have completed */
                        NetArpWaitPacketIP = 0;
 
-- 
1.7.7

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to