(NandInitializer*)Makefileにおいて MARIOCLUB_VERSIONマクロを定義した場合に cert.sys と wrap.bin を書き込む機能を追加しました。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2205 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
kamikawa 2008-08-20 11:15:38 +00:00
parent 5e806507f2
commit f552fcb4ab
13 changed files with 248 additions and 113 deletions

View File

@ -32,14 +32,6 @@ MACRO_FLAGS += -DNAND_INITIALIZER_LIMITED_MODE
#MACRO_FLAGS += -DUSE_WIRELESS_FORCE_DISABLE_SETTING
#============================================================================
#============================================================================
# フォントデータを書き込み可能にする場合定義します。(要:Make Clean
#USE_WRITE_FONT_DATA = TRUE
ifdef USE_WRITE_FONT_DATA
MACRO_FLAGS += -DUSE_WRITE_FONT_DATA
endif
#============================================================================
#============================================================================
# NightlyBuild 用に自動実行させる場合定義します。(要:Make Clean
#USE_FOR_NIGHTLY_AUTO_TEST = TRUE
@ -66,12 +58,8 @@ TITLEID_LO = 0NIA
ifdef USE_FOR_NIGHTLY_AUTO_TEST
TARGET_BIN = NandInitializerForAutoTest.srl
else
ifdef USE_WRITE_FONT_DATA
TARGET_BIN = NandInitializerWithSharedFont.srl
else
TARGET_BIN = NandInitializer.srl
endif
endif
LCFILE_SPEC = ../../NandInitializerRed/ARM9.TWL/ARM9-TS.lsf
ROM_SPEC = ./main.rsf
@ -91,7 +79,6 @@ SRCS = main.c \
process_hw_info.c \
process_wireless_setting.c \
process_fade.c \
process_font.c \
sd_event.c \
hwi.c \
debugger_hw_reset_control.c

View File

@ -30,12 +30,16 @@ MACRO_FLAGS += -DAUTO_FORMAT_MODE
MACRO_FLAGS += -DUSE_WIRELESS_FORCE_DISABLE_SETTING
#============================================================================
#============================================================================
# フォントデータを書き込み可能にする場合定義します。(要:Make Clean
MACRO_FLAGS += -DUSE_WRITE_FONT_DATA
# 各種データを書き込み可能にする場合定義します。(要:Make Clean
# 具体的には TWLFontTable.dat wrap.bin cert.sys の3つです。
MACRO_FLAGS += -DUSE_WRITE_VARIOUS_DATA
#============================================================================
#============================================================================
# マリクラデバッグ用に製品本体での起動を抑制する場合定義します。(要:Make Clean
#MACRO_FLAGS += -DMARIOCLUB_VERSION
# マリクラデバッグ用として作成する場合定義します。(要:Make Clean
# ・自動処理において"nand:/shared2/launcher/wrap.bin"を作成します。
# ・自動処理において開発用CLSの証明書(cert.sys)を書き込みます。
# ・自動処理の最後に本体初期化を行います。
MACRO_FLAGS += -DMARIOCLUB_VERSION
#============================================================================
SYSM_DISABLE_DEBUG = FALSE
@ -73,7 +77,7 @@ SRCS = main.c \
process_norfirm.c \
process_auto.c \
process_fade.c \
process_font.c \
process_write_data.c \
process_mcu.c \
process_wireless_setting.c \
sd_event.c \

View File

