diff --git a/build/components/hyena.TWL/src/main.c b/build/components/hyena.TWL/src/main.c index 452148be..b0ed3d0a 100644 --- a/build/components/hyena.TWL/src/main.c +++ b/build/components/hyena.TWL/src/main.c @@ -57,6 +57,7 @@ #define THREAD_PRIO_SYSMMCU 6 #define THREAD_PRIO_SND 6 #define THREAD_PRIO_FATFS 8 +#define THREAD_PRIO_HOTSW 11 #define THREAD_PRIO_RTC 12 #define THREAD_PRIO_SNDEX 14 #define THREAD_PRIO_FS 15 @@ -217,7 +218,7 @@ TwlSpMain(void) SYSMi_GetWork()->flags.hotsw.isEnableHotSW = 1; } - HOTSW_Init(); + HOTSW_Init(THREAD_PRIO_HOTSW); while (TRUE) { diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/dsCardCommon.c b/build/libraries_sysmenu/hotsw/ARM7/src/dsCardCommon.c index 9cf0ce6e..b791efbd 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/dsCardCommon.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/dsCardCommon.c @@ -334,13 +334,15 @@ static void PreSendSecureCommand(CardBootData *cbd, u32 *scrambleMask) { // ★ TWL-ROM&NTR-3DM対応 if(cbd->cardType == DS_CARD_TYPE_2){ + u32 latency = (u32)cbd->pBootSegBuf->rh.s.secure_cmd_latency * 0x100; + // MCCNT1 レジスタ設定 reg_HOTSW_MCCNT1 = START_MASK | *scrambleMask | cbd->pBootSegBuf->rh.s.secure_cmd_param; // セキュアコマンド間レイテンシ待ち - OS_Sleep( OS_CPUCYC_TO_MSEC(cbd->pBootSegBuf->rh.s.secure_cmd_latency * 0x100) ); + OS_Sleep( OS_CPUCYC_TO_MSEC(latency) ); } - // ★ NTR-MROM対応 + // ★ TWL-XtraROM&NTR-MROM対応 else{ *scrambleMask |= TRM_MASK; } diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c index b0ee3324..6a2eb1f3 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c @@ -33,7 +33,6 @@ #define DIGEST_HASH_BLOCK_SIZE_SHA1 (512/8) #define HOTSW_THREAD_STACK_SIZE (1024 + PAGE_SIZE) // スタックサイズ -#define HOTSW_THREAD_PRIO 11 // カード電源ON → ゲームモードのスレッド優先度 #define HOTSW_INSERT_MSG_NUM 16 // 挿し割り込み送信メッセージの数 #define HOTSW_PULLED_MSG_NUM 16 // 抜け割り込み送信メッセージの数 #define HOTSW_CTRL_MSG_NUM 8 // PXI割り込み送信メッセージの数 @@ -179,7 +178,7 @@ static CardBootFunction s_funcTable[] = { Arguments: None. Returns: None. *---------------------------------------------------------------------------*/ -void HOTSW_Init(void) +void HOTSW_Init(u32 threadPrio) { OS_InitTick(); OS_InitThread(); @@ -235,7 +234,7 @@ void HOTSW_Init(void) NULL, s_ctData.stack + HOTSW_THREAD_STACK_SIZE / sizeof(u64), HOTSW_THREAD_STACK_SIZE, - HOTSW_THREAD_PRIO + threadPrio ); // メッセージキューの初期化 diff --git a/include/sysmenu/hotsw/common/hotsw.h b/include/sysmenu/hotsw/common/hotsw.h index 0fe41b19..b4669fc8 100644 --- a/include/sysmenu/hotsw/common/hotsw.h +++ b/include/sysmenu/hotsw/common/hotsw.h @@ -60,7 +60,7 @@ typedef struct HotSwMessage{ // Function prototype ------------------------------------------------------- // 活栓挿抜処理の初期化 -void HOTSW_Init(void); +void HOTSW_Init(u32 threadPrio); // カードの存在判定 BOOL HOTSW_IsCardExist(void);