最新SDK対応

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@236 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yutaka 2007-11-21 04:25:09 +00:00
parent 53bc5f01d3
commit 20d3856cb6
2 changed files with 71 additions and 69 deletions

View File

@ -45,12 +45,14 @@ Autoload WRAM
libmath_sp.TWL$(CODEGEN).a \ libmath_sp.TWL$(CODEGEN).a \
libscfg_sp.TWL$(CODEGEN).a \ libscfg_sp.TWL$(CODEGEN).a \
libtp_sp.TWL$(CODEGEN).a \ libtp_sp.TWL$(CODEGEN).a \
libmic_sp.TWL$(CODEGEN).a \
libfs_sp.TWL$(CODEGEN).a \ libfs_sp.TWL$(CODEGEN).a \
libcard_sp.TWL$(CODEGEN).a \ libcard_sp.TWL$(CODEGEN).a \
libi2c_sp.TWL$(CODEGEN).a \ libi2c_sp.TWL$(CODEGEN).a \
libcamera_sp.TWL$(CODEGEN).a \ libcamera_sp.TWL$(CODEGEN).a \
libcdc_sp.TWL$(CODEGEN).a \ libcdc_sp.TWL$(CODEGEN).a \
libtpex_sp.TWL$(CODEGEN).a \ libtpex_sp.TWL$(CODEGEN).a \
libmicex_sp.TWL$(CODEGEN).a \
libnvram_sp.TWL$(CODEGEN).a \ libnvram_sp.TWL$(CODEGEN).a \
librtc_sp.TWL$(CODEGEN).a \ librtc_sp.TWL$(CODEGEN).a \
libwvr_sp.TWL$(CODEGEN).a \ libwvr_sp.TWL$(CODEGEN).a \

View File

