mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
・活線挿抜ライブラリ関係の記述調整。
・活線挿抜ライブラリのカードロードstaticバッファを削除し、systemMenu予約領域にロードするよう変更。 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@245 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
d801b7d15e
commit
65605d7f32
@ -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
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -172,10 +172,10 @@ TwlSpMain(void)
|
||||
BOOT_Init();
|
||||
|
||||
// 活栓挿抜機能初期化
|
||||
// Cardm_Init();
|
||||
Cardm_Init();
|
||||
|
||||
// カードがささっていたらブート開始
|
||||
// Card_Boot();
|
||||
Card_Boot();
|
||||
|
||||
while (TRUE)
|
||||
{
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
SUBDIRS = \
|
||||
../../../libraries_sysmenu/sysmenu \
|
||||
../../../libraries_sysmenu/boot \
|
||||
../../../libraries_sysmenu/card \
|
||||
../../../components/hyena.TWL
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user