・SDKリビジョン2721への対応。

・".wad"ファイル拡張子をを".tad"に変更。
・コンポーネントhyena.TWLで、SCFGレジスタの内容をWRAMおよびMMEMのシステム領域に退避するようにする。
・コンポーネントhyena.TWLで、リセットパラメータ取得条件を修正し、NANDファームがない場合やデバッガ上での動作に対応。
・TwlIPLルートでのビルドの整理。



git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@290 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yosiokat 2007-11-29 08:14:57 +00:00
parent 188d996469
commit baca65d35d
17 changed files with 202 additions and 107 deletions

View File

@ -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
#----------------------------------------------------------------------------

41
Makefile.full Normal file
View File

@ -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 =====

View File

@ -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

View File

@ -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
#----------------------------------------------------------------------------

View File

@ -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

View File

@ -34,6 +34,7 @@
#include <twl/cdc.h>
#include <twl/aes.h>
#include <twl/mcu.h>
#include <twl/hw/ARM7/mmap_wramEnv.h>
#include <sysmenu.h>
#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;

View File

@ -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];

View File

@ -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;

View File

@ -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 );
}
}

View File

@ -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 {

View File

@ -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)

View File

@ -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)
#----------------------------------------------------------------------------

View File

@ -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)
#----------------------------------------------------------------------------

View File

@ -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)
#----------------------------------------------------------------------------

View File

@ -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データ仕様 ×

View File

@ -25,6 +25,7 @@
#include <twl.h>
#include <twl/os/common/format_rom.h>
#include <twl/hw/common/mmap_parameter.h>
#include <sysmenu/sysmenu_lib.h>
#include <sysmenu/banner.h>

View File

@ -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 )