From 553d48e178cdfd55af0e320b2a517af30bdb9a14 Mon Sep 17 00:00:00 2001 From: kamikawa Date: Wed, 18 Jun 2008 07:28:17 +0000 Subject: [PATCH] =?UTF-8?q?(NandInitializer)=20Production=E7=94=A8?= =?UTF-8?q?=E3=83=93=E3=83=AB=E3=83=89=E3=81=A7=E3=81=AFFAT=E3=82=A2?= =?UTF-8?q?=E3=82=AF=E3=82=BB=E3=82=B9=E5=89=8D=E3=81=AB=E5=BF=85=E3=81=9A?= =?UTF-8?q?NAND=E3=81=AE=E3=83=95=E3=82=A9=E3=83=BC=E3=83=9E=E3=83=83?= =?UTF-8?q?=E3=83=88=E3=82=92=E8=A1=8C=E3=81=86=E3=82=88=E3=81=86=E3=81=AB?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E3=80=82?= 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@1649 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../ARM9.TWL/include/kami_pxi.h | 1 + .../ARM9.TWL/src/kami_pxi.c | 26 +++++++++++++++++++ .../NandInitializerRed/ARM9.TWL/src/main.c | 14 +++++++--- 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/include/kami_pxi.h b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/include/kami_pxi.h index 32db296c..d6e01575 100644 --- a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/include/kami_pxi.h +++ b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/include/kami_pxi.h @@ -59,6 +59,7 @@ typedef void (*KAMICallback)(KAMIResult result, void *arg); void KamiPxiInit( void ); KAMIResult ExeFormatAsync(FormatMode format_mode, KAMICallback callback); +KAMIResult ExeFormat(FormatMode format_mode); KAMIResult kamiNandIo(u32 block, void* buffer, u32 count, BOOL is_read); KAMIResult kamiNvramIo(u32 address, void* buffer, u32 size, BOOL is_read); KAMIResult kamiMcuWriteFirm(void* buffer ); diff --git a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/kami_pxi.c b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/kami_pxi.c index 08a32565..f73011fd 100644 --- a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/kami_pxi.c +++ b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/kami_pxi.c @@ -131,6 +131,32 @@ KAMIResult ExeFormatAsync(FormatMode format_mode, KAMICallback callback) return KAMI_RESULT_SUCCESS; } +KAMIResult ExeFormat(FormatMode format_mode) +{ + OSIntrMode enabled; + + // ロック + enabled = OS_DisableInterrupts(); + if (kamiWork.lock) + { + (void)OS_RestoreInterrupts(enabled); + return KAMI_RESULT_BUSY; + } + kamiWork.lock = TRUE; + (void)OS_RestoreInterrupts(enabled); + + kamiWork.callback = NULL; + kamiWork.arg = 0; + kamiWork.data = 0; + + if (KamiSendPxiCommand(KAMI_EXE_FORMAT, 1, format_mode)) + { + KamiWaitBusy(); + return (KAMIResult)kamiWork.result; + } + return KAMI_RESULT_SEND_ERROR; +} + /*---------------------------------------------------------------------------* Name: NANDアクセス関数 diff --git a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/main.c b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/main.c index 09b1073c..15470551 100644 --- a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/main.c +++ b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/main.c @@ -103,9 +103,6 @@ TwlMain() // FS_Initの後の方が良い模様 InitAllocation(); - // NAMライブラリ初期化 - NAM_Init( OS_AllocFromMain, OS_FreeToMain); - NAMUT_Init( OS_AllocFromMain, OS_FreeToMain); // 表示関連初期化 InitGraphics(); @@ -131,6 +128,16 @@ TwlMain() #endif kamiFontPrintfConsole( CONSOLE_ORANGE, "+---------------------------+\n"); +#ifdef AUTO_FORMAT_MODE +// 検査工程ではNANDが初期化されていないがその状態でFATにアクセスすると +// 問題があるため強制的にフォーマットを行う + ExeFormat(FORMAT_MODE_QUICK); +#endif + + // NAMライブラリ初期化 + NAM_Init( OS_AllocFromMain, OS_FreeToMain); + NAMUT_Init( OS_AllocFromMain, OS_FreeToMain); + // HWInfo関連の前準備 switch (HWI_Init( OS_AllocFromMain, OS_FreeToMain )) { @@ -148,6 +155,7 @@ TwlMain() break; } + while (1) { kamiPadRead();