From f552fcb4ab7b44739638356b39dd396f36fcaff2 Mon Sep 17 00:00:00 2001 From: kamikawa Date: Wed, 20 Aug 2008 11:15:38 +0000 Subject: [PATCH] =?UTF-8?q?(NandInitializer*)Makefile=E3=81=AB=E3=81=8A?= =?UTF-8?q?=E3=81=84=E3=81=A6=E3=80=80MARIOCLUB=5FVERSION=E3=83=9E?= =?UTF-8?q?=E3=82=AF=E3=83=AD=E3=82=92=E5=AE=9A=E7=BE=A9=E3=81=97=E3=81=9F?= =?UTF-8?q?=E5=A0=B4=E5=90=88=E3=81=AB=20cert.sys=20=E3=81=A8=20wrap.bin?= =?UTF-8?q?=20=E3=82=92=E6=9B=B8=E3=81=8D=E8=BE=BC=E3=82=80=E6=A9=9F?= =?UTF-8?q?=E8=83=BD=E3=82=92=E8=BF=BD=E5=8A=A0=E3=81=97=E3=81=BE=E3=81=97?= =?UTF-8?q?=E3=81=9F=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@2205 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../NandInitializer/ARM9.TWL/Makefile | 13 -- .../ARM9.TWL/Makefile | 14 +- .../NandInitializerRed/ARM9.TWL/Makefile | 14 +- .../ARM9.TWL/include/process_auto.h | 8 +- .../{process_font.h => process_write_data.h} | 21 +- .../NandInitializerRed/ARM9.TWL/main.rsf | 3 + .../NandInitializerRed/ARM9.TWL/src/main.c | 8 - .../ARM9.TWL/src/process_auto.c | 28 ++- .../ARM9.TWL/src/process_format.c | 3 + .../ARM9.TWL/src/process_topmenu.c | 22 +- .../{process_font.c => process_write_data.c} | 217 ++++++++++++++---- .../NandInitializerRed/data/cert.sys | Bin 0 -> 768 bytes .../common/ARM7/src/formatter.c | 10 +- 13 files changed, 248 insertions(+), 113 deletions(-) rename build/systemMenu_tools/NandInitializerRed/ARM9.TWL/include/{process_font.h => process_write_data.h} (74%) rename build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/{process_font.c => process_write_data.c} (55%) create mode 100644 build/systemMenu_tools/NandInitializerRed/data/cert.sys diff --git a/build/systemMenu_tools/NandInitializer/ARM9.TWL/Makefile b/build/systemMenu_tools/NandInitializer/ARM9.TWL/Makefile index fe220930..8ee5d49b 100644 --- a/build/systemMenu_tools/NandInitializer/ARM9.TWL/Makefile +++ b/build/systemMenu_tools/NandInitializer/ARM9.TWL/Makefile @@ -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 diff --git a/build/systemMenu_tools/NandInitializerProduction/ARM9.TWL/Makefile b/build/systemMenu_tools/NandInitializerProduction/ARM9.TWL/Makefile index f0c4bbc5..31c70f6d 100644 --- a/build/systemMenu_tools/NandInitializerProduction/ARM9.TWL/Makefile +++ b/build/systemMenu_tools/NandInitializerProduction/ARM9.TWL/Makefile @@ -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 \ diff --git a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/Makefile b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/Makefile index 089f4d82..f7446a99 100644 --- a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/Makefile +++ b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/Makefile @@ -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 \ diff --git a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/include/process_auto.h b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/include/process_auto.h index b099515f..c102856a 100644 --- a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/include/process_auto.h +++ b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/include/process_auto.h @@ -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 }; diff --git a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/include/process_font.h b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/include/process_write_data.h similarity index 74% rename from build/systemMenu_tools/NandInitializerRed/ARM9.TWL/include/process_font.h rename to build/systemMenu_tools/NandInitializerRed/ARM9.TWL/include/process_write_data.h index 4c425f97..509c56c0 100644 --- a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/include/process_font.h +++ b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/include/process_write_data.h @@ -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" /*---------------------------------------------------------------------------* 関数定義 *---------------------------------------------------------------------------*/ -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 diff --git a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/main.rsf b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/main.rsf index 87709bac..836d36f3 100644 --- a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/main.rsf +++ b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/main.rsf @@ -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) diff --git a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/main.c b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/main.c index d3e3b270..23fdde79 100644 --- a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/main.c +++ b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/main.c @@ -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); diff --git a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/process_auto.c b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/process_auto.c index 498600fb..a00578c3 100644 --- a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/process_auto.c +++ b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/process_auto.c @@ -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) // メニュー一覧 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 #include #include @@ -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 プロセス0 + Name: WriteData プロセス0 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 プロセス1 + Name: WriteData プロセス1 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 プロセス2 + Name: WriteData プロセス2 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; +} diff --git a/build/systemMenu_tools/NandInitializerRed/data/cert.sys b/build/systemMenu_tools/NandInitializerRed/data/cert.sys new file mode 100644 index 0000000000000000000000000000000000000000..3d40f56a9db3c62e6adc7a03de32da6918856835 GIT binary patch literal 768 zcmZQzWMH&YKFDw48@u`O?Jv92>c!S41fTiSB;erVGv$GpPIQ!pXu~Q-OF8C`R-Cd1 zJ;^7P%BT1GZ|rrh7TmOBLz&OC-Lm^$?AyKmZ1|nV1KyVeZ^ds~t@>H)m~h{L)EBM- zyDfbdYi^yPZggDEwfgC%s{2!4uM~N&B3>J$_%)10R%OL2)2FHHgm71Q?NH5~FhfRJ$oT+8G%Bd|fqR_pQUS zZH60WAKu}o82i?6!Y$LePJxkU&p6xh?R_d9q5pK>Q_fVOGe1)@)K95@XZV%;m92ZP zUH7~o_vft)y`mP=w6DDLTDv61S;f%fz@ul{R(h9${`*wjY7H0PA9pv#VcY$=N?#R! zaWqyW`s$y*zOjp=Ks8{cM)Tqp1t?> Q_x&{=E;0bqF*%_J0PVpB*Z=?k literal 0 HcmV?d00001 diff --git a/build/systemMenu_tools/common/ARM7/src/formatter.c b/build/systemMenu_tools/common/ARM7/src/formatter.c index d24a4af5..07d3e013 100644 --- a/build/systemMenu_tools/common/ARM7/src/formatter.c +++ b/build/systemMenu_tools/common/ARM7/src/formatter.c @@ -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;