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 \
|
libsysmenu$(TWL_LIBSUFFIX).a \
|
||||||
libsettings$(TWL_LIBSUFFIX).a \
|
libsettings$(TWL_LIBSUFFIX).a \
|
||||||
libmbloader$(TWL_LIBSUFFIX).a \
|
libmbloader$(TWL_LIBSUFFIX).a \
|
||||||
libacsign$(TWL_LIBSUFFIX).a
|
libacsign$(TWL_LIBSUFFIX).a \
|
||||||
|
# libcardboot$(TWL_LIBSUFFIX).a
|
||||||
|
|
||||||
else # ($(CODEGEN_PROC),ARM7)
|
else # ($(CODEGEN_PROC),ARM7)
|
||||||
|
|
||||||
SYSMENU_LIBS ?= \
|
SYSMENU_LIBS ?= \
|
||||||
libmbloader_sp$(TWL_LIBSUFFIX).a
|
libmbloader_sp$(TWL_LIBSUFFIX).a \
|
||||||
|
libcardboot_sp$(TWL_LIBSUFFIX).a
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@ -55,6 +55,7 @@ Autoload WRAM
|
|||||||
libmicex_sp.TWL$(CODEGEN).a \
|
libmicex_sp.TWL$(CODEGEN).a \
|
||||||
libboot_sp.TWL$(CODEGEN).a \
|
libboot_sp.TWL$(CODEGEN).a \
|
||||||
libreboot_sp.TWL$(CODEGEN).a \
|
libreboot_sp.TWL$(CODEGEN).a \
|
||||||
|
libcardboot_sp.TWL$(CODEGEN).a \
|
||||||
|
|
||||||
Library libsdio_hcd_twl.TWL$(CODEGEN).a \
|
Library libsdio_hcd_twl.TWL$(CODEGEN).a \
|
||||||
libsdio_busdriver.TWL$(CODEGEN).a \
|
libsdio_busdriver.TWL$(CODEGEN).a \
|
||||||
@ -140,7 +141,6 @@ Ltdautoload LTDMAIN
|
|||||||
libnwm_sp.TWL$(CODEGEN).a \
|
libnwm_sp.TWL$(CODEGEN).a \
|
||||||
libwvr_sp.TWL$(CODEGEN).a \
|
libwvr_sp.TWL$(CODEGEN).a \
|
||||||
libwl_sp.TWL$(CODEGEN).a \
|
libwl_sp.TWL$(CODEGEN).a \
|
||||||
libcardboot_sp.TWL$(CODEGEN).a \
|
|
||||||
|
|
||||||
Library libfatfs_sp.TWL$(CODEGEN).a \
|
Library libfatfs_sp.TWL$(CODEGEN).a \
|
||||||
$(USE_CRYPTO_LIBS)
|
$(USE_CRYPTO_LIBS)
|
||||||
|
|||||||
@ -172,10 +172,10 @@ TwlSpMain(void)
|
|||||||
BOOT_Init();
|
BOOT_Init();
|
||||||
|
|
||||||
// 活栓挿抜機能初期化
|
// 活栓挿抜機能初期化
|
||||||
// Cardm_Init();
|
Cardm_Init();
|
||||||
|
|
||||||
// カードがささっていたらブート開始
|
// カードがささっていたらブート開始
|
||||||
// Card_Boot();
|
Card_Boot();
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -111,7 +111,7 @@ static asm void ClearBankREG_Stack( void )
|
|||||||
bl CpuClear32Byte
|
bl CpuClear32Byte
|
||||||
#endif // ISDBG_MB_CHILD_
|
#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
|
ldr r1, = ClearMemory
|
||||||
bl CpuClear32Byte
|
bl CpuClear32Byte
|
||||||
|
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
#include <sysmenu/card/common/Card.h>
|
#include <sysmenu/card/common/Card.h>
|
||||||
#include <sysmenu/card/common/dsCardType1.h>
|
#include <sysmenu/card/common/dsCardType1.h>
|
||||||
#include <sysmenu/card/common/dsCardType2.h>
|
#include <sysmenu/card/common/dsCardType2.h>
|
||||||
|
#include <sysmenu/memorymap.h>
|
||||||
// define -------------------------------------------------------------------
|
// define -------------------------------------------------------------------
|
||||||
#define STACK_SIZE 1024 // スタックサイズ
|
#define STACK_SIZE 1024 // スタックサイズ
|
||||||
#define MC_THREAD_PRIO 11 // カード電源ON → ゲームモードのスレッド優先度
|
#define MC_THREAD_PRIO 11 // カード電源ON → ゲームモードのスレッド優先度
|
||||||
@ -65,9 +65,6 @@ static BootSegmentData *s_pBootSegBuffer; //
|
|||||||
|
|
||||||
static CardBootData s_cbData;
|
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[] = {
|
static CardBootFunction s_funcTable[] = {
|
||||||
@ -123,10 +120,10 @@ void Cardm_Init(void)
|
|||||||
OS_WakeupThreadDirect(&s_MCThread);
|
OS_WakeupThreadDirect(&s_MCThread);
|
||||||
|
|
||||||
// Boot Segment バッファの設定
|
// Boot Segment バッファの設定
|
||||||
Card_SetBootSegmentBuffer((void *)&s_bootData, sizeof(BootSegmentData));
|
Card_SetBootSegmentBuffer((void *)SYSM_CARD_ROM_HEADER_BUFFER, 0x1000 );
|
||||||
|
|
||||||
// Secure Segment バッファの設定
|
// 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,
|
/* OS_CreateThread(&s_MLThread,
|
||||||
@ -208,7 +205,6 @@ BOOL Card_Boot(void)
|
|||||||
OS_TPrintf("TWL Card.\n");
|
OS_TPrintf("TWL Card.\n");
|
||||||
s_cbData.twlFlg = TRUE;
|
s_cbData.twlFlg = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Key Table初期化
|
// Key Table初期化
|
||||||
GCDm_MakeBlowfishTableDS(&s_cbData.keyTable, &s_pBootSegBuffer->rh.s, s_cbData.keyBuf, 8);
|
GCDm_MakeBlowfishTableDS(&s_cbData.keyTable, &s_pBootSegBuffer->rh.s, s_cbData.keyBuf, 8);
|
||||||
|
|
||||||
@ -230,10 +226,9 @@ BOOL Card_Boot(void)
|
|||||||
|
|
||||||
// Arm9の常駐モジュールを指定先に転送
|
// Arm9の常駐モジュールを指定先に転送
|
||||||
LoadStaticModule_Secure();
|
LoadStaticModule_Secure();
|
||||||
|
|
||||||
// ゲームモードに移行
|
// ゲームモードに移行
|
||||||
s_funcTable[s_cbData.cardType].ChangeMode_S(&s_cbData);
|
s_funcTable[s_cbData.cardType].ChangeMode_S(&s_cbData);
|
||||||
|
|
||||||
// ---------------------- Game Mode ----------------------
|
// ---------------------- Game Mode ----------------------
|
||||||
// ID読み込み
|
// ID読み込み
|
||||||
s_funcTable[s_cbData.cardType].ReadID_G(&s_cbData);
|
s_funcTable[s_cbData.cardType].ReadID_G(&s_cbData);
|
||||||
|
|||||||
@ -19,6 +19,7 @@
|
|||||||
SUBDIRS = \
|
SUBDIRS = \
|
||||||
../../../libraries_sysmenu/sysmenu \
|
../../../libraries_sysmenu/sysmenu \
|
||||||
../../../libraries_sysmenu/boot \
|
../../../libraries_sysmenu/boot \
|
||||||
|
../../../libraries_sysmenu/card \
|
||||||
../../../components/hyena.TWL
|
../../../components/hyena.TWL
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|||||||
@ -28,16 +28,22 @@ extern "C" {
|
|||||||
|
|
||||||
// SystemMenu自身のマップ情報定義
|
// SystemMenu自身のマップ情報定義
|
||||||
#define SYSM_OWN_ARM9_MMEM_ADDR 0x02800000
|
#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 0x02280000
|
||||||
#define SYSM_OWN_ARM7_MMEM_ADDR_END 0x02380000
|
#define SYSM_OWN_ARM7_MMEM_ADDR_END 0x02380000
|
||||||
#define SYSM_OWN_ARM7_WRAM_ADDR 0x037c0000
|
#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_ARM9_ADDR 0x027ffc00 // ARM9最終ブートコードアドレス
|
||||||
#define SYSM_BOOTCODE_ARM7_ADDR 0x0380f000 // ARM7最終ブートコードアドレス
|
|
||||||
#define SYSROM9_NINLOGO_ADR 0xffff0020 // ARM9システムROM内の任天堂ロゴ格納アドレス
|
#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のコードとぶつかっていろいろややこしい状態になるので、検討が必要
|
// ※アプリをWRAMに直接配置してブートしようとすると、SystemMenuのコードとぶつかっていろいろややこしい状態になるので、検討が必要
|
||||||
@ -70,7 +76,7 @@ extern "C" {
|
|||||||
// ※旧NTR-IPL2のレガシーコード 整理予定
|
// ※旧NTR-IPL2のレガシーコード 整理予定
|
||||||
#define SYSM_ARM9_LOAD_MMEM_LAST_ADDR 0x02280000 // ロード可能なARM9 staticメインメモリ最終アドレス
|
#define SYSM_ARM9_LOAD_MMEM_LAST_ADDR 0x02280000 // ロード可能なARM9 staticメインメモリ最終アドレス
|
||||||
#define SYSM_ARM7_LOAD_MMEM_LAST_ADDR 0x023c0000 // ロード可能なARM7 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
|
#define SYSM_ARM9_MMEM_ENTRY_ADDR_LIMIT SYSM_ARM9_LOAD_MMEM_LAST_ADDR
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user