From f55ccdae1c812fdd1aa13efe91a9631ba639004a Mon Sep 17 00:00:00 2001 From: nakasima Date: Tue, 8 Jul 2008 03:08:57 +0000 Subject: [PATCH] =?UTF-8?q?NAND=E3=82=A2=E3=83=97=E3=83=AA=E3=81=AE?= =?UTF-8?q?=E8=A3=BD=E5=93=81=E7=89=88=E3=82=B7=E3=82=B9=E3=83=86=E3=83=A0?= =?UTF-8?q?=E3=82=B3=E3=83=BC=E3=83=AB=E5=BE=A9=E5=8F=B7=E5=8C=96=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@1813 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../libraries_sysmenu/boot/ARM7/src/bootAPI.c | 10 ++++++-- .../libraries_sysmenu/hotsw/ARM7/src/hotsw.c | 23 +++++++++++++++---- .../hotsw/ARM7/src/hotswBlowfish.c | 12 ++++++++++ 3 files changed, 38 insertions(+), 7 deletions(-) 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