デバッガ通信用にカードスロット2の電源をON。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@890 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
nakasima 2008-03-17 05:10:25 +00:00
parent 8dea6394b8
commit b73bbdbef5
3 changed files with 58 additions and 0 deletions

View File

@ -227,6 +227,14 @@ BOOL BOOT_WaitStart( void )
REG_SND_SMX_CNT_E_MASK;
}
#ifdef SDK_ARM7
// デバッガではTWLカードスロットを電源ON
if ( SYSM_IsRunOnDebugger() )
{
HOTSWi_TurnCardPowerOn( 2 );
}
#endif // SDK_ARM7
#if defined(FIRM_USE_TWLSDK_KEYS) || defined(SYSMENU_DISABLE_RETAIL_BOOT)
// TwlSDK内の鍵を使っている時は製品用CPUではTWLアプリはブートしない
if ( ! (*(u8*)HWi_WSYS08_ADDR & HWi_WSYS08_OP_OPT_MASK) )

View File

@ -13,6 +13,7 @@
#include <twl.h>
#include <twl/os/common/format_rom.h>
#include <nitro/card/types.h>
#include <firm/os/common/system.h>
#include <sysmenu.h>
#include <hotswTypes.h>
#include <blowfish.h>
@ -1094,6 +1095,52 @@ static void McPowerOff(void)
}
}
/*---------------------------------------------------------------------------*
Name: HOTSWi_TurnCardPowerOn
Description: ONにする
Arguments: None.
Returns: None.
*---------------------------------------------------------------------------*/
void HOTSWi_TurnCardPowerOn(u32 slot)
{
u32 shift;
u32 mask = slot >= 2 ? (u32)REG_MI_MC_SL2_CDET_MASK : (u32)REG_MI_MC_SL1_CDET_MASK;
// カードが差さっていなければONしない
if ( reg_MI_MC & mask )
{
return;
}
shift = slot >= 2 ? (u32)REG_MI_MC_SL2_MODE_SHIFT : (u32)REG_MI_MC_SL1_MODE_SHIFT;
mask = slot >= 2 ? (u32)REG_MI_MC_SL2_MODE_MASK : (u32)REG_MI_MC_SL1_MODE_MASK;
// 電源が落ちている最中なら待つ
if ( (reg_MI_MC & mask) == (0x3 << shift) )
{
OS_SpinWait( OS_MSEC_TO_CPUCYC(1) );
}
if ( (reg_MI_MC & mask) == (0x0 << shift) )
{
reg_MI_MC = (u16)((reg_MI_MC & ~mask) | (0x1 << shift));
// VDDの安定期間
OS_SpinWait( OS_MSEC_TO_CPUCYC(100) );
reg_MI_MC = (u16)((reg_MI_MC & ~mask) | (0x2 << shift));
// RESBのLow期間
OS_SpinWait( OS_MSEC_TO_CPUCYC(1) );
reg_MI_MCCNT1_B = REG_MI_MCCNT1_RESB_MASK;
// RESBのHigh期間
OS_SpinWait( OS_MSEC_TO_CPUCYC(100) );
}
}
/*---------------------------------------------------------------------------*
Name: SetMCSCR

View File

@ -84,6 +84,9 @@ SDK_INLINE void* HOTSW_GetRomEmulationBuffer(void)
}
#endif // SDK_ARM9
// デバッガ通信用にカードスロットの電源をONにする。
void HOTSWi_TurnCardPowerOn(u32 slot);
#ifdef __cplusplus
} /* extern "C" */
#endif