Disable autoboot abort for FO300 when silent mode is enabled

(according to S1 switch setting).
Patch by Marian Balakowicz, 12 Sep 2006
This commit is contained in:
Wolfgang Denk 2006-09-13 10:47:05 +02:00
parent d214fbbd87
commit aeec782b02
2 changed files with 47 additions and 30 deletions

View File

@ -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

View 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 */