@ -23,6 +23,32 @@
ulong bfin_poweron_retx ;
# if defined(CONFIG_CORE1_RUN) && defined(COREB_L1_CODE_START)
void bfin_core1_start ( void )
{
# ifdef BF561_FAMILY
/* Enable core 1 */
bfin_write_SYSCR ( bfin_read_SYSCR ( ) & ~ 0x0020 ) ;
# else
/* Enable core 1 */
bfin_write32 ( RCU0_SVECT1 , COREB_L1_CODE_START ) ;
bfin_write32 ( RCU0_CRCTL , 0 ) ;
bfin_write32 ( RCU0_CRCTL , 0x2 ) ;
/* Check if core 1 starts */
while ( ! ( bfin_read32 ( RCU0_CRSTAT ) & 0x2 ) )
continue ;
bfin_write32 ( RCU0_CRCTL , 0 ) ;
/* flag to notify cces core 1 application */
bfin_write32 ( SDU0_MSG_SET , ( 1 < < 19 ) ) ;
# endif
}
# endif
__attribute__ ( ( __noreturn__ ) )
void cpu_init_f ( ulong bootflag , ulong loaded_from_ldr )
{
# ifndef CONFIG_BFIN_BOOTROM_USES_EVT1
@ -72,6 +98,10 @@ void cpu_init_f(ulong bootflag, ulong loaded_from_ldr)
# endif
# endif
# if defined(CONFIG_CORE1_RUN) && defined(COREB_L1_CODE_START)
bfin_core1_start ( ) ;
# endif
serial_early_puts ( " Board init flash \n " ) ;
board_init_f ( bootflag ) ;
}