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_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_
|
||||
SYSMi_GetWork()->is1stCardChecked = TRUE;
|
||||
|
||||
@ -165,7 +165,7 @@ TitleProperty *SYSM_ReadParameters( void )
|
||||
SVC_WaitByLoop( 0x1000 );
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
//-----------------------------------------------------
|
||||
// リセットパラメータの判定(リセットパラメータが有効かどうかは、ARM7でやってくれている)
|
||||
//-----------------------------------------------------
|
||||
@ -232,26 +232,29 @@ TitleProperty *SYSM_ReadParameters( void )
|
||||
// ショートカット起動のチェック
|
||||
static TitleProperty *SYSMi_CheckShortcutBoot( void )
|
||||
{
|
||||
#if 0 // <20>¦–¢ŽÀ‘•
|
||||
static TitleProperty s_bootTitle;
|
||||
|
||||
MI_CpuClear8( &s_bootTitle, sizoef(TitleProperty) );
|
||||
MI_CpuClear8( &s_bootTitle, sizeof(TitleProperty) );
|
||||
|
||||
//-----------------------------------------------------
|
||||
// ISデバッガ起動 or
|
||||
// 量産工程用ショートカットキー or
|
||||
// 検査カード起動
|
||||
//-----------------------------------------------------
|
||||
if( SYSM_IsInspectCard() ||
|
||||
( SYSM_IsExistCard() &&
|
||||
( ( PAD_Read() & PAD_PRODUCTION_SHORTCUT_CARD_BOOT ) ==
|
||||
PAD_PRODUCTION_SHORTCUT_CARD_BOOT ) )
|
||||
) {
|
||||
if( SYSM_GetCardTitleProperty( &s_bootTitle ) ) { // <20>¦–¢ŽÀ‘•
|
||||
if( SYSM_IsExistCard() ) {
|
||||
if( ( SYSMi_GetWork()->isOnDebugger && // ISデバッガが有効かつJTAGがまだ有効でない時
|
||||
!( *(u8 *)( HW_SYS_CONF_BUF + HWi_WSYS09_OFFSET ) & HWi_WSYS09_JTAG_CPUJE_MASK ) ) ||
|
||||
SYSM_IsInspectCard() ||
|
||||
( ( PAD_Read() & PAD_PRODUCTION_SHORTCUT_CARD_BOOT ) ==
|
||||
PAD_PRODUCTION_SHORTCUT_CARD_BOOT )
|
||||
) {
|
||||
s_bootTitle.flags.isAppRelocate = TRUE;
|
||||
s_bootTitle.flags.isAppLoadCompleted = TRUE;
|
||||
s_bootTitle.flags.isInitialShortcutSkip = TRUE; // 初回起動シーケンスを飛ばす
|
||||
s_bootTitle.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす
|
||||
s_bootTitle.flags.media = TITLE_MEDIA_CARD;
|
||||
s_bootTitle.flags.isValid = TRUE;
|
||||
s_bootTitle.titleID = xxxx;
|
||||
s_bootTitle.titleID = *(u64 *)( &SYSM_GetCardRomHeader()->titleID_Lo );
|
||||
SYSM_SetLogoDemoSkip( TRUE );
|
||||
return &s_bootTitle;
|
||||
}
|
||||
@ -260,6 +263,7 @@ static TitleProperty *SYSMi_CheckShortcutBoot( void )
|
||||
//-----------------------------------------------------
|
||||
// TWL設定データ未入力時の初回起動シーケンス起動
|
||||
//-----------------------------------------------------
|
||||
#if 0
|
||||
#ifdef ENABLE_INITIAL_SETTINGS_
|
||||
if( !TSD_IsSetTP() ||
|
||||
!TSD_IsSetLanguage() ||
|
||||
@ -272,8 +276,8 @@ static TitleProperty *SYSMi_CheckShortcutBoot( void )
|
||||
return &s_bootTitle;
|
||||
}
|
||||
#endif // ENABLE_INITIAL_SETTINGS_
|
||||
#endif
|
||||
|
||||
#endif // 0
|
||||
return NULL; // 「ブート内容未定」でリターン
|
||||
}
|
||||
|
||||
|
||||
@ -77,8 +77,9 @@ void TwlMain( void )
|
||||
TP_Init();
|
||||
RTC_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_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共有ワーク構造体
|
||||
typedef struct SYSM_work {
|
||||
@ -78,6 +101,7 @@ typedef struct SYSM_work {
|
||||
u32 nCardID; // カードID
|
||||
|
||||
LauncherParam launcherParam;
|
||||
ISD_RomEmuInfo romEmuInfo;
|
||||
|
||||
// NTR-IPL2のレガシー 最終的には消すと思う
|
||||
BOOL enableCardNormalOnly;
|
||||
@ -120,7 +144,6 @@ typedef struct SDKBootCheckInfo{
|
||||
// カードROMヘッダワークの取得
|
||||
#define SYSM_GetCardRomHeader() ( (ROM_Header_Short *)SYSM_CARD_ROM_HEADER_BUF )
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
Loading…
Reference in New Issue
Block a user