(NandInitializer) Production用ビルドではFATアクセス前に必ずNANDのフォーマットを行うように修正。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1649 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
kamikawa 2008-06-18 07:28:17 +00:00
parent 4fbcac151f
commit 553d48e178
3 changed files with 38 additions and 3 deletions

View File

@ -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 );

View File

@ -131,6 +131,32 @@ KAMIResult ExeFormatAsync(FormatMode format_mode, KAMICallback callback)
return KAMI_RESULT_SUCCESS;
}
KAMIResult ExeFormat(FormatMode format_mode)
{
OSIntrMode enabled;
// ƒ<>ƒbƒN
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アクセス関数

View File

@ -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();