diff --git a/build/systemMenu_RED/NandInitializer/ARM7.TWL/Makefile b/build/systemMenu_RED/NandInitializer/ARM7.TWL/Makefile index c74c5046..14014198 100644 --- a/build/systemMenu_RED/NandInitializer/ARM7.TWL/Makefile +++ b/build/systemMenu_RED/NandInitializer/ARM7.TWL/Makefile @@ -27,10 +27,12 @@ TWL_NO_STD_PCHDR = True #TWL_CODEGEN = THUMB TARGET_TEF = main.tef -LCFILE_SPEC = main.lsf +LCFILE_SPEC = racoon.lsf LCFILE_TEMPLATE = racoon.lcf.template LDRES_TEMPLATE = racoon.response.template +CRT0_O = crt0.LTD.TWL.o + SRCS = main.c \ kami_pxi.c \ formatter.c \ diff --git a/build/systemMenu_RED/NandInitializer/ARM7.TWL/racoon.lcf.template b/build/systemMenu_RED/NandInitializer/ARM7.TWL/racoon.lcf.template index 23068cab..47e69cd0 100644 --- a/build/systemMenu_RED/NandInitializer/ARM7.TWL/racoon.lcf.template +++ b/build/systemMenu_RED/NandInitializer/ARM7.TWL/racoon.lcf.template @@ -10,8 +10,8 @@ # 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:: 2007-11-12#$ -# $Rev: 2249 $ +# $Date:: 2008-03-11#$ +# $Rev: 4670 $ # $Author: terui $ #--------------------------------------------------------------------------- MEMORY @@ -568,15 +568,6 @@ SECTIONS SDK_LTDAUTOLOAD.LTDMAIN.BSS_END = SDK_LTDAUTOLOAD.LTDMAIN.START; SDK_LTDAUTOLOAD.LTDMAIN.SIZE = 0; SDK_LTDAUTOLOAD.LTDMAIN.BSS_SIZE = 0; - -#### SDK_LTDAUTOLOAD.LTDWRAM.START の位置は間違っているかも - SDK_LTDAUTOLOAD.LTDWRAM.START = 0x03800000; - SDK_LTDAUTOLOAD.LTDWRAM.END = SDK_LTDAUTOLOAD.LTDWRAM.START; - SDK_LTDAUTOLOAD.LTDWRAM.BSS_END = SDK_LTDAUTOLOAD.LTDWRAM.START; - SDK_LTDAUTOLOAD.LTDWRAM.SIZE = 0; - SDK_LTDAUTOLOAD.LTDWRAM.BSS_SIZE = 0; -#### - SDK_LTDAUTOLOAD_TOP_START = 0x02e80000; SDK_LTDAUTOLOAD_TOP_SIZE = 4; # STATIC 領域が無い代わりに 4 bytes のダミーがバイナリファイルの先頭に入る # SDK_LTDAUTOLOAD_START = SDK_LTDAUTOLOAD_TOP_START + SDK_LTDAUTOLOAD_TOP_SIZE; @@ -736,12 +727,6 @@ SECTIONS SDK_LTDAUTOLOAD_LTDMAIN_SIZE = SDK_LTDAUTOLOAD.LTDMAIN.SIZE; SDK_LTDAUTOLOAD_LTDMAIN_BSS_SIZE = SDK_LTDAUTOLOAD.LTDMAIN.BSS_SIZE; - SDK_LTDAUTOLOAD_LTDWRAM_START = SDK_LTDAUTOLOAD.LTDWRAM.START; - SDK_LTDAUTOLOAD_LTDWRAM_END = SDK_LTDAUTOLOAD.LTDWRAM.END; - SDK_LTDAUTOLOAD_LTDWRAM_BSS_END = SDK_LTDAUTOLOAD.LTDWRAM.BSS_END; - SDK_LTDAUTOLOAD_LTDWRAM_SIZE = SDK_LTDAUTOLOAD.LTDWRAM.SIZE; - SDK_LTDAUTOLOAD_LTDWRAM_BSS_SIZE = SDK_LTDAUTOLOAD.LTDWRAM.BSS_SIZE; - ######################### LTDAUTOLOAD_INFO ########################## .binary.LTDAUTOLOAD_INFO: { @@ -894,7 +879,7 @@ SECTIONS { ### TWL limited extended static module information WRITEW SDK_LTDAUTOLOAD_TOP_START; # load address - WRITEW 0; # padding + WRITEW SDK_MOUNT_INFO_TABLE; # address of the FS mount information table WRITEW SDK_LTDAUTOLOAD_SIZE + SDK_LTDAUTOLOAD_TOP_SIZE; # size of module WRITEW 0; # padding diff --git a/build/systemMenu_RED/NandInitializer/ARM7.TWL/main.lsf b/build/systemMenu_RED/NandInitializer/ARM7.TWL/racoon.lsf similarity index 59% rename from build/systemMenu_RED/NandInitializer/ARM7.TWL/main.lsf rename to build/systemMenu_RED/NandInitializer/ARM7.TWL/racoon.lsf index ab8888bd..b72242d8 100644 --- a/build/systemMenu_RED/NandInitializer/ARM7.TWL/main.lsf +++ b/build/systemMenu_RED/NandInitializer/ARM7.TWL/racoon.lsf @@ -10,9 +10,9 @@ # 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:: 2007-12-11#$ -# $Rev: 2989 $ -# $Author: terui $ +# $Date:: $ +# $Rev$ +# $Author$ #---------------------------------------------------------------------------- # # Nitro LCF SPEC FILE @@ -21,7 +21,7 @@ Static $(TARGET_NAME) { Address 0x02380000 - Library crt0.LTD.TWL.o + Library $(CRT0_O) Object $(OBJDIR)/initScfg.o StackSize 1024 1024 } @@ -29,7 +29,7 @@ Static $(TARGET_NAME) #-------- Autoload WRAM { - Address 0x037c0000 + Address $(ADDRESS_LTDWRAM) Library libsubpsyscall.a \ libsyscall_sp.twl.a \ @@ -59,6 +59,10 @@ Autoload WRAM Library libsdio_sp$(LIBSUFFIX).a + Library libnvram_sp$(LIBSUFFIX).a + Library librtc_sp$(LIBSUFFIX).a + + Object * (.etable) Object * (.wram) Object * (.ltdwram) @@ -67,13 +71,10 @@ Autoload WRAM Object $(OBJDIR)/formatter.o Object $(OBJDIR)/nvram_misc.o - Library libsea_sp$(LIBSUFFIX).a - Library libcrypto_sp$(LIBSUFFIX).a - # caches in fatfs library, that should be on WRAM. # 2007/12/11 OBJECT() による .bss シンボルのリンクがうまくいかないので、 # 変数定義箇所に pragma で .ltdwram セクションに含まれるように暫定対策しました。 - #Object OBJECT( FATFSi___mem_drives_structures , libfatfs_sp$(LIBSUFFIX).a) (.bss) +# Object OBJECT( FATFSi___mem_drives_structures , libfatfs_sp$(LIBSUFFIX).a) (.bss) ##### # Sub-routines in WL library , that should be on WRAM. @@ -134,9 +135,63 @@ Autoload WRAM Object OBJECT( WaitLoop_BbpAccess , libwl_sp$(LIBSUFFIX).a ) (.text) Object OBJECT( WaitLoop_RfAccess , libwl_sp$(LIBSUFFIX).a ) (.text) +# Object OBJECT( s_ar_cookie_mem , libathdrv_sp$(LIBSUFFIX).a ) (.bss) +# Object OBJECT( nin_ar , libathdrv_sp$(LIBSUFFIX).a ) (.bss) + + Object OBJECT( a_netbuf_alloc_rx , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( a_netbuf_register_rx_callback , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( nin_driver_tx , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( nin_tx_queue_full , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( nin_tx_complete , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( nin_rx , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( ar6000_bitrate_rx , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( ar6000_channelList_rx , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( ar6000_txPwr_rx , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( ar6000_gpio_intr_rx , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( ar6000_gpio_data_rx , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( ar6000_gpio_ack_rx , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( nin_drv_BmiWriteSocReg , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( ar6000_control_tx , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( nin_drv_BmiReadMemory , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( nin_drv_BmiWriteMemory , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( wmi_dix_2_dot3 , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( wmi_control_rx_xtnd , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( wmi_control_rx , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( wmi_cmd_send , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( wmi_cmd_send_xtnd , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( HIFReadWrite , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( HTCAddReceivePkt , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( HTCUnblockRecv , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( HTCFlushRecvBuffers , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( HTCSendPktCompletionHandler , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( HTCIssueSend , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( HTCTrySend , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( HTC_PACKET_DEQUEUE , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( HTCSendPkt , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( HTCFlushSendPkts , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( HTCControlTxComplete , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( HTCControlRecv , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( HTC_ALLOC_CONTROL_TX , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( _ath_delete_timer , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( _ath_untimeout , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( _ath_timeout_ms , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( _ath_init_timer , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( ath_timer_task , libathdrv_sp$(LIBSUFFIX).a ) (.text) + Object OBJECT( timer_wakeup_function , libathdrv_sp$(LIBSUFFIX).a ) (.text) + + Object OBJECT( wpa_sm_rx_eapol , libwpa_sp$(LIBSUFFIX).a ) (.text) + + } +#-------- +Ltdautoload RSVWRAM +{ + Address 0x03040000 + Object * (.rsvwram) + Library libathdrv_sp$(LIBSUFFIX).a (.bss) +} #-------- Ltdautoload LTDMAIN @@ -144,13 +199,14 @@ Ltdautoload LTDMAIN Address 0x02f88000 Object * (.ltdmain) - Library libnvram_sp$(LIBSUFFIX).a - Library librtc_sp$(LIBSUFFIX).a Library libwm_sp$(LIBSUFFIX).a \ libnwm_sp$(LIBSUFFIX).a \ - libathdrv_sp$(LIBSUFFIX).a \ libwvr_sp$(LIBSUFFIX).a \ libwl_sp$(LIBSUFFIX).a + + Library libwpa_sp$(LIBSUFFIX).a + Library libathdrv_sp$(LIBSUFFIX).a + Library libfatfs_sp$(LIBSUFFIX).a \ $(USE_CRYPTO_LIBS) Library $(ISDBG_LIBS_TWL) diff --git a/build/systemMenu_RED/NandInitializer/ARM7.TWL/src/formatter.c b/build/systemMenu_RED/NandInitializer/ARM7.TWL/src/formatter.c index f33aeabd..7f66a6d3 100644 --- a/build/systemMenu_RED/NandInitializer/ARM7.TWL/src/formatter.c +++ b/build/systemMenu_RED/NandInitializer/ARM7.TWL/src/formatter.c @@ -55,14 +55,19 @@ typedef struct FileProperty { //#define NAND_SEPARATE_READ #define FS_READ_BLOCK_SIZE ( 2 * 1024 ) #define FATFS_CLUSTER_SIZE ( 16 * 1024 ) + +// ファイル名やファイルサイズ変更への追従が手間なので +// HWInfoのライト時にLCFGライブラリでリカバリ生成するようにします + // FATFSのクラスタサイズは16KBなので、データサイズが決まっていないものは、余裕を持たせて16KBにしておく -static const FileProperty s_fileList[] = { - { 128, "nand:/sys/ID.sgn" }, // 現状、全部サイズは適当。中身も空。 - { FATFS_CLUSTER_SIZE, "nand:/sys/HWINFO.dat" }, - { FATFS_CLUSTER_SIZE, "nand:/shared1/TWLCFG0.dat" }, - { FATFS_CLUSTER_SIZE, "nand:/shared1/TWLCFG1.dat" }, // ミラー - { 0, NULL }, -}; +//static const FileProperty s_fileList[] = { +// { 128, "nand:/sys/ID.sgn" }, // 現状、全部サイズは適当。中身も空。 +// { LCFG_TWL_HWINFO_FILE_LENGTH, LCFG_TWL_HWINFO_NORMAL_PATH }, +// { LCFG_TWL_HWINFO_FILE_LENGTH, LCFG_TWL_HWINFO_SECURE_PATH }, +// { FATFS_CLUSTER_SIZE, "nand:/shared1/TWLCFG0.dat" }, +// { FATFS_CLUSTER_SIZE, "nand:/shared1/TWLCFG1.dat" }, // ミラー +// { 0, NULL }, +//}; static const char *s_pDirList0[] = { (const char *)"nand:/sys", @@ -214,8 +219,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; diff --git a/build/systemMenu_RED/NandInitializer/ARM9.TWL/src/process_format.c b/build/systemMenu_RED/NandInitializer/ARM9.TWL/src/process_format.c index 2588553f..0eea1723 100644 --- a/build/systemMenu_RED/NandInitializer/ARM9.TWL/src/process_format.c +++ b/build/systemMenu_RED/NandInitializer/ARM9.TWL/src/process_format.c @@ -202,7 +202,7 @@ void* FormatProcess2(void) #ifdef DUMP_NAND_TREE NAMUT_DrawNandTree(); #endif - kamiFontPrintf(24, y_pos, FONT_COLOR_GREEN, " WAIT"); + kamiFontPrintf(24, y_pos, FONT_COLOR_BLACK, " WAIT"); kamiFontLoadScreenData(); if (NAMUT_Format())