diff --git a/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c b/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c index d8639c05..3f57c3c2 100644 --- a/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c +++ b/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c @@ -166,10 +166,16 @@ static void BOOTi_RebootCallback( void** entryp, void* mem_list_v, REBOOTTarget* // FSによってshared領域にコピーされたランチャー自身のマウントパスのクリア MI_CpuClearFast((char *)HW_TWL_FS_BOOT_SRL_PATH_BUF, OS_MOUNT_PATH_LEN); - // カードアプリの場合はARM9FLXの先頭2k暗号オブジェクトをデクリプト - if( SYSMi_GetWork()->flags.common.isCardBoot ) { + // NAND/TMPアプリ用KeyTableの生成 + if( ! SYSMi_GetWork()->flags.common.isCardBoot ) + { + HOTSWi_MakeBlowfishTableDSForNAND(); + } + // ARM9FLXの先頭2k暗号オブジェクトをデクリプト + { // 再配置情報があればそちらのアドレス、なければヘッダ指定のアドレス void *addr = (SYSMi_GetWork()->romRelocateInfo[0].src != NULL) ? SYSMi_GetWork()->romRelocateInfo[0].src : dh->s.main_ram_address; + HOTSWi_SetSecureSegmentBuffer(HOTSW_MODE1, addr, SECURE_AREA_SIZE); HOTSW_DecryptObjectFile( addr ); } diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c index 7bd2b603..81d0604a 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c @@ -1165,6 +1165,13 @@ void HOTSW_SetBootSegmentBuffer(void* buf, u32 size) 注:カードデータロード中は呼び出さないようにする *---------------------------------------------------------------------------*/ void HOTSW_SetSecureSegmentBuffer(ModeType type ,void* buf, u32 size) +{ + HOTSWi_SetSecureSegmentBuffer(type, buf, size); + // バッファの初期化 + MI_CpuClear8(s_pSecureSegBuffer, size); +} + +void HOTSWi_SetSecureSegmentBuffer(ModeType type ,void* buf, u32 size) { SDK_ASSERT(size > SECURE_SEGMENT_SIZE); @@ -1174,17 +1181,12 @@ void HOTSW_SetSecureSegmentBuffer(ModeType type ,void* buf, u32 size) s_cbData.pSecureSegBuf = s_pSecureSegBuffer; - // バッファの初期化 - MI_CpuClear8(s_pSecureSegBuffer, size); } else{ s_pSecure2SegBuffer = (u32 *)buf; s_Secure2SegBufSize = size; s_cbData.pSecure2SegBuf = s_pSecure2SegBuffer; - - // バッファの初期化 - MI_CpuClear8(s_pSecure2SegBuffer, size); } } @@ -2378,6 +2380,17 @@ static BOOL CheckExtArm9HashValue(void) #endif +/*---------------------------------------------------------------------------* + Name: HOTSWi_GetCardBootData + + Description: + *---------------------------------------------------------------------------*/ +void *HOTSWi_GetCardBootData(void) +{ + return &s_cbData; +} + + /*---------------------------------------------------------------------------* Name: DebugPrintErrorMessage diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/hotswBlowfish.c b/build/libraries_sysmenu/hotsw/ARM7/src/hotswBlowfish.c index 9250b510..317c57f7 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/hotswBlowfish.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/hotswBlowfish.c @@ -18,6 +18,18 @@ // Function Prototype ------------------------------------------------------- +/*---------------------------------------------------------------------------* + Name: MakeBlowfishTableDSForNAND + + Description: NANDアプリ用KeyTableの生成 + *---------------------------------------------------------------------------*/ +void HOTSWi_MakeBlowfishTableDSForNAND(void) +{ + CardBootData *cbd = HOTSWi_GetCardBootData(); + cbd->pBootSegBuf = (void*)SYSM_APP_ROM_HEADER_BUF; + MakeBlowfishTableDS(cbd, 8); +} + /*---------------------------------------------------------------------------* Name: MakeBlowfishTableDS