mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
(更新:Akabane Jumpei)
・ノーマルモード関数統一 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@795 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
833c3f0685
commit
636f35d480
@ -15,12 +15,6 @@ extern "C" {
|
|||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
// Function Describe
|
// Function Describe
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
|
|
||||||
// ■ ノーマルモードのコマンド ■
|
|
||||||
// Rom EmulationのノーマルモードのBoot Segment(4Kbyte)読み込み
|
|
||||||
HotSwState ReadBootSegNormal_ROMEMU(CardBootData *cbd);
|
|
||||||
|
|
||||||
|
|
||||||
// ■ セキュアモードのコマンド ■
|
// ■ セキュアモードのコマンド ■
|
||||||
// Rom EmulationのセキュアモードのID読み込み
|
// Rom EmulationのセキュアモードのID読み込み
|
||||||
HotSwState ReadIDSecure_ROMEMU(CardBootData *cbd);
|
HotSwState ReadIDSecure_ROMEMU(CardBootData *cbd);
|
||||||
@ -38,13 +32,6 @@ HotSwState SwitchOFFPNGSecure_ROMEMU(CardBootData *cbd);
|
|||||||
HotSwState ChangeModeSecure_ROMEMU(CardBootData *cbd);
|
HotSwState ChangeModeSecure_ROMEMU(CardBootData *cbd);
|
||||||
|
|
||||||
|
|
||||||
// ■ ゲームモードのコマンド ■
|
|
||||||
// DSカードType1のゲームモードのID読み込み
|
|
||||||
HotSwState ReadIDGame_ROMEMU(CardBootData *cbd);
|
|
||||||
|
|
||||||
// DSカードType1のゲームモードの指定ページ読み込み
|
|
||||||
HotSwState ReadPageGame_ROMEMU(CardBootData *cbd, u32 start_addr, void* buf, u32 size);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* extern "C" */
|
} /* extern "C" */
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -33,55 +33,7 @@
|
|||||||
|
|
||||||
Description: DSカードType1のノーマルモードのBoot Segment読み込み
|
Description: DSカードType1のノーマルモードのBoot Segment読み込み
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
HotSwState ReadBootSegNormal_ROMEMU(CardBootData *cbd)
|
// 共通
|
||||||
{
|
|
||||||
u32 i,j=0;
|
|
||||||
u64 page = 0;
|
|
||||||
GCDCmd64 tempCnd, cnd;
|
|
||||||
// u32 n = 0;
|
|
||||||
|
|
||||||
for(i=0; i<BOOT_PAGE_NUM; i++){
|
|
||||||
if(!HOTSW_IsCardAccessible()){
|
|
||||||
return HOTSW_PULLED_OUT_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ゼロクリア
|
|
||||||
MI_CpuClear8(&tempCnd, sizeof(GCDCmd64));
|
|
||||||
|
|
||||||
// リトルエンディアンで作って
|
|
||||||
tempCnd.dw = page << 33;
|
|
||||||
|
|
||||||
// ビックエンディアンにする
|
|
||||||
cnd.b[0] = tempCnd.b[7];
|
|
||||||
cnd.b[1] = tempCnd.b[6];
|
|
||||||
cnd.b[2] = tempCnd.b[5];
|
|
||||||
cnd.b[3] = tempCnd.b[4];
|
|
||||||
cnd.b[4] = tempCnd.b[3];
|
|
||||||
cnd.b[5] = tempCnd.b[2];
|
|
||||||
cnd.b[6] = tempCnd.b[1];
|
|
||||||
cnd.b[7] = tempCnd.b[0];
|
|
||||||
|
|
||||||
// MCCMD レジスタ設定
|
|
||||||
reg_HOTSW_MCCMD0 = *(u32 *)cnd.b;
|
|
||||||
reg_HOTSW_MCCMD1 = *(u32 *)&cnd.b[4];
|
|
||||||
|
|
||||||
// MCCNT0 レジスタ設定 (E = 1 I = 1 SEL = 0に)
|
|
||||||
reg_HOTSW_MCCNT0 = (u16)((reg_HOTSW_MCCNT0 & 0x0fff) | 0xc000);
|
|
||||||
|
|
||||||
// MCCNT1 レジスタ設定 (START = 1 PC_MASK PC = 001(1ページリード)に latency1 = 0xd)
|
|
||||||
reg_HOTSW_MCCNT1 = START_MASK | CT_MASK | PC_MASK & (0x1 << PC_SHIFT) | (0xd & LATENCY1_MASK);
|
|
||||||
|
|
||||||
// MCCNTレジスタのRDYフラグをポーリングして、フラグが立ったらデータをMCD1レジスタに再度セット。スタートフラグが0になるまでループ。
|
|
||||||
while(reg_HOTSW_MCCNT1 & START_FLG_MASK){
|
|
||||||
while(!(reg_HOTSW_MCCNT1 & READY_FLG_MASK)){}
|
|
||||||
*(cbd->pBootSegBuf->word + j++) = reg_HOTSW_MCD1;
|
|
||||||
}
|
|
||||||
|
|
||||||
page++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return HOTSW_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: ChangeModeNormal_ROMEMU
|
Name: ChangeModeNormal_ROMEMU
|
||||||
@ -246,7 +198,6 @@ HotSwState ChangeModeSecure_ROMEMU(CardBootData *cbd)
|
|||||||
return HOTSW_SUCCESS;
|
return HOTSW_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ■------------------------------------■
|
// ■------------------------------------■
|
||||||
// ■ ゲームモードのコマンド ■
|
// ■ ゲームモードのコマンド ■
|
||||||
// ■------------------------------------■
|
// ■------------------------------------■
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user