diff --git a/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c b/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c index b717efb3..68a00e15 100644 --- a/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c +++ b/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c @@ -37,6 +37,8 @@ #define COPY_NUM_MAX (4*3) #define POST_CLEAR_NUM_MAX (12 + 4*2) +#define SYSMi_ARM9_BOOT_CODE_BUF 0x023fee00 + // extern data------------------------------------------------------- // function's prototype---------------------------------------------- @@ -48,24 +50,23 @@ static void BOOTi_CutAwayRegionList( u32 *regionlist, u32 start, u32 end ); // static variables-------------------------------------------------- -//TODO 定数への置き換え static u32 twl_post_clear_list[POST_CLEAR_NUM_MAX + 1] = { - 0x2000400, 0x2280000, - 0x2380000, 0x23fee00, - 0x23ff000, 0x2800000, - 0x2e73000, 0x2ffc000, + HW_PARAM_RESERVED_END, SYSM_OWN_ARM7_MMEM_ADDR, + SYSM_OWN_ARM7_MMEM_ADDR_END, SYSMi_ARM9_BOOT_CODE_BUF, + SYSMi_ARM9_BOOT_CODE_BUF + OS_BOOT_CODE_SIZE, SYSM_OWN_ARM9_MMEM_ADDR, + SYSM_OWN_ARM9_MMEM_ADDR_END, HW_TWL_MAIN_MEM_SHARED, NULL, }; static u32 nitro_post_clear_list[POST_CLEAR_NUM_MAX + 1] = { - 0x2000000, 0x2000100, - 0x2000400, 0x2280000, - 0x2380000, 0x23fee00, - 0x23ff000, 0x23ffe00, - 0x2400000, 0x27ffe00, - 0x2e73000, 0x2ffc000, + HW_PARAM_DELIVER_ARG, HW_PARAM_DELIVER_ARG_END, + HW_PARAM_RESERVED_END, SYSM_OWN_ARM7_MMEM_ADDR, + SYSM_OWN_ARM7_MMEM_ADDR_END, SYSMi_ARM9_BOOT_CODE_BUF, + SYSMi_ARM9_BOOT_CODE_BUF + OS_BOOT_CODE_SIZE, SYSM_NTR_ROM_HEADER_BUF, + SYSM_TWL_ARM9_LTD_LOAD_MMEM, SYSM_DBG_NTR_ROM_HEADER_BUF, + SYSM_OWN_ARM9_MMEM_ADDR_END, HW_TWL_MAIN_MEM_SHARED, NULL, }; diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c index 30ecf927..2ae4fbb6 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c @@ -724,8 +724,8 @@ void SYSM_StartLoadTitle( TitleProperty *pBootTitle ) MI_CpuCopyFast( (void *)(OS_TWL_HEADER_PRELOAD_MMEM), (void *)HW_TWL_ROM_HEADER_BUF, HW_ROM_HEADER_BUF_END - HW_ROM_HEADER_BUF ); MI_CpuCopyFast( (void *)(OS_TWL_HEADER_PRELOAD_MMEM), (void *)HW_ROM_HEADER_BUF, HW_ROM_HEADER_BUF_END - HW_ROM_HEADER_BUF ); // NTR-ROMヘッダ情報の再配置 - MI_CpuCopyFast( (void *)(OS_TWL_HEADER_PRELOAD_MMEM), (void *)0x027ffe00, HW_ROM_HEADER_BUF_END - HW_ROM_HEADER_BUF ); // 8Mのケツへ(TWLデバッガでのNTRモードデバッグ用) - MI_CpuCopyFast( (void *)(OS_TWL_HEADER_PRELOAD_MMEM), (void *)0x023ffe00, HW_ROM_HEADER_BUF_END - HW_ROM_HEADER_BUF ); // 4Mのケツへ + MI_CpuCopyFast( (void *)(OS_TWL_HEADER_PRELOAD_MMEM), (void *)SYSM_DBG_NTR_ROM_HEADER_BUF, HW_ROM_HEADER_BUF_END - HW_ROM_HEADER_BUF ); // 8Mのケツへ(TWLデバッガでのNTRモードデバッグ用) + MI_CpuCopyFast( (void *)(OS_TWL_HEADER_PRELOAD_MMEM), (void *)SYSM_NTR_ROM_HEADER_BUF, HW_ROM_HEADER_BUF_END - HW_ROM_HEADER_BUF ); // 4Mのケツへ } } } @@ -767,8 +767,8 @@ static void SYSMi_Relocate( void ) MI_CpuCopyFast( (void *)SYSM_CARD_ROM_HEADER_BUF, (void *)HW_TWL_ROM_HEADER_BUF, HW_ROM_HEADER_BUF_END - HW_ROM_HEADER_BUF ); MI_CpuCopyFast( (void *)SYSM_CARD_ROM_HEADER_BUF, (void *)HW_ROM_HEADER_BUF, HW_ROM_HEADER_BUF_END - HW_ROM_HEADER_BUF ); // NTR-ROMヘッダ情報の再配置 - MI_CpuCopyFast( (void *)SYSM_CARD_ROM_HEADER_BUF, (void *)0x027ffe00, HW_ROM_HEADER_BUF_END - HW_ROM_HEADER_BUF ); // 8Mのケツへ(TWLデバッガでのNTRモードデバッグ用) - MI_CpuCopyFast( (void *)SYSM_CARD_ROM_HEADER_BUF, (void *)0x023ffe00, HW_ROM_HEADER_BUF_END - HW_ROM_HEADER_BUF ); // 4Mのケツへ + MI_CpuCopyFast( (void *)SYSM_CARD_ROM_HEADER_BUF, (void *)SYSM_DBG_NTR_ROM_HEADER_BUF, HW_ROM_HEADER_BUF_END - HW_ROM_HEADER_BUF ); // 8Mのケツへ(TWLデバッガでのNTRモードデバッグ用) + MI_CpuCopyFast( (void *)SYSM_CARD_ROM_HEADER_BUF, (void *)SYSM_NTR_ROM_HEADER_BUF, HW_ROM_HEADER_BUF_END - HW_ROM_HEADER_BUF ); // 4Mのケツへ } } diff --git a/include/sysmenu/hw/common/mmap.h b/include/sysmenu/hw/common/mmap.h index fb6d6509..98e8d735 100644 --- a/include/sysmenu/hw/common/mmap.h +++ b/include/sysmenu/hw/common/mmap.h @@ -66,6 +66,9 @@ extern u32 SDK_AUTOLOAD_WRAM_START[]; #define SYSM_CARD_TWL_SECURE_BUF ( SYSM_CARD_NTR_SECURE_BUF_END ) #define SYSM_CARD_TWL_SECURE_BUF_END ( SYSM_CARD_TWL_SECURE_BUF + SECURE_AREA_SIZE ) +#define SYSM_NTR_ROM_HEADER_BUF 0x023ffe00 +#define SYSM_DBG_NTR_ROM_HEADER_BUF 0x027ffe00 + // ※アプリをWRAMに直接配置してブートしようとすると、SystemMenuのコードとぶつかっていろいろややこしい状態になるので、検討が必要 // アプリロード可能領域のマップ情報定義