Disable autoboot abort for FO300 when silent mode is enabled
authorWolfgang Denk <wd@pollux.denx.de>
Wed, 13 Sep 2006 08:47:05 +0000 (10:47 +0200)
committerWolfgang Denk <wd@pollux.denx.de>
Wed, 13 Sep 2006 08:47:05 +0000 (10:47 +0200)
(according to S1 switch setting).
Patch by Marian Balakowicz, 12 Sep 2006

CHANGELOG
board/tqm5200/tqm5200.c

index a25134fa73c2e508675ed5260edf787f707ff2b1..a896e253a966911862dc850de3f964bd6e8a4715 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,9 @@
 Changes since U-Boot 1.1.4:
 ======================================================================
 
+* Disable autoboot abort for FO300 when silent mode is enabled
+  (according to S1 switch setting).
+
 * Cleanup examples binaries
 
 * Add NAND environment support for PPC440EPx Sequoia NAND boot config
index 2a0d542ef8b439a568d55cca195bd14cc2f99231..b76579cb43fc55b81ff33b40cf416ff965cfa908 100644 (file)
@@ -446,6 +446,43 @@ int board_early_init_r (void)
 #endif
 #endif /* CONFIG_PS2MULT */
 
+#ifdef CONFIG_FO300
+int silent_boot (void)
+{
+       vu_long timer3_status;
+
+       /* Configure GPT3 as GPIO input */
+       *(vu_long *)MPC5XXX_GPT3_ENABLE = 0x00000004;
+
+       /* Read in TIMER_3 pin status */
+       timer3_status = *(vu_long *)MPC5XXX_GPT3_STATUS;
+
+#ifdef FO300_SILENT_CONSOLE_WHEN_S1_CLOSED
+       /* Force silent console mode if S1 switch
+        * is in closed position (TIMER_3 pin status is LOW). */
+       if (MPC5XXX_GPT_GPIO_PIN(timer3_status) == 0)
+               return 1;
+#else
+       /* Force silent console mode if S1 switch
+        * is in open position (TIMER_3 pin status is HIGH). */
+       if (MPC5XXX_GPT_GPIO_PIN(timer3_status) == 1)
+               return 1;
+#endif
+
+       return 0;
+}
+
+int board_early_init_f (void)
+{
+       DECLARE_GLOBAL_DATA_PTR;
+
+       if (silent_boot())
+               gd->flags |= GD_FLG_SILENT;
+
+       return 0;
+}
+#endif /* CONFIG_FO300 */
+
 int last_stage_init (void)
 {
        /*
@@ -538,6 +575,13 @@ int last_stage_init (void)
                __asm__ volatile ("sync");
        }
 
+#ifdef CONFIG_FO300
+       if (silent_boot()) {
+               setenv("bootdelay", "0");
+               disable_ctrlc(1);
+       }
+#endif
+
        return 0;
 }
 
@@ -729,33 +773,3 @@ int board_get_height (void)
 }
 
 #endif /* CONFIG_VIDEO_SM501 */
-
-
-#ifdef CONFIG_BOARD_EARLY_INIT_F
-#ifdef CONFIG_FO300
-int board_early_init_f (void)
-{
-       vu_long timer3_status;
-       DECLARE_GLOBAL_DATA_PTR;
-
-       /* Configure GPT3 as GPIO input */
-       *(vu_long *)MPC5XXX_GPT3_ENABLE = 0x00000004;
-
-       /* Read in TIMER_3 pin status */
-       timer3_status = *(vu_long *)MPC5XXX_GPT3_STATUS;
-
-#ifdef FO300_SILENT_CONSOLE_WHEN_S1_CLOSED
-       /* Force silent console mode if S1 switch
-        * is in closed position (TIMER_3 pin status is LOW). */
-       if (MPC5XXX_GPT_GPIO_PIN(timer3_status) == 0)
-#else
-       /* Force silent console mode if S1 switch
-        * is in open position (TIMER_3 pin status is HIGH). */
-       if (MPC5XXX_GPT_GPIO_PIN(timer3_status) == 1)
-#endif
-               gd->flags |= GD_FLG_SILENT;
-
-       return 0;
-}
-#endif /* CONFIG_FO300 */
-#endif /* CONFIG_BOARD_EARLY_INIT_F */