diff options
author | Wolfgang Denk <wd@pollux.denx.de> | 2005-08-12 21:34:51 (GMT) |
---|---|---|
committer | Wolfgang Denk <wd@pollux.denx.de> | 2005-08-12 21:34:51 (GMT) |
commit | 396387ab8ddb7ef37e2415f0a9dc8c4f8640a32e (patch) | |
tree | afd781814dce5e5ea8c6b774103d7cb8e7ecfbfd /common/hush.c | |
parent | d992daf99d1ce39ee18b353b67fdfa181d83fbff (diff) | |
download | u-boot-fsl-qoriq-396387ab8ddb7ef37e2415f0a9dc8c4f8640a32e.tar.xz |
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.c | 18 |
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; |