Skip to contentSkip to conversation

common/main: support bootdelay=0 for CONFIG_AUTOBOOT_KEYED

PATCH New Peter Korsgaard 2 participants 4 messages Dec 10, 2008 – Jan 24, 2009

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 common/main: support bootdelay=0 for CONFIG_AUTOBOOT_KEYED

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.

---
 common/main.c |   27 ++++++++++++++-------------
 1 files changed, 14 insertions(+), 13 deletions(-)
common/main.c +14 -13
index a999a5d..4c4f780 100644
@@ -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");
Signature · 1 line
1.5.6.5
#1 lore raw

PATCH 1/1 common/main: support bootdelay=0 for CONFIG_AUTOBOOT_KEYED

Dear Peter Korsgaard,

Quoted 3 lines · In message <[email protected]> you wrote:

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.

Ummm... how do you enter the "password" when you have no time to do this?

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
No one wants war.
	-- Kirk, "Errand of Mercy", stardate 3201.7
#2 lore raw

PATCH 1/1 common/main: support bootdelay=0 for CONFIG_AUTOBOOT_KEYED

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Wolfgang" == Wolfgang Denk <[email protected]> writes:

Wolfgang> Dear Peter Korsgaard,

Quoted 3 lines · Wolfgang> In message <[email protected]> you…
Quoted 3 lines

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.

Wolfgang> Ummm... how do you enter the "password" when you have no time to do Wolfgang> this?

Before the loop starts, just like the CONFIG_ZERO_BOOTDELAY_CHECK stuff.

E.G. I have:

#define CONFIG_BOOTDELAY 0
#define CONFIG_AUTOBOOT_KEYED 1
#define CONFIG_AUTOBOOT_STOP_STR "c"

And I can stop autoboot if I connect a serial cable to the board and hold down the 'c' button while powering up the board.

Signature · 1 line
Bye, Peter Korsgaard
#3 lore raw

PATCH 1/1 common/main: support bootdelay=0 for CONFIG_AUTOBOOT_KEYED

In reply to Peter Korsgaard

Dear Peter Korsgaard,

Quoted 11 lines · In message <[email protected]> you wrote:

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.

---
 common/main.c |   27 ++++++++++++++-------------
 1 files changed, 14 insertions(+), 13 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 6 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
It became apparent that one reason why the Ice Giants were  known  as
the  Ice  Giants  was  because they were, well, giants. The other was
that they were made of ice.              -Terry Pratchett, _Sourcery_