・SDKリビジョン3243に対応。(多分大丈夫のはず)

esライブラリをeseではなくBroadOnの正式版を使用するようにする。
・ドキュメント更新。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@396 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yosiokat 2007-12-25 06:28:03 +00:00
parent 90c67b36a5
commit 2e49f54eb1
17 changed files with 63 additions and 63 deletions

View File

@ -91,7 +91,7 @@ MAKETAD ?= $(TWLSDK_ROOT)/tools/bin/makeTad.pl
### Global Library resettings ### Global Library resettings
GINCLUDES := $(SYSMENU_INCDIR) $(GINCLUDES) $(ES_ROOT)/include GINCLUDES := $(SYSMENU_INCDIR) $(GINCLUDES) $(ES_ROOT)/twl/include
GLIBRARY_DIRS := $(SYSMENU_LIBDIR) $(GLIBRARY_DIRS) GLIBRARY_DIRS := $(SYSMENU_LIBDIR) $(GLIBRARY_DIRS)
GLIBRARIES := $(SYSMENU_LIBS) $(GLIBRARIES) GLIBRARIES := $(SYSMENU_LIBS) $(GLIBRARIES)

View File

@ -25,7 +25,7 @@ include $(NITROSYSTEM_ROOT)/build/buildtools/modulerules
%.tad: $(BINDIR)/$(TARGET_BIN) %.tad: $(BINDIR)/$(TARGET_BIN)
$(MAKETAD) $< $@ $(MAKETAD) $< -o $@
# .rbin # .rbin
$(BINDIR)/$(TARGET_BIN_BASENAME).rbin: $(OBJS) $(BINDIR)/$(TARGET_BIN_BASENAME).rbin: $(OBJS)

View File

@ -68,7 +68,7 @@
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
static void SetSCFGWork( void ); static void SetSCFGWork( void );
static void ResetRTC( void ); static void ResetRTC( void );
static void ReadResetParameter( void ); static void ReadLauncherParameter( void );
static void PrintDebugInfo(void); static void PrintDebugInfo(void);
static OSHeapHandle InitializeAllocateSystem(void); static OSHeapHandle InitializeAllocateSystem(void);
static void InitializeFatfs(void); static void InitializeFatfs(void);
@ -111,8 +111,8 @@ TwlSpMain(void)
OS_InitTick(); OS_InitTick();
PrintDebugInfo(); PrintDebugInfo();
// Cold/Hotスタート判定 // ランチャーパラメター取得(Cold/Hotスタート判定含む)
ReadResetParameter(); ReadLauncherParameter();
// RTCリセット // RTCリセット
ResetRTC(); // 330usくらい ResetRTC(); // 330usくらい
@ -249,14 +249,14 @@ static void ResetRTC( void )
} }
// Hot/Coldスタート判定およびリセットパラメータのリード // ランチャーパラメータのリードおよびHot/Coldスタート判定
void ReadResetParameter( void ) void ReadLauncherParameter( void )
{ {
BOOL hot; BOOL hot;
SYSMi_GetWork()->isValidResetParam = OS_ReadResetParameter( (ResetParam *)&(SYSMi_GetWork()->resetParam), &hot ); SYSMi_GetWork()->isValidLauncherParam = OS_ReadLauncherParameter( (LauncherParam *)&(SYSMi_GetWork()->launcherParam), &hot );
SYSMi_GetWork()->isHotStart = hot; SYSMi_GetWork()->isHotStart = hot;
// メインメモリのリセットパラメータをクリアしておく // メインメモリのリセットパラメータをクリアしておく
MI_CpuClear32( SYSMi_GetResetParamAddr(), 0x100 ); MI_CpuClear32( SYSMi_GetLauncherParamAddr(), 0x100 );
} }

View File

