mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
セキュアコマンド初回送信部分の共通化。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@818 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
3b2442607c
commit
8ad7f47288
@ -18,6 +18,7 @@
|
||||
|
||||
// Function prototype -------------------------------------------------------
|
||||
static HotSwState HOTSWi_ChangeModeNormal(CardBootData *cbd, u64 cmd);
|
||||
static void PreSendSecureCommand(CardBootData *cbd, u32 *scrambleMask);
|
||||
|
||||
|
||||
// ===========================================================================
|
||||
@ -324,6 +325,28 @@ static void SetSecureCommand(SecureCommandType type, CardBootData *cbd)
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: PreSendSecureCommand
|
||||
|
||||
Description:
|
||||
*---------------------------------------------------------------------------*/
|
||||
static void PreSendSecureCommand(CardBootData *cbd, u32 *scrambleMask)
|
||||
{
|
||||
// ★ TWL-ROM&NTR-3DM対応
|
||||
if(cbd->cardType == DS_CARD_TYPE_2){
|
||||
// MCCNT1 レジスタ設定
|
||||
reg_HOTSW_MCCNT1 = START_MASK | *scrambleMask | cbd->pBootSegBuf->rh.s.secure_cmd_param;
|
||||
|
||||
// 25ms待ち
|
||||
OS_Sleep(COMMAND_DECRYPTION_WAIT);
|
||||
}
|
||||
// ★ NTR-MROM対応
|
||||
else{
|
||||
*scrambleMask |= TRM_MASK;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* Name: ReadIDSecure
|
||||
*
|
||||
@ -345,19 +368,9 @@ HotSwState ReadIDSecure(CardBootData *cbd)
|
||||
// コマンド作成・設定
|
||||
SetSecureCommand(S_RD_ID, cbd);
|
||||
|
||||
// ★ 3DM対応
|
||||
if(cbd->cardType == DS_CARD_TYPE_2){
|
||||
// MCCNT1 レジスタ設定
|
||||
reg_HOTSW_MCCNT1 = START_MASK | scrambleMask | cbd->pBootSegBuf->rh.s.secure_cmd_param;
|
||||
// コマンド初回送信(NTR-MROMはレイテンシクロック設定変更のみ)
|
||||
PreSendSecureCommand(cbd, &scrambleMask);
|
||||
|
||||
// 25ms待ち
|
||||
OS_Sleep(COMMAND_DECRYPTION_WAIT);
|
||||
}
|
||||
// ★ MROM対応
|
||||
else{
|
||||
scrambleMask |= TRM_MASK;
|
||||
}
|
||||
|
||||
// NewDMA転送の準備
|
||||
HOTSW_NDmaCopy_Card( HOTSW_DMA_NO, (u32 *)HOTSW_MCD1, &cbd->id_scr, sizeof(cbd->id_scr) );
|
||||
|
||||
@ -415,17 +428,8 @@ HotSwState ReadSegSecure(CardBootData *cbd)
|
||||
// MCCMD レジスタ設定
|
||||
HOTSWi_SetCommand(&cndLE);
|
||||
|
||||
if(cbd->cardType == DS_CARD_TYPE_2){
|
||||
// MCCNT1 レジスタ設定
|
||||
reg_HOTSW_MCCNT1 = START_MASK | scrambleMask | cbd->pBootSegBuf->rh.s.secure_cmd_param;
|
||||
|
||||
// 25ms待ち
|
||||
OS_Sleep(COMMAND_DECRYPTION_WAIT);
|
||||
}
|
||||
else{
|
||||
// MROM対応
|
||||
scrambleMask |= TRM_MASK;
|
||||
}
|
||||
// コマンド初回送信(NTR-MROMはレイテンシクロック設定変更のみ)
|
||||
PreSendSecureCommand(cbd, &scrambleMask);
|
||||
|
||||
for(k=0; k<loop; k++){
|
||||
// NewDMA転送の準備
|
||||
@ -470,18 +474,8 @@ HotSwState SwitchONPNGSecure(CardBootData *cbd)
|
||||
// コマンド作成・設定
|
||||
SetSecureCommand(S_PNG_ON, cbd);
|
||||
|
||||
// ★ 3DM対応
|
||||
if(cbd->cardType == DS_CARD_TYPE_2){
|
||||
// MCCNT1 レジスタ設定
|
||||
reg_HOTSW_MCCNT1 = START_MASK | scrambleMask | cbd->pBootSegBuf->rh.s.secure_cmd_param;
|
||||
|
||||
// 25ms待ち
|
||||
OS_Sleep(COMMAND_DECRYPTION_WAIT);
|
||||
}
|
||||
// ★ MROM対応
|
||||
else{
|
||||
scrambleMask |= TRM_MASK;
|
||||
}
|
||||
// コマンド初回送信(NTR-MROMはレイテンシクロック設定変更のみ)
|
||||
PreSendSecureCommand(cbd, &scrambleMask);
|
||||
|
||||
// MCCNT1 レジスタ設定
|
||||
reg_HOTSW_MCCNT1 = START_MASK | scrambleMask | cbd->pBootSegBuf->rh.s.secure_cmd_param | (cbd->secureLatency & LATENCY1_MASK);
|
||||
@ -514,18 +508,8 @@ HotSwState SwitchOFFPNGSecure(CardBootData *cbd)
|
||||
// コマンド作成・設定
|
||||
SetSecureCommand(S_PNG_OFF, cbd);
|
||||
|
||||
// ★ 3DM対応
|
||||
if(cbd->cardType == DS_CARD_TYPE_2){
|
||||
// MCCNT1 レジスタ設定
|
||||
reg_HOTSW_MCCNT1 = START_MASK | scrambleMask | cbd->pBootSegBuf->rh.s.secure_cmd_param;
|
||||
|
||||
// 25ms待ち
|
||||
OS_Sleep(COMMAND_DECRYPTION_WAIT);
|
||||
}
|
||||
// ★ MROM対応
|
||||
else{
|
||||
scrambleMask |= TRM_MASK;
|
||||
}
|
||||
// コマンド初回送信(NTR-MROMはレイテンシクロック設定変更のみ)
|
||||
PreSendSecureCommand(cbd, &scrambleMask);
|
||||
|
||||
// MCCNT1 レジスタ設定
|
||||
reg_HOTSW_MCCNT1 = START_MASK | scrambleMask | cbd->pBootSegBuf->rh.s.secure_cmd_param | (cbd->secureLatency & LATENCY1_MASK);
|
||||
@ -560,18 +544,8 @@ HotSwState ChangeModeSecure(CardBootData *cbd)
|
||||
// コマンド作成・設定
|
||||
SetSecureCommand(S_CHG_MODE, cbd);
|
||||
|
||||
// ★ 3DM対応
|
||||
if(cbd->cardType == DS_CARD_TYPE_2){
|
||||
// MCCNT1 レジスタ設定
|
||||
reg_HOTSW_MCCNT1 = START_MASK | scrambleMask | cbd->pBootSegBuf->rh.s.secure_cmd_param;
|
||||
|
||||
// 25ms待ち
|
||||
OS_Sleep(COMMAND_DECRYPTION_WAIT);
|
||||
}
|
||||
// ★ MROM対応
|
||||
else{
|
||||
scrambleMask |= TRM_MASK;
|
||||
}
|
||||
// コマンド初回送信(NTR-MROMはレイテンシクロック設定変更のみ)
|
||||
PreSendSecureCommand(cbd, &scrambleMask);
|
||||
|
||||
// MCCNT1 レジスタ設定
|
||||
reg_HOTSW_MCCNT1 = START_MASK | scrambleMask | cbd->pBootSegBuf->rh.s.secure_cmd_param | (cbd->secureLatency & LATENCY1_MASK);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user