diff --git a/build/components/hyena.TWL/src/main.c b/build/components/hyena.TWL/src/main.c index b0ed3d0a..cb70e420 100644 --- a/build/components/hyena.TWL/src/main.c +++ b/build/components/hyena.TWL/src/main.c @@ -217,9 +217,10 @@ TwlSpMain(void) // それ以外の時は活線挿抜ON SYSMi_GetWork()->flags.hotsw.isEnableHotSW = 1; } - + + // [TODO]アプリジャンプ有効で、カードブートでない時は、最初からHOTSW_Initを呼ばないようにしたい。 HOTSW_Init(THREAD_PRIO_HOTSW); - + while (TRUE) { OS_Halt(); diff --git a/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c b/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c index 8193348f..13b5899d 100644 --- a/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c +++ b/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c @@ -18,8 +18,10 @@ #include #include #include +#include #include #include +#include #include "reboot.h" @@ -76,11 +78,22 @@ void BOOT_Init( void ) BOOL BOOT_WaitStart( void ) { if( (reg_PXI_MAINPINTF & 0x000f ) == 0x000f ) { - + (void)OS_DisableIrq(); // ここで割り込み禁止にしないとダメ。 (void)OS_SetIrqMask(0); // SDKバージョンのサーチに時間がかかると、ARM9がHALTにかかってしまい、ARM7のサウンドスレッドがARM9にFIFOでデータ送信しようとしてもFIFOが一杯で送信できない状態で無限ループに入ってしまう。 (void)OS_SetIrqMaskEx(0); + // [TODO]ブートするアプリに応じて、AESキースロットのクリアを行う。 + // ブートアプリのROMヘッダのaccessKeyControl情報を見て判定 +// AESi_ResetAesKeyA(); +// AESi_ResetAesKeyB(); +// AESi_ResetAesKeyC(); + + // [TODO]鍵情報の引渡しを行う。 + // ブートアプリのROMヘッダのaccessKeyControl情報を見て判定 + // 引渡しは、IRQスタック領域を使うので、割り込みを禁止してからセットする。 + + BOOTi_ClearREG_RAM(); // ARM7側のメモリ&レジスタクリア。 reg_MI_MBK9 = 0; // 全WRAMのロック解除 reg_PXI_MAINPINTF = MAINP_SEND_IF | 0x0100; // ARM9に対してブートするようIRQで要求+ARM7のステートを1にする。 @@ -96,6 +109,7 @@ BOOL BOOT_WaitStart( void ) u32 *post_clear_list; // メモリリストの設定 // [TODO:] ショップアプリで鍵を残す場合、NANDファーム引数の領域(WRAMにある)を消さないように注意 + // [TODO:] pre clearにARM9/7共用WRAMの32KBも入れる。 static u32 mem_list[PRE_CLEAR_NUM_MAX + 1 + COPY_NUM_MAX + 2 + POST_CLEAR_NUM_MAX + 1] = { // pre clear