微修正

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@475 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yutaka 2008-01-16 09:48:34 +00:00
parent 707907ef2d
commit 1b8ad74573
8 changed files with 168 additions and 45 deletions

View File

@ -35,6 +35,11 @@
*/ */
#define PRINT_MEMORY_ADDR 0x02000600 #define PRINT_MEMORY_ADDR 0x02000600
/*
*/
//#define USE_IDLE_THREAD
#ifdef PROFILE_ENABLE #ifdef PROFILE_ENABLE
#define PROFILE_MAX 16 #define PROFILE_MAX 16
@ -68,6 +73,25 @@ extern void* SDNandContext; /* NAND
static ROM_Header* const rh= (ROM_Header*)HW_TWL_ROM_HEADER_BUF; static ROM_Header* const rh= (ROM_Header*)HW_TWL_ROM_HEADER_BUF;
#ifdef USE_IDLE_THREAD
static OSThread idleThread;
static u64 idleStack[32];
static void IdleThread(void* arg)
{
#pragma unused(arg)
OS_EnableInterrupts();
while (1)
{
OS_Halt();
}
}
static void CreateIdleThread(void)
{
OS_CreateThread(&idleThread, IdleThread, NULL, &idleStack[32], sizeof(idleStack), OS_THREAD_PRIORITY_MAX);
OS_WakeupThreadDirect(&idleThread);
}
#endif
/*************************************************************** /***************************************************************
PreInit PreInit
@ -102,6 +126,23 @@ static void PreInit(void)
*/ */
} }
/***************************************************************
PostInit
***************************************************************/
static void PostInit(void)
{
// PMICの設定 for old version
PM_InitFIRM();
// AESの初期化
AES_Init(); // for encrypted NAND
#ifdef USE_IDLE_THREAD
// アイドルスレッドの作成
CreateIdleThread();
#endif
}
/*************************************************************** /***************************************************************
EraseAll EraseAll
@ -139,7 +180,7 @@ void TwlSpMain( void )
PUSH_PROFILE(); PUSH_PROFILE();
SetDebugLED(++step); // 0x83 SetDebugLED(++step); // 0x83
PM_InitFIRM(); PostInit();
// 2: after PM_InitFIRM // 2: after PM_InitFIRM
PUSH_PROFILE(); PUSH_PROFILE();
@ -160,21 +201,12 @@ void TwlSpMain( void )
PM_BackLightOn( FALSE ); PM_BackLightOn( FALSE );
PXI_RecvID();
SetDebugLED(0x01);
PXI_RecvID();
SetDebugLED(0x02);
if ( PXI_RecvID() != FIRM_PXI_ID_SET_PATH ) if ( PXI_RecvID() != FIRM_PXI_ID_SET_PATH )
{ {
OS_TPrintf("PXI_RecvID() was received invalid value (!=FIRM_PXI_ID_SET_PATH).\n"); OS_TPrintf("PXI_RecvID() was received invalid value (!=FIRM_PXI_ID_SET_PATH).\n");
goto end; goto end;
} }
#ifdef USE_IDLE_THREAD
CreateIdleThread();
#endif
// 4: after PXI // 4: after PXI
PUSH_PROFILE(); PUSH_PROFILE();
SetDebugLED(++step); // 0x86 SetDebugLED(++step); // 0x86

View File

@ -221,13 +221,11 @@ void TwlMain( void )
#endif #endif
// 1: after PXI // 1: after PXI
PUSH_PROFILE(); PUSH_PROFILE();
PXI_NotifyID( FIRM_PXI_ID_NULL );
PostInit(); PostInit();
// 2: after PostInit // 2: after PostInit
PUSH_PROFILE(); PUSH_PROFILE();
PXI_NotifyID( FIRM_PXI_ID_NULL );
STD_CopyString((char*)HW_TWL_FS_BOOT_SRL_PATH_BUF, MENU_FILE); STD_CopyString((char*)HW_TWL_FS_BOOT_SRL_PATH_BUF, MENU_FILE);

View File

@ -35,6 +35,11 @@
*/ */
#define PRINT_MEMORY_ADDR 0x02000600 #define PRINT_MEMORY_ADDR 0x02000600
/*
*/
//#define USE_IDLE_THREAD
#ifdef PROFILE_ENABLE #ifdef PROFILE_ENABLE
#define PROFILE_MAX 16 #define PROFILE_MAX 16
@ -68,6 +73,25 @@ extern void* SDNandContext; /* NAND
static ROM_Header* const rh= (ROM_Header*)HW_TWL_ROM_HEADER_BUF; static ROM_Header* const rh= (ROM_Header*)HW_TWL_ROM_HEADER_BUF;
#ifdef USE_IDLE_THREAD
static OSThread idleThread;
static u64 idleStack[32];
static void IdleThread(void* arg)
{
#pragma unused(arg)
OS_EnableInterrupts();
while (1)
{
OS_Halt();
}
}
static void CreateIdleThread(void)
{
OS_CreateThread(&idleThread, IdleThread, NULL, &idleStack[32], sizeof(idleStack), OS_THREAD_PRIORITY_MAX);
OS_WakeupThreadDirect(&idleThread);
}
#endif
/*************************************************************** /***************************************************************
PreInit PreInit
@ -102,6 +126,23 @@ static void PreInit(void)
*/ */
} }
/***************************************************************
PostInit
***************************************************************/
static void PostInit(void)
{
// PMICの設定 for old version
PM_InitFIRM();
// AESの初期化
AES_Init(); // for encrypted NAND
#ifdef USE_IDLE_THREAD
// アイドルスレッドの作成
CreateIdleThread();
#endif
}
/*************************************************************** /***************************************************************
EraseAll EraseAll
@ -139,7 +180,7 @@ void TwlSpMain( void )
PUSH_PROFILE(); PUSH_PROFILE();
SetDebugLED(++step); // 0x83 SetDebugLED(++step); // 0x83
PM_InitFIRM(); PostInit();
// 2: after PM_InitFIRM // 2: after PM_InitFIRM
PUSH_PROFILE(); PUSH_PROFILE();
@ -160,21 +201,12 @@ void TwlSpMain( void )
PM_BackLightOn( FALSE ); PM_BackLightOn( FALSE );
PXI_RecvID();
SetDebugLED(0x01);
PXI_RecvID();
SetDebugLED(0x02);
if ( PXI_RecvID() != FIRM_PXI_ID_SET_PATH ) if ( PXI_RecvID() != FIRM_PXI_ID_SET_PATH )
{ {
OS_TPrintf("PXI_RecvID() was received invalid value (!=FIRM_PXI_ID_SET_PATH).\n"); OS_TPrintf("PXI_RecvID() was received invalid value (!=FIRM_PXI_ID_SET_PATH).\n");
goto end; goto end;
} }
#ifdef USE_IDLE_THREAD
CreateIdleThread();
#endif
// 4: after PXI // 4: after PXI
PUSH_PROFILE(); PUSH_PROFILE();
SetDebugLED(++step); // 0x86 SetDebugLED(++step); // 0x86

View File

@ -218,13 +218,11 @@ void TwlMain( void )
#endif #endif
// 1: after PXI // 1: after PXI
PUSH_PROFILE(); PUSH_PROFILE();
PXI_NotifyID( FIRM_PXI_ID_NULL );
PostInit(); PostInit();
// 2: after PostInit // 2: after PostInit
PUSH_PROFILE(); PUSH_PROFILE();
PXI_NotifyID( FIRM_PXI_ID_NULL );
if ( !FS_ResolveSrl( MENU_TITLE_ID ) ) if ( !FS_ResolveSrl( MENU_TITLE_ID ) )
{ {

View File

@ -36,6 +36,11 @@
*/ */
#define PRINT_MEMORY_ADDR 0x02000600 #define PRINT_MEMORY_ADDR 0x02000600
/*
*/
//#define USE_IDLE_THREAD
#ifdef PROFILE_ENABLE #ifdef PROFILE_ENABLE
#define PROFILE_MAX 16 #define PROFILE_MAX 16
@ -68,6 +73,25 @@ extern void* SDNandContext; /* NAND
static ROM_Header* const rh= (ROM_Header*)HW_TWL_ROM_HEADER_BUF; static ROM_Header* const rh= (ROM_Header*)HW_TWL_ROM_HEADER_BUF;
#ifdef USE_IDLE_THREAD
static OSThread idleThread;
static u64 idleStack[32];
static void IdleThread(void* arg)
{
#pragma unused(arg)
OS_EnableInterrupts();
while (1)
{
OS_Halt();
}
}
static void CreateIdleThread(void)
{
OS_CreateThread(&idleThread, IdleThread, NULL, &idleStack[32], sizeof(idleStack), OS_THREAD_PRIORITY_MAX);
OS_WakeupThreadDirect(&idleThread);
}
#endif
/*************************************************************** /***************************************************************
PreInit PreInit
@ -102,6 +126,23 @@ static void PreInit(void)
*/ */
} }
/***************************************************************
PostInit
***************************************************************/
static void PostInit(void)
{
// PMICの設定 for old version
PM_InitFIRM();
// AESの初期化
AES_Init(); // for encrypted NAND
#ifdef USE_IDLE_THREAD
// アイドルスレッドの作成
CreateIdleThread();
#endif
}
/*************************************************************** /***************************************************************
EraseAll EraseAll
@ -137,8 +178,7 @@ void TwlSpMain( void )
PUSH_PROFILE(); PUSH_PROFILE();
SetDebugLED(++step); // 0x83 SetDebugLED(++step); // 0x83
PM_InitFIRM(); PostInit();
AES_Init();
// 2: after PM_InitFIRM // 2: after PM_InitFIRM
PUSH_PROFILE(); PUSH_PROFILE();
@ -159,11 +199,6 @@ void TwlSpMain( void )
PM_BackLightOn( FALSE ); PM_BackLightOn( FALSE );
PXI_RecvID();
SetDebugLED(0x01);
PXI_RecvID();
SetDebugLED(0x02);
// 4: // 4:
PUSH_PROFILE(); PUSH_PROFILE();
SetDebugLED(++step); // 0x86 SetDebugLED(++step); // 0x86

View File

@ -221,13 +221,11 @@ void TwlMain( void )
#endif #endif
// 1: after PXI // 1: after PXI
PUSH_PROFILE(); PUSH_PROFILE();
PXI_NotifyID( FIRM_PXI_ID_NULL );
PostInit(); PostInit();
// 2: after PostInit // 2: after PostInit
PUSH_PROFILE(); PUSH_PROFILE();
PXI_NotifyID( FIRM_PXI_ID_NULL );
if ( !FS_ResolveSrl( MENU_TITLE_ID ) ) if ( !FS_ResolveSrl( MENU_TITLE_ID ) )
{ {

View File

@ -35,6 +35,11 @@
*/ */
#define PRINT_MEMORY_ADDR 0x02000600 #define PRINT_MEMORY_ADDR 0x02000600
/*
*/
//#define USE_IDLE_THREAD
#ifdef PROFILE_ENABLE #ifdef PROFILE_ENABLE
#define PROFILE_MAX 16 #define PROFILE_MAX 16
@ -68,6 +73,25 @@ extern void* SDNandContext; /* NAND
static ROM_Header* const rh= (ROM_Header*)HW_TWL_ROM_HEADER_BUF; static ROM_Header* const rh= (ROM_Header*)HW_TWL_ROM_HEADER_BUF;
#ifdef USE_IDLE_THREAD
static OSThread idleThread;
static u64 idleStack[32];
static void IdleThread(void* arg)
{
#pragma unused(arg)
OS_EnableInterrupts();
while (1)
{
OS_Halt();
}
}
static void CreateIdleThread(void)
{
OS_CreateThread(&idleThread, IdleThread, NULL, &idleStack[32], sizeof(idleStack), OS_THREAD_PRIORITY_MAX);
OS_WakeupThreadDirect(&idleThread);
}
#endif
/*************************************************************** /***************************************************************
PreInit PreInit
@ -102,6 +126,23 @@ static void PreInit(void)
*/ */
} }
/***************************************************************
PostInit
***************************************************************/
static void PostInit(void)
{
// PMICの設定 for old version
PM_InitFIRM();
// AESの初期化
AES_Init(); // for encrypted NAND
#ifdef USE_IDLE_THREAD
// アイドルスレッドの作成
CreateIdleThread();
#endif
}
/*************************************************************** /***************************************************************
EraseAll EraseAll
@ -139,7 +180,7 @@ void TwlSpMain( void )
PUSH_PROFILE(); PUSH_PROFILE();
SetDebugLED(++step); // 0x83 SetDebugLED(++step); // 0x83
PM_InitFIRM(); PostInit();
// 2: after PM_InitFIRM // 2: after PM_InitFIRM
PUSH_PROFILE(); PUSH_PROFILE();
@ -160,21 +201,12 @@ void TwlSpMain( void )
PM_BackLightOn( FALSE ); PM_BackLightOn( FALSE );
PXI_RecvID();
SetDebugLED(0x01);
PXI_RecvID();
SetDebugLED(0x02);
if ( PXI_RecvID() != FIRM_PXI_ID_SET_PATH ) if ( PXI_RecvID() != FIRM_PXI_ID_SET_PATH )
{ {
OS_TPrintf("PXI_RecvID() was received invalid value (!=FIRM_PXI_ID_SET_PATH).\n"); OS_TPrintf("PXI_RecvID() was received invalid value (!=FIRM_PXI_ID_SET_PATH).\n");
goto end; goto end;
} }
#ifdef USE_IDLE_THREAD
CreateIdleThread();
#endif
// 4: after PXI // 4: after PXI
PUSH_PROFILE(); PUSH_PROFILE();
SetDebugLED(++step); // 0x86 SetDebugLED(++step); // 0x86

View File

@ -225,13 +225,11 @@ void TwlMain( void )
#endif #endif
// 1: after PXI // 1: after PXI
PUSH_PROFILE(); PUSH_PROFILE();
PXI_NotifyID( FIRM_PXI_ID_NULL );
PostInit(); PostInit();
// 2: after PostInit // 2: after PostInit
PUSH_PROFILE(); PUSH_PROFILE();
PXI_NotifyID( FIRM_PXI_ID_NULL );
switch ( PAD_Read() & PAD_KEYPORT_MASK ) switch ( PAD_Read() & PAD_KEYPORT_MASK )
{ {