@ -170,13 +170,13 @@ TitleProperty *SYSM_ReadParameters( void )
// リセットパラメータの判定リセットパラメータが有効かどうかは、ARM7でやってくれている // リセットパラメータの判定リセットパラメータが有効かどうかは、ARM7でやってくれている
//----------------------------------------------------- //-----------------------------------------------------
{ {
if( SYSM_GetResetParamBody()->v1.flags.isLogoSkip || // ロゴデモスキップ? if( SYSM_GetLauncherParamBody()->v1.flags.isLogoSkip || // ロゴデモスキップ?
SYSMi_IsDebuggerBannerViewMode() ) { SYSMi_IsDebuggerBannerViewMode() ) {
SYSM_SetLogoDemoSkip( TRUE ); SYSM_SetLogoDemoSkip( TRUE );
} }
if( SYSM_GetResetParamBody()->v1.bootTitleID ) { // アプリ直接起動の指定があったらロゴデモを飛ばして指定アプリ起動 if( SYSM_GetLauncherParamBody()->v1.bootTitleID ) { // アプリ直接起動の指定があったらロゴデモを飛ばして指定アプリ起動
pBootTitle = (TitleProperty *)&SYSM_GetResetParamBody()->v1; pBootTitle = (TitleProperty *)&SYSM_GetLauncherParamBody()->v1;
} }
} }
@ -448,10 +448,10 @@ int SYSM_GetNandTitleList( TitleProperty *pTitleList_Nand, int listNum )
} }
// リセットパラメータの取得 // ランチャーパラメータの取得
const ResetParamBody *SYSM_GetResetParamBody( void ) const LauncherParamBody *SYSM_GetLauncherParamBody( void )
{ {
return (const ResetParamBody *)&SYSMi_GetWork()->resetParam.body; return (const LauncherParamBody *)&SYSMi_GetWork()->launcherParam.body;
} }

View File

@ -17,12 +17,12 @@
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
SUBDIRS = \ SUBDIRS = \
../../../libraries_sysmenu/reloc_info \ # ../../../libraries_sysmenu/reloc_info \
../../../libraries_sysmenu/sysmenu \ # ../../../libraries_sysmenu/sysmenu \
../../../libraries_sysmenu/settings \ # ../../../libraries_sysmenu/settings \
../../../libraries_sysmenu/boot \ # ../../../libraries_sysmenu/boot \
../../../libraries_sysmenu/hotsw \ # ../../../libraries_sysmenu/hotsw \
../../../components/hyena.TWL # ../../../components/hyena.TWL
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------

View File

@ -197,7 +197,7 @@ int MachineSettingMain( void )
{ {
BOOL tp_select; BOOL tp_select;
BootFlags tempflag = {TRUE, 0, TRUE, FALSE, FALSE, FALSE, 0}; LauncherBootFlags tempflag = {TRUE, 0, TRUE, FALSE, FALSE, FALSE, 0};
ReadTP(); ReadTP();
@ -218,7 +218,7 @@ int MachineSettingMain( void )
DrawMenu( s_csr, &s_settingParam ); DrawMenu( s_csr, &s_settingParam );
if( pad.trg & PAD_BUTTON_START ) { if( pad.trg & PAD_BUTTON_START ) {
OS_SetResetParamAndResetHardware( 0, NULL, &tempflag ); OS_SetLauncherParamAndResetHardware( 0, NULL, &tempflag );
} }
if( ( pad.trg & PAD_BUTTON_A ) || ( tp_select ) ) { // メニュー項目への分岐 if( ( pad.trg & PAD_BUTTON_A ) || ( tp_select ) ) { // メニュー項目への分岐
@ -250,7 +250,7 @@ int MachineSettingMain( void )
break; break;
case 6: case 6:
//pictochat起動テスト //pictochat起動テスト
OS_SetResetParamAndResetHardware( 0, 0x0001000150434854, &tempflag ); OS_SetLauncherParamAndResetHardware( 0, 0x0001000150434854, &tempflag );
} }
} }
} }

View File

@ -499,10 +499,10 @@ static void MenuScene(void)
MI_CpuCopy8(s_work.parameter, arginfo->buf, 2*(PARAM_LENGTH+1)); MI_CpuCopy8(s_work.parameter, arginfo->buf, 2*(PARAM_LENGTH+1));
} }
//BN“® //BN“®
OS_SetResetParamAndResetHardware( 0, 0x00010001434f5042, &tempflag ); OS_SetLauncherParamAndResetHardware( 0, 0x00010001434f5042, &tempflag );
break; break;
case 2: case 2:
OS_SetResetParamAndResetHardware( 0, NULL, &tempflag ); OS_SetLauncherParamAndResetHardware( 0, NULL, &tempflag );
//<2F>ÄN“® //<2F>ÄN“®
break; break;
} }

View File