@ -26,12 +26,16 @@
MACRO_FLAGS += -DUSE_WIRELESS_FORCE_DISABLE_SETTING
#============================================================================
#============================================================================
# フォントデータを書き込み可能にする場合定義します。(要:Make Clean
MACRO_FLAGS += -DUSE_WRITE_FONT_DATA
# 各種データを書き込み可能にする場合定義します。(要:Make Clean
# 具体的には TWLFontTable.dat wrap.bin cert.sys の3つです。
MACRO_FLAGS += -DUSE_WRITE_VARIOUS_DATA
#============================================================================
#============================================================================
# マリクラデバッグ用に製品本体での起動を抑制する場合定義します。(要:Make Clean
#MACRO_FLAGS += -DMARIOCLUB_VERSION
# マリクラデバッグ用として作成する場合定義します。(要:Make Clean
# ・自動処理において"nand:/shared2/launcher/wrap.bin"を作成します。
# ・自動処理において開発用CLSの証明書(cert.sys)を書き込みます。
# ・自動処理の最後に本体初期化を行います。
#MACRO_FLAGS += -DMARIOCLUB_VERSION
#============================================================================
SYSM_DISABLE_DEBUG = FALSE
@ -69,7 +73,7 @@ SRCS = main.c \
process_norfirm.c \
process_auto.c \
process_fade.c \
process_font.c \
process_write_data.c \
process_mcu.c \
process_wireless_setting.c \
sd_event.c \

View File

