summaryrefslogtreecommitdiff
path: root/common/hush.c
diff options
context:
space:
mode:
authorWolfgang Denk <wd@pollux.denx.de>2005-08-12 23:34:51 +0200
committerWolfgang Denk <wd@pollux.denx.de>2005-08-12 23:34:51 +0200
commit396387ab8ddb7ef37e2415f0a9dc8c4f8640a32e (patch)
treeafd781814dce5e5ea8c6b774103d7cb8e7ecfbfd /common/hush.c
parentd992daf99d1ce39ee18b353b67fdfa181d83fbff (diff)
downloadu-boot-imx-396387ab8ddb7ef37e2415f0a9dc8c4f8640a32e.zip
u-boot-imx-396387ab8ddb7ef37e2415f0a9dc8c4f8640a32e.tar.gz
u-boot-imx-396387ab8ddb7ef37e2415f0a9dc8c4f8640a32e.tar.bz2
Make bootretry feature work with hush shell.
Caveat: this currently *requires* CONFIG_RESET_TO_RETRY to be set, too. Patch by Andreas Engel, 19 Jul 2005
Diffstat (limited to 'common/hush.c')
-rw-r--r--common/hush.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/common/hush.c b/common/hush.c
index 47680ed..eb7f7f1 100644
--- a/common/hush.c
+++ b/common/hush.c
@@ -1022,12 +1022,30 @@ static void get_user_input(struct in_str *i)
int n;
static char the_command[CFG_CBSIZE];
+#ifdef CONFIG_BOOT_RETRY_TIME
+# ifdef CONFIG_RESET_TO_RETRY
+ extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+# else
+# error "This currently only works with CONFIG_RESET_TO_RETRY enabled"
+# endif
+ reset_cmd_timeout();
+#endif
i->__promptme = 1;
if (i->promptmode == 1) {
n = readline(CFG_PROMPT);
} else {
n = readline(CFG_PROMPT_HUSH_PS2);
}
+#ifdef CONFIG_BOOT_RETRY_TIME
+ if (n == -2) {
+ puts("\nTimeout waiting for command\n");
+# ifdef CONFIG_RESET_TO_RETRY
+ do_reset(NULL, 0, 0, NULL);
+# else
+# error "This currently only works with CONFIG_RESET_TO_RETRY enabled"
+# endif
+ }
+#endif
if (n == -1 ) {
flag_repeat = 0;
i->__promptme = 0;