@ -157,12 +157,12 @@ static void MenuScene(void)
// アプリ専用部分のセット // アプリ専用部分のセット
MI_CpuCopy8("-r", arginfo->buf, 3); MI_CpuCopy8("-r", arginfo->buf, 3);
//呼び出し元アプリ起動 //呼び出し元アプリ起動
OS_SetResetParamAndResetHardware( 0, (u64)0x0001000100000000 + invGameCode, &tempflag ); OS_SetLauncherParamAndResetHardware( 0, (u64)0x0001000100000000 + invGameCode, &tempflag );
//OS_SetResetParamAndResetHardware( 0, (u64)0x00010001434f5041, &tempflag ); //OS_SetLauncherParamAndResetHardware( 0, (u64)0x00010001434f5041, &tempflag );
} }
break; break;
case 1: case 1:
OS_SetResetParamAndResetHardware( 0, NULL, &tempflag ); OS_SetLauncherParamAndResetHardware( 0, NULL, &tempflag );
//再起動 //再起動
break; break;
} }

View File

@ -499,10 +499,10 @@ static void MenuScene(void)
MI_CpuCopy8(s_work.parameter, arginfo->buf, 2*(PARAM_LENGTH+1)); MI_CpuCopy8(s_work.parameter, arginfo->buf, 2*(PARAM_LENGTH+1));
} }
//BN“® //BN“®
OS_SetResetParamAndResetHardware( 0, 0x00010001434f5042, &tempflag ); OS_SetLauncherParamAndResetHardware( 0, 0x00010001434f5042, &tempflag );
break; break;
case 2: case 2:
OS_SetResetParamAndResetHardware( 0, NULL, &tempflag ); OS_SetLauncherParamAndResetHardware( 0, NULL, &tempflag );
//<2F>ÄN“® //<2F>ÄN“®
break; break;
} }

View File

