Support bootdelay=0 in abortboot for the CONFIG_AUTOBOOT_KEYED case
similar to the CONFIG_ZERO_BOOTDELAY_CHECK support for the
!CONFIG_AUTOBOOT_KEYED case.

Do this by reversing the loop so we do atleast one iteration before
checking for timeout.

Signed-off-by: Peter Korsgaard <[EMAIL PROTECTED]>
---
 common/main.c |   27 ++++++++++++++-------------
 1 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/common/main.c b/common/main.c
index a999a5d..4c4f780 100644
--- a/common/main.c
+++ b/common/main.c
@@ -158,7 +158,19 @@ static __inline__ int abortboot(int bootdelay)
        /* In order to keep up with incoming data, check timeout only
         * when catch up.
         */
-       while (!abort && get_ticks() <= etime) {
+       do {
+               if (tstc()) {
+                       if (presskey_len < presskey_max) {
+                               presskey [presskey_len ++] = getc();
+                       }
+                       else {
+                               for (i = 0; i < presskey_max - 1; i ++)
+                                       presskey [i] = presskey [i + 1];
+
+                               presskey [i] = getc();
+                       }
+               }
+
                for (i = 0; i < sizeof(delaykey) / sizeof(delaykey[0]); i ++) {
                        if (delaykey[i].len > 0 &&
                            presskey_len >= delaykey[i].len &&
@@ -178,19 +190,8 @@ static __inline__ int abortboot(int bootdelay)
                                abort = 1;
                        }
                }
+       } while (!abort && get_ticks() <= etime);
 
-               if (tstc()) {
-                       if (presskey_len < presskey_max) {
-                               presskey [presskey_len ++] = getc();
-                       }
-                       else {
-                               for (i = 0; i < presskey_max - 1; i ++)
-                                       presskey [i] = presskey [i + 1];
-
-                               presskey [i] = getc();
-                       }
-               }
-       }
 #  if DEBUG_BOOTKEYS
        if (!abort)
                puts("key timeout\n");
-- 
1.5.6.5

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

Reply via email to