mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
(更新:Akabane Jumpei)
・スロットの現在のモードを返す関数を追加 ・スロット電源ON関数修正 ・ソースちょっと整理 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1087 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
df513bea4c
commit
2c5239e87d
@ -55,6 +55,7 @@
|
|||||||
static BOOL IsSwap(void);
|
static BOOL IsSwap(void);
|
||||||
static u32 GetMcSlotShift(void);
|
static u32 GetMcSlotShift(void);
|
||||||
static u32 GetMcSlotMask(void);
|
static u32 GetMcSlotMask(void);
|
||||||
|
static u32 GetMcSlotMode(void);
|
||||||
static void SetMcSlotMode(u32 mode);
|
static void SetMcSlotMode(u32 mode);
|
||||||
static BOOL CmpMcSlotMode(u32 mode);
|
static BOOL CmpMcSlotMode(u32 mode);
|
||||||
|
|
||||||
@ -671,21 +672,23 @@ void* HOTSW_GetRomEmulationBuffer(void)
|
|||||||
return &s_romEmuInfo;
|
return &s_romEmuInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -----------------------------------------------------------------
|
|
||||||
* HOTSWi_IsRunOnDebugger関数
|
/*---------------------------------------------------------------------------*
|
||||||
*
|
Name: HOTSWi_IsRunOnDebugger
|
||||||
* ISデバッガ上で動作しているか?
|
|
||||||
* ----------------------------------------------------------------- */
|
Description: ISデバッガ上で動作しているか?
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
BOOL HOTSWi_IsRunOnDebugger(void)
|
BOOL HOTSWi_IsRunOnDebugger(void)
|
||||||
{
|
{
|
||||||
return debuggerFlg;
|
return debuggerFlg;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -----------------------------------------------------------------
|
|
||||||
* HOTSWi_IsRomEmulation関数
|
/*---------------------------------------------------------------------------*
|
||||||
*
|
Name: HOTSWi_IsRomEmulation
|
||||||
* ROMをエミュレーションしているか?
|
|
||||||
* ----------------------------------------------------------------- */
|
Description: ROMをエミュレーションしているか?
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
BOOL HOTSWi_IsRomEmulation(void)
|
BOOL HOTSWi_IsRomEmulation(void)
|
||||||
{
|
{
|
||||||
return debuggerFlg &&
|
return debuggerFlg &&
|
||||||
@ -696,13 +699,14 @@ BOOL HOTSWi_IsRomEmulation(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -----------------------------------------------------------------
|
|
||||||
* LoadBannerData関数
|
/*---------------------------------------------------------------------------*
|
||||||
*
|
Name: LoadBannerData
|
||||||
* バナーデータを読み込む
|
|
||||||
*
|
Description: バナーデータを読み込む
|
||||||
* 注:一度カードブートしてゲームモードになってから呼び出してください
|
|
||||||
* ----------------------------------------------------------------- */
|
注:ゲームモードになってから呼び出してください
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
static HotSwState LoadBannerData(void)
|
static HotSwState LoadBannerData(void)
|
||||||
{
|
{
|
||||||
BOOL state;
|
BOOL state;
|
||||||
@ -895,13 +899,14 @@ static HotSwState CheckCardAuthCode(void)
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -----------------------------------------------------------------
|
|
||||||
* HOTSW_SetBootSegmentBuffer関数
|
/*---------------------------------------------------------------------------*
|
||||||
*
|
Name: HOTSW_SetBootSegmentBuffer
|
||||||
* Boot Segment バッファの指定
|
|
||||||
*
|
Description: Boot Segment バッファの指定
|
||||||
* 注:カードブート処理中は呼び出さないようにする
|
|
||||||
* ----------------------------------------------------------------- */
|
注:カードブート処理中は呼び出さないようにする
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
void HOTSW_SetBootSegmentBuffer(void* buf, u32 size)
|
void HOTSW_SetBootSegmentBuffer(void* buf, u32 size)
|
||||||
{
|
{
|
||||||
SDK_ASSERT(size > BOOT_SEGMENT_SIZE);
|
SDK_ASSERT(size > BOOT_SEGMENT_SIZE);
|
||||||
@ -915,13 +920,14 @@ void HOTSW_SetBootSegmentBuffer(void* buf, u32 size)
|
|||||||
MI_CpuClear8(s_pBootSegBuffer, size);
|
MI_CpuClear8(s_pBootSegBuffer, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -----------------------------------------------------------------
|
|
||||||
* HOTSW_SetSecureSegmentBuffer関数
|
/*---------------------------------------------------------------------------*
|
||||||
*
|
Name: HOTSW_SetSecureSegmentBuffer
|
||||||
* Secure Segment バッファの指定
|
|
||||||
*
|
Description: Secure Segment バッファの指定
|
||||||
* 注:カードブート処理中は呼び出さないようにする
|
|
||||||
* ----------------------------------------------------------------- */
|
注:カードブート処理中は呼び出さないようにする
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
void HOTSW_SetSecureSegmentBuffer(ModeType type ,void* buf, u32 size)
|
void HOTSW_SetSecureSegmentBuffer(ModeType type ,void* buf, u32 size)
|
||||||
{
|
{
|
||||||
SDK_ASSERT(size > SECURE_SEGMENT_SIZE);
|
SDK_ASSERT(size > SECURE_SEGMENT_SIZE);
|
||||||
@ -1044,11 +1050,12 @@ static HotSwState DecryptObjectFile(void)
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -----------------------------------------------------------------
|
|
||||||
* LockHotSwRsc関数
|
/*---------------------------------------------------------------------------*
|
||||||
*
|
Name: LockHotSwRsc
|
||||||
* 共有ワークのリソースの排他制御用 lockを行う
|
|
||||||
* ----------------------------------------------------------------- */
|
Description: 共有ワークのリソースの排他制御用 lockを行う
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
static void LockHotSwRsc(OSLockWord* word)
|
static void LockHotSwRsc(OSLockWord* word)
|
||||||
{
|
{
|
||||||
while(OS_TryLockByWord( s_RscLockID, word, NULL ) != OS_LOCK_SUCCESS){
|
while(OS_TryLockByWord( s_RscLockID, word, NULL ) != OS_LOCK_SUCCESS){
|
||||||
@ -1183,6 +1190,21 @@ static BOOL CmpMcSlotMode(u32 mode)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: GetMcSlotMode
|
||||||
|
|
||||||
|
Description: スロットの現在のモードを返す
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
static u32 GetMcSlotMode(void)
|
||||||
|
{
|
||||||
|
#ifndef DEBUG_USED_CARD_SLOT_B_
|
||||||
|
return (reg_MI_MC1 & GetMcSlotMask()) >> GetMcSlotShift();
|
||||||
|
#else
|
||||||
|
return (reg_MI_MC1 & GetMcSlotMask()) << GetMcSlotShift();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: McPowerOn
|
Name: McPowerOn
|
||||||
|
|
||||||
@ -1198,7 +1220,7 @@ static void McPowerOn(void)
|
|||||||
if(CmpMcSlotMode(SLOT_STATUS_MODE_00) == TRUE){
|
if(CmpMcSlotMode(SLOT_STATUS_MODE_00) == TRUE){
|
||||||
// [TODO:]待ち時間は暫定値。金子さんに数値を測定してもらう。
|
// [TODO:]待ち時間は暫定値。金子さんに数値を測定してもらう。
|
||||||
// VDDの安定期間待ち
|
// VDDの安定期間待ち
|
||||||
// OS_Sleep(100);
|
OS_Sleep(100);
|
||||||
|
|
||||||
// SCFG_MC1 の Slot Status の M1,M0 を 01 にする
|
// SCFG_MC1 の Slot Status の M1,M0 を 01 にする
|
||||||
SetMcSlotMode(SLOT_STATUS_MODE_01);
|
SetMcSlotMode(SLOT_STATUS_MODE_01);
|
||||||
@ -1245,6 +1267,7 @@ static void McPowerOff(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: HOTSWi_TurnCardPowerOn
|
Name: HOTSWi_TurnCardPowerOn
|
||||||
|
|
||||||
@ -1291,6 +1314,7 @@ void HOTSWi_TurnCardPowerOn(u32 slot)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: SetMCSCR
|
Name: SetMCSCR
|
||||||
|
|
||||||
@ -1322,6 +1346,7 @@ static void SetMCSCR(void)
|
|||||||
reg_HOTSW_MCCNT1 = SCR_MASK;
|
reg_HOTSW_MCCNT1 = SCR_MASK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: McThread
|
Name: McThread
|
||||||
|
|
||||||
@ -1445,6 +1470,7 @@ static void McThread(void *arg)
|
|||||||
} // while loop
|
} // while loop
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: InterruptCallbackCard
|
Name: InterruptCallbackCard
|
||||||
|
|
||||||
@ -1775,6 +1801,11 @@ static BOOL CheckExtArm9HashValue(void)
|
|||||||
return SVC_CompareSHA1( sha1data, s_cbData.pBootSegBuf->rh.s.main_ltd_static_digest );
|
return SVC_CompareSHA1( sha1data, s_cbData.pBootSegBuf->rh.s.main_ltd_static_digest );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
//
|
//
|
||||||
// Debug用表示関数
|
// Debug用表示関数
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user