mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
これまでNandInitializerRed の ARM7コードをほぼそのまま使用していましたが、製品技術部のリクエスト対応を実装するにつれ SystemUpdater には実装すべきでないコードが増えきました。そのためARM7コードを独自に持つ形に変更しました。ビルドスイッチも増えすぎてかえって分雑なため。 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1316 b08762b0-b915-fc4b-9d8c-17b2551a87ff
97 lines
2.8 KiB
C
97 lines
2.8 KiB
C
/*---------------------------------------------------------------------------*
|
||
Project: TwlSDK - NandInitializer
|
||
File: kami_pxi.h
|
||
|
||
Copyright 2008 Nintendo. All rights reserved.
|
||
|
||
These coded instructions, statements, and computer programs contain
|
||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||
Company Ltd., and are protected by Federal copyright law. They may
|
||
not be disclosed to third parties or copied or duplicated in any form,
|
||
in whole or in part, without the prior written consent of Nintendo.
|
||
|
||
$Date:: $
|
||
$Rev$
|
||
$Author$
|
||
*---------------------------------------------------------------------------*/
|
||
|
||
#ifndef TWL_KAMI_TEST_KAMITEST_H_
|
||
#define TWL_KAMI_TEST_KAMITEST_H_
|
||
|
||
#include "fifo.h"
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
定数定義
|
||
*---------------------------------------------------------------------------*/
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
/*===========================================================================*/
|
||
|
||
// 処理結果定義
|
||
typedef enum KAMIResult
|
||
{
|
||
KAMI_RESULT_SUCCESS = 0,
|
||
KAMI_RESULT_SUCCESS_TRUE = 0,
|
||
KAMI_RESULT_SUCCESS_FALSE,
|
||
KAMI_RESULT_INVALID_COMMAND,
|
||
KAMI_RESULT_INVALID_PARAMETER,
|
||
KAMI_RESULT_ILLEGAL_STATUS,
|
||
KAMI_RESULT_BUSY,
|
||
KAMI_RESULT_FATAL_ERROR,
|
||
KAMI_RESULT_SEND_ERROR,
|
||
KAMI_RESULT_MAX
|
||
}
|
||
KAMIResult;
|
||
|
||
|
||
typedef enum {
|
||
FORMAT_MODE_QUICK, // Quickフォーマット
|
||
FORMAT_MODE_FULL // Fullフォーマット(各パーティション内を0xFFで埋める)
|
||
} FormatMode;
|
||
|
||
// コールバック
|
||
typedef void (*KAMICallback)(KAMIResult result, void *arg);
|
||
|
||
|
||
void KamiPxiInit( void );
|
||
|
||
KAMIResult kamiNandIo(u32 block, void* buffer, u32 count, BOOL is_read);
|
||
KAMIResult kamiNvramIo(u32 address, void* buffer, u32 size, BOOL is_read);
|
||
KAMIResult kamiClearNandErrorLog( void );
|
||
|
||
// (重要)
|
||
// ARM7が読み書きするためリード前はInvalidate、ライト前はフラッシュしてください。
|
||
//
|
||
static KAMIResult kamiNandRead(u32 block, void* buffer, u32 count)
|
||
{
|
||
return kamiNandIo(block, buffer, count, TRUE);
|
||
}
|
||
static KAMIResult kamiNandWrite(u32 block, void* buffer, u32 count)
|
||
{
|
||
return kamiNandIo(block, buffer, count, FALSE);
|
||
}
|
||
static KAMIResult kamiNvramRead(u32 adress, void* buffer, u32 size)
|
||
{
|
||
return kamiNvramIo(adress, buffer, size, TRUE);
|
||
}
|
||
static KAMIResult kamiNvramWrite(u32 adress, void* buffer, u32 size)
|
||
{
|
||
return kamiNvramIo(adress, buffer, size, FALSE);
|
||
}
|
||
|
||
/*===========================================================================*/
|
||
|
||
|
||
#ifdef __cplusplus
|
||
} /* extern "C" */
|
||
#endif
|
||
|
||
#endif /* TWL_KAMI_TEST_KAMITEST_H_ */
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
End of file
|
||
*---------------------------------------------------------------------------*/
|