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@475 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
707907ef2d
commit
1b8ad74573
@ -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
|
||||||
|
|||||||
@ -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);
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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 ) )
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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 ) )
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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 )
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user