ARM7 waits for setting main memory CR.

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@23 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yutaka 2007-09-11 02:19:38 +00:00
parent 4341524a07
commit cf11c511c9
3 changed files with 63 additions and 1 deletions

View File

@ -97,6 +97,14 @@ SDK_WEAK_SYMBOL asm void _start( void )
bmi @1_2
#endif
//---- wait for main memory mode into burst mode
ldr r3, =REG_EXMEMCNT_L_ADDR
mov r1, #REG_MI_EXMEMCNT_L_ECE2_MASK
@1:
ldrh r2, [r3]
tst r2, r1
beq @1
//---- load autoload block and initialize bss
bl do_autoload

View File

@ -15,7 +15,38 @@
$Author$
*---------------------------------------------------------------------------*/
#include <firm/mi.h>
#include <nitro/code32.h>
/*---------------------------------------------------------------------------*
Name: MIi_IsMainMemoryInitialized
Description:
Arguments: None
Returns: None
*---------------------------------------------------------------------------*/
BOOL MIi_IsMainMemoryInitialized( void )
{
return (BOOL)((reg_MI_EXMEMCNT & REG_MI_EXMEMCNT_CE2_MASK) >> REG_MI_EXMEMCNT_CE2_SHIFT);
}
/*---------------------------------------------------------------------------*
Name: MIi_WaitMainMemoryInitialize
Description:
Arguments: None
Returns: None
*---------------------------------------------------------------------------*/
void MIi_WaitMainMemoryInitialize( void )
{
while( MIi_IsMainMemoryInitialized() == FALSE )
{
}
}
/*---------------------------------------------------------------------------*
Name: MIi_InitMainMemCR
@ -26,6 +57,8 @@
Returns: None
*---------------------------------------------------------------------------*/
#include <nitro/code32.h>
asm void MIi_InitMainMemCR( void )
{
mov r12, lr

View File

@ -71,6 +71,27 @@ extern "C" {
*---------------------------------------------------------------------------*/
void MIi_InitMainMemCR( void );
/*---------------------------------------------------------------------------*
Name: MIi_IsMainMemoryInitialized
Description:
Arguments: None
Returns: None
*---------------------------------------------------------------------------*/
BOOL MIi_IsMainMemoryInitialized( void );
/*---------------------------------------------------------------------------*
Name: MIi_WaitMainMemoryInitialize
Description:
Arguments: None
Returns: None
*---------------------------------------------------------------------------*/
void MIi_WaitMainMemoryInitialize( void );
#ifdef __cplusplus
} /* extern "C" */