diff --git a/build/components/hyena.TWL/Makefile b/build/components/hyena.TWL/Makefile index 34a378a7..f3a939e9 100644 --- a/build/components/hyena.TWL/Makefile +++ b/build/components/hyena.TWL/Makefile @@ -47,7 +47,6 @@ CCFLAGS_OPT = -O4 -inline off #---------------------------------------------------------------------------- include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs -include $(TWLSDK_ROOT)/build/libraries/reboot/commondefs.reboot GLIBRARIES := $(filter-out $(CRT0_O),$(GLIBRARIES)) @@ -91,13 +90,19 @@ INSTALL_DIR = $(TWL_INSTALL_COMPONENTSDIR)/$(TARGET_NAME)/$(TWL_BUILDTYPE) LINCLUDES = $(ROOT)/build/libraries/spi/ARM7/include \ $(ROOT)/build/libraries/spi/ARM7/pm/include \ $(ROOT)/build/libraries/init/common/include \ + $(ROOT)/build/libraries/reboot/common/include \ $(SYSMENU_ROOT)/build/libraries_sysmenu/sysmenu/common/include + LLIBRARY_DIRS += ./ -LLIBRARIES += libwl_sp.TWL.LTD.a \ - libaes_sp.firm.LTD.a \ - libsea_sp.TWL.LTD.a + +LLIBRARIES += libwl_sp.TWL.LTD.a \ + libaes_sp.firm.LTD.a \ + libsea_sp.TWL.LTD.a \ + libreboot_sp$(TWL_LIBSUFFIX).a + LDEPENDS_NEF = $(TWL_LIBS) $(LLIBRARIES) + do-build: $(TARGETS) #---------------------------------------------------------------------------- diff --git a/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c b/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c index 8b55d8f2..de131645 100644 --- a/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c +++ b/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c @@ -111,9 +111,12 @@ BOOL BOOT_WaitStart( void ) // 起動アプリNTR-ROMヘッダへのパッチ処理のためコピー MI_CpuCopyFast( th, dh, HW_CARD_ROM_HEADER_SIZE ); - // カードNTR-ROMヘッダをNANDアプリやマルチブートのためコピー + // カードNTR-ROMヘッダをNANDアプリやDSダウンロードプレイのためコピー MI_CpuCopyFast( (void*)SYSM_CARD_ROM_HEADER_BAK, (void*)HW_CARD_ROM_HEADER, HW_CARD_ROM_HEADER_SIZE ); + // この処理は、DSダウンロードプレイ側で行う。 + // MI_CpuCopyFast ( (void *)HW_CARD_ROM_HEADER, (void *)MB_CARD_ROM_HEADER_ADDRESS, 0x160); + // ブラックリストをチェックし、起動制限をかける BOOTi_CheckTitleBlackList( (void*)th ); diff --git a/build/libraries_sysmenu/sysmenu/common/src/status.c b/build/libraries_sysmenu/sysmenu/common/src/status.c index 5e1d5c8e..bda15e2e 100644 --- a/build/libraries_sysmenu/sysmenu/common/src/status.c +++ b/build/libraries_sysmenu/sysmenu/common/src/status.c @@ -152,12 +152,12 @@ BOOL SYSMi_CheckEntryAddress( void ) { // エントリアドレスがROM内登録エリアかAGBカートリッジエリアなら、無限ループに入る。 if( !( ( (u32)SYSM_GetCardRomHeader()->main_entry_address >= HW_MAIN_MEM ) && - ( (u32)SYSM_GetCardRomHeader()->main_entry_address < SYSM_ARM9_MMEM_ENTRY_ADDR_LIMIT ) + ( (u32)SYSM_GetCardRomHeader()->main_entry_address < HW_TWL_MAIN_MEM_SHARED ) ) || !( ( ( (u32)SYSM_GetCardRomHeader()->sub_entry_address >= HW_MAIN_MEM ) && - ( (u32)SYSM_GetCardRomHeader()->sub_entry_address < SYSM_ARM7_LOAD_MMEM_LAST_ADDR ) ) || - ( ( (u32)SYSM_GetCardRomHeader()->sub_entry_address >= HW_WRAM ) && - ( (u32)SYSM_GetCardRomHeader()->sub_entry_address < SYSM_ARM7_LOAD_WRAM_LAST_ADDR ) ) + ( (u32)SYSM_GetCardRomHeader()->sub_entry_address < HW_TWL_MAIN_MEM_SHARED ) ) || + ( ( (u32)SYSM_GetCardRomHeader()->sub_entry_address >= HW_WRAM_BASE ) && + ( (u32)SYSM_GetCardRomHeader()->sub_entry_address < SYSM_NTR_ARM7_LOAD_WRAM_END ) ) ) ) { OS_TPrintf("entry address invalid.\n"); diff --git a/build/systemMenu_RED/Launcher/ARM9/ARM9-TS.lsf b/build/systemMenu_RED/Launcher/ARM9/ARM9-TS.lsf index 3dbb6dfa..63a310b0 100644 --- a/build/systemMenu_RED/Launcher/ARM9/ARM9-TS.lsf +++ b/build/systemMenu_RED/Launcher/ARM9/ARM9-TS.lsf @@ -20,11 +20,16 @@ Static $(TARGET_NAME) { - Address 0x02800200 + Address 0x02681400 Object $(OBJS_STATIC) Library $(LLIBS) $(GLIBS) $(CW_LIBS) } +Autoload REBOOT +{ + Address 0x02680200 + Library $(REBOOT_LIB) +} Autoload ITCM { diff --git a/build/systemMenu_RED/Launcher/ARM9/Makefile b/build/systemMenu_RED/Launcher/ARM9/Makefile index 606d318b..1f238397 100644 --- a/build/systemMenu_RED/Launcher/ARM9/Makefile +++ b/build/systemMenu_RED/Launcher/ARM9/Makefile @@ -19,11 +19,11 @@ # ※コンパイルスイッチの都合上、../../../libraries_sysmenu/sysmenu は有効にしておく SUBDIRS = \ - ../../../libraries_sysmenu/sysmenu \ - ../../../libraries_sysmenu/boot \ - ../../../components/hyena.TWL \ - ../../../libraries_sysmenu/hotsw \ - ../../../libraries_sysmenu/sharedFont \ +# ../../../libraries_sysmenu/sysmenu \ +# ../../../libraries_sysmenu/boot \ +# ../../../components/hyena.TWL \ +# ../../../libraries_sysmenu/hotsw \ +# ../../../libraries_sysmenu/sharedFont \ # ../../../libraries_sysmenu/reloc_info \ # ../../../libraries_sysmenu/mcu \ # ../../../libraries_sysmenu/ds \ @@ -83,8 +83,9 @@ SRCS = main.c launcher.c sound.c bannerCounter.c loadWlanFirm.c loadSharedFo LINCLUDES = $(MISC_DIR)/include \ $(SRCDIR)/$(LOGO_DIR) \ - $(TWLSDK_ROOT)/build/libraries/wm/common.TWL/inc \ - $(TWLSDK_ROOT)/build/libraries/wm/ARM9.TWL/nwm/inc + $(ROOT)/build/libraries/wm/common.TWL/inc \ + $(ROOT)/build/libraries/wm/ARM9.TWL/nwm/inc \ + $(ROOT)/build/libraries/reboot/common/include LLIBRARIES += libes$(TWL_LIBSUFFIX).a \ libboc$(TWL_LIBSUFFIX).a \ @@ -96,13 +97,21 @@ LLIBRARIES += libes$(TWL_LIBSUFFIX).a \ libsharedfont_launcher$(TWL_LIBSUFFIX).a \ WDS$(TWL_LIBSUFFIX).a +REBOOT_LIB = libreboot$(TWL_LIBSUFFIX).a + +LDEPENDS_NEF += $(REBOOT_LIB) + ADDRESS_DTCM = 0x0e000000 DEFAULT_COMP_ARM7 = hyena + #---------------------------------------------------------------------------- # Append Flags + +MAKELCF_FLAGS += -DREBOOT_LIB='$(REBOOT_LIB)' + MAKEROM_FLAGS += -F \ -DTITLEID_LO='$(TITLEID_LO)' \ -DCARD_REGION='$(CARD_REGION)' \ @@ -144,7 +153,7 @@ endif #---------------------------------------------------------------------------- include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs -include $(TWLSDK_ROOT)/build/libraries/reboot/commondefs.reboot + # ローカルでビルドしたlibsharedfont_launcherを使用するので、SDKのlibsharedfontは除外する。 GLIBRARIES := $(filter-out libsharedfont$(TWL_LIBSUFFIX).a,$(GLIBRARIES)) diff --git a/docs/繝。繝「繝ェ繝槭ャ繝誉繝ゥ繝ウ繝√Ε繝シ.vsd b/docs/繝。繝「繝ェ繝槭ャ繝誉繝ゥ繝ウ繝√Ε繝シ.vsd index 79482883..4b46c8c1 100644 Binary files a/docs/繝。繝「繝ェ繝槭ャ繝誉繝ゥ繝ウ繝√Ε繝シ.vsd and b/docs/繝。繝「繝ェ繝槭ャ繝誉繝ゥ繝ウ繝√Ε繝シ.vsd differ diff --git a/include/sysmenu/hw/common/mmap.h b/include/sysmenu/hw/common/mmap.h index e7ae5186..870ecfb9 100644 --- a/include/sysmenu/hw/common/mmap.h +++ b/include/sysmenu/hw/common/mmap.h @@ -29,12 +29,8 @@ extern "C" { // define data ------------------------------------ // SystemMenu自身のマップ情報定義 -#define SYSM_OWN_ARM9_MMEM_ADDR 0x02800000 -//#ifdef DEBUG_USED_CARD_SLOT_B_ -#define SYSM_OWN_ARM9_MMEM_ADDR_END 0x02e73000 -#if 0 -#define SYSM_OWN_ARM9_MMEM_ADDR_END 0x02e76000 -#endif +#define SYSM_OWN_ARM9_MMEM_ADDR SYSM_TWL_ARM9_LTD_LOAD_MMEM_END +#define SYSM_OWN_ARM9_MMEM_ADDR_END SYSM_TWL_ARM7_LTD_LOAD_MMEM #define SYSM_OWN_ARM9_MMEM_CODE_ADDR (SYSM_OWN_ARM9_MMEM_ADDR + SYSM_DMA_BUFOVER_BARRIER_SIZE) #define SYSM_OWN_ARM7_MMEM_ADDR 0x02280000 #define SYSM_OWN_ARM7_MMEM_ADDR_END 0x02380000 @@ -47,21 +43,13 @@ extern u32 SDK_AUTOLOAD_WRAM_START[]; #endif #define SYSM_OWN_ARM7_WRAM_ADDR_END 0x0380f000 -#define SYSM_BOOTCODE_ARM9_ADDR 0x027ffc00 // ARM9最終ブートコードアドレス #define SYSROM9_NINLOGO_ADR 0xffff0020 // ARM9システムROM内の任天堂ロゴ格納アドレス #define SYSM_DMA_BUFOVER_BARRIER_SIZE 0x0200 // カードアプリ格納バッファ(ROMヘッダバッファはNANDアプリでも使用) #define SYSM_APP_ROM_HEADER_SIZE 0x1000 - -//#ifdef DEBUG_USED_CARD_SLOT_B_ -#define SYSM_CARD_BANNER_BUF ( SYSM_OWN_ARM9_MMEM_ADDR_END ) -#define SYSM_CARD_BANNER_BUF_END ( SYSM_CARD_BANNER_BUF + 0x3000 ) -#define SYSM_APP_ROM_HEADER_BUF ( SYSM_CARD_BANNER_BUF_END ) -#if 0 -#define SYSM_APP_ROM_HEADER_BUF ( SYSM_OWN_ARM9_MMEM_ADDR_END ) -#endif +#define SYSM_APP_ROM_HEADER_BUF ( 0x02fe6000 ) #define SYSM_APP_ROM_HEADER_BUF_END ( SYSM_APP_ROM_HEADER_BUF + SYSM_APP_ROM_HEADER_SIZE ) #define SYSM_CARD_ROM_HEADER_BAK ( SYSM_APP_ROM_HEADER_BUF_END ) #define SYSM_CARD_ROM_HEADER_BAK_END ( SYSM_CARD_ROM_HEADER_BAK + SYSM_APP_ROM_HEADER_SIZE ) @@ -69,6 +57,8 @@ extern u32 SDK_AUTOLOAD_WRAM_START[]; #define SYSM_CARD_NTR_SECURE_BUF_END ( SYSM_CARD_NTR_SECURE_BUF + SECURE_AREA_SIZE ) #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_CARD_BANNER_BUF ( SYSM_CARD_TWL_SECURE_BUF_END ) +#define SYSM_CARD_BANNER_BUF_END ( SYSM_CARD_BANNER_BUF + 0x3000 ) #define SYSM_NTR_ROM_HEADER_BUF 0x023ffe00 #define SYSM_DBG_NTR_ROM_HEADER_BUF 0x027ffe00 @@ -92,7 +82,7 @@ extern u32 SDK_AUTOLOAD_WRAM_START[]; #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_ARM9_LTD_LOAD_MMEM_END 0x02680000 // ロード可能な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 アドレス @@ -103,12 +93,6 @@ extern u32 SDK_AUTOLOAD_WRAM_START[]; // マウント情報一時バッファ #define SYSM_TWL_MOUNT_INFO_TMP_BUFFER 0x02ff3400 // マウント情報の一時バッファ -// ※旧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_OWN_ARM7_WRAM_ADDR_END // ロード可能なARM7 staticメインメモリ最終アドレス -#define SYSM_ARM9_MMEM_ENTRY_ADDR_LIMIT SYSM_ARM9_LOAD_MMEM_LAST_ADDR - #ifdef __cplusplus } #endif