@ -65,7 +65,7 @@
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
static void SetSCFGWork( void ); static void SetSCFGWork( void );
static void ReadResetParameter( void ); static void ReadLauncherParameter( void );
static void PrintDebugInfo(void); static void PrintDebugInfo(void);
static OSHeapHandle InitializeAllocateSystem(void); static OSHeapHandle InitializeAllocateSystem(void);
static void InitializeFatfs(void); static void InitializeFatfs(void);
@ -119,7 +119,7 @@ TwlSpMain(void)
ReadUserInfo(); ReadUserInfo();
// Cold/Hotスタート判定 // Cold/Hotスタート判定
ReadResetParameter(); ReadLauncherParameter();
// [TODO:] カード電源ONして、ROMヘッダのみリードチェックくらいはやっておきたい // [TODO:] カード電源ONして、ROMヘッダのみリードチェックくらいはやっておきたい
@ -222,11 +222,11 @@ static BOOL IsEnableJTAG( void )
return value ? TRUE : FALSE; return value ? TRUE : FALSE;
} }
// Hot/Coldスタート判定およびリセットパラメータのリード // ランチャーパラメータのリードおよびHot/Coldスタート判定
#define MCU_RESET_VALUE_BUF_ENABLE_MASK 0x80000000 #define MCU_RESET_VALUE_BUF_ENABLE_MASK 0x80000000
#define MCU_RESET_VALUE_OFS 0 #define MCU_RESET_VALUE_OFS 0
#define MCU_RESET_VALUE_LEN 1 #define MCU_RESET_VALUE_LEN 1
void ReadResetParameter( void ) void ReadLauncherParameter( void )
{ {
if( ( *(u32 *)HW_RESET_PARAMETER_BUF & MCU_RESET_VALUE_BUF_ENABLE_MASK ) == 0 ) { 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 ); (void)MCU_GetFreeRegisters( MCU_RESET_VALUE_OFS, (u8 *)HW_RESET_PARAMETER_BUF, MCU_RESET_VALUE_LEN );
@ -240,20 +240,20 @@ void ReadResetParameter( void )
SYSMi_GetWork()->isHotStart = FALSE; SYSMi_GetWork()->isHotStart = FALSE;
}else { }else {
SYSMi_GetWork()->isHotStart = TRUE; SYSMi_GetWork()->isHotStart = TRUE;
// リセットパラメータ有効判定 // ランチャーパラメータ有効判定
if( ( STD_StrNCmp( (const char *)&SYSMi_GetResetParamAddr()->header.magicCode, if( ( STD_StrNCmp( (const char *)&SYSMi_GetLauncherParamAddr()->header.magicCode,
SYSM_RESET_PARAM_MAGIC_CODE, SYSM_LAUNCHER_PARAM_MAGIC_CODE,
SYSM_RESET_PARAM_MAGIC_CODE_LEN ) == 0 ) && SYSM_LAUNCHER_PARAM_MAGIC_CODE_LEN ) == 0 ) &&
( SYSMi_GetResetParamAddr()->header.bodyLength > 0 ) && ( SYSMi_GetLauncherParamAddr()->header.bodyLength > 0 ) &&
( SYSMi_GetResetParamAddr()->header.crc16 == SVC_GetCRC16( 65535, &SYSMi_GetResetParamAddr()->body, SYSMi_GetResetParamAddr()->header.bodyLength ) ) ( SYSMi_GetLauncherParamAddr()->header.crc16 == SVC_GetCRC16( 65535, &SYSMi_GetLauncherParamAddr()->body, SYSMi_GetLauncherParamAddr()->header.bodyLength ) )
) { ) {
// リセットパラメータが有効なら、ワークに退避 // ランチャーパラメータが有効なら、ワークに退避
MI_CpuCopy32 ( SYSMi_GetResetParamAddr(), &SYSMi_GetWork()->resetParam, sizeof(ResetParam) ); MI_CpuCopy32 ( SYSMi_GetLauncherParamAddr(), &SYSMi_GetWork()->launcherParam, sizeof(LauncherParam) );
SYSMi_GetWork()->isValidResetParam = TRUE; SYSMi_GetWork()->isValidLauncherParam = TRUE;
} }
} }
// メインメモリのリセットパラメータをクリアしておく // メインメモリのランチャーパラメータをクリアしておく
MI_CpuClear32( SYSMi_GetResetParamAddr(), 0x100 ); MI_CpuClear32( SYSMi_GetLauncherParamAddr(), HW_PARAM_LAUNCH_PARAM_SIZE );
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -50,29 +50,29 @@ typedef struct BootFlags {
// リセットパラメータ ヘッダ // リセットパラメータ ヘッダ
typedef struct ResetParameterHeader { typedef struct LauncherParameterHeader {
u32 magicCode; // SYSM_RESET_PARAM_MAGIC_CODEが入る u32 magicCode; // SYSM_RESET_PARAM_MAGIC_CODEが入る
u8 type; // タイプによってBodyを判別する。 u8 type; // タイプによってBodyを判別する。
u8 bodyLength; // bodyの長さ u8 bodyLength; // bodyの長さ
u16 crc16; // bodyのCRC16 u16 crc16; // bodyのCRC16
}ResetParamHeader; }LauncherParamHeader;
// リセットパラメータ ボディ // リセットパラメータ ボディ
typedef union ResetParamBody { typedef union LauncherParamBody {
struct { // ※とりあえず最初はTitlePropertyとフォーマットを合わせておく struct { // ※とりあえず最初はTitlePropertyとフォーマットを合わせておく
NAMTitleId bootTitleID; // リセット後にダイレクト起動するタイトルID NAMTitleId bootTitleID; // リセット後にダイレクト起動するタイトルID
BootFlags flags; // リセット時のランチャー動作フラグ BootFlags flags; // リセット時のランチャー動作フラグ
u8 rsv[ 4 ]; // 予約 u8 rsv[ 4 ]; // 予約
}v1; }v1;
}ResetParamBody; }LauncherParamBody;
// リセットパラメータ // リセットパラメータ
typedef struct ResetParam { typedef struct LauncherParam {
ResetParamHeader header; LauncherParamHeader header;
ResetParamBody body; LauncherParamBody body;
}ResetParam; }LauncherParam;
// function's prototype------------------------------------ // function's prototype------------------------------------

View File

