From f2b3144ef67a8730677114963da40b275e6e490a Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@b08762b0-b915-fc4b-9d8c-17b2551a87ff> Date: Thu, 6 Nov 2008 08:44:11 +0000 Subject: [PATCH] =?UTF-8?q?=E6=9C=AC=E4=BD=93=E3=82=BB=E3=82=AD=E3=83=A5?= =?UTF-8?q?=E3=82=A2=E6=83=85=E5=A0=B1=E3=81=AE=E6=89=8B=E5=89=8D6byte?= =?UTF-8?q?=E5=88=86=E3=82=92=E5=80=9F=E3=82=8A=E3=81=A6=E3=80=81RomHeader?= =?UTF-8?q?,=20Secure,=20Secure2=E3=81=AECRC=E6=83=85=E5=A0=B1=E3=82=92?= =?UTF-8?q?=E3=81=9D=E3=81=93=E3=81=AB=E6=A0=BC=E7=B4=8D=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E5=A4=89=E6=9B=B4=E3=80=82=20?= =?UTF-8?q?=E6=A4=9C=E6=9F=BB=E7=94=A8=E3=82=A2=E3=83=97=E3=83=AA=E3=81=B8?= =?UTF-8?q?=E5=80=A4=E3=82=92=E6=B8=A1=E3=81=99=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/branches/20081031_TwlCard_Tester@2660 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c | 13 +++++++++---- include/sysmenu/sysmenu_lib/common/sysmenu_work.h | 5 +---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c index 2532907e..4b3e60a7 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c @@ -59,6 +59,11 @@ #define HOTSW_EXMEMCNT_SELB_SHIFT 10 #endif +// 本体セキュア情報の手前 6byte 分を間借りしてCRC情報を入れておく。 +#define HOTSW_ROM_HEADER_CRC_BUFFER (HW_HW_SECURE_INFO - 0x6) +#define HOTSW_SECURE1_CRC_BUFFER (HW_HW_SECURE_INFO - 0x4) +#define HOTSW_SECURE2_CRC_BUFFER (HW_HW_SECURE_INFO - 0x2) + // enum --------------------------------------------------------------------- typedef enum HotSwCallBackType{ HOTSW_CHANGE_GAMEMODE = 0, @@ -1942,7 +1947,7 @@ static BOOL ChangeCardMode(BOOL forceNtrMode) state = ReadBootSegNormal(&s_cbData); // RomHeaderのCRC16の計算 - SYSMi_GetWork()->flags.hotsw.romHeaderCRC = SVC_GetCRC16( 65535, s_cbData.pBootSegBuf, BOOT_SEGMENT_SIZE ); + *(u16 *)HOTSW_ROM_HEADER_CRC_BUFFER = SVC_GetCRC16( 65535, s_cbData.pBootSegBuf, BOOT_SEGMENT_SIZE ); if(s_isRomEmu){ s_cbData.cardType = ROM_EMULATION; @@ -1965,8 +1970,8 @@ static BOOL ChangeCardMode(BOOL forceNtrMode) state = ReadSecureModeCardData(); // Secure SegmentのCRC16の計算と格納 - SYSMi_GetWork()->flags.hotsw.secure1CRC = SVC_GetCRC16( 65535, s_cbData.pSecureSegBuf, SECURE_SEGMENT_SIZE ); - + *(u16 *)HOTSW_SECURE1_CRC_BUFFER = SVC_GetCRC16( 65535, s_cbData.pSecureSegBuf, SECURE_SEGMENT_SIZE ); + // カード種別の判定 // TWLカード → Game2モード // NTRカード → Gameモード @@ -1993,7 +1998,7 @@ static BOOL ChangeCardMode(BOOL forceNtrMode) state = ReadSecureModeCardData(); // Secure SegmentのCRC16の計算と格納 - SYSMi_GetWork()->flags.hotsw.secure2CRC = SVC_GetCRC16( 65535, s_cbData.pSecure2SegBuf, SECURE_SEGMENT_SIZE ); + *(u16 *)HOTSW_SECURE2_CRC_BUFFER = SVC_GetCRC16( 65535, s_cbData.pSecure2SegBuf, SECURE_SEGMENT_SIZE ); } else{ OS_PutString("---------- Game Mode...\n"); diff --git a/include/sysmenu/sysmenu_lib/common/sysmenu_work.h b/include/sysmenu/sysmenu_lib/common/sysmenu_work.h index 551806a7..9c89c56c 100644 --- a/include/sysmenu/sysmenu_lib/common/sysmenu_work.h +++ b/include/sysmenu/sysmenu_lib/common/sysmenu_work.h @@ -127,12 +127,9 @@ typedef struct SYSM_work { vu8 isCardStateChanged; // カード状態更新フラグ vu8 isBusyHotSW; // 活線挿抜処理中? vu8 isKeyTableLoadReady; // Key Tableのロード準備完了? - vu16 romHeaderCRC; - vu16 secure1CRC; - vu16 secure2CRC; }hotsw; }flags; // 9B - + OSLockWord lockCardRsc ATTRIBUTE_ALIGN(8); // カードリソース排他制御用 OSLockWord lockHotSW; // カードリソース排他制御用 u32 appCardID; // カードID