最新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 \
libscfg_sp.TWL$(CODEGEN).a \
libtp_sp.TWL$(CODEGEN).a \
libmic_sp.TWL$(CODEGEN).a \
libfs_sp.TWL$(CODEGEN).a \
libcard_sp.TWL$(CODEGEN).a \
libi2c_sp.TWL$(CODEGEN).a \
libcamera_sp.TWL$(CODEGEN).a \
libcdc_sp.TWL$(CODEGEN).a \
libtpex_sp.TWL$(CODEGEN).a \
libmicex_sp.TWL$(CODEGEN).a \
libnvram_sp.TWL$(CODEGEN).a \
librtc_sp.TWL$(CODEGEN).a \
libwvr_sp.TWL$(CODEGEN).a \

View File

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