mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
・include/sysmenu/hw/common/mmap.hにSystemMenuのメモリマップ定義を追加。
・ライブラリ内で使用していたメモリマップ情報を上記定義値に変更。 ・hyena.TWLコンポーネントの最終ブートコードアドレスを0x0380f000に変更。 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@171 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
8e85753fb1
commit
c1203dc8f2
@ -43,7 +43,7 @@ include $(TWLIPL_ROOT)/build/buildtools/commondefs
|
||||
|
||||
MAKELCF_FLAGS += -DADDRESS_LTDWRAM='0x037c0000' \
|
||||
-DADDRESS_FLXMAIN='0x02280000' \
|
||||
-DADDRESS_BOOTCORE='0x0380f100' \
|
||||
-DADDRESS_BOOTCORE='0x0380f000' \
|
||||
-DCRT0_O='$(CRT0_O)'
|
||||
MAKELCF_FLAGS += -DISDBG_LIBS='$(ISDBG_LIBS)'
|
||||
|
||||
|
||||
@ -86,8 +86,8 @@ TwlSpMain(void)
|
||||
{
|
||||
void *wram = OS_GetWramSubPrivArenaHi();
|
||||
void *mmem = OS_GetSubPrivArenaHi();
|
||||
OS_SetSubPrivArenaHi( (void*)0x02380000 ); // メモリ配置をいじっているので、アリーナHiも変更しないとダメ!!
|
||||
OS_SetWramSubPrivArenaHi( (void*)BOOTCORE_ARM7_ADDR );
|
||||
OS_SetSubPrivArenaHi( (void*)SYSM_OWN_ARM7_MMEM_ADDR_END ); // メモリ配置をいじっているので、アリーナHiも変更しないとダメ!!
|
||||
OS_SetWramSubPrivArenaHi( (void*)SYSM_OWN_ARM7_WRAM_ADDR_END );
|
||||
OS_TPrintf( "MMEM SUBPRV ARENA HI : %08x -> %08x\n", mmem, OS_GetSubPrivArenaHi() );
|
||||
OS_TPrintf( "WRAM SUBPRV ARENA HI : %08x -> %08x\n", wram, OS_GetWramSubPrivArenaHi() );
|
||||
}
|
||||
|
||||
@ -54,16 +54,16 @@ static asm void ClearMemory( void )
|
||||
{
|
||||
mov r11, lr
|
||||
#if 1
|
||||
ldr r0, = 0x02280000 // SYSMENU-ARM7 MMEMのクリア
|
||||
ldr r1, = 0x02380000
|
||||
ldr r0, = SYSM_OWN_ARM7_MMEM_ADDR // SYSMENU-ARM7 MMEMのクリア
|
||||
ldr r1, = SYSM_OWN_ARM7_MMEM_ADDR_END
|
||||
bl CpuClear32Byte
|
||||
|
||||
ldr r0, = 0x02800000 // SYSMENU-ARM9 MMEMのクリア
|
||||
ldr r1, = 0x02e7fc00
|
||||
ldr r0, = SYSM_OWN_ARM9_MMEM_ADDR // SYSMENU-ARM9 MMEMのクリア
|
||||
ldr r1, = SYSM_OWN_ARM9_MMEM_ADDR_END
|
||||
bl CpuClear32Byte
|
||||
|
||||
ldr r0, = HW_WRAM_A_LTD // ARM7-WRAMのクリア( LTDのマッピング )
|
||||
ldr r1, = BOOTCORE_ARM7_ADDR
|
||||
ldr r0, = SYSM_OWN_ARM7_WRAM_ADDR // SYSMENU-ARM7 WRAMのクリア(WRAM-A + ARM7専用WRAM)
|
||||
ldr r1, = SYSM_OWN_ARM7_WRAM_ADDR_END
|
||||
bl CpuClear32Byte
|
||||
#endif
|
||||
bx r11
|
||||
@ -111,11 +111,11 @@ static asm void ClearBankREG_Stack( void )
|
||||
bl CpuClear32Byte
|
||||
#endif // ISDBG_MB_CHILD_
|
||||
|
||||
sub r0, r2, #( HW_PRV_WRAM_END - BOOTCORE_ARM7_ADDR )
|
||||
sub r0, r2, #( HW_PRV_WRAM_END - SYSM_BOOTCODE_ARM7_ADDR )
|
||||
ldr r1, = ClearMemory
|
||||
bl CpuClear32Byte
|
||||
|
||||
ldr r2, = 0x027ff000
|
||||
ldr r2, = 0x02fff000
|
||||
mov r0, r2
|
||||
add r1, r2, #0x800
|
||||
bl CpuClear32Byte
|
||||
|
||||
@ -83,10 +83,10 @@ void SYSM_Init( void *(*pAlloc)(u32), void (*pFree)(void*) )
|
||||
#endif /* __SYSM_DEBUG */
|
||||
|
||||
// ARM7コンポーネント用プロテクションユニット領域変更
|
||||
OS_SetProtectionRegion( 2, 0x02280000, 512KB );
|
||||
OS_SetProtectionRegion( 2, SYSM_OWN_ARM7_MMEM_ADDR, 512KB );
|
||||
|
||||
// ARM9用ブートコード配置のため、アリーナHi位置を下げる
|
||||
OS_SetMainArenaHi( (void *)0x02e7fc00 );
|
||||
OS_SetMainArenaHi( (void *)SYSM_OWN_ARM9_MMEM_ADDR_END );
|
||||
|
||||
SYSM_SetAllocFunc( pAlloc, pFree );
|
||||
|
||||
@ -144,6 +144,7 @@ int SYSM_GetCardTitleList( TitleProperty *pTitleList_Card )
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// 指定ファイルリード
|
||||
static s32 ReadFile(FSFile* pf, void* buffer, s32 size)
|
||||
{
|
||||
|
||||
@ -25,13 +25,52 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
// define data ------------------------------------
|
||||
#define BOOTCORE_ARM9_ADDR 0x02e7fc00 // ARM9最終ブートコードアドレス
|
||||
#define BOOTCORE_ARM7_ADDR 0x0380f100 // ARM7最終ブートコードアドレス
|
||||
|
||||
// SystemMenu自身のマップ情報定義
|
||||
#define SYSM_OWN_ARM9_MMEM_ADDR 0x02800000
|
||||
#define SYSM_OWN_ARM9_MMEM_ADDR_END SYSM_BOOTCODE_ARM9_ADDR
|
||||
#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_BOOTCODE_ARM9_ADDR 0x02e7fc00 // ARM9最終ブートコードアドレス
|
||||
#define SYSM_BOOTCODE_ARM7_ADDR 0x0380f000 // ARM7最終ブートコードアドレス
|
||||
#define SYSROM9_NINLOGO_ADR 0xffff0020 // ARM9システムROM内の任天堂ロゴ格納アドレス
|
||||
|
||||
|
||||
|
||||
// ※アプリをWRAMに直接配置してブートしようとすると、SystemMenuのコードとぶつかっていろいろややこしい状態になるので、検討が必要
|
||||
|
||||
// アプリロード可能領域のマップ情報定義
|
||||
#define SYSM_NTR_ARM9_LOAD_MMEM 0x02000000 // ロード可能なARM9 static MMEM アドレス
|
||||
#define SYSM_NTR_ARM9_LOAD_MMEM_END 0x02280000 // ロード可能なARM9 static MMEM 最終アドレス
|
||||
#define SYSM_NTR_ARM7_LOAD_MMEM 0x02380000 // ロード可能なARM7 static MMEM アドレス
|
||||
#define SYSM_NTR_ARM7_LOAD_MMEM_END 0x023c0000 // ロード可能なARM7 static MMEM 最終アドレス
|
||||
#define SYSM_NTR_ARM7_LOAD_WRAM 0x037f8000 // ロード可能なARM7 static WRAM アドレス
|
||||
#define SYSM_NTR_ARM7_LOAD_WRAM_END 0x0380f000 // ロード可能なARM7 static WRAM 最終アドレス
|
||||
|
||||
#define SYSM_TWL_ARM9_LOAD_MMEM SYSM_NTR_ARM9_LOAD_MMEM // ロード可能なARM9 static MMEM アドレス
|
||||
#define SYSM_TWL_ARM9_LOAD_MMEM_END SYSM_NTR_ARM9_LOAD_MMEM_END // ロード可能なARM9 static MMEM 最終アドレス
|
||||
#define SYSM_TWL_ARM7_LOAD_MMEM SYSM_NTR_ARM7_LOAD_MMEM // ロード可能なARM7 static MMEM アドレス
|
||||
#define SYSM_TWL_ARM7_LOAD_MMEM_END SYSM_NTR_ARM7_LOAD_MMEM_END // ロード可能なARM7 static MMEM 最終アドレス
|
||||
#define SYSM_TWL_ARM7_LOAD_WRAM SYSM_NTR_ARM7_LOAD_WRAM // ロード可能なARM7 static WRAM アドレス
|
||||
#define SYSM_TWL_ARM7_LOAD_WRAM_END SYSM_NTR_ARM7_LOAD_WRAM_END // ロード可能なARM7 static WRAM 最終アドレス
|
||||
|
||||
#define SYSM_TWL_ARM9_LTD_LOAD_MMEM 0x02400000 // ロード可能なARM9 LTD static MMEM アドレス
|
||||
#define SYSM_TWL_ARM9_LTD_LOAD_MMEM_END 0x02800000 // ロード可能なARM9 LTD static MMEM 最終アドレス
|
||||
#define SYSM_TWL_ARM7_LTD_LOAD_MMEM 0x02e80000 // ロード可能なARM7 LTD static MMEM アドレス
|
||||
#define SYSM_TWL_ARM7_LTD_LOAD_MMEM_END 0x02f88000 // ロード可能なARM7 LTD static MMEM 最終アドレス
|
||||
#define SYSM_TWL_ARM7_LTD_LOAD_WRAM 0x037c0000 // ロード可能なARM7 LTD static WRAM アドレス
|
||||
#define SYSM_TWL_ARM7_LTD_LOAD_WRAM_END SYSM_NTR_ARM7_LOAD_WRAM_END // ロード可能なARM7 LTD static WRAM 最終アドレス
|
||||
#define SYSM_TWL_ARM7_LTD_HYB_LOAD_WRAM 0x037f8000 // ロード可能なARM7 LTD static WRAM アドレス
|
||||
#define SYSM_TWL_ARM7_LTD_HYB_LOAD_WRAM_END SYSM_NTR_ARM7_LOAD_WRAM_END // ロード可能なARM7 LTD static WRAM 最終アドレス
|
||||
|
||||
|
||||
// ※旧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 BOOTCORE_ARM7_ADDR // ロード可能なARM7 staticメインメモリ最終アドレス
|
||||
#define SYSM_ARM7_LOAD_WRAM_LAST_ADDR SYSM_BOOTCODE_ARM7_ADDR // ロード可能な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