From 9d4aa3c538066d71e02898e91120c7bf04824563 Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@b08762b0-b915-fc4b-9d8c-17b2551a87ff> Date: Wed, 27 Feb 2008 06:59:08 +0000 Subject: [PATCH] =?UTF-8?q?(=E6=9B=B4=E6=96=B0:Akabane=20Jumpei)=20?= =?UTF-8?q?=E3=83=BB=E3=82=AB=E3=83=BC=E3=83=89Type1=E3=81=A8Type2?= =?UTF-8?q?=E3=81=AE=E9=96=A2=E6=95=B0=E3=81=A7=E3=80=81=E5=85=B1=E9=80=9A?= =?UTF-8?q?=E5=8C=96=E3=81=A7=E3=81=8D=E3=82=8B=E3=81=A8=E3=81=93=E3=82=8D?= =?UTF-8?q?=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@753 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../hotsw/ARM7/include/dsCardType2.h | 3 +- .../hotsw/ARM7/src/dsCardType1.c | 20 ++++--- .../hotsw/ARM7/src/dsCardType2.c | 57 +------------------ 3 files changed, 14 insertions(+), 66 deletions(-) diff --git a/build/libraries_sysmenu/hotsw/ARM7/include/dsCardType2.h b/build/libraries_sysmenu/hotsw/ARM7/include/dsCardType2.h index bee08e2b..16d7b172 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/include/dsCardType2.h +++ b/build/libraries_sysmenu/hotsw/ARM7/include/dsCardType2.h @@ -45,8 +45,7 @@ HotSwState ChangeModeSecure_DSType2(CardBootData *cbd); #define ReadIDGame_DSType2 ReadIDGame_DSType1 // DSカードType2のゲームモードの指定ページ読み込み -HotSwState ReadPageGame_DSType2(CardBootData *cbd, u32 start_addr, void* buf, u32 size); -//#define ReadPageGame_DSType2 ReadPageGame_DSType1 +#define ReadPageGame_DSType2 ReadPageGame_DSType1 #ifdef __cplusplus } /* extern "C" */ diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType1.c b/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType1.c index ccf7c5d9..c082a653 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType1.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType1.c @@ -378,9 +378,11 @@ HotSwState ReadIDGame_DSType1(CardBootData *cbd) } /*---------------------------------------------------------------------------* - Name: ReadPageGame_DSType1 - - Description: ゲームモードで、指定されたページを指定バッファに指定サイズ分を読み込む + * Name: ReadPageGame_DSType1 + * + * Description: ゲームモードで、指定されたページを指定バッファに指定サイズ分を読み込む + * + * CT=150ns Pagecount=1page Latency=RomHeaderで指定の値 *---------------------------------------------------------------------------*/ HotSwState ReadPageGame_DSType1(CardBootData *cbd, u32 start_addr, void* buf, u32 size) { @@ -400,6 +402,9 @@ HotSwState ReadPageGame_DSType1(CardBootData *cbd, u32 start_addr, void* buf, u3 return HOTSW_PULLED_OUT_ERROR; } + // NewDMA転送の準備 + HOTSW_NDmaCopy_Card( HOTSW_DMA_NO, (u32 *)HOTSW_MCD1, (u32 *)buf + (u32)(PAGE_WORD_SIZE*i), PAGE_SIZE ); + // ゼロクリア MI_CpuClear8(&cndLE, sizeof(GCDCmd64)); @@ -425,12 +430,9 @@ HotSwState ReadPageGame_DSType1(CardBootData *cbd, u32 start_addr, void* buf, u3 reg_HOTSW_MCCNT1 = cbd->pBootSegBuf->rh.s.game_cmd_param | START_MASK | (PC_MASK & (0x1 << PC_SHIFT)); - // MCCNTレジスタのRDYフラグをポーリングして、フラグが立ったらデータをMCD1レジスタに再度セット。スタートフラグが0になるまでループ。 - while(reg_HOTSW_MCCNT1 & START_FLG_MASK){ - while(!(reg_HOTSW_MCCNT1 & READY_FLG_MASK)){} - *((u32 *)buf + counter++) = reg_HOTSW_MCD1; - } + // カードデータ転送終了割り込みが起こるまで寝る(割り込みハンドラの中で起こされる) + OS_SleepThread(NULL); } return HOTSW_SUCCESS; -} +} \ No newline at end of file diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType2.c b/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType2.c index d25825bf..f4c25240 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType2.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType2.c @@ -427,61 +427,8 @@ HotSwState ChangeModeSecure_DSType2(CardBootData *cbd) /*---------------------------------------------------------------------------* - * Name: ReadPageGame_DSType1 + * Name: ReadPageGame_DSType2 * * Description: ゲームモードで、指定されたページを指定バッファに指定サイズ分を読み込む - * - * CT=150ns Latency1=0x657 Latency2=0x1 Pagecount=1page *---------------------------------------------------------------------------*/ -HotSwState ReadPageGame_DSType2(CardBootData *cbd, u32 start_addr, void* buf, u32 size) -{ - u32 loop, counter=0; - u64 i, page; - GCDCmd64 cndLE, cndBE; - - page = (u32)(start_addr / PAGE_SIZE); - loop = (u32)(size / PAGE_SIZE); - loop = (size % PAGE_SIZE) ? loop + 1 : loop; - -// OS_TPrintf("Src Addr : 0x%08x Dst Addr : 0x%08x\n", start_addr, buf); -// OS_TPrintf("Read Game Segment Page Count : %d size : %x\n", loop, size); - - for(i=0; ipBootSegBuf->rh.s.game_cmd_param | - START_MASK | (PC_MASK & (0x1 << PC_SHIFT)); - - // カードデータ転送終了割り込みが起こるまで寝る(割り込みハンドラの中で起こされる) - OS_SleepThread(NULL); - } - - return HOTSW_SUCCESS; -} \ No newline at end of file +// Type1と同じ \ No newline at end of file