From d7c6cb4e6aaf37201d55733b497557ab9ed5253f Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@b08762b0-b915-fc4b-9d8c-17b2551a87ff> Date: Mon, 7 Jan 2008 10:13:44 +0000 Subject: [PATCH] =?UTF-8?q?(=E6=9B=B4=E6=96=B0:Akabane=20Jumpei)=20?= =?UTF-8?q?=E3=83=BBRom=E3=82=A8=E3=83=9F=E3=83=A5=E3=83=AC=E3=83=BC?= =?UTF-8?q?=E3=82=B7=E3=83=A7=E3=83=B3=E6=83=85=E5=A0=B1=E8=AA=AD=E3=81=BF?= =?UTF-8?q?=E9=96=A2=E6=95=B0=E3=82=92=E4=BF=AE=E6=AD=A3?= 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@430 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../hotsw/ARM7/include/dsCardType2.h | 3 -- .../hotsw/ARM7/src/dsCardType2.c | 31 -------------- .../libraries_sysmenu/hotsw/ARM7/src/hotsw.c | 41 +++++++++++++++---- 3 files changed, 33 insertions(+), 42 deletions(-) diff --git a/build/libraries_sysmenu/hotsw/ARM7/include/dsCardType2.h b/build/libraries_sysmenu/hotsw/ARM7/include/dsCardType2.h index 3745f5b7..89e6bed7 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/include/dsCardType2.h +++ b/build/libraries_sysmenu/hotsw/ARM7/include/dsCardType2.h @@ -16,9 +16,6 @@ extern "C" { // Function Describe // =========================================================================== // ■ ノーマルモードのコマンド ■ -// DSカードType2のRomエミュレーションデータの読み込み -void ReadRomEmulationData_DSType2(CardBootData *cbd); - // DSカードType2のノーマルモードのBoot Segment(4Kbyte)読み込み void ReadBootSegNormal_DSType2(CardBootData *cbd); diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType2.c b/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType2.c index 953696a5..39ac7d1a 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType2.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType2.c @@ -29,37 +29,6 @@ static void SetMCSCR(void); // ■--------------------------------------■ // ■ ノーマルモードのコマンド ■ // ■--------------------------------------■ -/*---------------------------------------------------------------------------* - Name: ReadRomEmulationData_DSType2 - - Description: DSカードType2のRomエミュレーションデータの読み込み - *---------------------------------------------------------------------------*/ -void ReadRomEmulationData_DSType2(CardBootData *cbd) -{ - u32 count=0; - u32 temp; - u32 *dst = cbd->romEmuBuf; - - // MCCMD レジスタ設定 - reg_HOTSW_MCCMD0 = 0x3e000000; - reg_HOTSW_MCCMD1 = 0x0; - - // MCCNT1 レジスタ設定 (START = 1 PC = 001(1ページリード)に latency1 = 0x5fe) - reg_HOTSW_MCCNT1 = START_MASK | PC_MASK & (0x1 << PC_SHIFT) | (0x5fe & LATENCY1_MASK); - - // MCCNTレジスタのRDYフラグをポーリングして、フラグが立ったらデータをMCD1レジスタに再度セット。スタートフラグが0になるまでループ。 - while(reg_HOTSW_MCCNT1 & START_FLG_MASK){ - while(!(reg_HOTSW_MCCNT1 & READY_FLG_MASK)){} - if(count >= ROM_EMULATION_START_OFS && count < ROM_EMULATION_END_OFS){ - *dst++ = reg_HOTSW_MCD1; - } - else{ - temp = reg_HOTSW_MCD1; - } - count+=4; - } -} - /*---------------------------------------------------------------------------* Name: ReadIDNormal_DSType2 diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c index 845f77b5..52c01441 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c @@ -46,6 +46,7 @@ static void SetMCSCR(void); static void GenVA_VB_VD(void); static void LoadTable(void); +static void ReadRomEmulationData(void); static void ReadIDNormal(void); static void DecryptObjectFile(void); @@ -242,14 +243,7 @@ BOOL HOTSW_Boot(void) OS_TPrintf(" | Secure Command Latency : 0x%08x\n", s_cbData.pBootSegBuf->rh.s.secure_cmd_latency); // Romエミュレーションデータを取得 - if(s_cbData.cardType == DS_CARD_TYPE_1){ - // Type1の場合 - MI_CpuCopy8(s_cbData.pBootSegBuf->rh.s.reserved_C, s_cbData.romEmuBuf, ROM_EMULATION_DATA_SIZE); - } - else if(s_cbData.cardType == DS_CARD_TYPE_2){ - // Type2の場合 - ReadRomEmulationData_DSType2(&s_cbData); - } + ReadRomEmulationData(); OS_TPrintf("Rom Emulation Data : 0x%08x\n",s_cbData.romEmuBuf[0]); // ROMヘッダCRCを算出してチェック。NintendoロゴCRCも確認。 @@ -572,6 +566,37 @@ static void LoadTable(void) } } +/*---------------------------------------------------------------------------* + Name: ReadRomEmulationData + + Description: Romエミュレーションデータの読み込み + *---------------------------------------------------------------------------*/ +static void ReadRomEmulationData(void) +{ + u32 count=0; + u32 temp; + u32 *dst = &s_cbData.romEmuBuf; + + // MCCMD レジスタ設定 + reg_HOTSW_MCCMD0 = 0x3e000000; + reg_HOTSW_MCCMD1 = 0x0; + + // MCCNT1 レジスタ設定 (START = 1 PC = 001(1ページリード)に latency1 = 0x5fe) + reg_HOTSW_MCCNT1 = START_MASK | PC_MASK & (0x1 << PC_SHIFT) | (0x5fe & LATENCY1_MASK); + + // MCCNTレジスタのRDYフラグをポーリングして、フラグが立ったらデータをMCD1レジスタに再度セット。スタートフラグが0になるまでループ。 + while(reg_HOTSW_MCCNT1 & START_FLG_MASK){ + while(!(reg_HOTSW_MCCNT1 & READY_FLG_MASK)){} + if(count >= ROM_EMULATION_START_OFS && count < ROM_EMULATION_END_OFS){ + *dst++ = reg_HOTSW_MCD1; + } + else{ + temp = reg_HOTSW_MCD1; + } + count+=4; + } +} + /* ----------------------------------------------------------------- * ReadIDNormal関数 *