From 2461dde7feed3de69b9ce403f23c527d3911e866 Mon Sep 17 00:00:00 2001 From: yosiokat Date: Thu, 6 Mar 2008 12:46:14 +0000 Subject: [PATCH] =?UTF-8?q?=E3=82=BD=E3=83=BC=E3=82=B9=E3=81=AB[TODO]?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@842 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/components/hyena.TWL/src/main.c | 5 +++-- build/libraries_sysmenu/boot/ARM7/src/bootAPI.c | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) 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