From baca65d35d5d62d815c88e6374b895d5b0755277 Mon Sep 17 00:00:00 2001 From: yosiokat Date: Thu, 29 Nov 2007 08:14:57 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=BBSDK=E3=83=AA=E3=83=93=E3=82=B8?= =?UTF-8?q?=E3=83=A7=E3=83=B32721=E3=81=B8=E3=81=AE=E5=AF=BE=E5=BF=9C?= =?UTF-8?q?=E3=80=82=20=E3=83=BB".wad"=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB?= =?UTF-8?q?=E6=8B=A1=E5=BC=B5=E5=AD=90=E3=82=92=E3=82=92".tad"=E3=81=AB?= =?UTF-8?q?=E5=A4=89=E6=9B=B4=E3=80=82=20=E3=83=BB=E3=82=B3=E3=83=B3?= =?UTF-8?q?=E3=83=9D=E3=83=BC=E3=83=8D=E3=83=B3=E3=83=88hyena.TWL=E3=81=A7?= =?UTF-8?q?=E3=80=81SCFG=E3=83=AC=E3=82=B8=E3=82=B9=E3=82=BF=E3=81=AE?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E3=82=92WRAM=E3=81=8A=E3=82=88=E3=81=B3MMEM?= =?UTF-8?q?=E3=81=AE=E3=82=B7=E3=82=B9=E3=83=86=E3=83=A0=E9=A0=98=E5=9F=9F?= =?UTF-8?q?=E3=81=AB=E9=80=80=E9=81=BF=E3=81=99=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB=E3=81=99=E3=82=8B=E3=80=82=20=E3=83=BB=E3=82=B3?= =?UTF-8?q?=E3=83=B3=E3=83=9D=E3=83=BC=E3=83=8D=E3=83=B3=E3=83=88hyena.TWL?= =?UTF-8?q?=E3=81=A7=E3=80=81=E3=83=AA=E3=82=BB=E3=83=83=E3=83=88=E3=83=91?= =?UTF-8?q?=E3=83=A9=E3=83=A1=E3=83=BC=E3=82=BF=E5=8F=96=E5=BE=97=E6=9D=A1?= =?UTF-8?q?=E4=BB=B6=E3=82=92=E4=BF=AE=E6=AD=A3=E3=81=97=E3=80=81NAND?= =?UTF-8?q?=E3=83=95=E3=82=A1=E3=83=BC=E3=83=A0=E3=81=8C=E3=81=AA=E3=81=84?= =?UTF-8?q?=E5=A0=B4=E5=90=88=E3=82=84=E3=83=87=E3=83=90=E3=83=83=E3=82=AC?= =?UTF-8?q?=E4=B8=8A=E3=81=A7=E3=81=AE=E5=8B=95=E4=BD=9C=E3=81=AB=E5=AF=BE?= =?UTF-8?q?=E5=BF=9C=E3=80=82=20=E3=83=BBTwlIPL=E3=83=AB=E3=83=BC=E3=83=88?= =?UTF-8?q?=E3=81=A7=E3=81=AE=E3=83=93=E3=83=AB=E3=83=89=E3=81=AE=E6=95=B4?= =?UTF-8?q?=E7=90=86=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@290 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- Makefile | 14 +-- Makefile.full | 41 ++++++ Makefile.sysmenu | 11 +- build/buildtools/commondefs.sysmenu | 7 +- build/buildtools/modulerules.sysmenu | 4 +- build/components/hyena.TWL/src/main.c | 73 +++++++++-- build/libraries/os/common/os_boot.c | 2 +- .../libraries_sysmenu/boot/ARM7/src/bootAPI.c | 2 +- .../libraries_sysmenu/boot/ARM9/src/bootAPI.c | 2 +- .../settings/ARM9/src/TWLSettings.c | 8 +- build/libraries_sysmenu/sysmenu/ARM9/Makefile | 2 + build/systemMenu_RED/Launcher/ARM9/Makefile | 7 +- .../MachineSettings/ARM9/Makefile | 6 +- build/systemMenu_RED/PictoChat/ARM9/Makefile | 6 +- doc/SystemMenu_RED繝ェ繝ェ繝シ繧ケ.txt | 117 +++++++++++------- include/sysmenu.h | 1 + .../sysmenu/sysmenu_lib/common/sysmenu_work.h | 6 +- 17 files changed, 202 insertions(+), 107 deletions(-) create mode 100644 Makefile.full diff --git a/Makefile b/Makefile index 88b6fe36..0ae91427 100644 --- a/Makefile +++ b/Makefile @@ -11,9 +11,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:: $ -# $Rev:$ -# $Author:$ +# $Date:: 2007-11-21#$ +# $Rev: 237 $ +# $Author: yosiokat $ #---------------------------------------------------------------------------- include $(TWLIPL_ROOT)/build/buildtools/commondefs @@ -23,14 +23,6 @@ include $(TWLIPL_ROOT)/build/buildtools/commondefs export TWL_ARCHGEN = ALL SUBDIRS = \ - $(TWLSDK_ROOT)/add-ins/NitroWireless \ - $(TWLSDK_ROOT)/build/libraries/ese \ - $(TWLSDK_ROOT)/build/libraries/nam \ - $(TWLSDK_ROOT)/build/libraries/reboot \ - $(TWLSDK_ROOT)/build/libraries/aes \ - $(TWLSDK_ROOT)/build/libraries/spi \ - $(TWLSDK_ROOT)/build/components/racoon.TWL \ - $(TWLSYSTEM_ROOT) \ build #---------------------------------------------------------------------------- diff --git a/Makefile.full b/Makefile.full new file mode 100644 index 00000000..12f7d7cb --- /dev/null +++ b/Makefile.full @@ -0,0 +1,41 @@ +#! make -f +#---------------------------------------------------------------------------- +# Project: TwlFirm - build +# File: Makefile.full +# +# Copyright 2007 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:$ +#---------------------------------------------------------------------------- + +include $(TWLIPL_ROOT)/build/buildtools/commondefs + + +#---------------------------------------------------------------------------- +export TWL_ARCHGEN = ALL + +SUBDIRS = \ + $(TWLSDK_ROOT)/add-ins/NitroWireless \ + $(TWLSDK_ROOT)/build/libraries/spi/ARM9.TWL \ + $(TWLSDK_ROOT)/build/libraries/ese \ + $(TWLSDK_ROOT)/build/libraries/nam \ + $(TWLSDK_ROOT)/build/libraries/reboot \ + $(TWLSDK_ROOT)/build/components/racoon.TWL \ + $(TWLSYSTEM_ROOT) \ + build + + +#---------------------------------------------------------------------------- + +include $(TWLIPL_ROOT)/build/buildtools/modulerules + + +#===== End of Makefile ===== diff --git a/Makefile.sysmenu b/Makefile.sysmenu index 2df7e5e1..a7a14ab2 100644 --- a/Makefile.sysmenu +++ b/Makefile.sysmenu @@ -1,7 +1,7 @@ #! make -f #---------------------------------------------------------------------------- # Project: TwlFirm - build -# File: Makefile +# File: Makefile.sysmenu # # Copyright 2007 Nintendo. All rights reserved. # @@ -23,15 +23,6 @@ include $(TWLIPL_ROOT)/build/buildtools/commondefs export TWL_ARCHGEN = ALL SUBDIRS = \ - $(TWLSDK_ROOT)/add-ins/NitroWireless \ - $(TWLSDK_ROOT)/build/libraries/ese \ - $(TWLSDK_ROOT)/build/libraries/nam \ - $(TWLSDK_ROOT)/build/libraries/reboot \ - $(TWLSDK_ROOT)/build/libraries/aes \ - $(TWLSDK_ROOT)/build/libraries/rtc \ - $(TWLSDK_ROOT)/build/libraries/spi \ - $(TWLSDK_ROOT)/build/components/racoon.TWL \ - $(TWLSYSTEM_ROOT) \ build/libraries_sysmenu\ build/components \ build/systemmenu_RED diff --git a/build/buildtools/commondefs.sysmenu b/build/buildtools/commondefs.sysmenu index 8836d041..85c04610 100644 --- a/build/buildtools/commondefs.sysmenu +++ b/build/buildtools/commondefs.sysmenu @@ -43,12 +43,11 @@ LDEPENDS_RES += $(SYSMENU_BUILDTOOLSDIR)/commondefs.sysmenu ### TWL-commondefs # #include $(TWLSDK_ROOT)/build/buildtools/commondefs -include $(TWLSDK_ROOT)/add-ins/es/commondefs.es include $(NITROSYSTEM_ROOT)/build/buildtools/commondefs -ifneq ($(TARGET_WAD),) -TARGETS += $(TARGET_WAD) +ifneq ($(TARGET_TAD),) +TARGETS += $(TARGET_TAD) endif #---------------------------------------------------------------------------- @@ -86,7 +85,7 @@ MAKEBANNER := $(SYSMENU_TOOLSDIR)/bin/makebanner.exe MAKESYSMENU_RSA_PRVKEY ?= $(SYSMENU_TOOLSDIR)/openssl/rsa_private.der MAKESYSMENU_RSA_PUBKEY ?= $(SYSMENU_TOOLSDIR)/openssl/rsa_public.der -MAKEWAD ?= $(TWLSDK_ROOT)/build/tools/TwlNMenu/data/makeWad.pl +MAKETAD ?= $(TWLSDK_ROOT)/tools/bin/makeTad.pl #---------------------------------------------------------------------------- diff --git a/build/buildtools/modulerules.sysmenu b/build/buildtools/modulerules.sysmenu index 6f1cefca..c8844a80 100644 --- a/build/buildtools/modulerules.sysmenu +++ b/build/buildtools/modulerules.sysmenu @@ -24,8 +24,8 @@ ifndef TWL_SYSMENU_MODULERULES_ include $(NITROSYSTEM_ROOT)/build/buildtools/modulerules -%.wad: $(BINDIR)/$(TARGET_BIN) - $(MAKEWAD) $< $@ +%.tad: $(BINDIR)/$(TARGET_BIN) + $(MAKETAD) $< $@ #---------------------------------------------------------------------------- TWL_SYSMENU_MODULERULES_ = TRUE diff --git a/build/components/hyena.TWL/src/main.c b/build/components/hyena.TWL/src/main.c index ae1bebd5..bc7ed9d0 100644 --- a/build/components/hyena.TWL/src/main.c +++ b/build/components/hyena.TWL/src/main.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include "nvram_sp.h" @@ -65,6 +66,7 @@ /*---------------------------------------------------------------------------* 内部関数定義 *---------------------------------------------------------------------------*/ +static void SetSCFGWork( void ); static void ReadResetParameter( void ); static void PrintDebugInfo(void); static OSHeapHandle InitializeAllocateSystem(void); @@ -83,6 +85,7 @@ extern void SDK_LTDAUTOLOAD_LTDWRAM_BSS_END(void); extern void SDK_LTDAUTOLOAD_LTDMAIN_BSS_END(void); #endif + /*---------------------------------------------------------------------------* Name: TwlSpMain Description: 起動ベクタ。 @@ -97,6 +100,12 @@ TwlSpMain(void) // SYSMワークのクリア MI_CpuClear32( SYSMi_GetWork(), sizeof(SYSM_work) ); + // MMEMサイズチェックは、ARM7の_start内でやっているので、ノーケアでOK. + // SCFGレジスタ→HWi_WSYS04 etc.→system shared領域への値セットは、ランチャー起動時点では行われていないので、 + // ランチャー自身がこれらの値を使うには、自身でこれらの値をセットしてやる必要がある。 + // ランチャーからアプリを起動する際には、reboot.cが + SetSCFGWork(); + // OS 初期化 OS_Init(); OS_InitTick(); @@ -108,9 +117,9 @@ TwlSpMain(void) // Cold/Hotスタート判定 ReadResetParameter(); - // ※カード電源ONして、ROMヘッダのみリード&チェックくらいはやっておきたい + // [TODO:] カード電源ONして、ROMヘッダのみリード&チェックくらいはやっておきたい - SYSMi_GetWork()->isARM9Start = TRUE; // ※HW_RED_RESERVEDはNANDファームでクリアしておいて欲しい + SYSMi_GetWork()->isARM9Start = TRUE; // [TODO:] HW_RED_RESERVEDはNANDファームでクリアしておいて欲しい // ヒープ領域設定 { @@ -190,20 +199,58 @@ TwlSpMain(void) } -// Hot/Coldスタート判定およびリセットパラメータのリード -static void ReadResetParameter( void ) +// システム領域(WRAM & MMEM)にSCFG情報をセット +static void SetSCFGWork( void ) { - MCU_GetFreeRegisters( 0, (u8 *)HW_RESET_PARAMETER_BUF, 1 ); + // SCFGレジスタが有効な場合のみセット + if( reg_SCFG_EXT & REG_SCFG_EXT_CFG_MASK ) { + // WRAMのシステム領域にセット + u32 *wsys4 = (void*)HWi_WSYS04_ADDR; + u8 *wsys8 = (void*)HWi_WSYS08_ADDR; + u8 *wsys9 = (void*)HWi_WSYS09_ADDR; + // copy scfg registers + *wsys4 = reg_SCFG_EXT; + *wsys8 = (u8)(((reg_SCFG_OP & REG_SCFG_OP_OPT_MASK)) | + ((reg_SCFG_A9ROM & (REG_SCFG_A9ROM_RSEL_MASK | REG_SCFG_A9ROM_SEC_MASK)) << (HWi_WSYS08_ROM_ARM9SEC_SHIFT - REG_SCFG_A9ROM_SEC_SHIFT)) | + ((reg_SCFG_A7ROM & (REG_SCFG_A7ROM_RSEL_MASK | REG_SCFG_A7ROM_SEC_MASK | REG_SCFG_A7ROM_FUSE_MASK)) << (HWi_WSYS08_ROM_ARM7SEC_SHIFT - REG_SCFG_A7ROM_SEC_SHIFT)) | + ((reg_SCFG_WL & REG_SCFG_WL_OFFB_MASK) << (HWi_WSYS08_WL_OFFB_SHIFT - REG_SCFG_WL_OFFB_SHIFT)) + ); + *wsys9 = (u8)((*wsys9 & (HWi_WSYS09_JTAG_DSPJE_MASK | HWi_WSYS09_JTAG_CPUJE_MASK | HWi_WSYS09_JTAG_ARM7SEL_MASK)) | + ((reg_SCFG_JTAG & (REG_SCFG_JTAG_CPUJE_MASK | REG_SCFG_JTAG_ARM7SEL_MASK))) | + ((reg_SCFG_JTAG & REG_SCFG_JTAG_DSPJE_MASK) >> (REG_SCFG_JTAG_DSPJE_SHIFT - HWi_WSYS09_JTAG_DSPJE_SHIFT)) | + ((reg_SCFG_CLK & (REG_SCFG_CLK_AESHCLK_MASK | REG_SCFG_CLK_SD2HCLK_MASK | REG_SCFG_CLK_SD1HCLK_MASK)) << (HWi_WSYS09_CLK_SD1HCLK_SHIFT - REG_SCFG_CLK_SD1HCLK_SHIFT)) | + ((reg_SCFG_CLK & (REG_SCFG_CLK_SNDMCLK_MASK | REG_SCFG_CLK_WRAMHCLK_MASK)) >> (REG_SCFG_CLK_WRAMHCLK_SHIFT - HWi_WSYS09_CLK_WRAMHCLK_SHIFT)) + ); + + // MMEMのシステム領域にコピー + MI_CpuCopy8( (void*)HWi_WSYS04_ADDR, (void *)HW_SYS_CONF_BUF, 6 ); + } +} + +static BOOL IsEnableJTAG( void ) +{ + // SCFGレジスタが無効になっていたら、SCFGレジスタの値は"0"になるので、WRAMに退避している値をチェックする。 + u8 value = ( reg_SCFG_EXT & REG_SCFG_EXT_CFG_MASK ) ? + (u8)( reg_SCFG_JTAG & REG_SCFG_JTAG_CPUJE_MASK ) : + (u8)( *(u8 *)HWi_WSYS09_ADDR & HWi_WSYS09_JTAG_CPUJE_MASK ); + return value ? TRUE : FALSE; +} + +// Hot/Coldスタート判定およびリセットパラメータのリード +#define MCU_RESET_VALUE_BUF_ENABLE_MASK 0x80000000 +#define MCU_RESET_VALUE_OFS 0 +#define MCU_RESET_VALUE_LEN 1 +void ReadResetParameter( void ) +{ + if( ( *(u32 *)HW_RESET_PARAMETER_BUF & MCU_RESET_VALUE_BUF_ENABLE_MASK ) == 0 ) { + (void)MCU_GetFreeRegisters( MCU_RESET_VALUE_OFS, (u8 *)HW_RESET_PARAMETER_BUF, MCU_RESET_VALUE_LEN ); + } - // Hot/Coldスタート判定 -#ifdef SDK_FINALROM - if( SYSMi_GetMCUFreeRegisterValue() == 0 ) // マイコンフリーレジスタ値が"0"ならColdスタート -#else - if( 1 ) // ISデバッガでのデバッグ動作時に常にホットスタート判定されるのを防ぐ -#endif - { + // Hot/Coldスタート判定 + if( IsEnableJTAG() || // ISデバッガでのデバッグ動作時に常にホットスタート判定されるのを防ぐ + ( SYSMi_GetMCUFreeRegisterValue() == 0 ) ) { // "JTAG有効"か"マイコンフリーレジスタ値=0"ならColdスタート u8 data = 1; - MCU_SetFreeRegisters( 0, &data, 1 ); + MCU_SetFreeRegisters( MCU_RESET_VALUE_OFS, &data, MCU_RESET_VALUE_LEN ); // マイコンフリーレジスタにホットスタートフラグをセット SYSMi_GetWork()->isHotStart = FALSE; }else { SYSMi_GetWork()->isHotStart = TRUE; diff --git a/build/libraries/os/common/os_boot.c b/build/libraries/os/common/os_boot.c index 18bab2f7..1e8b6c9d 100644 --- a/build/libraries/os/common/os_boot.c +++ b/build/libraries/os/common/os_boot.c @@ -42,7 +42,7 @@ void OS_BootWithRomHeaderFromFIRM( ROM_Header* rom_header ) void *stack_top = (void*)OS_BOOT_STACK_TOP; // (HW_WRAM_AREA_END - HW_PRV_WRAM_SYSRV_SIZE - HW_SVC_STACK_SIZE) #endif void *wram_reg = rom_header->s.main_wram_config_data; - REBOOTTarget target = REBOOT_TARGET_NAND_MENU; + REBOOTTarget target = REBOOT_TARGET_TWL_SYSTEM; BOOL scfg = TRUE; // no touch BOOL jtag = FALSE; // no touch static u32 clr_list[32]; diff --git a/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c b/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c index 857af23c..8c6a17ba 100644 --- a/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c +++ b/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c @@ -78,7 +78,7 @@ BOOL BOOT_WaitStart( void ) NULL }; // [TODO]起動するターゲットの種類を指定する必要あり - OS_Boot( (void *)*(u32 *)(HW_TWL_ROM_HEADER_BUF + 0x34), clr_list, REBOOT_TARGET_NAND_APP); + OS_Boot( (void *)*(u32 *)(HW_TWL_ROM_HEADER_BUF + 0x34), clr_list, REBOOT_TARGET_TWL_SYSTEM ); } } return FALSE; diff --git a/build/libraries_sysmenu/boot/ARM9/src/bootAPI.c b/build/libraries_sysmenu/boot/ARM9/src/bootAPI.c index c16b1cfb..05aae74e 100644 --- a/build/libraries_sysmenu/boot/ARM9/src/bootAPI.c +++ b/build/libraries_sysmenu/boot/ARM9/src/bootAPI.c @@ -103,7 +103,7 @@ void BOOT_Ready( void ) NULL }; // [TODO]起動するターゲットの種類を指定する必要あり - OS_Boot( (void *)*(u32 *)(HW_TWL_ROM_HEADER_BUF + 0x24), clr_list, REBOOT_TARGET_NAND_APP ); + OS_Boot( (void *)*(u32 *)(HW_TWL_ROM_HEADER_BUF + 0x24), clr_list, REBOOT_TARGET_TWL_SYSTEM ); } } diff --git a/build/libraries_sysmenu/settings/ARM9/src/TWLSettings.c b/build/libraries_sysmenu/settings/ARM9/src/TWLSettings.c index 6499e174..48dc421a 100644 --- a/build/libraries_sysmenu/settings/ARM9/src/TWLSettings.c +++ b/build/libraries_sysmenu/settings/ARM9/src/TWLSettings.c @@ -273,7 +273,7 @@ static int TSDi_RecoveryTSDFile( TSDStore *pTSDStoreOrg, u8 existErrFlag, u8 len // ファイル生成 if( existErrFlag & ( 0x01 << i ) ) { if( !FS_CreateFile( s_TSDPath[ i ], FS_PERMIT_R | FS_PERMIT_W ) ) { - OS_TPrintf( " TSD[%d] : create file error.\n" ); + OS_TPrintf( " TSD[%d] : create file error.\n", i ); continue; } existErrFlag ^= 0x01 << i; @@ -281,14 +281,14 @@ static int TSDi_RecoveryTSDFile( TSDStore *pTSDStoreOrg, u8 existErrFlag, u8 len // ファイルオープン if( !FS_OpenFileEx( &file, s_TSDPath[ i ], FS_FILEMODE_R | FS_FILEMODE_W ) ) { - OS_TPrintf( " TSD[%d] : file open error.\n" ); + OS_TPrintf( " TSD[%d] : file open error.\n", i ); continue; } // ファイル長変更 if( lengthErrFlag & ( 0x01 << i ) ) { if( FS_SetFileLength( &file, DEFAULT_TSD_FILE_LENGTH ) != FS_RESULT_SUCCESS ) { - OS_TPrintf( " TSD[%d] : set file length error.\n" ); + OS_TPrintf( " TSD[%d] : set file length error.\n", i ); goto NEXT; } lengthErrFlag ^= 0x01 << i; @@ -298,7 +298,7 @@ static int TSDi_RecoveryTSDFile( TSDStore *pTSDStoreOrg, u8 existErrFlag, u8 len if( dataErrFlag & ( 0x01 << i ) ) { if( pTSDStoreOrg ) { if( FS_WriteFile( &file, pTSDStoreOrg, sizeof(TSDStore) ) != sizeof(TSDStore) ) { - OS_TPrintf( " TSD[%d] : write file length error.\n" ); + OS_TPrintf( " TSD[%d] : write file length error.\n", i ); goto NEXT; } }else { diff --git a/build/libraries_sysmenu/sysmenu/ARM9/Makefile b/build/libraries_sysmenu/sysmenu/ARM9/Makefile index 68adb430..e96569a7 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/Makefile +++ b/build/libraries_sysmenu/sysmenu/ARM9/Makefile @@ -31,6 +31,7 @@ SRCS = sysmenu_lib.c sysmenu_card.c sysmenu_util.c ninLogoFunc.c \ TARGET_LIB = libsysmenu$(TWL_LIBSUFFIX).a +include $(TWLSDK_ROOT)/add-ins/es/commondefs.es include $(TWLIPL_ROOT)/build/buildtools/commondefs INSTALL_TARGETS = $(TARGETS) @@ -39,6 +40,7 @@ INSTALL_DIR = $(SYSMENU_INSTALL_LIBDIR) LINCLUDES = $(TWLSDK_ROOT)/build/libraries/mb/common/include \ $(TWLSDK_ROOT)/build/libraries/spi/ARM9/include \ + #---------------------------------------------------------------------------- do-build: $(MYSUBDIRS) $(TARGETS) diff --git a/build/systemMenu_RED/Launcher/ARM9/Makefile b/build/systemMenu_RED/Launcher/ARM9/Makefile index 1692048f..ea335a13 100644 --- a/build/systemMenu_RED/Launcher/ARM9/Makefile +++ b/build/systemMenu_RED/Launcher/ARM9/Makefile @@ -30,7 +30,7 @@ TARGET_PLATFORM = TWL TWL_ARCHGEN = LIMITED TITLEID_LO = LNCR -TARGET_WAD = $(BINDIR)/$(TITLEID_LO).wad +TARGET_TAD = $(BINDIR)/$(TITLEID_LO).tad TARGET_BIN = main.srl @@ -60,11 +60,12 @@ DEFAULT_COMP_ARM7 = hyena MAKEROM_FLAGS += -F -DTITLEID_LO='$(TITLEID_LO)' +include $(TWLSDK_ROOT)/add-ins/es/commondefs.es include $(TWLIPL_ROOT)/build/buildtools/commondefs include $(TWLSDK_ROOT)/build/libraries/reboot/commondefs.reboot -LDIRT_CLEAN = $(TARGET_WAD) -INSTALL_TARGETS = $(TARGET_WAD) +LDIRT_CLEAN = $(TARGET_TAD) +INSTALL_TARGETS = $(TARGET_TAD) INSTALL_DIR = $(SDK_NMENU_DATADIR) #---------------------------------------------------------------------------- diff --git a/build/systemMenu_RED/MachineSettings/ARM9/Makefile b/build/systemMenu_RED/MachineSettings/ARM9/Makefile index 866a22aa..681fef9f 100644 --- a/build/systemMenu_RED/MachineSettings/ARM9/Makefile +++ b/build/systemMenu_RED/MachineSettings/ARM9/Makefile @@ -25,7 +25,7 @@ TARGET_PLATFORM = TWL TWL_ARCHGEN = LIMITED TITLEID_LO = MSET -TARGET_WAD = $(BINDIR)/$(TITLEID_LO).wad +TARGET_TAD = $(BINDIR)/$(TITLEID_LO).tad TARGET_BIN = main.srl @@ -50,8 +50,8 @@ LLIBRARIES += libreset_param$(TWL_LIBSUFFIX).a include $(TWLIPL_ROOT)/build/buildtools/commondefs -LDIRT_CLEAN = $(TARGET_WAD) -INSTALL_TARGETS = $(TARGET_WAD) +LDIRT_CLEAN = $(TARGET_TAD) +INSTALL_TARGETS = $(TARGET_TAD) INSTALL_DIR = $(SDK_NMENU_DATADIR) #---------------------------------------------------------------------------- diff --git a/build/systemMenu_RED/PictoChat/ARM9/Makefile b/build/systemMenu_RED/PictoChat/ARM9/Makefile index 6f24361a..c5c621a1 100644 --- a/build/systemMenu_RED/PictoChat/ARM9/Makefile +++ b/build/systemMenu_RED/PictoChat/ARM9/Makefile @@ -25,7 +25,7 @@ TARGET_PLATFORM = TWL TWL_ARCHGEN = LIMITED TITLEID_LO = PCHT -TARGET_WAD = $(BINDIR)/$(TITLEID_LO).wad +TARGET_TAD = $(BINDIR)/$(TITLEID_LO).tad TARGET_BIN = main.srl @@ -43,8 +43,8 @@ MAKEROM_FLAGS += -DTITLEID_LO='$(TITLEID_LO)' include $(TWLIPL_ROOT)/build/buildtools/commondefs -LDIRT_CLEAN = $(TARGET_WAD) -INSTALL_TARGETS = $(TARGET_WAD) +LDIRT_CLEAN = $(TARGET_TAD) +INSTALL_TARGETS = $(TARGET_TAD) INSTALL_DIR = $(SDK_NMENU_DATADIR) #---------------------------------------------------------------------------- diff --git a/doc/SystemMenu_RED繝ェ繝ェ繝シ繧ケ.txt b/doc/SystemMenu_RED繝ェ繝ェ繝シ繧ケ.txt index bb3b084d..26c8cad2 100644 --- a/doc/SystemMenu_RED繝ェ繝ェ繝シ繧ケ.txt +++ b/doc/SystemMenu_RED繝ェ繝ェ繝シ繧ケ.txt @@ -1,60 +1,85 @@ SystemMenu_RED - -11/16(金) 1st.リリース予定 - ・ランチャー - ・カードアプリ取得 × - ・TWLカード起動 × - ・カード活線挿抜処理 × - ・NTRカード(NTRモード)起動 × - ・NANDアプリリスト取得 ○ - ・NANDアプリ起動 ○ - ・ISデバッガ対応 × - ・ファームウェアとして正規動作 × - ・アプリ起動時のWRAM-MAP設定 ○ - ・アプリ起動時のSCFGレジスタロック  × -  ・アプリ起動時のSDカードアクセス可否 △ (とりあえず解放にしておき、セキュリティ面での検討を行う。) - ・署名・暗号処理 × - ・鍵管理 × - ・メモリマップFIX ○ - ・NTRコンポーネントパッチ × + ・カードアプリ取得 △ (TWLバナーへの対応はまだ) + ・TWLカード起動 ○ + ・カード活線挿抜処理 × + ・NTRカード(NTRモード)起動 × + ・NANDアプリリスト取得 ○ + ・NANDアプリ起動 ○ + ・アプリブート時の再配置処理 × + ・ISデバッガ対応 × + ・ファームウェアとして正規動作 × + ・アプリ起動時のWRAM-MAP設定 ○ + ・アプリ起動時のSCFGレジスタロック × +  ・アプリ起動時のSDカードアクセス可否 △ (とりあえず解放にしておき、セキュリティ面での検討を行う。) + ・署名・暗号処理 × + ・鍵管理 × + ・メモリマップFIX ○ + ・NTRコンポーネントパッチ × ・本体設定 - ・言語選択 ○ - ・TP補正 ○ - ・日付・時刻設定 ○ - ・ユーザー情報 △ (欧州文字、絵文字など一部文字は入力できない) - ・その他設定 × - ・NANDへの保存 ○ - ・NTR側(NVRAM)への保存 ○ - ・設定データフォーマットFIX × -・WiFi設定 × -・DSダウンロードプレイ × -・ネットワークアップデート × -・アプリ管理 × + ・設定データフォーマットFIX × + ・言語選択 ○ + ・TP補正 ○ + ・日付・時刻設定 ○ + ・ユーザー情報 ○ (欧州文字、絵文字など一部文字は入力できない仕様) + ・その他設定 × + ・NANDへの保存 ○ + ・NTR側(NVRAM)への保存 ○ + +・WiFi設定 × + ・設定データフォーマットFIX × + ・仕様FIX × + +・DSダウンロードプレイ × + ・仕様FIX ○ (DSダウンロードプレイと同一仕様) + +・ネットワークアップデート × + +・アプリ管理 × ・SDにコピーする際のファイルフォーマット× -・TWLバナー対応 × - ・makebanner作成 × -・NANDファーム→ランチャーパラメータ引渡し × - ・アドレスFIX × -・ランチャー⇔NANDアプリ間パラメータ引渡し × +・TWLバナー対応 × + ・仕様FIX × + ・makebanner作成 × +・NANDfirm→ランチャー パラメータ引渡し × + ・仕様FIX ○ +・ランチャー→NANDアプリ パラメータ引渡し × ・本体設定データなどの情報 × - ・NAND,SDマウント情報(アクセス制限) ○ - ・アプリからのHWリセット時パラメータ × ・DSダウンロードプレイの情報 × -・NAND内オーバーレイ&FS △ (nand_app_hack.hのFS_IdentifyTitle()を起動時に呼ぶ) +・NANDアプリ→ランチャー パラメータ引渡し × + ・仕様FIX ○ +・NAND内オーバーレイ&FS ○ + ・仕様FIX ○ + ・NAND,SDマウント情報(アクセス制限) ○ ・共有リソースアクセス × + ・仕様FIX × ・タイトル外部リソースアクセス × -・NANDアプリデバッグ対応 × (現状カードアプリとしてデバッグ) + ・仕様FIX × -・NANDアプリインストール ○ (TwlSDKのNMenuを使用) -・NANDフォーマット △ (TwlSDKのdemos.TWL/fatfs/formatterを使用) - ・起動できないランチャーを書いて起動しなくなった時の復旧は、GCDファームのカード起動可能ファームを書き直して、 -  ・formatterに改変を加えたformatter+NANDファーム&システムメニューインストーラーで書き込み。 +・NANDアプリインストール ○ (TwlSDKのNMenuを使用) +・NANDフォーマット △ (TwlSDKのdemos.TWL/fatfs/formatterを使用) + ・仕様FIX ○ + ・NANDを固定値でベタ書き × + ※起動できないランチャーを書いて起動しなくなった時の復旧は、GCDファームのカード起動可能ファームを書き直して、 +  formatterに改変を加えたformatter+NANDファーム&システムメニューインストーラーで書き込み。 ・makerom.TWL対応 - ・TitleIDを入れる? - ・ファーム用ビルド(PKIを不使用、AES暗号範囲変更)に対応 - ・TWLカードのノーマル領域をマニュアル設定できるように。 + ・ファーム用ビルド(PKIを不使用、AES暗号範囲変更)に対応 × + ・TWLカードのノーマル領域をマニュアル設定できるように。 × + ・ROMヘッダ署名PKI仕様の削除 × + +・ISデバッガ対応 + ・NANDアプリデバッグ対応 × (現状カードアプリとしてデバッグ) + ・仕様FIX △ (TwlNmenuを使ったNTRのDSダウンロードプレイ子機プログラムデバッグと似た仕組み) + ・バナー確認機能 × + ・仕様FIX × + +・マスタリング処理 × + ・CLSサーバ構築?? × + +・生産工程を考慮した仕様 × + ・検査用カードの初期設定スキップ起動 × + ・ショートカットキーによる初期設定スキップ起動 × + ・生産工程で書き込まれるプリFIXデータ仕様 × diff --git a/include/sysmenu.h b/include/sysmenu.h index e8a550d4..3ca91200 100644 --- a/include/sysmenu.h +++ b/include/sysmenu.h @@ -25,6 +25,7 @@ #include #include +#include #include #include diff --git a/include/sysmenu/sysmenu_lib/common/sysmenu_work.h b/include/sysmenu/sysmenu_lib/common/sysmenu_work.h index 27a2af2e..197aa9f4 100644 --- a/include/sysmenu/sysmenu_lib/common/sysmenu_work.h +++ b/include/sysmenu/sysmenu_lib/common/sysmenu_work.h @@ -100,14 +100,10 @@ typedef struct SDKBootCheckInfo{ // SYSM共有ワーク領域のアドレス獲得 //---------------------------------------------------------------------- // SYSMリセットパラメータアドレスの取得(※ライブラリ向け。ARM9側はSYSM_GetResetParamを使用して下さい。) -#define SYSMi_GetResetParamAddr() ( (ResetParam *)0x02000100 ) +#define SYSMi_GetResetParamAddr() ( (ResetParam *)HW_PARAM_LAUNCH_PARAM ) -#if 0 // SYSM共有ワークの取得 #define SYSMi_GetWork() ( (SYSM_work *)HW_RED_RESERVED ) -#else -#define SYSMi_GetWork() ( (SYSM_work *)( HW_RED_RESERVED + 0x10 ) ) -#endif // SDKブートチェック(アプリ起動時にカードIDをセットする必要がある。) #define SYSMi_GetSDKBootCheckInfo() ( (SDKBootCheckInfo *)HW_BOOT_CHECK_INFO_BUF )