NandInitializerのver.0を起動制限かけるようBOOTi_CheckTitleBlackList関数を追加。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1239 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yosiokat 2008-04-23 05:54:44 +00:00
parent 69dfa38c33
commit 97de191f0a

View File

@ -29,18 +29,32 @@
// define data-------------------------------------------------------
#define SUBP_RECV_IF_ENABLE 0x4000
#define SUBP_RECV_IF_ENABLE 0x4000
#define TITLE_ID_NAND_INITIALIZER 0x00030011304E4941UL // 0NIA
// 起動制限をかけるタイトル一覧
typedef struct TitleBlackList {
OSTitleId titleID;
int rom_version;
}TitleBlackList;
// extern data-------------------------------------------------------
// function's prototype----------------------------------------------
static void BOOTi_ClearREG_RAM( void );
static void BOOTi_CopyLCFGData( void );
static void BOOTi_CheckTitleBlackList( void );
// global variables--------------------------------------------------
// static variables--------------------------------------------------
// 起動制限をかけるタイトル一覧
static const TitleBlackList s_blackList[] = {
{ TITLE_ID_NAND_INITIALIZER, 0 },
{ 0UL, -1 },
};
// const data--------------------------------------------------------
void BOOT_Init( void )
{
@ -62,6 +76,9 @@ void BOOT_Ready( void )
BOOL isNtrMode;
int i;
// ブラックリストをチェックし、起動制限をかける
BOOTi_CheckTitleBlackList();
// エントリアドレスの正当性をチェックし、無効な場合は無限ループに入る。
// SYSMi_CheckEntryAddress();
@ -102,11 +119,6 @@ void BOOT_Ready( void )
isNtrMode = FALSE;
}
// NTRモード起動でない場合は、LCFG関連データをメモリに展開
/* if( !isNtrMode ) {
BOOTi_CopyLCFGData();
}
*/
// WRAMの配置
{
MIHeader_WramRegs *pWRAMREGS = (MIHeader_WramRegs *)th->s.main_wram_config_data;
@ -216,20 +228,21 @@ static void BOOTi_ClearREG_RAM( void )
// レジスタクリアは基本的に OS_Boot で行う
}
/*
// LCFG関連データをメインメモリ先頭の予約領域にコピーする
static void BOOTi_CopyLCFGData( void )
// 起動制限をかけるブラックリストTITLEのチェック
static void BOOTi_CheckTitleBlackList( void )
{
// 本体設定データ、HWーマル情報、HWセキュア情報をメモリに展開しておく
MI_CpuCopyFast( LCFGi_GetTSD(), (void *)HW_PARAM_TWL_SETTINGS_DATA, sizeof(LCFGTWLSettingsData) );
MI_CpuCopyFast( LCFGi_GetHWN(), (void *)HW_PARAM_TWL_HW_NORMAL_INFO, sizeof(LCFGTWLHWNormalInfo) );
MI_CpuCopyFast( LCFGi_GetHWS(), (void *)HW_HW_SECURE_INFO, HW_HW_SECURE_INFO_END - HW_HW_SECURE_INFO );
const TitleBlackList *pBlackList = &s_blackList[ 0 ];
ROM_Header_Short *pROMH = (ROM_Header_Short *)HW_TWL_ROM_HEADER_BUF;
// 本体設定データの不要部分をクリアしておく
{
LCFGTWLSettingsData *pSettings = (LCFGTWLSettingsData *)HW_PARAM_TWL_SETTINGS_DATA;
MI_CpuClear32( &pSettings->launcherStatus, sizeof(LCFGTWLLauncherStatus) );
MI_CpuClearFast( &pSettings->parental, sizeof(LCFGTWLParentalControl) );
while( pBlackList->rom_version >= 0 ) {
if( ( pBlackList->titleID == pROMH->titleID ) &&
( pBlackList->rom_version == pROMH->rom_version ) ) {
OS_TPrintf( "Hit black list : %c%c%c%c ver.%d...Terminate.\n",
pROMH->titleID_Lo[ 3 ], pROMH->titleID_Lo[ 2 ], pROMH->titleID_Lo[ 1 ], pROMH->titleID_Lo[ 0 ],
pROMH->rom_version );
OS_Terminate();
}
pBlackList++;
}
}
*/