mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
ひととおり動作確認できたので、
デバッガ起動したアプリからLauncherへのリターン時にデバッガカードROMを直接起動しないようにするコードを復活 ついでにソースコード整理 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1014 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
567af02285
commit
e82bde9500
@ -27,7 +27,9 @@
|
|||||||
extern void LCFG_VerifyAndRecoveryNTRSettings( void );
|
extern void LCFG_VerifyAndRecoveryNTRSettings( void );
|
||||||
|
|
||||||
// function's prototype-------------------------------------------------------
|
// function's prototype-------------------------------------------------------
|
||||||
static TitleProperty *SYSMi_CheckShortcutBoot( void );
|
static TitleProperty *SYSMi_CheckDebuggerBannerViewModeBoot( void );
|
||||||
|
static TitleProperty *SYSMi_CheckShortcutBoot1( void );
|
||||||
|
static TitleProperty *SYSMi_CheckShortcutBoot2( void );
|
||||||
static void SYSMi_CheckCardCloneBoot( void );
|
static void SYSMi_CheckCardCloneBoot( void );
|
||||||
void SYSMi_SendKeysToARM7( void );
|
void SYSMi_SendKeysToARM7( void );
|
||||||
static OSTitleId SYSMi_getTitleIdOfMachineSettings( void );
|
static OSTitleId SYSMi_getTitleIdOfMachineSettings( void );
|
||||||
@ -231,12 +233,30 @@ TitleProperty *SYSM_ReadParameters( void )
|
|||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------
|
//-----------------------------------------------------
|
||||||
// 量産工程用ショートカットキー or
|
// ISデバッガバナーViewモード起動
|
||||||
// 検査カード起動
|
|
||||||
//-----------------------------------------------------
|
//-----------------------------------------------------
|
||||||
if( pBootTitle == NULL ) {
|
if( pBootTitle == NULL ) {
|
||||||
// ランチャーパラメータによるダイレクトブートがない場合のみ判定
|
// ランチャーパラメータによるダイレクトブートがない場合のみ判定
|
||||||
pBootTitle = SYSMi_CheckShortcutBoot();
|
pBootTitle = SYSMi_CheckDebuggerBannerViewModeBoot();
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------
|
||||||
|
// 量産工程用ショートカットキー or
|
||||||
|
// 検査カード起動
|
||||||
|
//-----------------------------------------------------
|
||||||
|
if( pBootTitle == NULL && // ココまでダイレクトブートが設定されていない場合のみ判定
|
||||||
|
!( SYSMi_GetWork()->flags.common.isValidLauncherParam && SYSM_GetLauncherParamBody()->v1.flags.isLogoSkip ) )
|
||||||
|
// 「ランチャー再起動指定(直接起動指定無し 且つ ランチャパラメタ有効 且つ ロゴスキップ指定)でない」
|
||||||
|
{
|
||||||
|
pBootTitle = SYSMi_CheckShortcutBoot1();
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------
|
||||||
|
// その他のショートカット起動
|
||||||
|
//-----------------------------------------------------
|
||||||
|
if( pBootTitle == NULL ) {
|
||||||
|
// ココまでダイレクトブートが設定されていない場合のみ判定
|
||||||
|
pBootTitle = SYSMi_CheckShortcutBoot2();
|
||||||
}
|
}
|
||||||
|
|
||||||
return pBootTitle;
|
return pBootTitle;
|
||||||
@ -251,12 +271,9 @@ BOOL SYSM_IsLauncherHidden( void )
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// ショートカット起動のチェック
|
static TitleProperty *SYSMi_CheckDebuggerBannerViewModeBoot( void )
|
||||||
static TitleProperty *SYSMi_CheckShortcutBoot( void )
|
|
||||||
{
|
{
|
||||||
static TitleProperty s_bootTitle;
|
MI_CpuClear8( &s_bootTitleBuf, sizeof(TitleProperty) );
|
||||||
|
|
||||||
MI_CpuClear8( &s_bootTitle, sizeof(TitleProperty) );
|
|
||||||
|
|
||||||
//-----------------------------------------------------
|
//-----------------------------------------------------
|
||||||
// ISデバッガバナーViewモード起動
|
// ISデバッガバナーViewモード起動
|
||||||
@ -267,26 +284,33 @@ static TitleProperty *SYSMi_CheckShortcutBoot( void )
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ショートカット起動のチェックその1
|
||||||
|
static TitleProperty *SYSMi_CheckShortcutBoot1( void )
|
||||||
|
{
|
||||||
|
MI_CpuClear8( &s_bootTitleBuf, sizeof(TitleProperty) );
|
||||||
|
|
||||||
//-----------------------------------------------------
|
//-----------------------------------------------------
|
||||||
// ISデバッガ起動 or
|
// ISデバッガ起動 or
|
||||||
// 量産工程用ショートカットキー or
|
// 量産工程用ショートカットキー or
|
||||||
// 検査カード起動
|
// 検査カード起動
|
||||||
//-----------------------------------------------------
|
//-----------------------------------------------------
|
||||||
if( SYSM_IsExistCard() ) {
|
if( SYSM_IsExistCard() ) {
|
||||||
// 「カード存在」且つ「ランチャー再起動指定(=ロゴスキップ且つタイトル直接起動指定無し)でない」
|
|
||||||
if( ( SYSMi_GetWork()->flags.hotsw.isOnDebugger && // ISデバッガが有効かつJTAGがまだ有効でない時
|
if( ( SYSMi_GetWork()->flags.hotsw.isOnDebugger && // ISデバッガが有効かつJTAGがまだ有効でない時
|
||||||
!( *(u8 *)( HW_SYS_CONF_BUF + HWi_WSYS09_OFFSET ) & HWi_WSYS09_JTAG_CPUJE_MASK ) ) ||
|
!( *(u8 *)( HW_SYS_CONF_BUF + HWi_WSYS09_OFFSET ) & HWi_WSYS09_JTAG_CPUJE_MASK ) ) ||
|
||||||
SYSM_IsInspectCard() ||
|
SYSM_IsInspectCard() ||
|
||||||
( ( PAD_Read() & SYSM_PAD_PRODUCTION_SHORTCUT_CARD_BOOT ) ==
|
( ( PAD_Read() & SYSM_PAD_PRODUCTION_SHORTCUT_CARD_BOOT ) ==
|
||||||
SYSM_PAD_PRODUCTION_SHORTCUT_CARD_BOOT )
|
SYSM_PAD_PRODUCTION_SHORTCUT_CARD_BOOT )
|
||||||
){
|
){
|
||||||
s_bootTitle.flags.isAppRelocate = TRUE;
|
s_bootTitleBuf.flags.isAppRelocate = TRUE;
|
||||||
s_bootTitle.flags.isAppLoadCompleted = TRUE;
|
s_bootTitleBuf.flags.isAppLoadCompleted = TRUE;
|
||||||
s_bootTitle.flags.isInitialShortcutSkip = TRUE; // 初回起動シーケンスを飛ばす
|
s_bootTitleBuf.flags.isInitialShortcutSkip = TRUE; // 初回起動シーケンスを飛ばす
|
||||||
s_bootTitle.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす
|
s_bootTitleBuf.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす
|
||||||
s_bootTitle.flags.bootType = LAUNCHER_BOOTTYPE_ROM;
|
s_bootTitleBuf.flags.bootType = LAUNCHER_BOOTTYPE_ROM;
|
||||||
s_bootTitle.flags.isValid = TRUE;
|
s_bootTitleBuf.flags.isValid = TRUE;
|
||||||
// ROMヘッダバッファのコピー
|
// ROMヘッダバッファのコピー
|
||||||
{
|
{
|
||||||
u16 id = (u16)OS_GetLockID();
|
u16 id = (u16)OS_GetLockID();
|
||||||
@ -295,12 +319,20 @@ static TitleProperty *SYSMi_CheckShortcutBoot( void )
|
|||||||
(void)OS_UnlockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
|
(void)OS_UnlockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
|
||||||
OS_ReleaseLockID( id );
|
OS_ReleaseLockID( id );
|
||||||
}
|
}
|
||||||
s_bootTitle.titleID = *(u64 *)( &SYSM_GetCardRomHeader()->titleID_Lo );
|
s_bootTitleBuf.titleID = *(u64 *)( &SYSM_GetCardRomHeader()->titleID_Lo );
|
||||||
SYSM_SetLogoDemoSkip( s_bootTitle.flags.isLogoSkip );
|
SYSM_SetLogoDemoSkip( s_bootTitleBuf.flags.isLogoSkip );
|
||||||
return &s_bootTitle;
|
return &s_bootTitleBuf;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return NULL; // 「ブート内容未定」でリターン
|
||||||
|
}
|
||||||
|
|
||||||
|
// ショートカット起動のチェックその2
|
||||||
|
static TitleProperty *SYSMi_CheckShortcutBoot2( void )
|
||||||
|
{
|
||||||
|
MI_CpuClear8( &s_bootTitleBuf, sizeof(TitleProperty) );
|
||||||
|
|
||||||
//-----------------------------------------------------
|
//-----------------------------------------------------
|
||||||
// スタンドアロン起動時、ショートカットキー(select)
|
// スタンドアロン起動時、ショートカットキー(select)
|
||||||
// を押しながらの起動で本体設定の直接起動
|
// を押しながらの起動で本体設定の直接起動
|
||||||
@ -308,16 +340,16 @@ static TitleProperty *SYSMi_CheckShortcutBoot( void )
|
|||||||
if( ( PAD_Read() & SYSM_PAD_SHORTCUT_MACHINE_SETTINGS ) ==
|
if( ( PAD_Read() & SYSM_PAD_SHORTCUT_MACHINE_SETTINGS ) ==
|
||||||
SYSM_PAD_SHORTCUT_MACHINE_SETTINGS )
|
SYSM_PAD_SHORTCUT_MACHINE_SETTINGS )
|
||||||
{
|
{
|
||||||
s_bootTitle.titleID = SYSMi_getTitleIdOfMachineSettings();
|
s_bootTitleBuf.titleID = SYSMi_getTitleIdOfMachineSettings();
|
||||||
if(s_bootTitle.titleID != 0)
|
if(s_bootTitleBuf.titleID != 0)
|
||||||
{
|
{
|
||||||
s_bootTitle.flags.isLogoSkip = TRUE; // 本体設定を起動できる時だけロゴデモを飛ばす
|
s_bootTitleBuf.flags.isLogoSkip = TRUE; // 本体設定を起動できる時だけロゴデモを飛ばす
|
||||||
}
|
}
|
||||||
s_bootTitle.flags.bootType = LAUNCHER_BOOTTYPE_NAND;
|
s_bootTitleBuf.flags.bootType = LAUNCHER_BOOTTYPE_NAND;
|
||||||
s_bootTitle.flags.isValid = TRUE;
|
s_bootTitleBuf.flags.isValid = TRUE;
|
||||||
s_bootTitle.flags.isAppRelocate = FALSE;
|
s_bootTitleBuf.flags.isAppRelocate = FALSE;
|
||||||
s_bootTitle.flags.isAppLoadCompleted = FALSE;
|
s_bootTitleBuf.flags.isAppLoadCompleted = FALSE;
|
||||||
return &s_bootTitle;
|
return &s_bootTitleBuf;
|
||||||
}
|
}
|
||||||
|
|
||||||
// スタンドアロン起動時
|
// スタンドアロン起動時
|
||||||
@ -327,12 +359,12 @@ static TitleProperty *SYSMi_CheckShortcutBoot( void )
|
|||||||
#ifdef DO_NOT_SHOW_LAUNCHER
|
#ifdef DO_NOT_SHOW_LAUNCHER
|
||||||
if( SYSM_IsExistCard() )
|
if( SYSM_IsExistCard() )
|
||||||
{
|
{
|
||||||
s_bootTitle.flags.isAppRelocate = TRUE;
|
s_bootTitleBuf.flags.isAppRelocate = TRUE;
|
||||||
s_bootTitle.flags.isAppLoadCompleted = TRUE;
|
s_bootTitleBuf.flags.isAppLoadCompleted = TRUE;
|
||||||
s_bootTitle.flags.isInitialShortcutSkip = TRUE; // 初回起動シーケンスを飛ばす
|
s_bootTitleBuf.flags.isInitialShortcutSkip = TRUE; // 初回起動シーケンスを飛ばす
|
||||||
s_bootTitle.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす
|
s_bootTitleBuf.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす
|
||||||
s_bootTitle.flags.bootType = LAUNCHER_BOOTTYPE_ROM;
|
s_bootTitleBuf.flags.bootType = LAUNCHER_BOOTTYPE_ROM;
|
||||||
s_bootTitle.flags.isValid = TRUE;
|
s_bootTitleBuf.flags.isValid = TRUE;
|
||||||
// ROMヘッダバッファのコピー
|
// ROMヘッダバッファのコピー
|
||||||
{
|
{
|
||||||
u16 id = (u16)OS_GetLockID();
|
u16 id = (u16)OS_GetLockID();
|
||||||
@ -341,18 +373,18 @@ static TitleProperty *SYSMi_CheckShortcutBoot( void )
|
|||||||
(void)OS_UnlockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
|
(void)OS_UnlockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
|
||||||
OS_ReleaseLockID( id );
|
OS_ReleaseLockID( id );
|
||||||
}
|
}
|
||||||
s_bootTitle.titleID = *(u64 *)( &SYSM_GetCardRomHeader()->titleID_Lo );
|
s_bootTitleBuf.titleID = *(u64 *)( &SYSM_GetCardRomHeader()->titleID_Lo );
|
||||||
SYSM_SetLogoDemoSkip( s_bootTitle.flags.isLogoSkip );
|
SYSM_SetLogoDemoSkip( s_bootTitleBuf.flags.isLogoSkip );
|
||||||
return &s_bootTitle;
|
return &s_bootTitleBuf;
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
s_bootTitle.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす
|
s_bootTitleBuf.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす
|
||||||
s_bootTitle.titleID = SYSMi_getTitleIdOfMachineSettings();
|
s_bootTitleBuf.titleID = SYSMi_getTitleIdOfMachineSettings();
|
||||||
s_bootTitle.flags.bootType = LAUNCHER_BOOTTYPE_NAND;
|
s_bootTitleBuf.flags.bootType = LAUNCHER_BOOTTYPE_NAND;
|
||||||
s_bootTitle.flags.isValid = TRUE;
|
s_bootTitleBuf.flags.isValid = TRUE;
|
||||||
s_bootTitle.flags.isAppRelocate = FALSE;
|
s_bootTitleBuf.flags.isAppRelocate = FALSE;
|
||||||
s_bootTitle.flags.isAppLoadCompleted = FALSE;
|
s_bootTitleBuf.flags.isAppLoadCompleted = FALSE;
|
||||||
return &s_bootTitle;
|
return &s_bootTitleBuf;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -362,16 +394,16 @@ static TitleProperty *SYSMi_CheckShortcutBoot( void )
|
|||||||
#if 0
|
#if 0
|
||||||
#ifdef ENABLE_INITIAL_SETTINGS_
|
#ifdef ENABLE_INITIAL_SETTINGS_
|
||||||
if( !LCFG_TSD_IsFinishedInitialSetting() ) {
|
if( !LCFG_TSD_IsFinishedInitialSetting() ) {
|
||||||
s_bootTitle.titleID = SYSMi_getTitleIdOfMachineSettings();
|
s_bootTitleBuf.titleID = SYSMi_getTitleIdOfMachineSettings();
|
||||||
if(s_bootTitle.titleID != 0)
|
if(s_bootTitleBuf.titleID != 0)
|
||||||
{
|
{
|
||||||
s_bootTitle.flags.isLogoSkip = TRUE; // 本体設定を起動できる時だけロゴデモを飛ばす
|
s_bootTitleBuf.flags.isLogoSkip = TRUE; // 本体設定を起動できる時だけロゴデモを飛ばす
|
||||||
}
|
}
|
||||||
s_bootTitle.flags.bootType = LAUNCHER_BOOTTYPE_NAND;
|
s_bootTitleBuf.flags.bootType = LAUNCHER_BOOTTYPE_NAND;
|
||||||
s_bootTitle.flags.isValid = TRUE;
|
s_bootTitleBuf.flags.isValid = TRUE;
|
||||||
s_bootTitle.flags.isAppRelocate = FALSE;
|
s_bootTitleBuf.flags.isAppRelocate = FALSE;
|
||||||
s_bootTitle.flags.isAppLoadCompleted = FALSE;
|
s_bootTitleBuf.flags.isAppLoadCompleted = FALSE;
|
||||||
return &s_bootTitle;
|
return &s_bootTitleBuf;
|
||||||
}
|
}
|
||||||
#endif // ENABLE_INITIAL_SETTINGS_
|
#endif // ENABLE_INITIAL_SETTINGS_
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user