mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
ARM9からのメッセージでARM7でカードデータを読み出すときに、GameモードのIDチェックを行うコードを追加
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/branches/20080910_debug_dht_phase1@2473 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
0e81e6d409
commit
e0827cccc8
@ -237,6 +237,7 @@ typedef enum HotSwState{
|
||||
HOTSW_BUFFER_OVERRUN_ERROR,
|
||||
HOTSW_MODE_ERROR,
|
||||
HOTSW_ILLEGAL_CARD_ERROR,
|
||||
HOTSW_GAMEMODE_ID_CHECK_ERROR,
|
||||
HOTSW_UNEXPECTED_ERROR
|
||||
} HotSwState;
|
||||
|
||||
|
||||
@ -144,6 +144,8 @@ static u16 s_bondingOp;
|
||||
|
||||
static u32 s_BootSegBufSize, s_SecureSegBufSize, s_Secure2SegBufSize;
|
||||
|
||||
static u32 s_gameID;
|
||||
|
||||
static BootSegmentData *s_pBootSegBuffer;
|
||||
static u32 *s_pSecureSegBuffer;
|
||||
static u32 *s_pSecure2SegBuffer;
|
||||
@ -537,6 +539,9 @@ static HotSwState LoadCardData(void)
|
||||
|
||||
goto finalize;
|
||||
}
|
||||
else{
|
||||
s_gameID = s_cbData.id_gam;
|
||||
}
|
||||
}
|
||||
|
||||
// バナーファイルの読み込み
|
||||
@ -916,6 +921,11 @@ static void ReadCardData(u32 src, u32 dest, u32 size)
|
||||
// カードのロック
|
||||
CARD_LockRom(s_CardLockID);
|
||||
|
||||
ReadIDGame(&s_cbData);
|
||||
if(s_cbData.id_gam != s_gameID){
|
||||
state = HOTSW_GAMEMODE_ID_CHECK_ERROR;
|
||||
}
|
||||
|
||||
while(size > 0 && state == HOTSW_SUCCESS){
|
||||
// --- Boot Segment
|
||||
if(src >= HOTSW_BOOTSEGMENT_AREA_OFS && src < HOTSW_KEYTABLE_AREA_OFS){
|
||||
@ -974,6 +984,13 @@ static void ReadCardData(u32 src, u32 dest, u32 size)
|
||||
dest += sendSize;
|
||||
}
|
||||
|
||||
ReadIDGame(&s_cbData);
|
||||
if(s_cbData.id_gam != s_gameID){
|
||||
if(state == HOTSW_SUCCESS){
|
||||
state = HOTSW_GAMEMODE_ID_CHECK_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
// カードのアンロック
|
||||
CARD_UnlockRom(s_CardLockID);
|
||||
|
||||
@ -1002,6 +1019,10 @@ static void ReadCardData(u32 src, u32 dest, u32 size)
|
||||
retval = CARD_READ_MODE_ERROR;
|
||||
break;
|
||||
|
||||
case HOTSW_GAMEMODE_ID_CHECK_ERROR:
|
||||
retval = CARD_READ_ID_CHECK_ERROR;
|
||||
break;
|
||||
|
||||
default:
|
||||
retval = CARD_READ_UNEXPECTED_ERROR;
|
||||
break;
|
||||
|
||||
@ -43,6 +43,7 @@ typedef enum CardDataReadState {
|
||||
CARD_READ_BUFFER_OVERRUN_ERROR,
|
||||
CARD_READ_MODE_ERROR,
|
||||
CARD_READ_BUSY,
|
||||
CARD_READ_ID_CHECK_ERROR,
|
||||
CARD_READ_UNEXPECTED_ERROR
|
||||
}
|
||||
CardDataReadState;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user