mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
デバッガ通信用にカードスロット2の電源をON。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@890 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
8dea6394b8
commit
b73bbdbef5
@ -227,6 +227,14 @@ BOOL BOOT_WaitStart( void )
|
||||
REG_SND_SMX_CNT_E_MASK;
|
||||
}
|
||||
|
||||
#ifdef SDK_ARM7
|
||||
// デバッガではTWLカードスロット2を電源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) )
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -84,6 +84,9 @@ SDK_INLINE void* HOTSW_GetRomEmulationBuffer(void)
|
||||
}
|
||||
#endif // SDK_ARM9
|
||||
|
||||
// デバッガ通信用にカードスロットの電源をONにする。
|
||||
void HOTSWi_TurnCardPowerOn(u32 slot);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
Loading…
Reference in New Issue
Block a user