Bläddra i källkod

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

Wolfgang Denk 19 år sedan
förälder
incheckning
396387ab8d
2 ändrade filer med 22 tillägg och 0 borttagningar
  1. 4 0
      CHANGELOG
  2. 18 0
      common/hush.c

+ 4 - 0
CHANGELOG

@@ -2,6 +2,10 @@
 Changes for U-Boot 1.1.3:
 Changes for U-Boot 1.1.3:
 ======================================================================
 ======================================================================
 
 
+* 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
+
 * Update Hymod Board Database PHP code in "tools" directory
 * Update Hymod Board Database PHP code in "tools" directory
   Patch by Murray Jensen, 01 Jul 2005
   Patch by Murray Jensen, 01 Jul 2005
 
 

+ 18 - 0
common/hush.c

@@ -1022,12 +1022,30 @@ static void get_user_input(struct in_str *i)
 	int n;
 	int n;
 	static char the_command[CFG_CBSIZE];
 	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;
 	i->__promptme = 1;
 	if (i->promptmode == 1) {
 	if (i->promptmode == 1) {
 		n = readline(CFG_PROMPT);
 		n = readline(CFG_PROMPT);
 	} else {
 	} else {
 		n = readline(CFG_PROMPT_HUSH_PS2);
 		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 ) {
 	if (n == -1 ) {
 		flag_repeat = 0;
 		flag_repeat = 0;
 		i->__promptme = 0;
 		i->__promptme = 0;