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;
|
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)
|
#if defined(FIRM_USE_TWLSDK_KEYS) || defined(SYSMENU_DISABLE_RETAIL_BOOT)
|
||||||
// TwlSDK内の鍵を使っている時は製品用CPUではTWLアプリはブートしない
|
// TwlSDK内の鍵を使っている時は製品用CPUではTWLアプリはブートしない
|
||||||
if ( ! (*(u8*)HWi_WSYS08_ADDR & HWi_WSYS08_OP_OPT_MASK) )
|
if ( ! (*(u8*)HWi_WSYS08_ADDR & HWi_WSYS08_OP_OPT_MASK) )
|
||||||
|
|||||||
@ -13,6 +13,7 @@
|
|||||||
#include <twl.h>
|
#include <twl.h>
|
||||||
#include <twl/os/common/format_rom.h>
|
#include <twl/os/common/format_rom.h>
|
||||||
#include <nitro/card/types.h>
|
#include <nitro/card/types.h>
|
||||||
|
#include <firm/os/common/system.h>
|
||||||
#include <sysmenu.h>
|
#include <sysmenu.h>
|
||||||
#include <hotswTypes.h>
|
#include <hotswTypes.h>
|
||||||
#include <blowfish.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
|
Name: SetMCSCR
|
||||||
|
|
||||||
|
|||||||
@ -84,6 +84,9 @@ SDK_INLINE void* HOTSW_GetRomEmulationBuffer(void)
|
|||||||
}
|
}
|
||||||
#endif // SDK_ARM9
|
#endif // SDK_ARM9
|
||||||
|
|
||||||
|
// デバッガ通信用にカードスロットの電源をONにする。
|
||||||
|
void HOTSWi_TurnCardPowerOn(u32 slot);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* extern "C" */
|
} /* extern "C" */
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user