@ -30,15 +30,15 @@
#include <twl/rtc.h> #include <twl/rtc.h>
#include <nitro/hw/common/lcd.h> #include <nitro/hw/common/lcd.h>
#include <nitro/gx.h> #include <nitro/gx.h>
#include <twl/os/ARM7/codecmode.h> #include <twl/os/common/codecmode.h>
#include <twl/cdc.h> #include <twl/cdc.h>
#include <twl/aes.h> #include <twl/aes.h>
#include <twl/mcu.h> #include <twl/mcu.h>
#include <sysmenu/boot/common/boot.h> #include <sysmenu/boot/common/boot.h>
#include <sysmenu/sysmenu_lib/common/sysmenu_work.h> #include <sysmenu/sysmenu_lib/common/sysmenu_work.h>
#include <sysmenu/card/common/blowfish.h> #include <sysmenu/card/common/blowfish.h>
#include <sysmenu/card/common/Card.h> #include <sysmenu/card/common/Card.h>
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
@ -83,26 +83,26 @@ TwlSpMain(void)
{ {
OSHeapHandle heapHandle; OSHeapHandle heapHandle;
// SYSMワークのクリア // SYSMワークのクリア
MI_CpuClear32( SYSMi_GetWork(), sizeof(SYSM_work) ); MI_CpuClear32( SYSMi_GetWork(), sizeof(SYSM_work) );
// OS 初期化 // OS 初期化
OS_Init(); OS_Init();
PrintDebugInfo(); PrintDebugInfo();
// Cold/Hotスタート判定 // Cold/Hotスタート判定
ReadResetParameter(); ReadResetParameter();
SYSMi_GetWork()->isARM9Start = TRUE; // ※HW_RED_RESERVEDはNANDファームでクリアしておいて欲しい SYSMi_GetWork()->isARM9Start = TRUE; // ※HW_RED_RESERVEDはNANDファームでクリアしておいて欲しい
// ヒープ領域設定 // ヒープ領域設定
{ {
void *wram = OS_GetWramSubPrivArenaHi(); void *wram = OS_GetWramSubPrivArenaHi();
void *mmem = OS_GetSubPrivArenaHi(); void *mmem = OS_GetSubPrivArenaHi();
OS_SetSubPrivArenaHi( (void*)SYSM_OWN_ARM7_MMEM_ADDR_END ); // メモリ配置をいじっているので、アリーナHiも変更しないとダメ OS_SetSubPrivArenaHi( (void*)SYSM_OWN_ARM7_MMEM_ADDR_END ); // メモリ配置をいじっているので、アリーナHiも変更しないとダメ
OS_SetWramSubPrivArenaHi( (void*)SYSM_OWN_ARM7_WRAM_ADDR_END ); OS_SetWramSubPrivArenaHi( (void*)SYSM_OWN_ARM7_WRAM_ADDR_END );
OS_TPrintf( "MMEM SUBPRV ARENA HI : %08x -> %08x\n", mmem, OS_GetSubPrivArenaHi() ); OS_TPrintf( "MMEM SUBPRV ARENA HI : %08x -> %08x\n", mmem, OS_GetSubPrivArenaHi() );
OS_TPrintf( "WRAM SUBPRV ARENA HI : %08x -> %08x\n", wram, OS_GetWramSubPrivArenaHi() ); OS_TPrintf( "WRAM SUBPRV ARENA HI : %08x -> %08x\n", wram, OS_GetWramSubPrivArenaHi() );
} }
heapHandle = InitializeAllocateSystem(); heapHandle = InitializeAllocateSystem();
// ボタン入力サーチ初期化 // ボタン入力サーチ初期化
@ -125,7 +125,7 @@ TwlSpMain(void)
AES_Init(); // AES 初期化 AES_Init(); // AES 初期化
} }
if (OS_IsCodecTwlMode() == TRUE) if (OSi_IsCodecTwlMode() == TRUE)
{ {
// CODEC 初期化 // CODEC 初期化
InitializeCdc(); InitializeCdc();
@ -148,7 +148,7 @@ TwlSpMain(void)
BOOT_Init(); BOOT_Init();
// 活栓挿抜機能初期化 // 活栓挿抜機能初期化
Cardm_Init(); Cardm_Init();
// カードがささっていたらブート開始 // カードがささっていたらブート開始
Card_Boot(); Card_Boot();
@ -169,32 +169,32 @@ TwlSpMain(void)
// Hot/Coldスタート判定およびリセットパラメータのリード // Hot/Coldスタート判定およびリセットパラメータのリード
static void ReadResetParameter( void ) static void ReadResetParameter( void )
{ {
// Hot/Coldスタート判定 // Hot/Coldスタート判定
#ifdef SDK_FINALROM #ifdef SDK_FINALROM
if( SYSMi_GetMCUFreeRegisterValue() == 0 ) // マイコンフリーレジスタ値が"0"ならColdスタート if( SYSMi_GetMCUFreeRegisterValue() == 0 ) // マイコンフリーレジスタ値が"0"ならColdスタート
#else #else
if( 1 ) // ISデバッガでのデバッグ動作時に常にホットスタート判定されるのを防ぐ if( 1 ) // ISデバッガでのデバッグ動作時に常にホットスタート判定されるのを防ぐ
#endif #endif
{ {
u8 data = 1; u8 data = 1;
MCU_SetFreeRegisters( 0, &data, 1 ); // マイコンフリーレジスタにホットスタートフラグをセット MCU_SetFreeRegisters( 0, &data, 1 ); // マイコンフリーレジスタにホットスタートフラグをセット
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_GetResetParamAddr()->header.magicCode,
SYSM_RESET_PARAM_MAGIC_CODE, SYSM_RESET_PARAM_MAGIC_CODE,
SYSM_RESET_PARAM_MAGIC_CODE_LEN ) == 0 ) && SYSM_RESET_PARAM_MAGIC_CODE_LEN ) == 0 ) &&
( SYSMi_GetResetParamAddr()->header.bodyLength > 0 ) && ( SYSMi_GetResetParamAddr()->header.bodyLength > 0 ) &&
( SVC_GetCRC16( 65535, &SYSMi_GetResetParamAddr()->body, SYSMi_GetResetParamAddr()->header.bodyLength ) ) ( SVC_GetCRC16( 65535, &SYSMi_GetResetParamAddr()->body, SYSMi_GetResetParamAddr()->header.bodyLength ) )
) { ) {
// リセットパラメータが有効なら、ワークに退避 // リセットパラメータが有効なら、ワークに退避
MI_CpuCopy32 ( SYSMi_GetResetParamAddr(), &SYSMi_GetWork()->resetParam, sizeof(ResetParam) ); MI_CpuCopy32 ( SYSMi_GetResetParamAddr(), &SYSMi_GetWork()->resetParam, sizeof(ResetParam) );
SYSMi_GetWork()->isValidResetParam = TRUE; SYSMi_GetWork()->isValidResetParam = TRUE;
} }
} }
// メインメモリのリセットパラメータをクリアしておく // メインメモリのリセットパラメータをクリアしておく
MI_CpuClear32( SYSMi_GetResetParamAddr(), 0x100 ); MI_CpuClear32( SYSMi_GetResetParamAddr(), 0x100 );
} }