mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
メモリクリア範囲修正
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@220 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
3ba5bc6a35
commit
894258ca7f
@ -44,7 +44,7 @@ static u8 step = 0x80;
|
||||
#endif
|
||||
|
||||
#ifdef PROFILE_ENABLE
|
||||
#define PROFILE_MAX 128
|
||||
#define PROFILE_MAX 256
|
||||
u32 profile[PROFILE_MAX];
|
||||
u32 pf_cnt = 0;
|
||||
#endif
|
||||
@ -64,14 +64,10 @@ static void PreInit(void)
|
||||
{
|
||||
OS_Terminate();
|
||||
}
|
||||
|
||||
/*
|
||||
リセットパラメータを共有領域にコピー (4バイト分)
|
||||
リセットパラメータ(1バイト)を共有領域(4バイト)にコピー
|
||||
*/
|
||||
*(u32*)HW_RESET_PARAMETER_BUF = (u32)((MCUi_ReadRegister( MCU_REG_TEMP_ADDR + 0 ) << 0)
|
||||
| (MCUi_ReadRegister( MCU_REG_TEMP_ADDR + 1 ) << 8)
|
||||
| (MCUi_ReadRegister( MCU_REG_TEMP_ADDR + 2 ) << 16)
|
||||
| (MCUi_ReadRegister( MCU_REG_TEMP_ADDR + 3 ) << 24));
|
||||
*(u32*)HW_RESET_PARAMETER_BUF = (u32)MCUi_ReadRegister( MCU_REG_TEMP_ADDR );
|
||||
}
|
||||
|
||||
/***************************************************************
|
||||
@ -93,6 +89,32 @@ static void EraseAll(void)
|
||||
|
||||
FATFS周りの初期化 for NAND
|
||||
***************************************************************/
|
||||
#if 1 /* 0: FATFS正規品利用版 */
|
||||
#else
|
||||
extern void* SDNandContext; /* NAND初期化パラメータ */
|
||||
extern BOOL FATFSi_rtfs_init( void );
|
||||
extern int FATFSi_sdmcInit( int dmaNo );
|
||||
extern int FATFSi_nandRtfsAttach( int driveno, int partition );
|
||||
static void IdleThreadFunc(void* arg)
|
||||
{
|
||||
OSThread* pThread = arg;
|
||||
OS_EnableInterrupts();
|
||||
while (1)
|
||||
{
|
||||
OS_CheckStack(pThread);
|
||||
OS_Halt();
|
||||
}
|
||||
}
|
||||
static void CreateIdleThread(void)
|
||||
{
|
||||
static u32 stack[32];
|
||||
static OSThread idle;
|
||||
OS_EnableIrq();
|
||||
OS_EnableInterrupts();
|
||||
OS_CreateThread(&idle, IdleThreadFunc, &idle, stack + 32, sizeof(stack), 31);
|
||||
OS_WakeupThreadDirect(&idle);
|
||||
}
|
||||
#endif
|
||||
static BOOL Fatfs4nandInit(void)
|
||||
{
|
||||
/* FATFSライブラリ用にカレントヒープに設定 */
|
||||
@ -109,7 +131,15 @@ static BOOL Fatfs4nandInit(void)
|
||||
|
||||
OS_SetDebugLED(++step);
|
||||
|
||||
#if 1 /* 0: FATFS正規品利用版 */
|
||||
if ( !FATFS_InitFIRM( &(OSi_GetFromFirmAddr()->SDNandContext) ) )
|
||||
#else
|
||||
SDNandContext = &OSi_GetFromFirmAddr()->SDNandContext;
|
||||
CreateIdleThread();
|
||||
/* RTFSライブラリを初期化 */
|
||||
/* SDドライバ初期化 */
|
||||
if( !FATFSi_rtfs_init() || FATFSi_sdmcInit(1) != 0)
|
||||
#endif
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
@ -119,12 +149,14 @@ static BOOL Fatfs4nandInit(void)
|
||||
profile[pf_cnt++] = (u32)OS_TicksToMicroSeconds(OS_GetTick());
|
||||
#endif
|
||||
OS_SetDebugLED(++step);
|
||||
|
||||
#if 1 /* 0: FATFS正規品利用版 */
|
||||
if ( !FATFS_MountDriveFIRM( DRIVE_NO, BOOT_DEVICE, PARTITION_NO ) )
|
||||
#else
|
||||
if ( !FATFSi_nandRtfsAttach( DRIVE_NO, PARTITION_NO ) )
|
||||
#endif
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#ifdef PROFILE_ENABLE
|
||||
// 4: after Mount
|
||||
profile[pf_cnt++] = (u32)OS_TicksToMicroSeconds(OS_GetTick());
|
||||
@ -187,7 +219,7 @@ void TwlSpMain( void )
|
||||
|
||||
PM_BackLightOn( FALSE );
|
||||
|
||||
if ( !FATFS_LoadHeader() && !FATFS_LoadStatic() )
|
||||
if ( !FATFS_LoadHeader() || !FATFS_LoadStatic() )
|
||||
{
|
||||
goto end;
|
||||
}
|
||||
@ -211,7 +243,7 @@ void TwlSpMain( void )
|
||||
|
||||
PM_BackLightOn( TRUE ); // last chance
|
||||
|
||||
FATFS_Boot();
|
||||
OS_BootFromFIRM();
|
||||
|
||||
end:
|
||||
OS_SetDebugLED( (u8)(0xF0 | step));
|
||||
|
||||
@ -52,7 +52,7 @@ static SVCSignHeapContext acPool;
|
||||
#endif
|
||||
|
||||
#ifdef PROFILE_ENABLE
|
||||
#define PROFILE_MAX 128
|
||||
#define PROFILE_MAX 256
|
||||
u32 profile[PROFILE_MAX];
|
||||
u32 pf_cnt = 0;
|
||||
#endif
|
||||
@ -68,7 +68,7 @@ static void PreInit(void)
|
||||
メインメモリ関連
|
||||
*/
|
||||
// SHARED領域クリア (ここだけでOK?)
|
||||
MIi_CpuClearFast( 0, (void*)HW_PXI_SIGNAL_PARAM_ARM9, HW_MMEMCHECKER_MAIN-HW_PXI_SIGNAL_PARAM_ARM9);
|
||||
MIi_CpuClearFast( 0, (void*)HW_PXI_SIGNAL_PARAM_ARM9, HW_MMEMCHECKER_MAIN-HW_PXI_SIGNAL_PARAM_ARM9 );
|
||||
|
||||
/*
|
||||
FromBrom関連
|
||||
@ -94,7 +94,7 @@ static void PostInit(void)
|
||||
// ARM9領域を全クリア
|
||||
if ( OS_GetResetParameter() )
|
||||
{
|
||||
MI_CpuClearFast( (void*)HW_FIRM_RESET_BUF_END, HW_MAIN_MEM_MAIN_END-HW_FIRM_RESET_BUF_END );
|
||||
MI_CpuClearFast( (void*)HW_FIRM_RESET_BUF_END, HW_TWL_MAIN_MEM_MAIN_END-HW_FIRM_RESET_BUF_END );
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -175,7 +175,7 @@ void TwlMain( void )
|
||||
}
|
||||
#endif
|
||||
|
||||
MI_Boot();
|
||||
OS_BootFromFIRM();
|
||||
}
|
||||
|
||||
EraseAll();
|
||||
|
||||
@ -67,12 +67,9 @@ static void PreInit(void)
|
||||
OS_Terminate();
|
||||
}
|
||||
/*
|
||||
リセットパラメータを共有領域にコピー (4バイト分)
|
||||
リセットパラメータ(1バイト)を共有領域(4バイト)にコピー
|
||||
*/
|
||||
*(u32*)HW_RESET_PARAMETER_BUF = (u32)((MCUi_ReadRegister( MCU_REG_TEMP_ADDR + 0 ) << 0)
|
||||
| (MCUi_ReadRegister( MCU_REG_TEMP_ADDR + 1 ) << 8)
|
||||
| (MCUi_ReadRegister( MCU_REG_TEMP_ADDR + 2 ) << 16)
|
||||
| (MCUi_ReadRegister( MCU_REG_TEMP_ADDR + 3 ) << 24));
|
||||
*(u32*)HW_RESET_PARAMETER_BUF = (u32)MCUi_ReadRegister( MCU_REG_TEMP_ADDR );
|
||||
}
|
||||
|
||||
/***************************************************************
|
||||
@ -238,7 +235,7 @@ void TwlSpMain( void )
|
||||
|
||||
PM_BackLightOn( TRUE ); // last chance
|
||||
|
||||
FATFS_Boot();
|
||||
OS_BootFromFIRM();
|
||||
|
||||
end:
|
||||
OS_SetDebugLED( (u8)(0xF0 | step));
|
||||
|
||||
@ -55,7 +55,7 @@ static void PreInit(void)
|
||||
メインメモリ関連
|
||||
*/
|
||||
// SHARED領域クリア (ここだけでOK?)
|
||||
MIi_CpuClearFast( 0, (void*)HW_PXI_SIGNAL_PARAM_ARM9, HW_MMEMCHECKER_MAIN-HW_PXI_SIGNAL_PARAM_ARM9);
|
||||
MIi_CpuClearFast( 0, (void*)HW_PXI_SIGNAL_PARAM_ARM9, HW_MMEMCHECKER_MAIN-HW_PXI_SIGNAL_PARAM_ARM9 );
|
||||
|
||||
/*
|
||||
FromBrom関連
|
||||
@ -81,7 +81,7 @@ static void PostInit(void)
|
||||
// ARM9領域を全クリア
|
||||
if ( OS_GetResetParameter() )
|
||||
{
|
||||
MI_CpuClearFast( (void*)HW_FIRM_RESET_BUF_END, HW_MAIN_MEM_MAIN_END-HW_FIRM_RESET_BUF_END );
|
||||
MI_CpuClearFast( (void*)HW_FIRM_RESET_BUF_END, HW_TWL_MAIN_MEM_MAIN_END-HW_FIRM_RESET_BUF_END );
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -160,7 +160,7 @@ void TwlMain( void )
|
||||
}
|
||||
#endif
|
||||
|
||||
MI_Boot();
|
||||
OS_BootFromFIRM();
|
||||
}
|
||||
|
||||
EraseAll();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user