/*
* ( C ) Copyright 2000
* Wolfgang Denk , DENX Software Engineering , wd @ denx . de .
*
* SPDX - License - Identifier : GPL - 2.0 +
*/
/* #define DEBUG */
# include <common.h>
# include <autoboot.h>
# include <cli.h>
# include <console.h>
# include <version.h>
DECLARE_GLOBAL_DATA_PTR ;
/*
* Board - specific Platform code can reimplement show_boot_progress ( ) if needed
*/
__weak void show_boot_progress ( int val ) { }
static void run_preboot_environment_command ( void )
{
# ifdef CONFIG_PREBOOT
char * p ;
p = getenv ( " preboot " ) ;
if ( p ! = NULL ) {
# ifdef CONFIG_AUTOBOOT_KEYED
int prev = disable_ctrlc ( 1 ) ; /* disable Control C checking */
# endif
run_command_list ( p , - 1 , 0 ) ;
# ifdef CONFIG_AUTOBOOT_KEYED
disable_ctrlc ( prev ) ; /* restore Control C checking */
# endif
}
# endif /* CONFIG_PREBOOT */
}
/* We come here after U-Boot is initialised and ready to process commands */
void main_loop ( void )
{
const char * s ;
bootstage_mark_name ( BOOTSTAGE_ID_MAIN_LOOP , " main_loop " ) ;
# ifndef CONFIG_SYS_GENERIC_BOARD
puts ( " Warning: Your board does not use generic board. Please read \n " ) ;
puts ( " doc/README.generic-board and take action. Boards not \n " ) ;
puts ( " upgraded by the late 2014 may break or be removed. \n " ) ;
# endif
# ifdef CONFIG_VERSION_VARIABLE
setenv ( " ver " , version_string ) ; /* set version variable */
# endif /* CONFIG_VERSION_VARIABLE */
cli_init ( ) ;
run_preboot_environment_command ( ) ;
# if defined(CONFIG_UPDATE_TFTP)
update_tftp ( 0UL , NULL , NULL ) ;
# endif /* CONFIG_UPDATE_TFTP */
s = bootdelay_process ( ) ;
if ( cli_process_fdt ( & s ) )
cli_secure_boot_cmd ( s ) ;
autoboot_command ( s ) ;
cli_loop ( ) ;
panic ( " No CLI available " ) ;
}