]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - common/main.c
Merge with git://www.denx.de/git/u-boot.git
[karo-tx-uboot.git] / common / main.c
index 8f196a4828258c812ef7028c2d5ea873d7acac08..379695cc426b8c496c18b9b10295d0970c3a9690 100644 (file)
 DECLARE_GLOBAL_DATA_PTR;
 #endif
 
+/*
+ * Board-specific Platform code can reimplement show_boot_progress () if needed
+ */
+void inline __show_boot_progress (int val) {}
+void inline show_boot_progress (int val) __attribute__((weak, alias("__show_boot_progress")));
+
 #if defined(CONFIG_BOOT_RETRY_TIME) && defined(CONFIG_RESET_TO_RETRY)
 extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);              /* for do_reset() prototype */
 #endif
@@ -112,16 +118,8 @@ static __inline__ int abortboot(int bootdelay)
        u_int presskey_max = 0;
        u_int i;
 
-#ifdef CONFIG_SILENT_CONSOLE
-       if (gd->flags & GD_FLG_SILENT) {
-               /* Restore serial console */
-               console_assign (stdout, "serial");
-               console_assign (stderr, "serial");
-       }
-#endif
-
 #  ifdef CONFIG_AUTOBOOT_PROMPT
-       printf (CONFIG_AUTOBOOT_PROMPT, bootdelay);
+       printf(CONFIG_AUTOBOOT_PROMPT, bootdelay);
 #  endif
 
 #  ifdef CONFIG_AUTOBOOT_DELAY_STR
@@ -195,18 +193,12 @@ static __inline__ int abortboot(int bootdelay)
        }
 #  if DEBUG_BOOTKEYS
        if (!abort)
-               puts ("key timeout\n");
+               puts("key timeout\n");
 #  endif
 
 #ifdef CONFIG_SILENT_CONSOLE
-       if (abort) {
-               /* permanently enable normal console output */
-               gd->flags &= ~(GD_FLG_SILENT);
-       } else if (gd->flags & GD_FLG_SILENT) {
-               /* Restore silent console */
-               console_assign (stdout, "nulldev");
-               console_assign (stderr, "nulldev");
-       }
+       if (abort)
+               gd->flags &= ~GD_FLG_SILENT;
 #endif
 
        return abort;
@@ -222,14 +214,6 @@ static __inline__ int abortboot(int bootdelay)
 {
        int abort = 0;
 
-#ifdef CONFIG_SILENT_CONSOLE
-       if (gd->flags & GD_FLG_SILENT) {
-               /* Restore serial console */
-               console_assign (stdout, "serial");
-               console_assign (stderr, "serial");
-       }
-#endif
-
 #ifdef CONFIG_MENUPROMPT
        printf(CONFIG_MENUPROMPT, bootdelay);
 #else
@@ -245,7 +229,7 @@ static __inline__ int abortboot(int bootdelay)
                if (tstc()) {   /* we got a key press   */
                        (void) getc();  /* consume input        */
                        puts ("\b\b\b 0");
-                       abort = 1;      /* don't auto boot      */
+                       abort = 1;      /* don't auto boot      */
                }
        }
 #endif
@@ -266,23 +250,17 @@ static __inline__ int abortboot(int bootdelay)
 # endif
                                break;
                        }
-                       udelay (10000);
+                       udelay(10000);
                }
 
-               printf ("\b\b\b%2d ", bootdelay);
+               printf("\b\b\b%2d ", bootdelay);
        }
 
-       putc ('\n');
+       putc('\n');
 
 #ifdef CONFIG_SILENT_CONSOLE
-       if (abort) {
-               /* permanently enable normal console output */
-               gd->flags &= ~(GD_FLG_SILENT);
-       } else if (gd->flags & GD_FLG_SILENT) {
-               /* Restore silent console */
-               console_assign (stdout, "nulldev");
-               console_assign (stderr, "nulldev");
-       }
+       if (abort)
+               gd->flags &= ~GD_FLG_SILENT;
 #endif
 
        return abort;
@@ -990,7 +968,7 @@ int readline (const char *const prompt)
                        n = 0;
                        continue;
 
-               case 0x17:                              /* ^W - erase word      */
+               case 0x17:                              /* ^W - erase word      */
                        p=delete_char(console_buffer, p, &col, &n, plen);
                        while ((n > 0) && (*p != ' ')) {
                                p=delete_char(console_buffer, p, &col, &n, plen);
@@ -1339,7 +1317,7 @@ int run_command (const char *cmd, int flag)
                        continue;
                }
 
-#if (CONFIG_COMMANDS & CFG_CMD_BOOTD)
+#if defined(CONFIG_CMD_BOOTD)
                /* avoid "bootd" recursion */
                if (cmdtp->cmd == do_bootd) {
 #ifdef DEBUG_PARSER
@@ -1353,7 +1331,7 @@ int run_command (const char *cmd, int flag)
                                flag |= CMD_FLAG_BOOTD;
                        }
                }
-#endif /* CFG_CMD_BOOTD */
+#endif
 
                /* OK - call function to do the command */
                if ((cmdtp->cmd) (cmdtp, flag, argc, argv) != 0) {
@@ -1364,7 +1342,7 @@ int run_command (const char *cmd, int flag)
 
                /* Did the user stop this? */
                if (had_ctrlc ())
-                       return 0;       /* if stopped then not repeatable */
+                       return -1;      /* if stopped then not repeatable */
        }
 
        return rc ? rc : repeatable;
@@ -1372,7 +1350,7 @@ int run_command (const char *cmd, int flag)
 
 /****************************************************************************/
 
-#if (CONFIG_COMMANDS & CFG_CMD_RUN)
+#if defined(CONFIG_CMD_RUN)
 int do_run (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
 {
        int i;
@@ -1400,4 +1378,4 @@ int do_run (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
        }
        return 0;
 }
-#endif /* CFG_CMD_RUN */
+#endif