・活線挿抜ライブラリ関係の記述調整。

・活線挿抜ライブラリのカードロードstaticバッファを削除し、systemMenu予約領域にロードするよう変更。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@245 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yosiokat 2007-11-22 01:54:41 +00:00
parent d801b7d15e
commit 65605d7f32
7 changed files with 24 additions and 20 deletions

View File

@ -61,12 +61,14 @@ SYSMENU_LIBS ?= \
libsysmenu$(TWL_LIBSUFFIX).a \
libsettings$(TWL_LIBSUFFIX).a \
libmbloader$(TWL_LIBSUFFIX).a \
libacsign$(TWL_LIBSUFFIX).a
libacsign$(TWL_LIBSUFFIX).a \
# libcardboot$(TWL_LIBSUFFIX).a
else # ($(CODEGEN_PROC),ARM7)
SYSMENU_LIBS ?= \
libmbloader_sp$(TWL_LIBSUFFIX).a
libmbloader_sp$(TWL_LIBSUFFIX).a \
libcardboot_sp$(TWL_LIBSUFFIX).a
endif

View File

@ -55,6 +55,7 @@ Autoload WRAM
libmicex_sp.TWL$(CODEGEN).a \
libboot_sp.TWL$(CODEGEN).a \
libreboot_sp.TWL$(CODEGEN).a \
libcardboot_sp.TWL$(CODEGEN).a \
Library libsdio_hcd_twl.TWL$(CODEGEN).a \
libsdio_busdriver.TWL$(CODEGEN).a \
@ -140,7 +141,6 @@ Ltdautoload LTDMAIN
libnwm_sp.TWL$(CODEGEN).a \
libwvr_sp.TWL$(CODEGEN).a \
libwl_sp.TWL$(CODEGEN).a \
libcardboot_sp.TWL$(CODEGEN).a \
Library libfatfs_sp.TWL$(CODEGEN).a \
$(USE_CRYPTO_LIBS)

View File

