mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
暫定的にhotswライブラリからランチャー側にISデバッガエミュレーション情報を引き渡して、
デバッガ動作ならダイレクトカードブートするよう実装。 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@473 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
0a1bc0a0aa
commit
4e8d22691b
@ -364,6 +364,10 @@ BOOL HOTSW_Boot(void)
|
|||||||
OS_ReleaseLockID( s_cbData.lockID );
|
OS_ReleaseLockID( s_cbData.lockID );
|
||||||
|
|
||||||
OS_TPrintf( "Load Card Time : %dms\n", OS_TicksToMilliSeconds( OS_GetTick() - start ) );
|
OS_TPrintf( "Load Card Time : %dms\n", OS_TicksToMilliSeconds( OS_GetTick() - start ) );
|
||||||
|
|
||||||
|
// [TODO:]暫定処置。ちゃんとした流れでLauncher側に渡すようにする。
|
||||||
|
MI_CpuCopy8( HOTSW_GetRomEmulationBuffer(), &SYSMi_GetWork()->romEmuInfo, ROM_EMULATION_DATA_SIZE );
|
||||||
|
SYSMi_GetWork()->isOnDebugger = s_cbData.debuggerFlg;
|
||||||
|
|
||||||
#ifdef DEBUG_USED_CARD_SLOT_B_
|
#ifdef DEBUG_USED_CARD_SLOT_B_
|
||||||
SYSMi_GetWork()->is1stCardChecked = TRUE;
|
SYSMi_GetWork()->is1stCardChecked = TRUE;
|
||||||
|
|||||||
@ -165,7 +165,7 @@ TitleProperty *SYSM_ReadParameters( void )
|
|||||||
SVC_WaitByLoop( 0x1000 );
|
SVC_WaitByLoop( 0x1000 );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//-----------------------------------------------------
|
//-----------------------------------------------------
|
||||||
// リセットパラメータの判定(リセットパラメータが有効かどうかは、ARM7でやってくれている)
|
// リセットパラメータの判定(リセットパラメータが有効かどうかは、ARM7でやってくれている)
|
||||||
//-----------------------------------------------------
|
//-----------------------------------------------------
|
||||||
@ -232,26 +232,29 @@ TitleProperty *SYSM_ReadParameters( void )
|
|||||||
// ショートカット起動のチェック
|
// ショートカット起動のチェック
|
||||||
static TitleProperty *SYSMi_CheckShortcutBoot( void )
|
static TitleProperty *SYSMi_CheckShortcutBoot( void )
|
||||||
{
|
{
|
||||||
#if 0 // <20>¦–¢ŽÀ‘•
|
|
||||||
static TitleProperty s_bootTitle;
|
static TitleProperty s_bootTitle;
|
||||||
|
|
||||||
MI_CpuClear8( &s_bootTitle, sizoef(TitleProperty) );
|
MI_CpuClear8( &s_bootTitle, sizeof(TitleProperty) );
|
||||||
|
|
||||||
//-----------------------------------------------------
|
//-----------------------------------------------------
|
||||||
|
// ISデバッガ起動 or
|
||||||
// 量産工程用ショートカットキー or
|
// 量産工程用ショートカットキー or
|
||||||
// 検査カード起動
|
// 検査カード起動
|
||||||
//-----------------------------------------------------
|
//-----------------------------------------------------
|
||||||
if( SYSM_IsInspectCard() ||
|
if( SYSM_IsExistCard() ) {
|
||||||
( SYSM_IsExistCard() &&
|
if( ( SYSMi_GetWork()->isOnDebugger && // ISデバッガが有効かつJTAGがまだ有効でない時
|
||||||
( ( PAD_Read() & PAD_PRODUCTION_SHORTCUT_CARD_BOOT ) ==
|
!( *(u8 *)( HW_SYS_CONF_BUF + HWi_WSYS09_OFFSET ) & HWi_WSYS09_JTAG_CPUJE_MASK ) ) ||
|
||||||
PAD_PRODUCTION_SHORTCUT_CARD_BOOT ) )
|
SYSM_IsInspectCard() ||
|
||||||
) {
|
( ( PAD_Read() & PAD_PRODUCTION_SHORTCUT_CARD_BOOT ) ==
|
||||||
if( SYSM_GetCardTitleProperty( &s_bootTitle ) ) { // <20>¦–¢ŽÀ‘•
|
PAD_PRODUCTION_SHORTCUT_CARD_BOOT )
|
||||||
|
) {
|
||||||
|
s_bootTitle.flags.isAppRelocate = TRUE;
|
||||||
|
s_bootTitle.flags.isAppLoadCompleted = TRUE;
|
||||||
s_bootTitle.flags.isInitialShortcutSkip = TRUE; // 初回起動シーケンスを飛ばす
|
s_bootTitle.flags.isInitialShortcutSkip = TRUE; // 初回起動シーケンスを飛ばす
|
||||||
s_bootTitle.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす
|
s_bootTitle.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす
|
||||||
s_bootTitle.flags.media = TITLE_MEDIA_CARD;
|
s_bootTitle.flags.media = TITLE_MEDIA_CARD;
|
||||||
s_bootTitle.flags.isValid = TRUE;
|
s_bootTitle.flags.isValid = TRUE;
|
||||||
s_bootTitle.titleID = xxxx;
|
s_bootTitle.titleID = *(u64 *)( &SYSM_GetCardRomHeader()->titleID_Lo );
|
||||||
SYSM_SetLogoDemoSkip( TRUE );
|
SYSM_SetLogoDemoSkip( TRUE );
|
||||||
return &s_bootTitle;
|
return &s_bootTitle;
|
||||||
}
|
}
|
||||||
@ -260,6 +263,7 @@ static TitleProperty *SYSMi_CheckShortcutBoot( void )
|
|||||||
//-----------------------------------------------------
|
//-----------------------------------------------------
|
||||||
// TWL設定データ未入力時の初回起動シーケンス起動
|
// TWL設定データ未入力時の初回起動シーケンス起動
|
||||||
//-----------------------------------------------------
|
//-----------------------------------------------------
|
||||||
|
#if 0
|
||||||
#ifdef ENABLE_INITIAL_SETTINGS_
|
#ifdef ENABLE_INITIAL_SETTINGS_
|
||||||
if( !TSD_IsSetTP() ||
|
if( !TSD_IsSetTP() ||
|
||||||
!TSD_IsSetLanguage() ||
|
!TSD_IsSetLanguage() ||
|
||||||
@ -272,8 +276,8 @@ static TitleProperty *SYSMi_CheckShortcutBoot( void )
|
|||||||
return &s_bootTitle;
|
return &s_bootTitle;
|
||||||
}
|
}
|
||||||
#endif // ENABLE_INITIAL_SETTINGS_
|
#endif // ENABLE_INITIAL_SETTINGS_
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif // 0
|
|
||||||
return NULL; // 「ブート内容未定」でリターン
|
return NULL; // 「ブート内容未定」でリターン
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -77,8 +77,9 @@ void TwlMain( void )
|
|||||||
TP_Init();
|
TP_Init();
|
||||||
RTC_Init();
|
RTC_Init();
|
||||||
SND_Init();// sound init
|
SND_Init();// sound init
|
||||||
|
|
||||||
|
OS_TPrintf( "SYSM_work size = 0x%x\n", sizeof(SYSM_work) );
|
||||||
|
|
||||||
// 割り込み許可--------------------
|
// 割り込み許可--------------------
|
||||||
(void)OS_SetIrqFunction(OS_IE_V_BLANK, INTR_VBlank);
|
(void)OS_SetIrqFunction(OS_IE_V_BLANK, INTR_VBlank);
|
||||||
(void)OS_EnableIrqMask(OS_IE_V_BLANK);
|
(void)OS_EnableIrqMask(OS_IE_V_BLANK);
|
||||||
|
|||||||
@ -46,6 +46,29 @@ typedef struct TitleID_HiLo {
|
|||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
// データ型定義
|
// データ型定義
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
#define ISD_ROM_EMULATION_INFO_SIZE 0x20 // ROMエミュレーションデータサイズ
|
||||||
|
#define ISD_ROM_EMULATION_INFO_MAGIC_CODE 0x444c5754
|
||||||
|
|
||||||
|
// ISデバッガROMエミュレーション情報
|
||||||
|
typedef struct ISD_RomEmuInfo {
|
||||||
|
// マジックコード(ISD_ROM_EMULATION_INFO_MAGIC_CODEの固定値)
|
||||||
|
u32 magic_code;
|
||||||
|
// フラグ類
|
||||||
|
u32 isEnableSlot1 : 1;
|
||||||
|
u32 isEnableSlot2 : 1;
|
||||||
|
u32 bootSlotNo : 2;
|
||||||
|
u32 isEnableExMainMemory : 1;
|
||||||
|
u32 isBootMachineSettings : 1;
|
||||||
|
u32 isBootSpecifiedNANDApp : 1;
|
||||||
|
u32 isForceNTRMode : 1;
|
||||||
|
u32 isForceBannerViewMode : 1;
|
||||||
|
u32 rsv_flags : 23;
|
||||||
|
// isBootSpecifiedNANDAppで起動するアプリのTitleID
|
||||||
|
u64 titleID;
|
||||||
|
// 予約
|
||||||
|
u8 rsv[ 0x10 ];
|
||||||
|
}ISD_RomEmuInfo;
|
||||||
|
|
||||||
|
|
||||||
// SYSM共有ワーク構造体
|
// SYSM共有ワーク構造体
|
||||||
typedef struct SYSM_work {
|
typedef struct SYSM_work {
|
||||||
@ -78,6 +101,7 @@ typedef struct SYSM_work {
|
|||||||
u32 nCardID; // カードID
|
u32 nCardID; // カードID
|
||||||
|
|
||||||
LauncherParam launcherParam;
|
LauncherParam launcherParam;
|
||||||
|
ISD_RomEmuInfo romEmuInfo;
|
||||||
|
|
||||||
// NTR-IPL2のレガシー 最終的には消すと思う
|
// NTR-IPL2のレガシー 最終的には消すと思う
|
||||||
BOOL enableCardNormalOnly;
|
BOOL enableCardNormalOnly;
|
||||||
@ -120,7 +144,6 @@ typedef struct SDKBootCheckInfo{
|
|||||||
// カードROMヘッダワークの取得
|
// カードROMヘッダワークの取得
|
||||||
#define SYSM_GetCardRomHeader() ( (ROM_Header_Short *)SYSM_CARD_ROM_HEADER_BUF )
|
#define SYSM_GetCardRomHeader() ( (ROM_Header_Short *)SYSM_CARD_ROM_HEADER_BUF )
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user