]> git.sur5r.net Git - u-boot/blobdiff - common/main.c
uec: add support for Broadcom BCM5481 Gigabit PHY
[u-boot] / common / main.c
index ad2a386c86586a62fc40bdcfaec530dd7576d107..21e7afab61fde2db49a1de071baafec77bc6f6c3 100644 (file)
@@ -40,7 +40,7 @@
 
 #include <post.h>
 
-#ifdef CONFIG_SILENT_CONSOLE
+#if defined(CONFIG_SILENT_CONSOLE) || defined(CONFIG_POST)
 DECLARE_GLOBAL_DATA_PTR;
 #endif
 
@@ -369,6 +369,12 @@ void main_loop (void)
        init_cmd_timeout ();
 # endif        /* CONFIG_BOOT_RETRY_TIME */
 
+#ifdef CONFIG_POST
+       if (gd->flags & GD_FLG_POSTFAIL) {
+               s = getenv("failbootcmd");
+       }
+       else
+#endif /* CONFIG_POST */
 #ifdef CONFIG_BOOTCOUNT_LIMIT
        if (bootlimit && (bootcount > bootlimit)) {
                printf ("Warning: Bootlimit (%u) exceeded. Using altbootcmd.\n",
@@ -709,6 +715,13 @@ static int cread_line(const char *const prompt, char *buf, unsigned int *len)
 
        while (1) {
                rlen = 1;
+#ifdef CONFIG_BOOT_RETRY_TIME
+               while (!tstc()) {       /* while no incoming data */
+                       if (retry_time >= 0 && get_ticks() > endtime)
+                               return (-2);    /* timed out */
+               }
+#endif
+
                ichar = getcmd_getch();
 
                if ((ichar == '\n') || (ichar == '\r')) {
@@ -924,7 +937,6 @@ int readline (const char *const prompt)
 int readline_into_buffer (const char *const prompt, char * buffer)
 {
        char *p = buffer;
-       char * p_buf = p;
 #ifdef CONFIG_CMDLINE_EDITING
        unsigned int len=MAX_CMDBUF_SIZE;
        int rc;
@@ -940,6 +952,7 @@ int readline_into_buffer (const char *const prompt, char * buffer)
        rc = cread_line(prompt, p, &len);
        return rc < 0 ? rc : len;
 #else
+       char * p_buf = p;
        int     n = 0;                          /* buffer index         */
        int     plen = 0;                       /* prompt length        */
        int     col;                            /* output column cnt    */