mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
es-sdk-20080801_rc1対応
HWSecureInfoがない場合対応 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2106 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
414a3e813f
commit
b364e3ab03
@ -226,11 +226,12 @@ SDK_WEAK_SYMBOL AESResult SEA_Decrypt(const void* src, u32 srcSize, void* dst)
|
||||
(void)dst;
|
||||
return AES_RESULT_SUCCESS;
|
||||
}
|
||||
#define SEA_ADDR_WRAM_1 ((u32)0x03004000u)
|
||||
#define CRYPTO_BUFFER_ADDR 0x1ffb000
|
||||
#define CRYPTO_BUFFER_SIZE 0x1000
|
||||
u32 SEA_GetCryptoBufferAddr(void);
|
||||
SDK_WEAK_SYMBOL u32 SEA_GetCryptoBufferAddr(void) __attribute__((never_inline)) { return SEA_ADDR_WRAM_1; }
|
||||
SDK_WEAK_SYMBOL u32 SEA_GetCryptoBufferAddr(void) __attribute__((never_inline)) { return HW_FIRM_ES_BUF; }
|
||||
u32 SEA_GetCryptoBufferSize(void);
|
||||
SDK_WEAK_SYMBOL u32 SEA_GetCryptoBufferSize(void) __attribute__((never_inline)) { return HW_WRAM_1_SIZE; }
|
||||
SDK_WEAK_SYMBOL u32 SEA_GetCryptoBufferSize(void) __attribute__((never_inline)) { return HW_FIRM_ES_BUF_SIZE; }
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: FS_ResolveSrl
|
||||
@ -279,7 +280,7 @@ int FS_ResolveSrlList( const OSTitleId* titleIdList, u32 nums )
|
||||
if ( !titleIdList || !nums || ES_ERR_OK != ES_InitLib() )
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}OS_TPrintf("InitLib\n");
|
||||
for ( i = 0; i < nums; i++ )
|
||||
{
|
||||
#ifdef PROFILE_ES
|
||||
|
||||
@ -35,13 +35,6 @@ static const u8 rsa_key_launcher[128] =
|
||||
};
|
||||
#endif
|
||||
|
||||
#define RSA_HEAP_SIZE (4*1024) // RSA用ヒープサイズ
|
||||
#define CRYPTO_HEAP_SIZE (11*1024) // CRYPTO用ヒープサイズ
|
||||
|
||||
#define HEAP_SIZE (RSA_HEAP_SIZE > CRYPTO_HEAP_SIZE ? RSA_HEAP_SIZE : CRYPTO_HEAP_SIZE)
|
||||
|
||||
static u8 heap[HEAP_SIZE] ATTRIBUTE_ALIGN(32);
|
||||
|
||||
static SVCSignHeapContext acPool;
|
||||
|
||||
#define MENU_TITLE_ID_HI 0x00030017ULL
|
||||
@ -129,6 +122,29 @@ static void PostInit(void)
|
||||
|
||||
リストからランチャーSRLを解決する
|
||||
***************************************************************/
|
||||
//#define DEBUG_CRYPTO_ALLOCATOR
|
||||
#ifdef DEBUG_CRYPTO_ALLOCATOR
|
||||
#include <nitro/crypto.h>
|
||||
static int allocated=0;
|
||||
static void* myAlloc(size_t size)
|
||||
{
|
||||
void* ptr = OS_Alloc(size);
|
||||
if (ptr)
|
||||
{
|
||||
OS_TPrintf("Alloc [%d] %d bytes.\n", ++allocated, size);
|
||||
}
|
||||
else
|
||||
{
|
||||
OS_TPrintf("Failed to allocate %d bytes.\n", size);
|
||||
}
|
||||
return ptr;
|
||||
}
|
||||
static void myFree(void* ptr)
|
||||
{
|
||||
OS_TPrintf("Free [%d]\n", --allocated);
|
||||
OS_Free(ptr);
|
||||
}
|
||||
#endif
|
||||
static BOOL TryResolveSrl(void)
|
||||
{
|
||||
OSTitleId titleIdList[] =
|
||||
@ -139,8 +155,8 @@ static BOOL TryResolveSrl(void)
|
||||
int num;
|
||||
|
||||
// CRYPTO用ヒープ設定 (ESライブラリしか使わないはず)
|
||||
void* lo = OS_InitAlloc( OS_ARENA_MAIN, heap, heap + CRYPTO_HEAP_SIZE, 1);
|
||||
void* hi = heap + CRYPTO_HEAP_SIZE;
|
||||
void* lo = OS_InitAlloc( OS_ARENA_MAIN, (void*)HW_FIRM_RSA_BUF, (void*)HW_FIRM_RSA_BUF_END, 1);
|
||||
void* hi = (void*)HW_FIRM_RSA_BUF_END;
|
||||
OSHeapHandle hh = OS_CreateHeap( OS_ARENA_MAIN, lo, hi );
|
||||
if ( hh < 0 )
|
||||
{
|
||||
@ -149,6 +165,10 @@ static BOOL TryResolveSrl(void)
|
||||
}
|
||||
OS_SetCurrentHeap( OS_ARENA_MAIN, hh );
|
||||
|
||||
#ifdef DEBUG_CRYPTO_ALLOCATOR
|
||||
CRYPTO_SetAllocator(myAlloc, myFree);
|
||||
#endif
|
||||
|
||||
if ( !LCFG_ReadHWSecureInfo() )
|
||||
{
|
||||
OS_TPrintf("Failed to load HWSecureInfo.\n");
|
||||
@ -314,7 +334,7 @@ void TwlMain( void )
|
||||
/* ES (CRYPTO) ライブラリはここまで */
|
||||
/* SVN_RSA はここから*/
|
||||
// RSA用ヒープ設定
|
||||
SVC_InitSignHeap( &acPool, heap, RSA_HEAP_SIZE );
|
||||
SVC_InitSignHeap( &acPool, (void*)HW_FIRM_RSA_BUF, HW_FIRM_RSA_BUF_SIZE );
|
||||
|
||||
if ( !FS_LoadHeader( &acPool, NULL, NULL, RSA_KEY_ADDR ) || !CheckHeader() )
|
||||
{
|
||||
|
||||
@ -21,11 +21,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
//------------------------------------- FIRM
|
||||
#define HW_FIRM HW_WRAM
|
||||
#define HW_FIRM_END (HW_FIRM + HW_FIRM_SIZE)
|
||||
#define HW_FIRM_SIZE (HW_WRAM_0_SIZE + HW_WRAM_1_SIZE + HW_WRAM_A_SIZE_MAX + HW_WRAM_B_SIZE_MAX)
|
||||
|
||||
//------------------------------------- FIRM_SVC_STACK
|
||||
#define HW_FIRM_SVC_STACK (HW_FIRM_SVC_STACK_END-HW_FIRM_SVC_STACK_SIZE)
|
||||
#define HW_FIRM_SVC_STACK_END (HW_WRAM_AREA_END - HW_PRV_WRAM_SYSRV_SIZE)
|
||||
|
||||
@ -21,17 +21,22 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
//------------------------------------- FIRM
|
||||
#define HW_FIRM HW_WRAM_EX
|
||||
#define HW_FIRM_END (HW_FIRM + HW_FIRM_SIZE)
|
||||
#define HW_FIRM_SIZE HW_WRAM_C_SIZE_MAX
|
||||
|
||||
//------------------------------------- FIRM_RESET_BUF
|
||||
#define HW_FIRM_RESET_BUF HW_MAIN_MEM
|
||||
#define HW_FIRM_RESET_BUF_END (HW_FIRM_RESET_BUF + HW_FIRM_RESET_BUF_SIZE)
|
||||
//#define HW_FIRM_RESET_BUF_SIZE 0x400 // 12KB
|
||||
#define HW_FIRM_RESET_BUF_SIZE 0x800000 // 8MB
|
||||
|
||||
//------------------------------------- FIRM_RSA_BUF
|
||||
#define HW_FIRM_RSA_BUF (HW_FIRM_RSA_BUF_END - HW_FIRM_RSA_BUF_SIZE)
|
||||
#define HW_FIRM_RSA_BUF_END HW_FIRM_ES_BUF
|
||||
#define HW_FIRM_RSA_BUF_SIZE 0x3000 // 12KB
|
||||
|
||||
//------------------------------------- FIRM_ES_BUF
|
||||
#define HW_FIRM_ES_BUF (HW_FIRM_ES_BUF_END - HW_FIRM_ES_BUF_SIZE)
|
||||
#define HW_FIRM_ES_BUF_END HW_FIRM_FROM_BROM_BUF
|
||||
#define HW_FIRM_ES_BUF_SIZE 0x1000 // 4KB
|
||||
|
||||
//------------------------------------- FIRM_FROM_BROM_BUF
|
||||
#define HW_FIRM_FROM_BROM_BUF (HW_FIRM_FROM_BROM_BUF_END - HW_FIRM_FROM_BROM_BUF_SIZE)
|
||||
#define HW_FIRM_FROM_BROM_BUF_END (HW_ITCM_END - 0x1000) // END - 4KB
|
||||
|
||||
Loading…
Reference in New Issue
Block a user