From e0b39854313066b0a88d499f47af912e7d2542dd Mon Sep 17 00:00:00 2001 From: yosiokat Date: Tue, 29 Jan 2008 08:34:32 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=BBHWInfoWriter=E3=81=AE=E3=83=A9?= =?UTF-8?q?=E3=83=B3=E3=83=81=E3=83=A3=E3=83=BCTitleID=5FLo=E3=82=92?= =?UTF-8?q?=E3=83=93=E3=83=83=E3=82=B0=E3=82=A8=E3=83=B3=E3=83=87=E3=82=A3?= =?UTF-8?q?=E3=82=A2=E3=83=B3=E3=81=AB=E4=BF=AE=E6=AD=A3=E3=80=82=20?= =?UTF-8?q?=E3=83=BBTwlBanner.xls=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1?= =?UTF-8?q?=E3=83=B3=E3=83=88=E6=9B=B4=E6=96=B0=E3=80=82=20=E3=83=BBNAND?= =?UTF-8?q?=E3=82=A2=E3=83=97=E3=83=AA=E3=83=AA=E3=82=B9=E3=83=88=E5=8F=96?= =?UTF-8?q?=E5=BE=97=E6=99=82=E3=81=AB=E3=80=81TitleID=5FHi=E3=81=AE?= =?UTF-8?q?=E5=80=A4=E3=81=AB=E3=82=88=E3=81=A3=E3=81=A6=E5=8F=96=E6=8D=A8?= =?UTF-8?q?=E9=81=B8=E6=8A=9E=E3=82=92=E8=A1=8C=E3=81=86=E3=82=88=E3=81=86?= =?UTF-8?q?=E5=A4=89=E6=9B=B4=E3=80=82=20=E3=83=BBPXI=E3=82=92=E4=BD=BF?= =?UTF-8?q?=E3=81=A3=E3=81=A6ARM9=E3=81=8B=E3=82=89HotSW=E3=82=92=E5=88=B6?= =?UTF-8?q?=E5=BE=A1=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= =?UTF-8?q?=E3=81=97=E3=82=88=E3=81=86=E3=81=A8=E8=A9=A6=E3=81=BF=E4=B8=AD?= =?UTF-8?q?=E3=80=82=20=E3=83=BBSYSM=5Fwork=E3=81=AE=E3=83=95=E3=83=A9?= =?UTF-8?q?=E3=82=B0=E6=A7=8B=E6=88=90=E3=82=92=E4=BF=AE=E6=AD=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@539 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- Makefile.full | 1 + build/buildtools/commondefs.sysmenu | 4 +- build/components/hyena.TWL/Makefile | 3 +- build/components/hyena.TWL/hyena.lsf | 6 +- build/components/hyena.TWL/src/main.c | 15 +- .../libraries_sysmenu/boot/ARM7/src/bootAPI.c | 2 +- build/libraries_sysmenu/hotsw/ARM7/Makefile | 2 +- .../libraries_sysmenu/hotsw/ARM7/src/hotsw.c | 12 +- build/libraries_sysmenu/sysmenu/ARM7/Makefile | 45 ++++ build/libraries_sysmenu/sysmenu/ARM9/Makefile | 7 +- .../sysmenu/ARM9/src/banner.c | 4 +- .../sysmenu/ARM9/src/device.c | 2 +- .../sysmenu/ARM9/src/mountInfo.c | 4 +- .../sysmenu/ARM9/src/sysmenu_lib.c | 33 +-- .../sysmenu/ARM9/src/title.c | 228 +++++++++++------- build/libraries_sysmenu/sysmenu/Makefile | 2 +- .../{ARM9 => common}/include/internal_api.h | 7 +- .../sysmenu/common/internal_api.h | 80 ++++++ .../sysmenu/common/src/pxi.c | 116 +++++++++ build/nandfirm/menu-launcher/ARM9/main.c | 2 +- build/nandfirm/menu-launcher2/ARM9/main.c | 2 +- .../HWInfoWriter/ARM9/src/HWInfoWriter.c | 21 +- .../NandInitializer/ARM7.TWL/main.lsf | 9 +- .../ARM9.TWL/src/process_hw_info.c | 2 +- .../CooperationA/ARM9/src/CooperationA.c | 2 +- .../CooperationA/ARM9/src/main.c | 4 +- .../CooperationB/ARM9/src/CooperationB.c | 2 +- .../CooperationB/ARM9/src/main.c | 4 +- .../CooperationC/ARM9/src/CooperationC.c | 2 +- .../CooperationC/ARM9/src/main.c | 4 +- .../ARM9/src/ExecPreLoadedApp.c | 4 +- build/tests/ExecPreLoadedApp/ARM9/src/main.c | 4 +- build/tests/RelocateChecker/ARM7/hyena_rc.lsf | 2 +- .../tests/RelocateChecker/ARM7/hyena_rc5.lsf | 2 +- build/tests/RelocateChecker/ARM7/src/main.c | 8 +- doc/TWLBanner.xls | Bin 25600 -> 27648 bytes .../sysmenu/sysmenu_lib/common/sysmenu_work.h | 70 ++++-- 37 files changed, 530 insertions(+), 187 deletions(-) create mode 100644 build/libraries_sysmenu/sysmenu/ARM7/Makefile rename build/libraries_sysmenu/sysmenu/{ARM9 => common}/include/internal_api.h (88%) create mode 100644 build/libraries_sysmenu/sysmenu/common/internal_api.h create mode 100644 build/libraries_sysmenu/sysmenu/common/src/pxi.c diff --git a/Makefile.full b/Makefile.full index 7d9258ef..b586c89b 100644 --- a/Makefile.full +++ b/Makefile.full @@ -24,6 +24,7 @@ export TWL_ARCHGEN = ALL SUBDIRS = \ $(ROOT)/build/libraries/reboot \ + $(ROOT)/build/demos/gx/UnitTours/DEMOLib \ $(TWLSYSTEM_ROOT) \ build diff --git a/build/buildtools/commondefs.sysmenu b/build/buildtools/commondefs.sysmenu index b2d43b7f..e060ccb1 100644 --- a/build/buildtools/commondefs.sysmenu +++ b/build/buildtools/commondefs.sysmenu @@ -66,14 +66,14 @@ SYSMENU_LIBS ?= \ libmbloader$(TWL_LIBSUFFIX).a \ libacsign$(TWL_LIBSUFFIX).a \ libboot$(TWL_LIBSUFFIX).a \ -# libcardboot$(TWL_LIBSUFFIX).a else # ($(CODEGEN_PROC),ARM7) SYSMENU_LIBS ?= \ + libsysmenu_sp$(TWL_LIBSUFFIX).a \ libmbloader_sp$(TWL_LIBSUFFIX).a \ libboot_sp$(TWL_LIBSUFFIX).a \ - libcardboot_sp$(TWL_LIBSUFFIX).a + libhotsw_sp$(TWL_LIBSUFFIX).a endif diff --git a/build/components/hyena.TWL/Makefile b/build/components/hyena.TWL/Makefile index 47b0a651..df7b8e20 100644 --- a/build/components/hyena.TWL/Makefile +++ b/build/components/hyena.TWL/Makefile @@ -72,7 +72,8 @@ INSTALL_TARGETS = $(BINDIR)/$(TARGET_NAME).tef \ INSTALL_DIR = $(TWL_INSTALL_COMPONENTSDIR)/$(TARGET_NAME)/$(TWL_BUILDTYPE) -LINCLUDES = $(ROOT)/build/libraries/spi/ARM7/include +LINCLUDES = $(ROOT)/build/libraries/spi/ARM7/include \ + $(SYSMENU_ROOT)/build/libraries_sysmenu/sysmenu/common/include LLIBRARIES += libwl_sp.TWL.LTD.a LDEPENDS_NEF = $(TWL_LIBS) $(LLIBRARIES) diff --git a/build/components/hyena.TWL/hyena.lsf b/build/components/hyena.TWL/hyena.lsf index 8585b7d5..49b3dd08 100644 --- a/build/components/hyena.TWL/hyena.lsf +++ b/build/components/hyena.TWL/hyena.lsf @@ -56,9 +56,9 @@ Autoload WRAM libmcu_sp$(LIBSUFFIX).a \ libboot_sp$(LIBSUFFIX).a \ libreboot_sp$(LIBSUFFIX).a \ - libcardboot_sp$(LIBSUFFIX).a \ - libreloc_info_sp$(LIBSUFFIX).a - + libhotsw_sp$(LIBSUFFIX).a \ + libreloc_info_sp$(LIBSUFFIX).a \ + libsysmenu_sp$(LIBSUFFIX).a Library libsdio_sp$(LIBSUFFIX).a diff --git a/build/components/hyena.TWL/src/main.c b/build/components/hyena.TWL/src/main.c index bc024081..e6de4472 100644 --- a/build/components/hyena.TWL/src/main.c +++ b/build/components/hyena.TWL/src/main.c @@ -37,6 +37,7 @@ #include #include #include "nvram_sp.h" +#include "internal_api.h" /*---------------------------------------------------------------------------* 定数定義 @@ -112,6 +113,9 @@ TwlSpMain(void) OS_InitTick(); PrintDebugInfo(); + // PXIコールバックの設定 + PXI_SetFifoRecvCallback( SYSMENU_PXI_FIFO_TAG, SYSMi_PXIFifoRecvCallback ); + // ランチャーパラメター取得(Cold/Hotスタート判定含む) ReadLauncherParameter(); @@ -123,7 +127,7 @@ TwlSpMain(void) // [TODO:] カード電源ONして、ROMヘッダのみリード&チェックくらいはやっておきたい - SYSMi_GetWork()->isARM9Start = TRUE; // [TODO:] HW_RED_RESERVEDはNANDファームでクリアしておいて欲しい + SYSMi_GetWork()->flags.common.isARM9Start = TRUE; // [TODO:] HW_RED_RESERVEDはNANDファームでクリアしておいて欲しい // ヒープ領域設定 { @@ -247,7 +251,7 @@ static void ResetRTC( void ) // リセット実行 stat1.reset = 1; RTC_WriteStatus1( &stat1 ); - SYSMi_GetWork()->isResetRTC = TRUE; + SYSMi_GetWork()->flags.common.isResetRTC = TRUE; } } @@ -256,8 +260,8 @@ static void ResetRTC( void ) void ReadLauncherParameter( void ) { BOOL hot; - SYSMi_GetWork()->isValidLauncherParam = OS_ReadLauncherParameter( (LauncherParam *)&(SYSMi_GetWork()->launcherParam), &hot ); - SYSMi_GetWork()->isHotStart = hot; + SYSMi_GetWork()->flags.common.isValidLauncherParam = OS_ReadLauncherParameter( (LauncherParam *)&(SYSMi_GetWork()->launcherParam), &hot ); + SYSMi_GetWork()->flags.common.isHotStart = hot; // メインメモリのリセットパラメータをクリアしておく MI_CpuClear32( SYSMi_GetLauncherParamAddr(), 0x100 ); } @@ -618,7 +622,7 @@ extern u16 WMSP_GetAllowedChannel(u16 bitField); *---------------------------------------------------------------------------*/ static void ReadUserInfo(void) { - u8 *p; + u8 *p = OS_GetSystemWork()->nvramUserInfo; // 無線MACアドレスをユーザー情報の後ろに展開 { @@ -668,3 +672,4 @@ VBlankIntr(void) PM_SelfBlinkProc(); } } + diff --git a/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c b/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c index 4ab68a5f..c0813d4d 100644 --- a/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c +++ b/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c @@ -213,7 +213,7 @@ BOOL BOOT_WaitStart( void ) static void BOOTi_ClearREG_RAM( void ) { - if( SYSMi_GetWork()->isCardBoot ) { + if( SYSMi_GetWork()->flags.common.isCardBoot ) { #ifdef DEBUG_USED_CARD_SLOT_B_ reg_MI_MC_SWP = 0x80; // カードスロットのスワップ #endif diff --git a/build/libraries_sysmenu/hotsw/ARM7/Makefile b/build/libraries_sysmenu/hotsw/ARM7/Makefile index 2b752477..cd874b52 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/Makefile +++ b/build/libraries_sysmenu/hotsw/ARM7/Makefile @@ -31,7 +31,7 @@ INCDIR = ./include SRCS = blowfish.c hotsw.c ds_blowfish_table.c dsCardType1.c dsCardType2.c romEmulation.c customNDma.c -TARGET_LIB = libcardboot_sp$(TWL_LIBSUFFIX).a +TARGET_LIB = libhotsw_sp$(TWL_LIBSUFFIX).a include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c index 9cbd8d22..1d2e73ec 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c @@ -180,7 +180,7 @@ void HOTSW_Init(void) else{ OS_PutString("No Card...\n"); #ifdef DEBUG_USED_CARD_SLOT_B_ - SYSMi_GetWork()->is1stCardChecked = TRUE; + SYSMi_GetWork()->flags.common.is1stCardChecked = TRUE; #endif } } @@ -297,8 +297,8 @@ BOOL HOTSW_Boot(void) retval = FALSE; } - SYSMi_GetWork()->isExistCard = retval; - SYSMi_GetWork()->isCardStateChanged = TRUE; // 本当は挿抜単位でここを立てる。 + SYSMi_GetWork()->flags.common.isExistCard = retval; + SYSMi_GetWork()->flags.common.isCardStateChanged = TRUE; // 本当は挿抜単位でここを立てる。 (void)OS_UnlockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM9と排他制御する OS_ReleaseLockID( id ); @@ -376,10 +376,10 @@ BOOL HOTSW_Boot(void) // [TODO:]暫定処置。ちゃんとした流れでLauncher側に渡すようにする。 MI_CpuCopy8( HOTSW_GetRomEmulationBuffer(), &SYSMi_GetWork()->romEmuInfo, ROM_EMULATION_DATA_SIZE ); - SYSMi_GetWork()->isOnDebugger = s_cbData.debuggerFlg; + SYSMi_GetWork()->flags.common.isOnDebugger = s_cbData.debuggerFlg; #ifdef DEBUG_USED_CARD_SLOT_B_ - SYSMi_GetWork()->is1stCardChecked = TRUE; + SYSMi_GetWork()->flags.common.is1stCardChecked = TRUE; #endif return retval; @@ -412,7 +412,7 @@ void HOTSW_LoadStaticModule(void) s_cbData.pBootSegBuf->rh.s.banner_offset, (u32 *)SYSM_CARD_BANNER_BUF, sizeof(TWLBannerFile) ); - SYSMi_GetWork()->isValidCardBanner = TRUE; + SYSMi_GetWork()->flags.common.isValidCardBanner = TRUE; } #endif diff --git a/build/libraries_sysmenu/sysmenu/ARM7/Makefile b/build/libraries_sysmenu/sysmenu/ARM7/Makefile new file mode 100644 index 00000000..57e11b38 --- /dev/null +++ b/build/libraries_sysmenu/sysmenu/ARM7/Makefile @@ -0,0 +1,45 @@ +#! make -f +#---------------------------------------------------------------------------- +# Project: TwlIPL +# File: Makefile +# +# Copyright 2007 Nintendo. All rights reserved. +# +# These coded instructions, statements, and computer programs contain +# proprietary information of Nintendo of America Inc. and/or Nintendo +# Company Ltd., and are protected by Federal copyright law. They may +# not be disclosed to third parties or copied or duplicated in any form, +# in whole or in part, without the prior written consent of Nintendo. +# +# $Date:: $ +# $Rev$ +# $Author$ +#---------------------------------------------------------------------------- + +SUBDIRS = + +#---------------------------------------------------------------------------- +TARGET_FIRM = SYSTEMMENU +TARGET_PLATFORM = TWL +TWL_ARCHGEN = LIMITED +TWL_PROC = ARM7 + +SRCS = ../common/src/pxi.c + +TARGET_LIB = libsysmenu_sp$(TWL_LIBSUFFIX).a + +include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs + +INSTALL_TARGETS = $(TARGETS) +INSTALL_DIR = $(SYSMENU_INSTALL_LIBDIR) + +LINCLUDES = $(SYSMENU_ROOT)/build/libraries_sysmenu/sysmenu/common/include + + +#---------------------------------------------------------------------------- + +do-build: $(TARGETS) + +include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules + +#===== End of Makefile ===== diff --git a/build/libraries_sysmenu/sysmenu/ARM9/Makefile b/build/libraries_sysmenu/sysmenu/ARM9/Makefile index 0e1b425e..27d0ed85 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/Makefile +++ b/build/libraries_sysmenu/sysmenu/ARM9/Makefile @@ -32,7 +32,8 @@ SRCS = sysmenu_lib.c \ mountInfo.c \ device.c \ title.c \ - banner.c + banner.c \ + ../common/src/pxi.c TARGET_LIB = libsysmenu$(TWL_LIBSUFFIX).a @@ -44,8 +45,8 @@ INSTALL_TARGETS = $(TARGETS) INSTALL_DIR = $(SYSMENU_INSTALL_LIBDIR) LINCLUDES = $(ROOT)/build/libraries/mb/common/include \ - $(ROOT)/build/libraries/spi/ARM9/include \ - + $(ROOT)/build/libraries/spi/ARM9/include \ + $(SYSMENU_ROOT)/build/libraries_sysmenu/sysmenu/common/include #---------------------------------------------------------------------------- diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/banner.c b/build/libraries_sysmenu/sysmenu/ARM9/src/banner.c index 2d239f7b..a32b138d 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/banner.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/banner.c @@ -63,11 +63,11 @@ BOOL SYSMi_ReadCardBannerFile( u32 bannerOffset, TWLBannerFile *pBanner ) return isRead; #else #pragma unused(bannerOffset) - if( SYSMi_GetWork()->isValidCardBanner ) { + if( SYSMi_GetWork()->flags.common.isValidCardBanner ) { DC_InvalidateRange( (void *)SYSM_CARD_BANNER_BUF, 0x3000 ); MI_CpuCopyFast( (void *)SYSM_CARD_BANNER_BUF, pBanner, sizeof(TWLBannerFile) ); } - return (BOOL)SYSMi_GetWork()->isValidCardBanner; + return (BOOL)SYSMi_GetWork()->flags.common.isValidCardBanner; #endif } diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/device.c b/build/libraries_sysmenu/sysmenu/ARM9/src/device.c index 93b732ad..04de3aa9 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/device.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/device.c @@ -95,7 +95,7 @@ void SYSMi_CheckRTC( void ) !SYSM_CheckRTCTime( &time ) #ifndef __IS_DEBUGGER_BUILD // 青デバッガではRTCの電池がないので、毎回ここにひっかかって設定データが片方クリアされてしまう。これを防ぐスイッチ。 || - SYSMi_GetWork()->isResetRTC + SYSMi_GetWork()->flags.common.isResetRTC #endif ) { // RTCの異常を検出したら、rtc入力フラグ&rtcOffsetを0にしてNVRAMに書き込み。 OS_TPrintf("\"RTC reset\" or \"Illegal RTC data\" detect!\n"); diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/mountInfo.c b/build/libraries_sysmenu/sysmenu/ARM9/src/mountInfo.c index 7d52a461..af0699c8 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/mountInfo.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/mountInfo.c @@ -196,7 +196,7 @@ static void SYSMi_ModifySaveDataMount( LauncherBootType bootType, NAMTitleId tit ( titleID & TITLEID_MEDIA_NAND_FLAG ) ) || ( ( bootType == LAUNCHER_BOOTTYPE_ROM ) && // ISデバッガ上で、NANDアプリがROM からブートされた時 ( titleID & TITLEID_MEDIA_NAND_FLAG ) && - ( SYSMi_GetWork()->isOnDebugger ) ) + ( SYSMi_GetWork()->flags.common.isOnDebugger ) ) ) { char saveFilePath[ 2 ][ FS_ENTRY_LONGNAME_MAX ]; u32 saveDataSize[ 2 ]; @@ -240,7 +240,7 @@ static void SYSMi_ModifySaveDataMountForLauncher( LauncherBootType bootType, NAM ( titleID & TITLEID_MEDIA_NAND_FLAG ) ) || ( ( bootType == LAUNCHER_BOOTTYPE_ROM ) && // ISデバッガ上で、NANDアプリがROM からブートされた時 ( titleID & TITLEID_MEDIA_NAND_FLAG ) && - ( SYSMi_GetWork()->isOnDebugger ) ) + ( SYSMi_GetWork()->flags.common.isOnDebugger ) ) ) { char saveFilePath[ 2 ][ FS_ENTRY_LONGNAME_MAX ]; u32 saveDataSize[ 2 ]; diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c index 380bc5b5..befa5231 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c @@ -34,10 +34,11 @@ static void SYSMi_CheckCardCloneBoot( void ); void *(*SYSMi_Alloc)( u32 size ); void (*SYSMi_Free )( void *ptr ); +#define SYSM_DEBUG_ #ifdef SYSM_DEBUG_ SYSM_work *pSysm; // デバッガでのSYSMワークのウォッチ用 +ROM_Header_Short *pRomHeader; #endif - // static variable------------------------------------------------------------- // const data------------------------------------------------------------------ @@ -53,6 +54,7 @@ void SYSM_Init( void *(*pAlloc)(u32), void (*pFree)(void*) ) { #ifdef SYSM_DEBUG_ pSysm = SYSMi_GetWork(); + pRomHeader = (ROM_Header_Short *)0x027fc000; #endif /* SYSM_DEBUG_ */ // ランチャーのマウント情報セット @@ -62,6 +64,7 @@ void SYSM_Init( void *(*pAlloc)(u32), void (*pFree)(void*) ) OS_SetProtectionRegion( 2, SYSM_OWN_ARM7_MMEM_ADDR, 512KB ); SYSM_SetAllocFunc( pAlloc, pFree ); + PXI_SetFifoRecvCallback( SYSMENU_PXI_FIFO_TAG, SYSMi_PXIFifoRecvCallback ); reg_OS_PAUSE |= REG_OS_PAUSE_CHK_MASK; // PAUSEレジスタのチェックフラグのセット } @@ -113,12 +116,12 @@ TitleProperty *SYSM_ReadParameters( void ) u8 brightness = LCFG_TWL_BACKLIGHT_LEVEL_MAX; // ARM7のリセットパラメータ取得が完了するのを待つ - while( !SYSMi_GetWork()->isARM9Start ) { + while( !SYSMi_GetWork()->flags.common.isARM9Start ) { SVC_WaitByLoop( 0x1000 ); } #ifdef DEBUG_USED_CARD_SLOT_B_ // ARM7のカードチェック完了を待つ - while( !SYSMi_GetWork()->is1stCardChecked ) { + while( !SYSMi_GetWork()->flags.common.is1stCardChecked ) { SVC_WaitByLoop( 0x1000 ); } #endif @@ -151,13 +154,13 @@ TitleProperty *SYSM_ReadParameters( void ) // ノーマル情報リード if( !LCFG_ReadHWNormalInfo() ) { OS_TPrintf( "HW Normal Info Broken!\n" ); - SYSMi_GetWork()->isBrokenHWNormalInfo = TRUE; + SYSMi_GetWork()->flags.common.isBrokenHWNormalInfo = TRUE; } // セキュア情報リード if( !LCFG_ReadHWSecureInfo() ) { OS_TPrintf( "HW Secure Info Broken!\n" ); - SYSMi_GetWork()->isBrokenHWSecureInfo = TRUE; - SYSMi_GetWork()->isFatalError = TRUE; + SYSMi_GetWork()->flags.common.isBrokenHWSecureInfo = TRUE; + SYSMi_GetWork()->flags.common.isFatalError = TRUE; } //----------------------------------------------------- @@ -200,7 +203,7 @@ static TitleProperty *SYSMi_CheckShortcutBoot( void ) // 検査カード起動 //----------------------------------------------------- if( SYSM_IsExistCard() ) { - if( ( SYSMi_GetWork()->isOnDebugger && // ISデバッガが有効かつJTAGがまだ有効でない時 + if( ( SYSMi_GetWork()->flags.common.isOnDebugger && // ISデバッガが有効かつJTAGがまだ有効でない時 !( *(u8 *)( HW_SYS_CONF_BUF + HWi_WSYS09_OFFSET ) & HWi_WSYS09_JTAG_CPUJE_MASK ) ) || SYSM_IsInspectCard() || ( ( PAD_Read() & PAD_PRODUCTION_SHORTCUT_CARD_BOOT ) == @@ -250,14 +253,14 @@ const LauncherParamBody *SYSM_GetLauncherParamBody( void ) // ロゴデモスキップかどうかをセット void SYSM_SetLogoDemoSkip( BOOL skip ) { - SYSMi_GetWork()->isLogoSkip = skip; + SYSMi_GetWork()->flags.common.isLogoSkip = skip; } // ロゴデモスキップか? BOOL SYSM_IsLogoDemoSkip( void ) { - return (BOOL)SYSMi_GetWork()->isLogoSkip; + return (BOOL)SYSMi_GetWork()->flags.common.isLogoSkip; } @@ -265,7 +268,7 @@ BOOL SYSM_IsLogoDemoSkip( void ) static BOOL SYSMi_IsDebuggerBannerViewMode( void ) { #ifdef __IS_DEBUGGER_BUILD - return ( SYSMi_GetWork()->isOnDebugger && + return ( SYSMi_GetWork()->flags.common.isOnDebugger && SYSMi_IsValidCard() && SYSM_GetCardRomHeader()->dbgRomSize == 0 ) ? TRUE : FALSE; #else @@ -284,14 +287,14 @@ BOOL SYSM_IsTPReadable( void ) // TSD有効/無効をセット void SYSM_SetValidTSD( BOOL valid ) { - SYSMi_GetWork()->isValidTSD = valid; + SYSMi_GetWork()->flags.common.isValidTSD = valid; } // TSD有効? BOOL SYSM_IsValidTSD( void ) { - return (BOOL)SYSMi_GetWork()->isValidTSD; + return (BOOL)SYSMi_GetWork()->flags.common.isValidTSD; } @@ -304,7 +307,7 @@ BOOL SYSM_IsValidTSD( void ) // 有効なTWL/NTRカードが差さっているか? BOOL SYSM_IsExistCard( void ) { - return (BOOL)SYSMi_GetWork()->isExistCard; + return (BOOL)SYSMi_GetWork()->flags.common.isExistCard; } @@ -385,9 +388,9 @@ static void SYSMi_CheckCardCloneBoot( void ) buffp += total_rom_size & 0x000001FF; if( *buffp++ == 'a' && *buffp == 'c' ) { - SYSMi_GetWork()->cloneBootMode = CLONE_BOOT_MODE; + SYSMi_GetWork()->flags.common.cloneBootMode = CLONE_BOOT_MODE; }else { - SYSMi_GetWork()->cloneBootMode = OTHER_BOOT_MODE; + SYSMi_GetWork()->flags.common.cloneBootMode = OTHER_BOOT_MODE; } #endif } diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/title.c b/build/libraries_sysmenu/sysmenu/ARM9/src/title.c index 1f137c2a..ab717dcf 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/title.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/title.c @@ -26,6 +26,7 @@ // extern data----------------------------------------------------------------- // function's prototype------------------------------------------------------- +static BOOL SYSMi_ReadBanner_NAND( NAMTitleId titleID, u8 *pDst ); static s32 ReadFile( FSFile* pf, void* buffer, s32 size ); static void SYSMi_LoadTitleThreadFunc( TitleProperty *pBootTitle ); static void SYSMi_Relocate( void ); @@ -56,19 +57,19 @@ BOOL SYSM_GetCardTitleList( TitleProperty *pTitleList_Card ) { BOOL retval = FALSE; - if( SYSMi_GetWork()->isCardStateChanged ) { + if( SYSMi_GetWork()->flags.common.isCardStateChanged ) { MI_CpuClear32( pTitleList_Card, sizeof(TitleProperty) ); // ROMヘッダバッファのコピー if( SYSM_IsExistCard() ) { u16 id = (u16)OS_GetLockID(); - (void)OS_LockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する + (void)OS_LockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する DC_InvalidateRange( (void *)SYSM_CARD_ROM_HEADER_BAK, SYSM_CARD_ROM_HEADER_SIZE ); // キャッシュケア MI_CpuCopyFast( (void *)SYSM_CARD_ROM_HEADER_BAK, (void *)SYSM_CARD_ROM_HEADER_BUF, SYSM_CARD_ROM_HEADER_SIZE ); // ROMヘッダコピー - SYSMi_GetWork()->cardHeaderCrc16 = SYSMi_GetWork()->cardHeaderCrc16; // ROMヘッダCRCコピー - SYSMi_GetWork()->isCardStateChanged = FALSE; // カード情報更新フラグを落とす - (void)OS_UnlockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する + SYSMi_GetWork()->cardHeaderCrc16 = SYSMi_GetWork()->cardHeaderCrc16; // ROMヘッダCRCコピー + SYSMi_GetWork()->flags.common.isCardStateChanged = FALSE; // カード情報更新フラグを落とす + (void)OS_UnlockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する OS_ReleaseLockID( id ); pTitleList_Card->flags.isValid = TRUE; @@ -103,96 +104,55 @@ int SYSM_GetNandTitleList( TitleProperty *pTitleList_Nand, int listNum ) // とりあえずALL OSTick start; int l; - int gotten; - NAMTitleId titleIdArray[ LAUNCHER_TITLE_LIST_NUM ]; + int getNum; + int validNum = 0; + NAMTitleId titleIDArray[ LAUNCHER_TITLE_LIST_NUM ]; + NAMTitleId *pTitleIDList = NULL; + if( listNum > LAUNCHER_TITLE_LIST_NUM ) { OS_TPrintf( "Warning: TitleList_Nand num over LAUNCHER_TITLE_LIST_NUM(%d)\n", LAUNCHER_TITLE_LIST_NUM ); } - - start = OS_GetTick(); - gotten = NAM_GetTitleList( &titleIdArray[ 0 ], LAUNCHER_TITLE_LIST_NUM - 1 ); - OS_TPrintf( "NAM_GetTitleList : %dus\n", OS_TicksToMicroSeconds( OS_GetTick() - start ) ); - start = OS_GetTick(); - gotten = NAM_GetNumTitles(); // [TODO:]本来だったら必要ないが、現在はNAM_GetTitleListがアプリ個数をちゃんと返してくれないので。 - OS_TPrintf( "NAM_GetNumTitles : %dus\n", OS_TicksToMicroSeconds( OS_GetTick() - start ) ); - for(l=0;lisLoadSucceeded = TRUE; + SYSMi_GetWork()->flags.common.isLoadSucceeded = TRUE; } +static void SYSMi_DisableHotSW( void ) +{ + if( SYSMi_GetWork()->flags.arm7.isEnableHotSW && + SYSMi_GetWork()->flags.arm9.isEnableHotSW ) { + return; + } + SYSMi_SendPXICommand( SYSM_PXI_COMM_DISABLE_HOTSW ); +} + // 指定タイトルを別スレッドでロード開始する void SYSM_StartLoadTitle( TitleProperty *pBootTitle ) { @@ -429,24 +466,26 @@ void SYSM_StartLoadTitle( TitleProperty *pBootTitle ) #define STACK_SIZE 0xc00 static u64 stack[ STACK_SIZE / sizeof(u64) ]; + SYSMi_DisableHotSW(); + // アプリ未ロード状態なら、ロード開始 if( !pBootTitle->flags.isAppLoadCompleted ) { - SYSMi_GetWork()->isLoadSucceeded = FALSE; + SYSMi_GetWork()->flags.common.isLoadSucceeded = FALSE; OS_InitThread(); OS_CreateThread( &s_thread, (void (*)(void *))SYSMi_LoadTitleThreadFunc, (void*)pBootTitle, stack+STACK_SIZE/sizeof(u64), STACK_SIZE,THREAD_PRIO ); OS_WakeupThreadDirect( &s_thread ); }else if( pBootTitle->flags.isAppRelocate ) { // アプリロード済みで、再配置要求ありなら、再配置(カードのみ対応) SYSMi_Relocate(); - SYSMi_GetWork()->isLoadSucceeded = TRUE; + SYSMi_GetWork()->flags.common.isLoadSucceeded = TRUE; }else { // アプリロード済みで、再配置要求なし - SYSMi_GetWork()->isLoadSucceeded = TRUE; + SYSMi_GetWork()->flags.common.isLoadSucceeded = TRUE; } if( pBootTitle->flags.bootType == LAUNCHER_BOOTTYPE_ROM ) { - SYSMi_GetWork()->isCardBoot = TRUE; + SYSMi_GetWork()->flags.common.isCardBoot = TRUE; }else if(pBootTitle->flags.isAppLoadCompleted) { // カードブートでなく、ロード済みの場合、再配置情報をランチャーパラメタから読み込み @@ -533,7 +572,7 @@ AuthResult SYSM_AuthenticateTitle( TitleProperty *pBootTitle ) return AUTH_RESULT_PROCESSING; } // ロード成功? - if( SYSMi_GetWork()->isLoadSucceeded == FALSE ) + if( SYSMi_GetWork()->flags.common.isLoadSucceeded == FALSE ) { return AUTH_RESULT_TITLE_LOAD_FAILED; } @@ -594,4 +633,15 @@ static BOOL SYSMi_CheckTitlePointer( TitleProperty *pBootTitle ) return TRUE; } - +#if 0 +void CheckDigest( void ) +{ + int i; + for( i = 0; i < 4; i++ ) { + if( SYSMi_GetWork()->reloc_info[ i ].src ) { + + }else { + } + } +} +#endif diff --git a/build/libraries_sysmenu/sysmenu/Makefile b/build/libraries_sysmenu/sysmenu/Makefile index 9f833282..be4cc462 100644 --- a/build/libraries_sysmenu/sysmenu/Makefile +++ b/build/libraries_sysmenu/sysmenu/Makefile @@ -23,7 +23,7 @@ include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs #---------------------------------------------------------------------------- -SUBDIRS = ARM9 +SUBDIRS = ARM9 ARM7 #---------------------------------------------------------------------------- diff --git a/build/libraries_sysmenu/sysmenu/ARM9/include/internal_api.h b/build/libraries_sysmenu/sysmenu/common/include/internal_api.h similarity index 88% rename from build/libraries_sysmenu/sysmenu/ARM9/include/internal_api.h rename to build/libraries_sysmenu/sysmenu/common/include/internal_api.h index c6436318..e4181aa1 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/include/internal_api.h +++ b/build/libraries_sysmenu/sysmenu/common/include/internal_api.h @@ -32,7 +32,7 @@ extern "C" { #define OS_PutString( ... ) ((void)0) #endif - +#ifdef SDK_ARM9 //------------------------------------------------------- // マウント情報セット //------------------------------------------------------- @@ -62,6 +62,11 @@ void SYSMi_CheckRTC( void ); // カードバナーリード(※NTR-IPL2仕様) BOOL SYSMi_ReadCardBannerFile( u32 bannerOffset, TWLBannerFile *pBanner ); +#endif + +BOOL SYSMi_SendPXICommand( SYSMPXICommand command ); +void SYSMi_PXIFifoRecvCallback( PXIFifoTag tag, u32 data, BOOL err ); + #ifdef __cplusplus } diff --git a/build/libraries_sysmenu/sysmenu/common/internal_api.h b/build/libraries_sysmenu/sysmenu/common/internal_api.h new file mode 100644 index 00000000..dbffe75c --- /dev/null +++ b/build/libraries_sysmenu/sysmenu/common/internal_api.h @@ -0,0 +1,80 @@ +/*---------------------------------------------------------------------------* + Project: TwlIPL + File: internal_api.h + + Copyright 2007 Nintendo. All rights reserved. + + These coded instructions, statements, and computer programs contain + proprietary information of Nintendo of America Inc. and/or Nintendo + Company Ltd., and are protected by Federal copyright law. They may + not be disclosed to third parties or copied or duplicated in any form, + in whole or in part, without the prior written consent of Nintendo. + + $Date:: $ + $Rev$ + $Author$ + *---------------------------------------------------------------------------*/ + +#ifndef SYSM_INTERNAL_API_H_ +#define SYSM_INTERNAL_API_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +//#define SYSM_LIB_NO_MESSAGE // Printf抑制スイッチ + +#ifdef SYSM_LIB_NO_MESSAGE +#define OS_Printf( ... ) ((void)0) +#define OS_TPrintf( ... ) ((void)0) +#define OS_PutString( ... ) ((void)0) +#endif + +#ifdef SDK_ARM9 +//------------------------------------------------------- +// マウント情報セット +//------------------------------------------------------- + +// ランチャー用 +void SYSMi_SetLauncherMountInfo( void ); + +// 起動アプリ用 +void SYSMi_SetBootAppMountInfo( TitleProperty *pBootTitle ); + + +//------------------------------------------------------- +// デバイス +//------------------------------------------------------- + +// RTC補正 +void SYSMi_WriteAdjustRTC( void ); + +// RTCチェック +void SYSMi_CheckRTC( void ); + + +//------------------------------------------------------- +// バナー +//------------------------------------------------------- + +// カードバナーリード(※NTR-IPL2仕様) +BOOL SYSMi_ReadCardBannerFile( u32 bannerOffset, TWLBannerFile *pBanner ); + +#endif // SDK_ARM9 + + +//------------------------------------------------------- +// PXI +//------------------------------------------------------- + +extern void SYSMi_SendPXICommand( SYSMPXICommand command ); +extern void SYSMi_PXIFifoCallback( PXIFifoTag tag, u32 data, BOOL err ); + + +#ifdef __cplusplus +} +#endif + +#endif // SYSM_INTERNAL_API_H_ diff --git a/build/libraries_sysmenu/sysmenu/common/src/pxi.c b/build/libraries_sysmenu/sysmenu/common/src/pxi.c new file mode 100644 index 00000000..d26b7d19 --- /dev/null +++ b/build/libraries_sysmenu/sysmenu/common/src/pxi.c @@ -0,0 +1,116 @@ +/*---------------------------------------------------------------------------* + Project: TwlIPL + File: pxi.c + + Copyright 2007 Nintendo. All rights reserved. + + These coded instructions, statements, and computer programs contain + proprietary information of Nintendo of America Inc. and/or Nintendo + Company Ltd., and are protected by Federal copyright law. They may + not be disclosed to third parties or copied or duplicated in any form, + in whole or in part, without the prior written consent of Nintendo. + + $Date:: $ + $Rev$ + $Author$ + *---------------------------------------------------------------------------*/ + +#include +#include +#include "internal_api.h" + +// define data----------------------------------------------------------------- +#define SYSM_PXI_COMM_STAT_REQ 0 +#define SYSM_PXI_COMM_STAT_ACK 1 + +// PXIコマンド +typedef union SYSMPXIPacket { + struct { + u16 data; + u16 command : 14; + u16 stat : 2; + }; + u32 raw; +}SYSMPXIPacket; + + +// extern data----------------------------------------------------------------- +// function's prototype------------------------------------------------------- +// global variable------------------------------------------------------------- +// static variable------------------------------------------------------------- +static volatile BOOL s_sending = FALSE; +// const data------------------------------------------------------------------ + +// PXIコマンド送信 +BOOL SYSMi_SendPXICommand( SYSMPXICommand command ) +{ + SYSMPXIPacket packet; + + OSIntrMode saved = OS_DisableInterrupts(); + if( s_sending ) { + OS_RestoreInterrupts( saved ); + return FALSE; + } + s_sending = TRUE; + OS_RestoreInterrupts( saved ); + + packet.stat = SYSM_PXI_COMM_STAT_REQ; + packet.command = (u16)command; + packet.data = 0; + + while( PXI_SendWordByFifo( SYSMENU_PXI_FIFO_TAG, packet.raw, 0 ) < 0 ) {} + + while( s_sending ) { + OS_WaitAnyIrq(); + } + return TRUE; +} + +void SYSMi_PXIFifoRecvCallback( PXIFifoTag tag, u32 data, BOOL err ) +{ +#pragma unused( tag, err ) + SYSMPXIPacket packet; + packet.raw = data; + +#ifdef SDK_ARM9 + + s_sending = FALSE; + + if( packet.stat == SYSM_PXI_COMM_STAT_ACK ) { + switch( data ) { + case SYSM_PXI_COMM_DISABLE_HOTSW: + SYSMi_GetWork()->flags.arm9.isEnableHotSW = 0; + break; + default: + break; + } + }else { // SYSM_PXI_COMM_STAT_REQ + switch( data ) { + default: + break; + } + } +#else // !SDK_ARM9 + + if( packet.stat == SYSM_PXI_COMM_STAT_REQ ) { + switch( data ) { + case SYSM_PXI_COMM_DISABLE_HOTSW: + if( SYSMi_GetWork()->flags.arm7.isBusyHotSW ) { + SYSMi_GetWork()->flags.arm7.disableHotSW_REQ = 1; + }else { + SYSMi_GetWork()->flags.arm7.isEnableHotSW = 0; + // PXIで返信 + } + break; + default: + break; + } + }else { // SYSM_PXI_COMM_STAT_ACK + switch( data ) { + default: + break; + } + } +#endif // SDK_ARM9 +} + diff --git a/build/nandfirm/menu-launcher/ARM9/main.c b/build/nandfirm/menu-launcher/ARM9/main.c index 6317ecf5..4db0966d 100644 --- a/build/nandfirm/menu-launcher/ARM9/main.c +++ b/build/nandfirm/menu-launcher/ARM9/main.c @@ -138,7 +138,7 @@ static BOOL TryResolveSrl(void) OS_TPrintf("Failed to load HWSecureInfo.\n"); return FALSE; } - LCFG_THW_GetLauncherGameCode( (u8*)&titleId ); + LCFG_THW_GetLauncherTitleID_Lo( (u8*)&titleId ); // 4: after LCFG_ReadHWSecureInfo PUSH_PROFILE(); diff --git a/build/nandfirm/menu-launcher2/ARM9/main.c b/build/nandfirm/menu-launcher2/ARM9/main.c index 9abb92b9..64def192 100644 --- a/build/nandfirm/menu-launcher2/ARM9/main.c +++ b/build/nandfirm/menu-launcher2/ARM9/main.c @@ -139,7 +139,7 @@ static BOOL TryResolveSrl(void) OS_TPrintf("Failed to load HWSecureInfo.\n"); return FALSE; } - LCFG_THW_GetLauncherGameCode( (u8*)&titleId ); + LCFG_THW_GetLauncherTitleID_Lo( (u8*)&titleId ); // 4: after LCFG_ReadHWSecureInfo PUSH_PROFILE(); diff --git a/build/systemMenu_RED/HWInfoWriter/ARM9/src/HWInfoWriter.c b/build/systemMenu_RED/HWInfoWriter/ARM9/src/HWInfoWriter.c index a8abf3d1..9ff771c7 100644 --- a/build/systemMenu_RED/HWInfoWriter/ARM9/src/HWInfoWriter.c +++ b/build/systemMenu_RED/HWInfoWriter/ARM9/src/HWInfoWriter.c @@ -134,7 +134,6 @@ static const char *strLauncherGameCode[] = { // HW情報ライターの初期化 void HWInfoWriterInit( void ) { - u8 gameCode[ 5 ] = { 0, 0, 0, 0, 0 }; GX_DispOff(); GXS_DispOff(); @@ -154,8 +153,15 @@ void HWInfoWriterInit( void ) OS_TPrintf( "region = %d\n", LCFG_THW_GetRegion() ); PrintfSJISSub( 2 * 8, 16 * 8, TXT_COLOR_BLACK, "Region = %s", strRegion[ LCFG_THW_GetRegion() ] ); PrintfSJISSub( 2 * 8, 18 * 8, TXT_COLOR_BLACK, "SerialNo = %s", LCFG_THW_GetSerialNoPtr() ); -// LCFG_THW_GetLauncherGameCode( gameCode ); -// PrintfSJISSub( 2 * 8, 20 * 8, TXT_COLOR_BLACK, "LauncherGameCode = %s", gameCode ); + if ( 1 ) + { + int i; + u8 titleID_Lo[ 4 ]; + u8 gameCode[ 5 ] = { 0, 0, 0, 0, 0 }; + LCFG_THW_GetLauncherTitleID_Lo( titleID_Lo ); + for( i = 0; i < 4; i++ ) gameCode[ i ] = titleID_Lo[ 4 - i - 1 ]; + PrintfSJISSub( 2 * 8, 20 * 8, TXT_COLOR_BLACK, "LauncherTitleID_Lo = %s", gameCode ); + } s_region_old = LCFG_THW_GetRegion(); s_csr = 0; DrawMenu( s_csr, &s_writerParam ); @@ -410,8 +416,13 @@ static BOOL WriteHWSecureInfoFile( u8 region ) LCFG_THW_SetSerialNo( serialNo ); } - // ランチャーゲームコード - LCFG_THW_SetLauncherGameCode( (const u8 *)strLauncherGameCode[ region ] ); + // ランチャーTitleID_Loのセット + { + int i; + u8 titleID_Lo[4]; + for( i = 0; i < 4; i++ ) titleID_Lo[ i ] = (u8)strLauncherGameCode[ region ][ 4 - i - 1 ]; + LCFG_THW_SetLauncherTitleID_Lo( (const u8 *)titleID_Lo ); + } // ライト if( isWrite && diff --git a/build/systemMenu_RED/NandInitializer/ARM7.TWL/main.lsf b/build/systemMenu_RED/NandInitializer/ARM7.TWL/main.lsf index aef8842e..4329ad01 100644 --- a/build/systemMenu_RED/NandInitializer/ARM7.TWL/main.lsf +++ b/build/systemMenu_RED/NandInitializer/ARM7.TWL/main.lsf @@ -55,9 +55,7 @@ Autoload WRAM libmicex_sp$(LIBSUFFIX).a \ libmcu_sp$(LIBSUFFIX).a \ - Library libsdio_hcd_twl$(LIBSUFFIX).a \ - libsdio_busdriver$(LIBSUFFIX).a \ - libsdio_lib$(LIBSUFFIX).a \ + Library libsdio_sp$(LIBSUFFIX).a Object * (.etable) Object * (.wram) @@ -143,10 +141,9 @@ Ltdautoload LTDMAIN Object * (.ltdmain) Library libnvram_sp$(LIBSUFFIX).a Library librtc_sp$(LIBSUFFIX).a - Library librompatch_sp$(LIBSUFFIX).a \ - libwm_sp$(LIBSUFFIX).a \ + Library libwm_sp$(LIBSUFFIX).a \ libnwm_sp$(LIBSUFFIX).a \ - libARM7athdrv$(LIBSUFFIX).a \ + libathdrv_sp$(LIBSUFFIX).a \ libwvr_sp$(LIBSUFFIX).a \ libwl_sp$(LIBSUFFIX).a Library libfatfs_sp$(LIBSUFFIX).a \ diff --git a/build/systemMenu_RED/NandInitializer/ARM9.TWL/src/process_hw_info.c b/build/systemMenu_RED/NandInitializer/ARM9.TWL/src/process_hw_info.c index cd3e82b0..5bc5dee8 100644 --- a/build/systemMenu_RED/NandInitializer/ARM9.TWL/src/process_hw_info.c +++ b/build/systemMenu_RED/NandInitializer/ARM9.TWL/src/process_hw_info.c @@ -605,7 +605,7 @@ static BOOL WriteHWSecureInfoFile( u8 region ) } // ランチャーゲームコード - LCFG_THW_SetLauncherGameCode( (const u8 *)strLauncherGameCode[ region ] ); + LCFG_THW_SetLauncherTitleID_Lo( (const u8 *)strLauncherGameCode[ region ] ); // ライト if( isWrite && diff --git a/build/tests/AppliCooperation/CooperationA/ARM9/src/CooperationA.c b/build/tests/AppliCooperation/CooperationA/ARM9/src/CooperationA.c index 5150591d..9c7a60ac 100644 --- a/build/tests/AppliCooperation/CooperationA/ARM9/src/CooperationA.c +++ b/build/tests/AppliCooperation/CooperationA/ARM9/src/CooperationA.c @@ -515,7 +515,7 @@ static void MenuScene(void) // 初期化 void CooperationAInit( void ) { - ChangeUserColor( TSD_GetUserColor() ); + ChangeUserColor( LCFG_TSD_GetUserColor() ); s_work.parameter[0] = 0; MenuInit(); diff --git a/build/tests/AppliCooperation/CooperationA/ARM9/src/main.c b/build/tests/AppliCooperation/CooperationA/ARM9/src/main.c index e87a40b7..630b3ab8 100644 --- a/build/tests/AppliCooperation/CooperationA/ARM9/src/main.c +++ b/build/tests/AppliCooperation/CooperationA/ARM9/src/main.c @@ -75,8 +75,8 @@ void TwlMain(void) // :::::::::::::::::::::::::::::::::::::::::::::: // TWL設定データファイルの読み込み // :::::::::::::::::::::::::::::::::::::::::::::: - (void)THW_ReadSecureInfo(); - g_isValidTSD = SYSM_ReadTWLSettingsFile(); + (void)LCFG_ReadHWSecureInfo(); + g_isValidTSD = LCFG_ReadTWLSettings(); if( g_isValidTSD ) { SYSM_CaribrateTP(); } diff --git a/build/tests/AppliCooperation/CooperationB/ARM9/src/CooperationB.c b/build/tests/AppliCooperation/CooperationB/ARM9/src/CooperationB.c index 88336125..5bd3e3b6 100644 --- a/build/tests/AppliCooperation/CooperationB/ARM9/src/CooperationB.c +++ b/build/tests/AppliCooperation/CooperationB/ARM9/src/CooperationB.c @@ -181,7 +181,7 @@ static void MenuScene(void) // 初期化 void CooperationBInit( void ) { - ChangeUserColor( TSD_GetUserColor() ); + ChangeUserColor( LCFG_TSD_GetUserColor() ); s_parameter[0] = 0; MenuInit(); } diff --git a/build/tests/AppliCooperation/CooperationB/ARM9/src/main.c b/build/tests/AppliCooperation/CooperationB/ARM9/src/main.c index d4fa27b5..47313273 100644 --- a/build/tests/AppliCooperation/CooperationB/ARM9/src/main.c +++ b/build/tests/AppliCooperation/CooperationB/ARM9/src/main.c @@ -75,8 +75,8 @@ void TwlMain(void) // :::::::::::::::::::::::::::::::::::::::::::::: // TWL設定データファイルの読み込み // :::::::::::::::::::::::::::::::::::::::::::::: - (void)THW_ReadSecureInfo(); - g_isValidTSD = SYSM_ReadTWLSettingsFile(); + (void)LCFG_ReadHWSecureInfo(); + g_isValidTSD = LCFG_ReadTWLSettings(); if( g_isValidTSD ) { SYSM_CaribrateTP(); } diff --git a/build/tests/AppliCooperation/CooperationC/ARM9/src/CooperationC.c b/build/tests/AppliCooperation/CooperationC/ARM9/src/CooperationC.c index 47e542c3..e689da91 100644 --- a/build/tests/AppliCooperation/CooperationC/ARM9/src/CooperationC.c +++ b/build/tests/AppliCooperation/CooperationC/ARM9/src/CooperationC.c @@ -515,7 +515,7 @@ static void MenuScene(void) // 初期化 void CooperationCInit( void ) { - ChangeUserColor( TSD_GetUserColor() ); + ChangeUserColor( LCFG_TSD_GetUserColor() ); s_work.parameter[0] = 0; MenuInit(); diff --git a/build/tests/AppliCooperation/CooperationC/ARM9/src/main.c b/build/tests/AppliCooperation/CooperationC/ARM9/src/main.c index eae44518..e3919b0b 100644 --- a/build/tests/AppliCooperation/CooperationC/ARM9/src/main.c +++ b/build/tests/AppliCooperation/CooperationC/ARM9/src/main.c @@ -75,8 +75,8 @@ void TwlMain(void) // :::::::::::::::::::::::::::::::::::::::::::::: // TWL設定データファイルの読み込み // :::::::::::::::::::::::::::::::::::::::::::::: - (void)THW_ReadSecureInfo(); - g_isValidTSD = SYSM_ReadTWLSettingsFile(); + (void)LCFG_ReadHWSecureInfo(); + g_isValidTSD = LCFG_ReadTWLSettings(); if( g_isValidTSD ) { SYSM_CaribrateTP(); } diff --git a/build/tests/ExecPreLoadedApp/ARM9/src/ExecPreLoadedApp.c b/build/tests/ExecPreLoadedApp/ARM9/src/ExecPreLoadedApp.c index b86adc2f..87a7ee78 100644 --- a/build/tests/ExecPreLoadedApp/ARM9/src/ExecPreLoadedApp.c +++ b/build/tests/ExecPreLoadedApp/ARM9/src/ExecPreLoadedApp.c @@ -127,7 +127,7 @@ static BOOL LoadTitle( NAMTitleId bootTitleID ) return FALSE; } - SYSMi_GetWork()->isLoadSucceeded = TRUE; + SYSMi_GetWork()->flags.common.isLoadSucceeded = TRUE; return TRUE; } @@ -200,7 +200,7 @@ static void MenuScene(void) // 初期化 void ExecPreLoadedAppInit( void ) { - ChangeUserColor( TSD_GetUserColor() ); + ChangeUserColor( LCFG_TSD_GetUserColor() ); MenuInit(); } diff --git a/build/tests/ExecPreLoadedApp/ARM9/src/main.c b/build/tests/ExecPreLoadedApp/ARM9/src/main.c index d7ea4285..615fb39c 100644 --- a/build/tests/ExecPreLoadedApp/ARM9/src/main.c +++ b/build/tests/ExecPreLoadedApp/ARM9/src/main.c @@ -75,8 +75,8 @@ void TwlMain(void) // :::::::::::::::::::::::::::::::::::::::::::::: // TWL設定データファイルの読み込み // :::::::::::::::::::::::::::::::::::::::::::::: - (void)THW_ReadSecureInfo(); - g_isValidTSD = SYSM_ReadTWLSettingsFile(); + (void)LCFG_ReadHWSecureInfo(); + g_isValidTSD = LCFG_ReadTWLSettings(); if( g_isValidTSD ) { SYSM_CaribrateTP(); } diff --git a/build/tests/RelocateChecker/ARM7/hyena_rc.lsf b/build/tests/RelocateChecker/ARM7/hyena_rc.lsf index cd4ad3c8..9b93cca6 100644 --- a/build/tests/RelocateChecker/ARM7/hyena_rc.lsf +++ b/build/tests/RelocateChecker/ARM7/hyena_rc.lsf @@ -57,7 +57,7 @@ Autoload WRAM libmcu_sp$(LIBSUFFIX).a \ libboot_sp$(LIBSUFFIX).a \ libreboot_sp$(LIBSUFFIX).a \ - libcardboot_sp$(LIBSUFFIX).a \ + libhotsw_sp$(LIBSUFFIX).a \ Library libsdio_sp$(LIBSUFFIX).a diff --git a/build/tests/RelocateChecker/ARM7/hyena_rc5.lsf b/build/tests/RelocateChecker/ARM7/hyena_rc5.lsf index 5ffa3bbc..84b1c92f 100644 --- a/build/tests/RelocateChecker/ARM7/hyena_rc5.lsf +++ b/build/tests/RelocateChecker/ARM7/hyena_rc5.lsf @@ -50,7 +50,7 @@ Static $(TARGET_NAME) libmcu_sp$(LIBSUFFIX).a \ libboot_sp$(LIBSUFFIX).a \ libreboot_sp$(LIBSUFFIX).a \ - libcardboot_sp$(LIBSUFFIX).a \ + libhotsw_sp$(LIBSUFFIX).a \ Library libsdio_sp$(LIBSUFFIX).a diff --git a/build/tests/RelocateChecker/ARM7/src/main.c b/build/tests/RelocateChecker/ARM7/src/main.c index 30a9c340..df0df5ce 100644 --- a/build/tests/RelocateChecker/ARM7/src/main.c +++ b/build/tests/RelocateChecker/ARM7/src/main.c @@ -123,7 +123,7 @@ TwlSpMain(void) // [TODO:] カード電源ONして、ROMヘッダのみリード&チェックくらいはやっておきたい - SYSMi_GetWork()->isARM9Start = TRUE; // [TODO:] HW_RED_RESERVEDはNANDファームでクリアしておいて欲しい + SYSMi_GetWork()->flags.common.isARM9Start = TRUE; // [TODO:] HW_RED_RESERVEDはNANDファームでクリアしておいて欲しい // ヒープ領域設定 { @@ -240,9 +240,9 @@ void ReadLauncherParameter( void ) ( SYSMi_GetMCUFreeRegisterValue() == 0 ) ) { // "JTAG有効"か"マイコンフリーレジスタ値=0"ならColdスタート u8 data = 1; MCU_SetFreeRegisters( MCU_RESET_VALUE_OFS, &data, MCU_RESET_VALUE_LEN ); // マイコンフリーレジスタにホットスタートフラグをセット - SYSMi_GetWork()->isHotStart = FALSE; + SYSMi_GetWork()->flags.common.isHotStart = FALSE; }else { - SYSMi_GetWork()->isHotStart = TRUE; + SYSMi_GetWork()->flags.common.isHotStart = TRUE; // ランチャーパラメータ有効判定 if( ( STD_StrNCmp( (const char *)&SYSMi_GetLauncherParamAddr()->header.magicCode, SYSM_LAUNCHER_PARAM_MAGIC_CODE, @@ -252,7 +252,7 @@ void ReadLauncherParameter( void ) ) { // ランチャーパラメータが有効なら、ワークに退避 MI_CpuCopy32 ( SYSMi_GetLauncherParamAddr(), &SYSMi_GetWork()->launcherParam, sizeof(LauncherParam) ); - SYSMi_GetWork()->isValidLauncherParam = TRUE; + SYSMi_GetWork()->flags.common.isValidLauncherParam = TRUE; } } // メインメモリのランチャーパラメータをクリアしておく diff --git a/doc/TWLBanner.xls b/doc/TWLBanner.xls index 972697b69274d2b8849e0eec11664c4d82eebabe..0ddbe23ab767d7ca3f599406db75c47183e8b6b5 100644 GIT binary patch literal 27648 zcmeHQ36LJeb$&Ddx%a8n>RQdN4pw`}t!piiLBAvydZ z5Xyj!O~3^%LM1?{T-acYBRQM_DG(b>IR+9TAJ~>$rtH|MV1iSL6TzSF>z?`N*!g7% zn>gTqwtD98*RNl{e%<~0y*EA5%ipOxcK_GLAD75=jwIyWe3_&Ja0|cZdih#Gc|Omq z_nd>@0F|x}kOa!I7|3)=UY-2y%!`NcGa+(ZY-*VKFQ1a<^LsDY`?2}L zS!>B!JE!q()Au%gug2Yy$8??VYsf5d)WPuO_`z=;K%xI{j()G37VieP_}MWf8S+6 zgciwQSPGSAs$hNOT9Q*FD=lG+2o;U?QR$G`A{!l0?{IYU8=VDi*5$_sv~{=XOm3so zlAI|s@Q13wdL2%%Qil_&u~53?tZ-vs!YA)m4Z%QQ;X=RB9_f@>fkr*tLc2a7QgghF zl`&XeQ%xslELh*}{$4+$B{>=L9v>{#!U~}{kobfG3fl?LK$c{tfrt~q2~%Z1WX+`cc{_en zkgc^&rpm)kH%9a_=n+Sz05}DIN@gM{*@yvKAnRn6^h=+{X-Dqlb=ITKF=@m^7Wt1n zcrILr9KyMDHT>6J!O7uV5^?y&;G`Od|6zt(oEwG9$TKBnMh^ew6?pLJMd0m4;OQdp zY%H9uS=3YomQ1?_4&bJ`x}1}9B-yFw!)SO%0A5#w4&b}v=+qa%2S3Wimk2*Oa)2w! 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 Q9zXNnL;pM3u-pFs0(J#3o&W#< delta 3463 zcmb7HZERcB8Gg^b{!Hv^yGau}ZW23=lh{d|AqB){g^bQO+bz|@dpV6LTsznB6n*+>K4JIRR}0Zn_yA_@uQm5KP%cMp=oLMyysrK ztph*it8>qNzu)tI-Rq@~#L`vqj1=3p3|YJ8F7rHW1B=aDgbHzF9M^I%>n} zliDpQi?(irUGmUFM~@s?82AZ==vJCBUi$8-xswl1JfKDcS?^P|j{$doX+E$h)VWZ~ zAWMBR(o}NMw>b46fhFm*pE$Pykv7Srz{*H@TSDKRA>fsiILcxw}Byns{Hn zE&nS&l5fcsIV<1C^JV#W`A_*6VzieI&@>&D2j~%+q*>WMot~bP|9EJ1$$+u;?b@0F zzrAz~B7c*AlE0Df$yX#%BN^nPCfsYu-2_Xv4%^z+#cTWX>WRn}kyqy;2{Ej0Z)}_# z=+6#UxoLUrBb+&M>h!U>*=j11!v{Qd`b;%N?F%(?z-I03=b`3m{AMh}vY_W4->(b*cJErRGmEzwDXCg)%)##wKP%9XO;X$Vf+C+>uk<<_x$i};XZ`OF1#-pk7a3ogh}%w6dW>2XfG|z&p`=+AC;{>&ovj93XI{}?!u1t(2xNr4r#U;h8$}t zXwHb{Ij%7Az8EzQZQcv}@3RC^6FD+c^8t!iO zZ`?g9F4INs5B8@Ko^;|u5#hAail(U6#2v$2(Fzw^iGeGl2Zaq8(86tGLwEZbyT{Ka z$YnKGllr4<6o*djX zmx3*b>En1jH|X0alq4>J5VYaqohOOF#k&hv3<>2u0xP_Sa4}z4H;x?RU+I6bWddtJh9%o(a##x5PnIpyHEJj)NLW%VN5%W%qPH}RCKmy9P{!lEjyoJyp6D;=dBOdgRZ92X>-zrHeVC4C zX&91rHqw$<2+$ ziz2>?T1*p)*Qv!c!XBbNM+Mh@R40RbGepR>hPnVHP?lxL0L0&+oVJXn4OAeeZFQim zrfqj1wE5k{ZcW_g5W6*P$bou5Yoi?w)C(v{V-A$l&@Kn+1C*lC3d9x)4kR`0zA{v= zP23@xIO}fp;NW1R-D+vD`@J68O*@PY^m|WSeRh9+T|csc03*zJGH=jv3aWPpC)95T z6KdjtODd7bEsslaS>?x5$px_TE9Pfd{QdGA7Jn7IjK!nuf?6C;)$rhV{)@aa-kNAS zd2xB$RZ#$zuC!e5`OBa6^U~QDm;X9-RhXsE$3r352`|q`ab4wS_J~XB>`bQ_>a11g zXJTq)CfvZU9QzLk+JnmfG)gyT8d%h|eDwPhx7XIz5}+lqcwBMYa=USpaceOhZ&zfL uFkOkdv3jt$&U08yU&Xrp+SI66KK_M~*{=R`{D-1dEk0fha0lpK#`ZspDc5TN diff --git a/include/sysmenu/sysmenu_lib/common/sysmenu_work.h b/include/sysmenu/sysmenu_lib/common/sysmenu_work.h index 5cb08fc2..5f46c2b3 100644 --- a/include/sysmenu/sysmenu_lib/common/sysmenu_work.h +++ b/include/sysmenu/sysmenu_lib/common/sysmenu_work.h @@ -29,7 +29,7 @@ extern "C" { #endif // define data ------------------------------------ -#define TITLE_ID_LAUNCHER ( 0x0003000752434e4cLLU ) +#define TITLE_ID_LAUNCHER ( 0x000300074c4e4352LLU ) #define CLONE_BOOT_MODE 1 #define OTHER_BOOT_MODE 2 @@ -40,11 +40,21 @@ typedef struct TitleID_HiLo { u32 Hi; }TitleID_HiLo; + //---------------------------------------------------------------------- -// データ型定義 +// PXIコマンド +//---------------------------------------------------------------------- +#define SYSMENU_PXI_FIFO_TAG PXI_FIFO_TAG_USER_0 + +typedef enum SYSMPXICommand { + SYSM_PXI_COMM_DISABLE_HOTSW = 1 +}SYSMPXICommand; + +//---------------------------------------------------------------------- +// ROMエミュレーション情報 //---------------------------------------------------------------------- #define ISD_ROM_EMULATION_INFO_SIZE 0x20 // ROMエミュレーションデータサイズ -#define ISD_ROM_EMULATION_INFO_MAGIC_CODE 0x444c5754 +#define ISD_ROM_EMULATION_INFO_MAGIC_CODE 0x444c5754 // "TWLD"の文字列 // ISデバッガROMエミュレーション情報 typedef struct ISD_RomEmuInfo { @@ -67,30 +77,47 @@ typedef struct ISD_RomEmuInfo { }ISD_RomEmuInfo; +//---------------------------------------------------------------------- +// SYSMワーク +//---------------------------------------------------------------------- // SYSM共有ワーク構造体 typedef struct SYSM_work { Relocate_Info romRelocateInfo[RELOCATE_INFO_NUM]; // ROM再配置情報(arm9,arm7それぞれltdとflxで最大4つ) - vu32 isFatalError :1; // FATALエラー - vu32 isARM9Start :1; // ARM9スタートフラグ - vu32 isHotStart :1; // Hot/Coldスタート判定 - vu32 isValidLauncherParam :1; // リセットパラメータ有効 - vu32 isValidTSD :1; // NITRO設定データ無効フラグ - vu32 isLogoSkip :1; // ロゴデモスキップ - vu32 isOnDebugger :1; // デバッガ動作か? - vu32 isExistCard :1; // 有効なNTR/TWLカードが存在するか? - vu32 isCardStateChanged :1; // カード状態更新フラグ - vu32 isLoadSucceeded :1; // アプリロード完了? - vu32 isCardBoot :1; // カードブートか? - vu32 isBrokenHWNormalInfo :1; // HWノーマル情報が破損している。 - vu32 isBrokenHWSecureInfo :1; // HWセキュア情報が破損している。 - vu32 isResetRTC :1; // RTCリセット発生 + struct { + struct { + vu32 isFatalError :1; // FATALエラー + vu32 isARM9Start :1; // ARM9スタートフラグ + vu32 isHotStart :1; // Hot/Coldスタート判定 + vu32 isValidLauncherParam :1; // リセットパラメータ有効 + vu32 isValidTSD :1; // NITRO設定データ無効フラグ + vu32 isLogoSkip :1; // ロゴデモスキップ + vu32 isOnDebugger :1; // デバッガ動作か? + vu32 isExistCard :1; // 有効なNTR/TWLカードが存在するか? + vu32 isCardStateChanged :1; // カード状態更新フラグ + vu32 isLoadSucceeded :1; // アプリロード完了? + vu32 isCardBoot :1; // カードブートか? + vu32 isBrokenHWNormalInfo :1; // HWノーマル情報が破損している。 + vu32 isBrokenHWSecureInfo :1; // HWセキュア情報が破損している。 + vu32 isResetRTC :1; // RTCリセット発生 #ifdef DEBUG_USED_CARD_SLOT_B_ - vu32 isValidCardBanner :1; - vu32 is1stCardChecked :1; - vu32 rsv :17; + vu32 isValidCardBanner :1; + vu32 is1stCardChecked :1; + vu32 rsv :17; #else - vu32 rsv :19; + vu32 rsv :19; #endif + }common; + struct { + vu16 isEnableHotSW :1; + vu16 rsv:15; + }arm9; + struct { + vu16 isEnableHotSW :1; + vu16 isBusyHotSW :1; + vu16 disableHotSW_REQ :1; + vu16 rsv:13; + }arm7; + }flags; u16 cardHeaderCrc16; // カード検出時に算出したROMヘッダCRC16(ARM9側でコピーして使用する側) u16 cardHeaderCrc16_bak; // カード検出時に算出したROMヘッダCRC16(ARM7側ライブラリでダイレクトに書き換わる側) @@ -124,6 +151,7 @@ typedef struct SDKBootCheckInfo{ }SDKBootCheckInfo; + //---------------------------------------------------------------------- // SYSM共有ワーク領域のアドレス獲得 //----------------------------------------------------------------------