mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
タイトルIDリストフラグとメニューバージョンはCTRモードで設定。
本体設定をNORへ書かない。 SYSM_NO_WLFIRMを有効にすれば無線ファームをロードしないように (ESも呼ばなくなる)。 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/branches/20100611_RedLauncher_Remodel@2955 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
12d689a5a5
commit
6076b6ac7b
@ -26,6 +26,9 @@ endif
|
|||||||
ifdef SYSM_NO_ES
|
ifdef SYSM_NO_ES
|
||||||
MACRO_FLAGS += -DSYSM_NO_ES
|
MACRO_FLAGS += -DSYSM_NO_ES
|
||||||
endif
|
endif
|
||||||
|
ifdef SYSM_NO_WLFIRM
|
||||||
|
MACRO_FLAGS += -DSYSM_NO_WLFIRM
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
NITRO_NO_STD_PCHDR = TRUE # プリコンパイルヘッダ抑止
|
NITRO_NO_STD_PCHDR = TRUE # プリコンパイルヘッダ抑止
|
||||||
|
|||||||
@ -220,6 +220,7 @@ TitleProperty *SYSM_ReadParameters( void )
|
|||||||
// NANDからTWL本体設定データをリード
|
// NANDからTWL本体設定データをリード
|
||||||
BOOL isRead = LCFG_ReadTWLSettings( (u8 (*)[LCFG_READ_TEMP])pBuffer );
|
BOOL isRead = LCFG_ReadTWLSettings( (u8 (*)[LCFG_READ_TEMP])pBuffer );
|
||||||
|
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
// リード失敗ファイルが存在する場合は、ファイルをリカバリ
|
// リード失敗ファイルが存在する場合は、ファイルをリカバリ
|
||||||
if( LCFG_RecoveryTWLSettings() ) {
|
if( LCFG_RecoveryTWLSettings() ) {
|
||||||
if( !isRead ) {
|
if( !isRead ) {
|
||||||
@ -231,12 +232,15 @@ TitleProperty *SYSM_ReadParameters( void )
|
|||||||
// リカバリ失敗時は、FALTALエラー
|
// リカバリ失敗時は、FALTALエラー
|
||||||
UTL_SetFatalError( FATAL_ERROR_TWLSETTINGS );
|
UTL_SetFatalError( FATAL_ERROR_TWLSETTINGS );
|
||||||
}
|
}
|
||||||
|
#endif // SYSM_NO_LOAD
|
||||||
SYSM_Free( pBuffer );
|
SYSM_Free( pBuffer );
|
||||||
}else {
|
}else {
|
||||||
// メモリ確保ができなかった時は、FATALエラー
|
// メモリ確保ができなかった時は、FATALエラー
|
||||||
UTL_SetFatalError( FATAL_ERROR_TWLSETTINGS );
|
UTL_SetFatalError( FATAL_ERROR_TWLSETTINGS );
|
||||||
}
|
}
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
LCFG_VerifyAndRecoveryNTRSettings(); // NTR設定データを読み出して、TWL設定データとベリファイし、必要ならリカバリ
|
LCFG_VerifyAndRecoveryNTRSettings(); // NTR設定データを読み出して、TWL設定データとベリファイし、必要ならリカバリ
|
||||||
|
#endif // SYSM_NO_LOAD
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------
|
//-----------------------------------------------------
|
||||||
@ -277,11 +281,15 @@ TitleProperty *SYSM_ReadParameters( void )
|
|||||||
}
|
}
|
||||||
#endif // SDK_SUPPORT_PMIC_2
|
#endif // SDK_SUPPORT_PMIC_2
|
||||||
|
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
|
|
||||||
// RTC補正
|
// RTC補正
|
||||||
SYSMi_WriteAdjustRTC();
|
SYSMi_WriteAdjustRTC();
|
||||||
// RTC値のチェック
|
// RTC値のチェック
|
||||||
SYSMi_CheckRTC();
|
SYSMi_CheckRTC();
|
||||||
|
|
||||||
|
#endif // SYSM_NO_LOAD
|
||||||
|
|
||||||
//-----------------------------------------------------
|
//-----------------------------------------------------
|
||||||
// ARM7の処理待ち
|
// ARM7の処理待ち
|
||||||
//-----------------------------------------------------
|
//-----------------------------------------------------
|
||||||
@ -562,6 +570,8 @@ static TitleProperty *SYSMi_CheckShortcutBoot2( void )
|
|||||||
OS_EncodeDeliverArg();
|
OS_EncodeDeliverArg();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef SYSM_NO_ES
|
||||||
|
|
||||||
// 「本体設定ブート」有効時は、本体設定プート決定
|
// 「本体設定ブート」有効時は、本体設定プート決定
|
||||||
if( isBootMSET ) {
|
if( isBootMSET ) {
|
||||||
s_bootTitleBuf.titleID = SYSMi_getTitleIdOfMachineSettings();
|
s_bootTitleBuf.titleID = SYSMi_getTitleIdOfMachineSettings();
|
||||||
@ -576,6 +586,8 @@ static TitleProperty *SYSMi_CheckShortcutBoot2( void )
|
|||||||
return &s_bootTitleBuf;
|
return &s_bootTitleBuf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // SYSM_NO_ES
|
||||||
|
|
||||||
return NULL; // 「ブート内容未定」でリターン
|
return NULL; // 「ブート内容未定」でリターン
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -585,6 +597,9 @@ static TitleProperty *SYSMi_CheckShortcutBoot2( void )
|
|||||||
static OSTitleId SYSMi_getTitleIdOfMachineSettings( void )
|
static OSTitleId SYSMi_getTitleIdOfMachineSettings( void )
|
||||||
{
|
{
|
||||||
OSTitleId ret = NULL;
|
OSTitleId ret = NULL;
|
||||||
|
|
||||||
|
#ifndef SYSM_NO_ES
|
||||||
|
|
||||||
int l;
|
int l;
|
||||||
int getNum;
|
int getNum;
|
||||||
int validNum = 0;
|
int validNum = 0;
|
||||||
@ -611,6 +626,8 @@ static OSTitleId SYSMi_getTitleIdOfMachineSettings( void )
|
|||||||
}
|
}
|
||||||
SYSM_Free( pTitleIDList );
|
SYSM_Free( pTitleIDList );
|
||||||
|
|
||||||
|
#endif // SYSM_NO_ES
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2125,11 +2125,14 @@ void SYSM_TryToBootTitle( TitleProperty *pBootTitle )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ダイレクトブート時など、まだSystemMenuVersionのデータがセットされていない場合は、ここでセットする。
|
// ダイレクトブート時など、まだSystemMenuVersionのデータがセットされていない場合は、ここでセットする。
|
||||||
|
#ifndef SYSM_NO_ES
|
||||||
if( *(u8 *)HW_SYSM_VER_INFO_CONTENT_LAST_INITIAL_CODE == 0 ) {
|
if( *(u8 *)HW_SYSM_VER_INFO_CONTENT_LAST_INITIAL_CODE == 0 ) {
|
||||||
SYSM_SetSystemMenuVersionControlData();
|
SYSM_SetSystemMenuVersionControlData();
|
||||||
}
|
}
|
||||||
|
#endif // SYSM_NO_ES
|
||||||
|
|
||||||
// デバッガ接続中以外の時のみTWL設定データにブートするタイトルのTitleIDとplatformCodeを保存。
|
// デバッガ接続中以外の時のみTWL設定データにブートするタイトルのTitleIDとplatformCodeを保存。
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
if( !SYSM_IsRunOnDebugger() || // スタンドアロン
|
if( !SYSM_IsRunOnDebugger() || // スタンドアロン
|
||||||
(OSi_DetectDebugger() & OS_CONSOLE_TWLDEBUGGER) ) // デバッグ時
|
(OSi_DetectDebugger() & OS_CONSOLE_TWLDEBUGGER) ) // デバッグ時
|
||||||
{
|
{
|
||||||
@ -2140,6 +2143,7 @@ void SYSM_TryToBootTitle( TitleProperty *pBootTitle )
|
|||||||
SYSM_Free( pBuffer );
|
SYSM_Free( pBuffer );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif // SYSM_NO_LOAD
|
||||||
|
|
||||||
// マウント情報の登録
|
// マウント情報の登録
|
||||||
SYSMi_GetWork2()->bootTitleProperty = *pBootTitle;
|
SYSMi_GetWork2()->bootTitleProperty = *pBootTitle;
|
||||||
@ -2154,7 +2158,9 @@ void SYSM_TryToBootTitle( TitleProperty *pBootTitle )
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// タイトルIDリストの作成
|
// タイトルIDリストの作成
|
||||||
|
#ifndef SYSM_NO_ES
|
||||||
SYSMi_makeTitleIdList();
|
SYSMi_makeTitleIdList();
|
||||||
|
#endif // SYSM_NO_ES
|
||||||
|
|
||||||
// バンブラパッチ
|
// バンブラパッチ
|
||||||
SYSMi_applyPatchToBandBrothers();
|
SYSMi_applyPatchToBandBrothers();
|
||||||
|
|||||||
@ -342,6 +342,7 @@ static void SYSMi_ModifySaveDataMount( LauncherBootType bootType, NAMTitleId tit
|
|||||||
|
|
||||||
void SYSMi_SetBootSRLPathToWork2( TitleProperty *pBootTitle )
|
void SYSMi_SetBootSRLPathToWork2( TitleProperty *pBootTitle )
|
||||||
{
|
{
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
static char path[ FS_ENTRY_LONGNAME_MAX ];
|
static char path[ FS_ENTRY_LONGNAME_MAX ];
|
||||||
|
|
||||||
switch( pBootTitle->flags.bootType )
|
switch( pBootTitle->flags.bootType )
|
||||||
@ -365,6 +366,12 @@ void SYSMi_SetBootSRLPathToWork2( TitleProperty *pBootTitle )
|
|||||||
}else {
|
}else {
|
||||||
MI_CpuClearFast( SYSMi_GetWork2()->bootContentPath, OS_MOUNT_PATH_LEN );
|
MI_CpuClearFast( SYSMi_GetWork2()->bootContentPath, OS_MOUNT_PATH_LEN );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#else // SYSM_NO_LOAD
|
||||||
|
STD_CopyLStringZeroFill( SYSMi_GetWork2()->bootContentPath, (char*)(HW_TWL_SHARED_RESERVED_END - OS_MOUNT_PATH_LEN), OS_MOUNT_PATH_LEN );
|
||||||
|
|
||||||
|
#endif // SYSM_NO_LOAD
|
||||||
|
|
||||||
OS_TPrintf( "boot SRL path : %s\n", SYSMi_GetWork2()->bootContentPath ); // ※OS_Init前で呼ぶとPrintfできないので注意。
|
OS_TPrintf( "boot SRL path : %s\n", SYSMi_GetWork2()->bootContentPath ); // ※OS_Init前で呼ぶとPrintfできないので注意。
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -22,6 +22,7 @@ ifneq ($(SYSM_UPDATER_RELEASE),TRUE)
|
|||||||
export SYSM_FOR_CTR = TRUE
|
export SYSM_FOR_CTR = TRUE
|
||||||
export SYSM_NO_LOAD = TRUE
|
export SYSM_NO_LOAD = TRUE
|
||||||
export SYSM_NO_ES = TRUE
|
export SYSM_NO_ES = TRUE
|
||||||
|
# export SYSM_NO_WLFIRM = TRUE
|
||||||
|
|
||||||
# COMPILE SWITCH ※最終ROM作成時は、全てFALSEにセットする。SUBDIRのビルド時にも影響するようexportで環境変数設定する。
|
# COMPILE SWITCH ※最終ROM作成時は、全てFALSEにセットする。SUBDIRのビルド時にも影響するようexportで環境変数設定する。
|
||||||
export SYSM_DO_NOT_SHOW_LAUNCHER = FALSE
|
export SYSM_DO_NOT_SHOW_LAUNCHER = FALSE
|
||||||
|
|||||||
@ -240,7 +240,9 @@ void TwlMain( void )
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
//NAMの初期化
|
//NAMの初期化
|
||||||
|
#if !defined(SYSM_NO_ES) || !defined(SYSM_NO_WLFIRM)
|
||||||
NAM_Init( Alloc, Free );
|
NAM_Init( Alloc, Free );
|
||||||
|
#endif // ! SYSM_NO_ES || ! SYSM_NO_WLFIRM
|
||||||
|
|
||||||
OS_TPrintf( "SYSM_work size = 0x%x\n", sizeof(SYSM_work) );
|
OS_TPrintf( "SYSM_work size = 0x%x\n", sizeof(SYSM_work) );
|
||||||
|
|
||||||
@ -317,6 +319,8 @@ void TwlMain( void )
|
|||||||
// end時間計測1-c
|
// end時間計測1-c
|
||||||
MEASURE_RESULT( start, "SYSM_ReadParameters: %dms\n" );
|
MEASURE_RESULT( start, "SYSM_ReadParameters: %dms\n" );
|
||||||
|
|
||||||
|
#ifndef SYSM_NO_ES
|
||||||
|
|
||||||
// start時間計測4
|
// start時間計測4
|
||||||
MEASURE_START(start);
|
MEASURE_START(start);
|
||||||
|
|
||||||
@ -372,6 +376,8 @@ void TwlMain( void )
|
|||||||
// end時間計測5
|
// end時間計測5
|
||||||
MEASURE_RESULT( start, "GetNandTitleList : %dms\n" );
|
MEASURE_RESULT( start, "GetNandTitleList : %dms\n" );
|
||||||
|
|
||||||
|
#endif // SYSM_NO_ES
|
||||||
|
|
||||||
// start時間計測6
|
// start時間計測6
|
||||||
MEASURE_START(start);
|
MEASURE_START(start);
|
||||||
|
|
||||||
@ -451,9 +457,11 @@ void TwlMain( void )
|
|||||||
MEASURE_START(start);
|
MEASURE_START(start);
|
||||||
|
|
||||||
// 無線ファームウェアを無線モジュールにダウンロードする。
|
// 無線ファームウェアを無線モジュールにダウンロードする。
|
||||||
|
#ifndef SYSM_NO_WLFIRM
|
||||||
if( FALSE == InstallWlanFirmware( SYSM_IsHotStart() ) ) {
|
if( FALSE == InstallWlanFirmware( SYSM_IsHotStart() ) ) {
|
||||||
OS_TPrintf( "ERROR: Wireless firmware download failed!\n" );
|
OS_TPrintf( "ERROR: Wireless firmware download failed!\n" );
|
||||||
}
|
}
|
||||||
|
#endif // SYSM_NO_WLFIRM
|
||||||
|
|
||||||
// end時間計測8
|
// end時間計測8
|
||||||
MEASURE_RESULT( start, "Load WlanFirm Time : %dms\n" );
|
MEASURE_RESULT( start, "Load WlanFirm Time : %dms\n" );
|
||||||
@ -483,6 +491,7 @@ MAIN_LOOP_START:
|
|||||||
ReadTP(); // TP入力の取得
|
ReadTP(); // TP入力の取得
|
||||||
|
|
||||||
switch( state ) {
|
switch( state ) {
|
||||||
|
#ifndef SYSM_NO_ES
|
||||||
case LOGODEMO_INIT:
|
case LOGODEMO_INIT:
|
||||||
LogoInit();
|
LogoInit();
|
||||||
// 音鳴らすテスト
|
// 音鳴らすテスト
|
||||||
@ -525,9 +534,12 @@ MAIN_LOOP_START:
|
|||||||
state = LOAD_START;
|
state = LOAD_START;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
#endif // SYSM_NO_ES
|
||||||
case LOAD_START:
|
case LOAD_START:
|
||||||
if( IsFinishedLoadSharedFont() // ダイレクトブートの時は、フォントロード終了をここでチェック
|
if( IsFinishedLoadSharedFont() // ダイレクトブートの時は、フォントロード終了をここでチェック
|
||||||
|
#ifndef SYSM_NO_WLFIRM
|
||||||
&& PollingInstallWlanFirmware()
|
&& PollingInstallWlanFirmware()
|
||||||
|
#endif// SYSM_NO_WLFIRM
|
||||||
#ifndef SYSM_DISABLE_WDS_SCAN // アプリブート前にWDSスキャンは終了しておく必要がある
|
#ifndef SYSM_DISABLE_WDS_SCAN // アプリブート前にWDSスキャンは終了しておく必要がある
|
||||||
&& ( WDS_WrapperStopScan() != WDSWRAPPER_ERRCODE_OPERATING )
|
&& ( WDS_WrapperStopScan() != WDSWRAPPER_ERRCODE_OPERATING )
|
||||||
#endif // SYSM_DISABLE_WDS_SCAN
|
#endif // SYSM_DISABLE_WDS_SCAN
|
||||||
@ -554,10 +566,12 @@ MAIN_LOOP_START:
|
|||||||
state = AUTHENTICATE;
|
state = AUTHENTICATE;
|
||||||
#endif // SYSM_NO_LOAD
|
#endif // SYSM_NO_LOAD
|
||||||
}
|
}
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
if( !direct_boot )
|
if( !direct_boot )
|
||||||
{
|
{
|
||||||
(void)LauncherFadeout( sp_titleList ); // ダイレクトブートでないときはフェードアウトも行う
|
(void)LauncherFadeout( sp_titleList ); // ダイレクトブートでないときはフェードアウトも行う
|
||||||
}
|
}
|
||||||
|
#endif // SYSM_NO_LOAD
|
||||||
if( ( end == 0 ) &&
|
if( ( end == 0 ) &&
|
||||||
SYSM_IsLoadTitleFinished() ) {
|
SYSM_IsLoadTitleFinished() ) {
|
||||||
end = OS_GetTick();
|
end = OS_GetTick();
|
||||||
@ -573,9 +587,14 @@ MAIN_LOOP_START:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case AUTHENTICATE:
|
case AUTHENTICATE:
|
||||||
|
#ifdef SYSM_NO_LOAD
|
||||||
|
if( direct_boot )
|
||||||
|
#else // SYSM_NO_LOAD
|
||||||
if( ( direct_boot || ( !direct_boot && LauncherFadeout( sp_titleList ) ) ) &&
|
if( ( direct_boot || ( !direct_boot && LauncherFadeout( sp_titleList ) ) ) &&
|
||||||
SYSM_IsAuthenticateTitleFinished()
|
SYSM_IsAuthenticateTitleFinished()
|
||||||
) {
|
)
|
||||||
|
#endif // SYSM_NO_LOAD
|
||||||
|
{
|
||||||
// メインループ開始から検証終了までの間に起きたFATALの処理
|
// メインループ開始から検証終了までの間に起きたFATALの処理
|
||||||
if( UTL_IsFatalError() ) {
|
if( UTL_IsFatalError() ) {
|
||||||
// FATALエラー処理
|
// FATALエラー処理
|
||||||
@ -612,6 +631,7 @@ MAIN_LOOP_START:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// カードアプリリストの取得(スレッドで随時カード挿抜を通知されるものをメインループで取得)
|
// カードアプリリストの取得(スレッドで随時カード挿抜を通知されるものをメインループで取得)
|
||||||
|
#ifndef SYSM_NO_ES
|
||||||
{
|
{
|
||||||
BOOL changed;
|
BOOL changed;
|
||||||
sp_titleList = SYSM_GetCardTitleList( &changed );
|
sp_titleList = SYSM_GetCardTitleList( &changed );
|
||||||
@ -620,8 +640,10 @@ MAIN_LOOP_START:
|
|||||||
OS_TPrintf( "Change CARD status.\n" );
|
OS_TPrintf( "Change CARD status.\n" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif // SYSM_NO_ES
|
||||||
|
|
||||||
// 無線ファームロードのポーリング
|
// 無線ファームロードのポーリング
|
||||||
|
#ifndef SYSM_NO_WLFIRM
|
||||||
if( PollingInstallWlanFirmware() &&
|
if( PollingInstallWlanFirmware() &&
|
||||||
( GetWlanFirmwareInstallFinalResult() == WLANFIRM_RESULT_SUCCESS ) // ロード成功
|
( GetWlanFirmwareInstallFinalResult() == WLANFIRM_RESULT_SUCCESS ) // ロード成功
|
||||||
) {
|
) {
|
||||||
@ -637,10 +659,12 @@ MAIN_LOOP_START:
|
|||||||
}
|
}
|
||||||
#endif // SYSM_DISABLE_WDS_SCAN
|
#endif // SYSM_DISABLE_WDS_SCAN
|
||||||
}
|
}
|
||||||
|
#endif // SYSM_NO_WLFIRM
|
||||||
|
|
||||||
// コマンドフラッシュ
|
// コマンドフラッシュ
|
||||||
(void)SND_FlushCommand(SND_COMMAND_NOBLOCK);
|
(void)SND_FlushCommand(SND_COMMAND_NOBLOCK);
|
||||||
|
|
||||||
|
#ifndef SYSM_NO_WLFIRM
|
||||||
#ifndef DISABLE_SLEEP
|
#ifndef DISABLE_SLEEP
|
||||||
// スリープモードへの遷移
|
// スリープモードへの遷移
|
||||||
//(無線ファームのロード完了はアプリ側でチェックしてもらう方針)
|
//(無線ファームのロード完了はアプリ側でチェックしてもらう方針)
|
||||||
@ -650,6 +674,7 @@ MAIN_LOOP_START:
|
|||||||
UTL_GoSleepMode();
|
UTL_GoSleepMode();
|
||||||
}
|
}
|
||||||
#endif // DISABLE_SLEEP
|
#endif // DISABLE_SLEEP
|
||||||
|
#endif // SYSM_NO_WLFIRM
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user