暫定的にhotswライブラリからランチャー側にISデバッガエミュレーション情報を引き渡して、

デバッガ動作ならダイレクトカードブートするよう実装。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@473 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yosiokat 2008-01-16 08:54:21 +00:00
parent 0a1bc0a0aa
commit 4e8d22691b
4 changed files with 46 additions and 14 deletions

View File

@ -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;

View File

@ -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; // 「ブート内容未定」でリターン
}

View File

@ -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);

View File

@ -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