アプリ間パラメータクリアのタイミング修正、DATAONLYなアプリをロードしないよう修正

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1311 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yoshida_teruhisa 2008-05-12 08:24:19 +00:00
parent 0b9e7a66db
commit 226a7aa4bb
3 changed files with 15 additions and 4 deletions

View File

@ -253,6 +253,13 @@ TitleProperty *SYSM_ReadParameters( void )
} }
} }
// アプリジャンプでないときには、アプリ間パラメタをクリア
// [TODO:]あらかじめNTRカードのセキュア領域を退避せずに直接0x2000000からロードしている場合も容赦なく消すので注意
if( !pBootTitle )
{
MI_CpuClearFast((void *)HW_PARAM_DELIVER_ARG, HW_PARAM_DELIVER_ARG_SIZE);
}
//----------------------------------------------------- //-----------------------------------------------------
// ISデバッガバナーViewモード起動 // ISデバッガバナーViewモード起動
//----------------------------------------------------- //-----------------------------------------------------

View File

@ -579,7 +579,7 @@ OS_TPrintf("RebootSystem failed: cant seek file(%d)\n", source[i]);
#ifdef LOAD_APP_VIA_WRAM #ifdef LOAD_APP_VIA_WRAM
OS_TPrintf("RebootSystem : Load VIA WRAM %d.\n", i); OS_TPrintf("RebootSystem : Load VIA WRAM %d.\n", i);
// [TODO:]ここで同時にAES処理もやってしまう予定 // ここでロード処理と同時にハッシュ計算とAES処理もやってしまう
// 別スレッドで同じWRAM使おうとすると多分コケるので注意 // 別スレッドで同じWRAM使おうとすると多分コケるので注意
// コールバック関数に与える引数を初期化してRead // コールバック関数に与える引数を初期化してRead
@ -656,6 +656,13 @@ void SYSM_StartLoadTitle( TitleProperty *pBootTitle )
OS_Sleep( 2 ); OS_Sleep( 2 );
} }
// DataOnlyなアプリはロードも起動もしない
if( pBootTitle->titleID & TITLE_ID_DATA_ONLY_FLAG_MASK )
{
OS_TPrintf("SYSM_StartLoadTitle failed: This App has Data_Only flag.\n");
return;
}
s_loadstart = TRUE; s_loadstart = TRUE;
// このあとCardRomヘッダバッファにROMヘッダを上書きで読み込むので // このあとCardRomヘッダバッファにROMヘッダを上書きで読み込むので
// この時点でHotSWが止まっていないと、さらにカードのROMヘッダ // この時点でHotSWが止まっていないと、さらにカードのROMヘッダ

View File

@ -150,9 +150,6 @@ void TwlMain( void )
// 「ダイレクトブートでない」なら // 「ダイレクトブートでない」なら
if( !pBootTitle ) { if( !pBootTitle ) {
// アプリ間パラメタをクリア
// TODO:あらかじめNTRカードのセキュア領域を退避せずに直接0x2000000からロードしている場合も容赦なく消すので注意
MI_CpuClearFast((void *)HW_PARAM_DELIVER_ARG, HW_PARAM_DELIVER_ARG_SIZE);
// NAND & カードアプリリスト取得 // NAND & カードアプリリスト取得
(void)SYSM_GetNandTitleList( s_titleList, LAUNCHER_TITLE_LIST_NUM ); // NANDアプリリストの取得内蔵アプリはs_titleList[1]から格納される) (void)SYSM_GetNandTitleList( s_titleList, LAUNCHER_TITLE_LIST_NUM ); // NANDアプリリストの取得内蔵アプリはs_titleList[1]から格納される)