@ -33,13 +33,15 @@ extern "C" {
enum {
AUTO_PROCESS_MENU_FORMAT = 0,
AUTO_PROCESS_MENU_HARDWARE_INFO,
#ifdef USE_WRITE_FONT_DATA
AUTO_PROCESS_MENU_FONT_DATA,
#endif // USE_WRITE_FONT_DATA
#ifdef USE_WRITE_VARIOUS_DATA
AUTO_PROCESS_MENU_VARIOUS_DATA,
#endif // USE_WRITE_VARIOUS_DATA
AUTO_PROCESS_MENU_IMPORT_TAD,
AUTO_PROCESS_MENU_IMPORT_NANDFIRM,
AUTO_PROCESS_MENU_MCU,
#ifdef MARIOCLUB_VERSION
AUTO_PROCESS_MENU_MACHINE_INITIALIZE,
#endif // MARIOCLUB_VERSION
AUTO_PROCESS_MENU_NUM
};

View File

@ -1,6 +1,6 @@
/*---------------------------------------------------------------------------*
Project: TwlSDK - NandInitializer
File: process_font.h
File: process_write_data.h
Copyright 2008 Nintendo. All rights reserved.
@ -15,8 +15,8 @@
$Author$
*---------------------------------------------------------------------------*/
#ifndef PROCESS_FONT_H_
#define PROCESS_FONT_H_
#ifndef PROCESS_WRITE_DATA_H_
#define PROCESS_WRITE_DATA_H_
#ifdef __cplusplus
extern "C" {
@ -31,16 +31,19 @@ extern "C" {
*---------------------------------------------------------------------------*/
#define FONT_DATA_FILE_PATH_IN_SDMC "sdmc:/TWLFontTable.dat"
#define FONT_DATA_FILE_PATH_IN_NAND "nand:sys/TWLFontTable.dat"
#define WRAP_DATA_FILE_PATH_IN_NAND "nand:/shared2/launcher/wrap.bin"
#define CERT_DATA_FILE_PATH_IN_ROM "rom:/data/cert.sys"
#define CERT_DATA_FILE_PATH_IN_NAND "nand:/sys/cert.sys"
/*---------------------------------------------------------------------------*
ŠÖ<EFBFBD>è`
*---------------------------------------------------------------------------*/
void* fontProcess0(void);
void* fontProcess1(void);
void* fontProcess2(void);
void* fontProcess3(void);
void* fontProcess4(void);
void* WriteDataProcess0(void);
void* WriteDataProcess1(void);
void* WriteDataProcess2(void);
void* WriteDataProcess3(void);
void* WriteDataProcess4(void);
/*===========================================================================*/
@ -48,7 +51,7 @@ void* fontProcess4(void);
} /* extern "C" */
#endif
#endif /* PROCESS_FONT_H_ */
#endif /* PROCESS_WRITE_DATA_H_ */
/*---------------------------------------------------------------------------*
End of file

View File

@ -223,6 +223,9 @@ RomSpec
{
Offset 0x00000000
Segment ALL
HostRoot $(TWL_IPL_RED_ROOT)/build/systemMenu_tools/NandInitializerRed/data
Root /data
File cert.sys
HostRoot $(PRIVKEY_PATH)
Root /key
File $(HWINFO_PRIVKEY) $(HWID_PRIVKEY)

View File

@ -98,14 +98,6 @@ TwlMain()
(void)OS_EnableIrqMask(OS_IE_FIFO_RECV);
(void)OS_EnableIrq();
(void)GX_VBlankIntr(TRUE);
#ifdef MARIOCLUB_VERSION
// ボンディングオプションが製品なら停止
if (SCFG_ReadBondingOption() == SCFG_OP_PRODUCT)
{
OS_Panic("Bonding Option == PRODUCT\n");
}
#endif // MARIOCLUB_VERSION
// initialize file-system
FS_Init(FS_DMA_NOT_USE);

View File

@ -21,7 +21,7 @@
#include "process_format.h"
#include "process_hw_info.h"
#include "process_import.h"
#include "process_font.h"
#include "process_write_data.h"
#include "process_nandfirm.h"
#include "process_norfirm.h"
#include "process_auto.h"
@ -111,10 +111,10 @@ void* AutoProcess1(void)
case AUTO_PROCESS_MENU_HARDWARE_INFO:
return HWInfoProcess0;
#ifdef USE_WRITE_FONT_DATA
case AUTO_PROCESS_MENU_FONT_DATA:
return fontProcess0;
#endif // USE_WRITE_FONT_DATA
#ifdef USE_WRITE_VARIOUS_DATA
case AUTO_PROCESS_MENU_VARIOUS_DATA:
return WriteDataProcess0;
#endif // USE_WRITE_VARIOUS_DATA
case AUTO_PROCESS_MENU_IMPORT_TAD:
return ImportProcess0;
@ -125,8 +125,10 @@ void* AutoProcess1(void)
case AUTO_PROCESS_MENU_MCU:
return mcuProcess0;
#ifdef MARIOCLUB_VERSION
case AUTO_PROCESS_MENU_MACHINE_INITIALIZE:
return FormatProcess0;
#endif // MARIOCLUB_VERSION
case AUTO_PROCESS_MENU_NUM:
return AutoProcess2;
@ -149,7 +151,7 @@ void* AutoProcess1(void)
void* AutoProcess2(void)
{
int i;
s8 line = 5;
s8 line = 3;
u8 bg_color;
BOOL totalResult = TRUE;
@ -169,13 +171,15 @@ void* AutoProcess2(void)
// ƒ<>ƒjƒ…<C692>[ˆê——
kamiFontPrintf(3, line += 2, FONT_COLOR_BLACK, " FORMAT NAND ");
kamiFontPrintf(3, line += 2, FONT_COLOR_BLACK, " WRITE HARDWARE INFO ");
#ifdef USE_WRITE_FONT_DATA
kamiFontPrintf(3, line += 2, FONT_COLOR_BLACK, " WRITE FONT DATA ");
#endif // USE_WRITE_FONT_DATA
#ifdef USE_WRITE_VARIOUS_DATA
kamiFontPrintf(3, line += 2, FONT_COLOR_BLACK, " WRITE VARIOUS DATA ");
#endif // USE_WRITE_VARIOUS_DATA
kamiFontPrintf(3, line += 2, FONT_COLOR_BLACK, " INPORT TAD FROM SD ");
kamiFontPrintf(3, line += 2, FONT_COLOR_BLACK, " INPORT NANDFIRM FROM SD");
kamiFontPrintf(3, line += 2, FONT_COLOR_BLACK, " WRITE MCU FIRM ");
#ifdef MARIOCLUB_VERSION
kamiFontPrintf(3, line += 2, FONT_COLOR_BLACK, " MACHINE INITIALIZE ");
#endif // MARIOCLUB_VERSION
/*
for (i=0;i<sMenuSelectNo-1;i++)
@ -189,14 +193,14 @@ void* AutoProcess2(void)
switch (gAutoProcessResult[i])
{
case AUTO_PROCESS_RESULT_SUCCESS:
kamiFontPrintf(3, (s16)(7+2*i), FONT_COLOR_GREEN, "OK");
kamiFontPrintf(3, (s16)(5+2*i), FONT_COLOR_GREEN, "OK");
break;
case AUTO_PROCESS_RESULT_FAILURE:
totalResult = FALSE;
kamiFontPrintf(3, (s16)(7+2*i), FONT_COLOR_RED, "NG");
kamiFontPrintf(3, (s16)(5+2*i), FONT_COLOR_RED, "NG");
break;
case AUTO_PROCESS_RESULT_SKIP:
kamiFontPrintf(2, (s16)(7+2*i), FONT_COLOR_PURPLE, "SKIP");
kamiFontPrintf(2, (s16)(5+2*i), FONT_COLOR_PURPLE, "SKIP");
break;
}
}

View File

@ -265,6 +265,8 @@ void* FormatProcess2(void)
#endif //USE_FOR_NIGHTLY_AUTO_TEST
#ifndef NAND_INITIALIZER_LIMITED_MODE
#ifdef MARIOCLUB_VERSION
// Auto—p
if (gAutoFlag)
{
@ -281,6 +283,7 @@ void* FormatProcess2(void)
FADE_OUT_RETURN( AutoProcess2 );
}
}
#endif // MARIOCLUB_VERSION
#endif
return FormatProcess1;

View File

@ -26,7 +26,7 @@
#include "process_auto.h"
#include "process_fade.h"
#include "process_wireless_setting.h"
#include "process_font.h"
#include "process_write_data.h"
#include "process_mcu.h"
#include "cursor.h"
#include "keypad.h"
@ -43,9 +43,9 @@ enum {
MENU_WIRELESS_SETTING,
#endif // USE_WIRELESS_FORCE_DISABLE_SETTING
#ifdef USE_WRITE_FONT_DATA
MENU_FONT_DATA,
#endif // USE_WRITE_FONT_DATA
#ifdef USE_WRITE_VARIOUS_DATA
MENU_WRITE_DATA,
#endif // USE_WRITE_VARIOUS_DATA
#ifndef NAND_INITIALIZER_LIMITED_MODE
MENU_IMPORT_TAD,
@ -81,9 +81,9 @@ static const MenuAndColor sMenuArray[] =
{" WIRELESS FORCE SETTING ", BG_COLOR_YELLOW },
#endif // USE_WIRELESS_FORCE_DISABLE_SETTING
#ifdef USE_WRITE_FONT_DATA
{" WRITE FONT DATA ", BG_COLOR_BROWN },
#endif // USE_WRITE_FONT_DATA
#ifdef USE_WRITE_VARIOUS_DATA
{" WRITE VARIOUS DATA ", BG_COLOR_BROWN },
#endif // USE_WRITE_VARIOUS_DATA
#ifndef NAND_INITIALIZER_LIMITED_MODE
{" IMPORT TAD FROM SD ", BG_COLOR_PINK },
@ -229,10 +229,10 @@ void* TopmenuProcess2(void)
FADE_OUT_RETURN( WirelessSettingProcess0 );
#endif // USE_WIRELESS_FORCE_DISABLE_SETTING
#ifdef USE_WRITE_FONT_DATA
case MENU_FONT_DATA:
FADE_OUT_RETURN( fontProcess0 );
#endif // USE_WRITE_FONT_DATA
#ifdef USE_WRITE_VARIOUS_DATA
case MENU_WRITE_DATA:
FADE_OUT_RETURN( WriteDataProcess0 );
#endif // USE_WRITE_VARIOUS_DATA
#ifndef NAND_INITIALIZER_LIMITED_MODE
case MENU_IMPORT_TAD:

View File

@ -1,6 +1,6 @@
/*---------------------------------------------------------------------------*
Project: TwlSDK - NandInitializer
File: process_font.c
File: process_write_data.c
Copyright 2008 Nintendo. All rights reserved.
@ -15,8 +15,6 @@
$Author$
*---------------------------------------------------------------------------*/
#ifdef USE_WRITE_FONT_DATA
#include <twl.h>
#include <nitro/snd.h>
#include <twl/fatfs.h>
@ -24,7 +22,7 @@
#include "kami_font.h"
#include "kami_pxi.h"
#include "process_topmenu.h"
#include "process_font.h"
#include "process_write_data.h"
#include "process_auto.h"
#include "process_fade.h"
#include "cursor.h"
@ -34,14 +32,22 @@
*---------------------------------------------------------------------------*/
enum {
MENU_FONT=0,
MENU_WRAP,
MENU_CERT,
MENU_RETURN,
NUM_OF_MENU_SELECT
};
/*---------------------------------------------------------------------------*
*---------------------------------------------------------------------------*/
#define NUM_OF_MENU_SELECT 2
#define DOT_OF_MENU_SPACE 16
#define CURSOR_ORIGIN_X 32
#define CURSOR_ORIGIN_Y 56
#define CHAR_OF_MENU_SPACE 2
#define ROUND_UP(value, alignment) \
(((u32)(value) + (alignment-1)) & ~(alignment-1))
@ -57,13 +63,15 @@ static s8 sMenuSelectNo;
*---------------------------------------------------------------------------*/
static BOOL WriteFontData(void);
static BOOL WriteWrapData(void);
static BOOL WriteCertData(void);
/*---------------------------------------------------------------------------*
*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*
Name: font
Name: WriteData
Description:
@ -72,7 +80,7 @@ static BOOL WriteFontData(void);
Returns: next sequence
*---------------------------------------------------------------------------*/
void* fontProcess0(void)
void* WriteDataProcess0(void)
{
int i;
@ -80,15 +88,19 @@ void* fontProcess0(void)
kamiFontClear();
// バージョン表示
kamiFontPrintf(2, 1, FONT_COLOR_BLACK, "Write Font Data");
kamiFontPrintf(2, 1, FONT_COLOR_BLACK, "Write Various Data");
kamiFontPrintf(0, 2, FONT_COLOR_BLACK, "--------------------------------");
// メニュー一覧
kamiFontPrintf(3, 6, FONT_COLOR_BLACK, "+-------------------+-----+");
kamiFontPrintf(3, 7, FONT_COLOR_BLACK, "l WRITE FONT DATA l l");
kamiFontPrintf(3, 8, FONT_COLOR_BLACK, "+-------------------+-----+");
kamiFontPrintf(3, 9, FONT_COLOR_BLACK, "l RETURN l l");
kamiFontPrintf(3, 9, FONT_COLOR_BLACK, "l WRITE WRAP DATA l l");
kamiFontPrintf(3, 10, FONT_COLOR_BLACK, "+-------------------+-----+");
kamiFontPrintf(3, 11, FONT_COLOR_BLACK, "l WRITE CERT.SYS l l");
kamiFontPrintf(3, 12, FONT_COLOR_BLACK, "+-------------------+-----+");
kamiFontPrintf(3, 13, FONT_COLOR_BLACK, "l RETURN l l");
kamiFontPrintf(3, 14, FONT_COLOR_BLACK, "+-------------------+-----+");
// 背景全クリア
for (i=0;i<24;i++)
@ -104,11 +116,11 @@ void* fontProcess0(void)
// カーソル消去
SetCursorPos((u16)200, (u16)200);
FADE_IN_RETURN( fontProcess1 );
FADE_IN_RETURN( WriteDataProcess1 );
}
/*---------------------------------------------------------------------------*
Name: font
Name: WriteData
Description:
@ -117,14 +129,14 @@ void* fontProcess0(void)
Returns: next sequence
*---------------------------------------------------------------------------*/
void* fontProcess1(void)
void* WriteDataProcess1(void)
{
#ifndef NAND_INITIALIZER_LIMITED_MODE
// オート実行用
if (gAutoFlag)
{
sMenuSelectNo = 0;
return fontProcess2;
sMenuSelectNo = MENU_FONT;
return WriteDataProcess2;
}
#endif
@ -144,7 +156,7 @@ void* fontProcess1(void)
// 決定
if (kamiPadIsTrigger(PAD_BUTTON_A))
{
return fontProcess2;
return WriteDataProcess2;
}
// トップメニューへ戻る
else if (kamiPadIsTrigger(PAD_BUTTON_B))
@ -152,11 +164,11 @@ void* fontProcess1(void)
FADE_OUT_RETURN( TopmenuProcess0 );
}
return fontProcess1;
return WriteDataProcess1;
}
/*---------------------------------------------------------------------------*
Name: font
Name: WriteData
Description:
@ -165,45 +177,66 @@ void* fontProcess1(void)
Returns: next sequence
*---------------------------------------------------------------------------*/
void* fontProcess2(void)
void* WriteDataProcess2(void)
{
BOOL result;
s16 y_pos = (s16)(7 + sMenuSelectNo * CHAR_OF_MENU_SPACE);
switch( sMenuSelectNo )
{
case 0:
case MENU_FONT:
result = WriteFontData();
if (result)
{
kamiFontPrintf(25, 7, FONT_COLOR_GREEN, "OK");
}
else
{
kamiFontPrintf(25, 7, FONT_COLOR_RED, "NG");
}
break;
case 1:
case MENU_WRAP:
result = WriteWrapData();
break;
case MENU_CERT:
result = WriteCertData();
break;
case MENU_RETURN:
FADE_OUT_RETURN( TopmenuProcess0 );
}
if (result)
{
kamiFontPrintf(25, y_pos, FONT_COLOR_GREEN, "OK");
}
else
{
kamiFontPrintf(25, y_pos, FONT_COLOR_RED, "NG");
}
#ifndef NAND_INITIALIZER_LIMITED_MODE
// Auto用
if (gAutoFlag)
{
if (result)
{
gAutoProcessResult[AUTO_PROCESS_MENU_FONT_DATA] = AUTO_PROCESS_RESULT_SUCCESS;
FADE_OUT_RETURN( AutoProcess1 );
}
else
{
gAutoProcessResult[AUTO_PROCESS_MENU_FONT_DATA] = AUTO_PROCESS_RESULT_FAILURE;
FADE_OUT_RETURN( AutoProcess2);
static BOOL total_result = TRUE;
total_result &= result;
switch(sMenuSelectNo)
{
case MENU_FONT:
case MENU_WRAP:
#ifdef MARIOCLUB_VERSION
sMenuSelectNo++;
return WriteDataProcess2;
#endif // MARIOCLUB_VERSION
case MENU_CERT:
if (total_result)
{
gAutoProcessResult[AUTO_PROCESS_MENU_VARIOUS_DATA] = AUTO_PROCESS_RESULT_SUCCESS;
FADE_OUT_RETURN( AutoProcess1 );
}
else
{
gAutoProcessResult[AUTO_PROCESS_MENU_VARIOUS_DATA] = AUTO_PROCESS_RESULT_FAILURE;
FADE_OUT_RETURN( AutoProcess2);
}
}
}
#endif
return fontProcess1;
return WriteDataProcess1;
}
/*---------------------------------------------------------------------------*
@ -280,4 +313,110 @@ static BOOL WriteFontData(void)
return result;
}
#endif // USE_WRITE_FONT_DATA
// ダミーのDSメニューラッピング用ファイル作成UIGランチャーが作っているもの
static BOOL WriteWrapData(void)
{
FSFile file;
BOOL open_is_ok;
const int FATFS_CLUSTER_SIZE = 16 * 1024;
// 既に存在するなら何もしない
FS_InitFile(&file);
open_is_ok = FS_OpenFile(&file, WRAP_DATA_FILE_PATH_IN_NAND);
if (open_is_ok)
{
FS_CloseFile(&file);
OS_Printf("%s is already exist.\n", WRAP_DATA_FILE_PATH_IN_NAND);
return TRUE;
}
if( FS_CreateFileAuto( WRAP_DATA_FILE_PATH_IN_NAND, FS_PERMIT_R | FS_PERMIT_W ) )
{
FSFile file;
if( FS_OpenFileEx( &file, WRAP_DATA_FILE_PATH_IN_NAND, FS_FILEMODE_RW ) )
{
(void)FS_SetFileLength( &file, FATFS_CLUSTER_SIZE );
FS_CloseFile( &file );
return TRUE;
}
}
return FALSE;
}
static BOOL WriteCertData(void)
{
FSFile file;
BOOL open_is_ok;
BOOL read_is_ok;
void* pTempBuf;
u32 file_size;
u32 alloc_size;
BOOL result = TRUE;
// nand:/sys/cert.sysが既に存在するなら何もしない
FS_InitFile(&file);
open_is_ok = FS_OpenFile(&file, CERT_DATA_FILE_PATH_IN_NAND);
if (open_is_ok)
{
FS_CloseFile(&file);
OS_Printf("%s is already exist.\n", CERT_DATA_FILE_PATH_IN_NAND);
return TRUE;
}
// ROMファイルオープン
FS_InitFile(&file);
open_is_ok = FS_OpenFile(&file, CERT_DATA_FILE_PATH_IN_ROM);
if (!open_is_ok)
{
OS_Printf("FS_OpenFile(\"%s\") ... ERROR!\n", CERT_DATA_FILE_PATH_IN_ROM);
return FALSE;
}
// ROMファイルリード
file_size = FS_GetFileLength(&file) ;
alloc_size = ROUND_UP(file_size, 32) ;
pTempBuf = OS_Alloc( alloc_size );
SDK_NULL_ASSERT(pTempBuf);
DC_InvalidateRange(pTempBuf, alloc_size);
read_is_ok = FS_ReadFile( &file, pTempBuf, (s32)file_size );
if (!read_is_ok)
{
kamiFontPrintfConsoleEx(CONSOLE_RED, "FS_ReadFile(\"%s\") ... ERROR!\n", CERT_DATA_FILE_PATH_IN_ROM);
FS_CloseFile(&file);
OS_Free(pTempBuf);
return FALSE;
}
// ROMファイルクローズ
FS_CloseFile(&file);
// nand:sys/cert.sys作成
if (!FS_CreateFile(CERT_DATA_FILE_PATH_IN_NAND, FS_PERMIT_R | FS_PERMIT_W))
{
kamiFontPrintfConsoleEx(CONSOLE_RED, "FS_CreateFile(%s) failed.\n", CERT_DATA_FILE_PATH_IN_NAND);
result = FALSE;
}
else
{
// nand:sys/cert.sysオープン
FS_InitFile(&file);
open_is_ok = FS_OpenFileEx(&file, CERT_DATA_FILE_PATH_IN_NAND, FS_FILEMODE_W);
if (!open_is_ok)
{
kamiFontPrintfConsoleEx(CONSOLE_RED, "FS_OpenFile(%s) failed.\n", CERT_DATA_FILE_PATH_IN_NAND);
result = FALSE;
}
// nand:sys/cert.sys書き込み
else if (FS_WriteFile(&file, pTempBuf, (s32)file_size) == -1)
{
kamiFontPrintfConsoleEx(CONSOLE_RED, "FS_WritFile() failed.\n");
result = FALSE;
}
(void)FS_CloseFile(&file);
}
OS_Free(pTempBuf);
return result;
}

View File

@ -63,7 +63,6 @@ static const char *s_pDirList0[] = {
(const char *)"nand:/ticket",
(const char *)"nand:/shared1",
(const char *)"nand:/shared2",
(const char *)"nand:/shared2/launcher",
(const char *)"nand:/import",
(const char *)"nand:/tmp",
NULL,
@ -74,11 +73,6 @@ static const char *s_pDirList1[] = {
NULL,
};
static const FileProperty s_fileList[] = {
{ FATFS_CLUSTER_SIZE, "nand:/shared2/launcher/wrap.bin" },
{ 0, NULL }
};
/*---------------------------------------------------------------------------*
*---------------------------------------------------------------------------*/
@ -220,8 +214,8 @@ ExeFormat(FormatMode format_mode)
if (!CheckDirectory ( "nand2:", s_pDirList1 )) { return FALSE; }
// ファイル生成&チェック
if (!CreateFile( &s_fileList[0] )) { return FALSE; }
if (!CheckFile ( &s_fileList[0] )) { return FALSE; }
// if (!CreateFile( &s_fileList[0] )) { return FALSE; }
// if (!CheckFile ( &s_fileList[0] )) { return FALSE; }
// 成功
return TRUE;