@ -55,7 +55,7 @@ typedef enum PlatformCode {
// タイトル情報 // タイトル情報
typedef struct TitleProperty { // この情報は、ランチャー時には認証通ってないけど、起動時には認証通すので大丈夫だろう。 typedef struct TitleProperty { // この情報は、ランチャー時には認証通ってないけど、起動時には認証通すので大丈夫だろう。
NAMTitleId titleID; // タイトルIDTitleID_Hiで起動メディアは判定できる NAMTitleId titleID; // タイトルIDTitleID_Hiで起動メディアは判定できる
BootFlags flags; // ブート時のランチャー動作フラグ LauncherBootFlags flags; // ブート時のランチャー動作フラグ
TWLBannerFile *pBanner; // バナーへのポインタ(固定長フォーマットなら偽造されても大丈夫だろう。) TWLBannerFile *pBanner; // バナーへのポインタ(固定長フォーマットなら偽造されても大丈夫だろう。)
}TitleProperty; }TitleProperty;
@ -102,7 +102,7 @@ extern BOOL SYSM_IsLogoDemoSkip( void ); //
extern void SYSM_SetLogoDemoSkip( BOOL skip ); // ロゴデモ飛ばし状態フラグを設定する。 extern void SYSM_SetLogoDemoSkip( BOOL skip ); // ロゴデモ飛ばし状態フラグを設定する。
extern BOOL SYSM_IsValidTSD( void ); // TWL設定データは有効か extern BOOL SYSM_IsValidTSD( void ); // TWL設定データは有効か
extern void SYSM_SetValidTSD( BOOL valid ); // TWL設定データの有効無効フラグを設定する。 extern void SYSM_SetValidTSD( BOOL valid ); // TWL設定データの有効無効フラグを設定する。
extern const ResetParamBody *SYSM_GetResetParamBody( void ); // リセットパラメータの取得 extern const LauncherParamBody *SYSM_GetLauncherParamBody( void ); // リセットパラメータの取得
// 本体設定データアクセス // 本体設定データアクセス
extern BOOL SYSM_ReadTWLSettingsFile( void ); // TWL設定データのリード extern BOOL SYSM_ReadTWLSettingsFile( void ); // TWL設定データのリード

View File

@ -54,7 +54,7 @@ typedef struct SYSM_work {
Relocate_Info romRelocateInfo[RELOCATE_INFO_NUM]; // ROM再配置情報arm9,arm7それぞれltdとflxで最大4つ Relocate_Info romRelocateInfo[RELOCATE_INFO_NUM]; // ROM再配置情報arm9,arm7それぞれltdとflxで最大4つ
vu32 isARM9Start :1; // ARM9スタートフラグ vu32 isARM9Start :1; // ARM9スタートフラグ
vu32 isHotStart :1; // Hot/Coldスタート判定 vu32 isHotStart :1; // Hot/Coldスタート判定
vu32 isValidResetParam :1; // リセットパラメータ有効 vu32 isValidLauncherParam :1; // リセットパラメータ有効
vu32 isValidTSD :1; // NITRO設定データ無効フラグ vu32 isValidTSD :1; // NITRO設定データ無効フラグ
vu32 isLogoSkip :1; // ロゴデモスキップ vu32 isLogoSkip :1; // ロゴデモスキップ
vu32 isOnDebugger :1; // デバッガ動作か? vu32 isOnDebugger :1; // デバッガ動作か?
@ -79,7 +79,7 @@ typedef struct SYSM_work {
int cloneBootMode; int cloneBootMode;
u32 nCardID; // カードID u32 nCardID; // カードID
ResetParam resetParam; LauncherParam launcherParam;
// NTR-IPL2のレガシー 最終的には消すと思う // NTR-IPL2のレガシー 最終的には消すと思う
BOOL enableCardNormalOnly; BOOL enableCardNormalOnly;
@ -106,8 +106,8 @@ typedef struct SDKBootCheckInfo{
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// SYSM共有ワーク領域のアドレス獲得 // SYSM共有ワーク領域のアドレス獲得
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// SYSMリセットパラメータアドレスの取得※ライブラリ向け。ARM9側はSYSM_GetResetParamを使用して下さい。 // SYSMリセットパラメータアドレスの取得※ライブラリ向け。ARM9側はSYSM_GetLauncherParamを使用して下さい。
#define SYSMi_GetResetParamAddr() ( (ResetParam *)HW_PARAM_LAUNCH_PARAM ) #define SYSMi_GetLauncherParamAddr() ( (LauncherParam *)HW_PARAM_LAUNCH_PARAM )
// SYSM共有ワークの取得 // SYSM共有ワークの取得
#define SYSMi_GetWork() ( (SYSM_work *)HW_RED_RESERVED ) #define SYSMi_GetWork() ( (SYSM_work *)HW_RED_RESERVED )