From e7279e61d2d996312ff5d93d2ef0c5183f30664c Mon Sep 17 00:00:00 2001 From: nakasima Date: Mon, 31 Mar 2008 10:31:44 +0000 Subject: [PATCH] =?UTF-8?q?ROM=E3=82=A8=E3=83=9F=E3=83=A5=E3=83=AC?= =?UTF-8?q?=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3=E6=83=85=E5=A0=B1=E3=82=92?= =?UTF-8?q?=E5=88=9D=E5=9B=9E=E3=83=AD=E3=83=BC=E3=83=89=E6=99=82=E3=81=97?= =?UTF-8?q?=E3=81=8B=E8=AA=AD=E3=81=BE=E3=81=AA=E3=81=84=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB=E5=A4=89=E6=9B=B4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1018 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../hotsw/ARM7/include/dsCardCommon.h | 2 +- .../hotsw/ARM7/src/dsCardCommon.c | 6 ++-- .../libraries_sysmenu/hotsw/ARM7/src/hotsw.c | 34 +++++++++++-------- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/build/libraries_sysmenu/hotsw/ARM7/include/dsCardCommon.h b/build/libraries_sysmenu/hotsw/ARM7/include/dsCardCommon.h index d075b4b0..19b0bbf1 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/include/dsCardCommon.h +++ b/build/libraries_sysmenu/hotsw/ARM7/include/dsCardCommon.h @@ -38,7 +38,7 @@ HotSwState ChangeModeNormal2(CardBootData *cbd); HotSwState LoadTable(void); // デバッガのROMエミュレーション情報読み込み -HotSwState ReadRomEmulationData(CardBootData *cbd); +HotSwState ReadRomEmulationInfo(CardBootData *cbd); // ■ セキュアモードのコマンド ■ diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/dsCardCommon.c b/build/libraries_sysmenu/hotsw/ARM7/src/dsCardCommon.c index 21545767..236a55c5 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/dsCardCommon.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/dsCardCommon.c @@ -318,11 +318,11 @@ HotSwState LoadTable(void) } /*---------------------------------------------------------------------------* - Name: ReadRomEmulationData + Name: ReadRomEmulationInfo - Description: Romエミュレーションデータの読み込み + Description: Romエミュレーション情報の読み込み *---------------------------------------------------------------------------*/ -HotSwState ReadRomEmulationData(CardBootData *cbd) +HotSwState ReadRomEmulationInfo(CardBootData *cbd) { u32 count=0; u32 temp; diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c index 2f8f3b62..b3db6b78 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c @@ -94,7 +94,6 @@ HotSwState HOTSWi_RefreshBadBlock(u32 romMode); #include static char encrypt_object_key[] ATTRIBUTE_ALIGN(4) = "encryObj"; -static char rom_emu_info[] ATTRIBUTE_ALIGN(4) = "TWLD"; static u16 s_RscLockID; static u16 s_CardLockID; @@ -311,8 +310,7 @@ static HotSwState LoadCardData(void) s_cbData.cardType = (s_cbData.id_nml & HOTSW_ROMID_1TROM_MASK) ? DS_CARD_TYPE_2 : DS_CARD_TYPE_1; { - u8 i; - u8 *romEmuInf = (u8 *)s_cbData.romEmuBuf; + SYSMRomEmuInfo *romEmuInfo = (void *)s_cbData.romEmuBuf; // バナーリードが完了して、フラグ処理が終わるまでARM9と排他制御する LockHotSwRsc(&SYSMi_GetWork()->lockCardRsc); @@ -321,19 +319,27 @@ static HotSwState LoadCardData(void) state = s_funcTable[s_cbData.cardType].ReadBootSegment_N(&s_cbData); retval = (retval == HOTSW_SUCCESS) ? state : retval; - // Romエミュレーション情報を取得 - state = ReadRomEmulationData(&s_cbData); - retval = (retval == HOTSW_SUCCESS) ? state : retval; + // ARM9/7で不整合が発生しないようにRomエミュレーション情報ロードは初回のみ + if ( ! SYSMi_GetWork()->flags.hotsw.is1stCardChecked ) + { + // Romエミュレーション情報を取得 + state = ReadRomEmulationInfo(&s_cbData); + retval = (retval == HOTSW_SUCCESS) ? state : retval; - // 取得したRomエミュレーション情報を比較 - s_cbData.debuggerFlg = TRUE; - for(i=0; i<4; i++){ - if ( rom_emu_info[i] != romEmuInf[i] ){ + // 取得したRomエミュレーション情報を比較 + s_cbData.debuggerFlg = TRUE; + if ( romEmuInfo->magic_code != SYSM_ROMEMU_INFO_MAGIC_CODE ){ s_cbData.debuggerFlg = FALSE; - break; - } - } - if(s_cbData.debuggerFlg){ + } + } + + // 初回のRomエミュレーション情報を使用 + if(s_cbData.debuggerFlg && +#ifndef DEBUG_USED_CARD_SLOT_B_ + romEmuInfo->isEnableSlot1){ +#else + romEmuInfo->isEnableSlot2){ +#endif OS_PutString("Read Debugger\n"); s_cbData.cardType = ROM_EMULATION; s_cbData.gameCommondParam = s_cbData.pBootSegBuf->rh.s.game_cmd_param & ~SCRAMBLE_MASK;