@ -172,10 +172,10 @@ TwlSpMain(void)
BOOT_Init();
// 活栓挿抜機能初期化
// Cardm_Init();
Cardm_Init();
// カードがささっていたらブート開始
// Card_Boot();
Card_Boot();
while (TRUE)
{

View File

@ -111,7 +111,7 @@ static asm void ClearBankREG_Stack( void )
bl CpuClear32Byte
#endif // ISDBG_MB_CHILD_
sub r0, r2, #( HW_PRV_WRAM_END - SYSM_BOOTCODE_ARM7_ADDR )
sub r0, r2, #( HW_PRV_WRAM_END - SYSM_OWN_ARM7_WRAM_ADDR_END )
ldr r1, = ClearMemory
bl CpuClear32Byte

View File

@ -20,7 +20,7 @@
#include <sysmenu/card/common/Card.h>
#include <sysmenu/card/common/dsCardType1.h>
#include <sysmenu/card/common/dsCardType2.h>
#include <sysmenu/memorymap.h>
// define -------------------------------------------------------------------
#define STACK_SIZE 1024 // スタックサイズ
#define MC_THREAD_PRIO 11 // カード電源ON → ゲームモードのスレッド優先度
@ -65,9 +65,6 @@ static BootSegmentData *s_pBootSegBuffer; //
static CardBootData s_cbData;
// temp value --------------------------------------------------------
static BootSegmentData s_bootData ATTRIBUTE_ALIGN(32);
static u32 s_SecureData[SECURE_SEGMENT_SIZE / sizeof(u32)] ATTRIBUTE_ALIGN(32);
// -------------------------------------------------------------------
static CardBootFunction s_funcTable[] = {
@ -123,10 +120,10 @@ void Cardm_Init(void)
OS_WakeupThreadDirect(&s_MCThread);
// Boot Segment バッファの設定
Card_SetBootSegmentBuffer((void *)&s_bootData, sizeof(BootSegmentData));
Card_SetBootSegmentBuffer((void *)SYSM_CARD_ROM_HEADER_BUFFER, 0x1000 );
// Secure Segment バッファの設定
Card_SetSecureSegmentBuffer((void *)s_SecureData, sizeof(s_SecureData));
Card_SetSecureSegmentBuffer((void *)SYSM_CARD_NTR_SECURE_BUFFER, SECURE_AREA_SIZE );
// モジュールロード用スレッドの生成
/* OS_CreateThread(&s_MLThread,
@ -208,7 +205,6 @@ BOOL Card_Boot(void)
OS_TPrintf("TWL Card.\n");
s_cbData.twlFlg = TRUE;
}
// Key Table初期化
GCDm_MakeBlowfishTableDS(&s_cbData.keyTable, &s_pBootSegBuffer->rh.s, s_cbData.keyBuf, 8);
@ -230,10 +226,9 @@ BOOL Card_Boot(void)
// Arm9の常駐モジュールを指定先に転送
LoadStaticModule_Secure();
// ゲームモードに移行
s_funcTable[s_cbData.cardType].ChangeMode_S(&s_cbData);
// ---------------------- Game Mode ----------------------
// ID読み込み
s_funcTable[s_cbData.cardType].ReadID_G(&s_cbData);

View File

@ -19,6 +19,7 @@
SUBDIRS = \
../../../libraries_sysmenu/sysmenu \
../../../libraries_sysmenu/boot \
../../../libraries_sysmenu/card \
../../../components/hyena.TWL
#----------------------------------------------------------------------------

View File

@ -28,16 +28,22 @@ extern "C" {
// SystemMenu自身のマップ情報定義
#define SYSM_OWN_ARM9_MMEM_ADDR 0x02800000
#define SYSM_OWN_ARM9_MMEM_ADDR_END SYSM_BOOTCODE_ARM9_ADDR
#define SYSM_OWN_ARM9_MMEM_ADDR_END 0x02e77000
#define SYSM_OWN_ARM7_MMEM_ADDR 0x02280000
#define SYSM_OWN_ARM7_MMEM_ADDR_END 0x02380000
#define SYSM_OWN_ARM7_WRAM_ADDR 0x037c0000
#define SYSM_OWN_ARM7_WRAM_ADDR_END SYSM_BOOTCODE_ARM7_ADDR
#define SYSM_OWN_ARM7_WRAM_ADDR_END 0x0380f000
#define SYSM_BOOTCODE_ARM9_ADDR 0x02e7fc00 // ARM9最終ブートコードアドレス
#define SYSM_BOOTCODE_ARM7_ADDR 0x0380f000 // ARM7最終ブートコードアドレス
#define SYSM_BOOTCODE_ARM9_ADDR 0x027ffc00 // ARM9最終ブートコードアドレス
#define SYSROM9_NINLOGO_ADR 0xffff0020 // ARM9システムROM内の任天堂ロゴ格納アドレス
// カードアプリ格納バッファ
#define SYSM_CARD_ROM_HEADER_BUFFER ( SYSM_OWN_ARM9_MMEM_ADDR_END )
#define SYSM_CARD_ROM_HEADER_BUFFER_END ( SYSM_OWN_ARM9_MMEM_ADDR_END + 0x1000 )
#define SYSM_CARD_NTR_SECURE_BUFFER ( SYSM_CARD_ROM_HEADER_BUFFER_END )
#define SYSM_CARD_NTR_SECURE_BUFFER_END ( SYSM_CARD_ROM_HEADER_BUFFER_END + SECURE_AREA_SIZE )
#define SYSM_CARD_TWL_SECURE_BUFFER ( SYSM_CARD_NTR_SECURE_BUFFER_END )
#define SYSM_CARD_TWL_SECURE_BUFFER_END ( SYSM_CARD_NTR_SECURE_BUFFER_END + SECURE_AREA_SIZE )
// ※アプリをWRAMに直接配置してブートしようとすると、SystemMenuのコードとぶつかっていろいろややこしい状態になるので、検討が必要
@ -70,7 +76,7 @@ extern "C" {
// ※旧NTR-IPL2のレガシーコード 整理予定
#define SYSM_ARM9_LOAD_MMEM_LAST_ADDR 0x02280000 // ロード可能なARM9 staticメインメモリ最終アドレス
#define SYSM_ARM7_LOAD_MMEM_LAST_ADDR 0x023c0000 // ロード可能なARM7 staticメインメモリ最終アドレス
#define SYSM_ARM7_LOAD_WRAM_LAST_ADDR SYSM_BOOTCODE_ARM7_ADDR // ロード可能なARM7 staticメインメモリ最終アドレス
#define SYSM_ARM7_LOAD_WRAM_LAST_ADDR SYSM_OWN_ARM7_WRAM_ADDR_END // ロード可能なARM7 staticメインメモリ最終アドレス
#define SYSM_ARM9_MMEM_ENTRY_ADDR_LIMIT SYSM_ARM9_LOAD_MMEM_LAST_ADDR
#ifdef __cplusplus