FSライブラリの内部メモリ設定方法の変更に対応

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1795 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yutaka 2008-07-07 05:17:06 +00:00
parent e76216fdb7
commit b2b334015f
2 changed files with 52 additions and 15 deletions

View File

@ -17,6 +17,8 @@
#include <firm.h>
#include <es.h>
//#define PROFILE_ES 0x02FFCB00
// bootContent ‚ð•\‚·“ÁŽê‚È contentIndex
#define CONTENT_INDEX_BOOT 0xFFFF
@ -34,11 +36,26 @@
*---------------------------------------------------------------------------*/
void FS_InitFIRM( void )
{
FSiTemporaryBuffer = (void*)HW_FIRM_FS_TEMP_BUFFER;
FATFS_InitFIRM();
FS_Init( FS_DMA_NOT_USE );
}
/*---------------------------------------------------------------------------*
Name: FSi_SetupFATBuffers
Description: override weak function
Arguments:
Returns: None
*---------------------------------------------------------------------------*/
void FSi_SetupFATBuffers(void)
{
FSiFATFSDrive = (void*)HW_FIRM_FS_FATFS_DRIVE;
FSiFATFSAsyncRequest = (void*)HW_FIRM_FS_FATFS_ASYNC_REQUEST;
FSiTemporaryBuffer = (void*)HW_FIRM_FS_TEMP_BUFFER;
}
/*---------------------------------------------------------------------------*
Name: FSi_OverrideRomArchive
@ -241,32 +258,42 @@ BOOL FS_ResolveSrl( OSTitleId titleId )
int FS_ResolveSrlList( const OSTitleId* titleIdList, u32 nums )
{
int i;
OSTick tick[8];
char*ptr=(char*)0x02FFCB00;
tick[0] = OS_GetTick();
#ifdef PROFILE_ES
OSTick tick[8];
char*ptr=(char*)PROFILE_ES;
tick[0] = OS_GetTick();
#endif
MI_CpuClearFast( (char*)HW_TWL_FS_BOOT_SRL_PATH_BUF, HW_FIRM_FS_BOOT_SRL_PATH_BUF_SIZE );
tick[1] = OS_GetTick();
#ifdef PROFILE_ES
tick[1] = OS_GetTick();
#endif
if ( !titleIdList || !nums || ES_ERR_OK != ES_InitLib() )
{
return FALSE;
}
for ( i = 0; i < nums; i++ )
{
tick[2+i] = OS_GetTick();
#ifdef PROFILE_ES
tick[2+i] = OS_GetTick();
#endif
if ( ES_ERR_OK == ES_GetContentPath(titleIdList[i], CONTENT_INDEX_BOOT, (char*)HW_TWL_FS_BOOT_SRL_PATH_BUF) )
{
break;
}
}
tick[3+i] = OS_GetTick();
#ifdef PROFILE_ES
tick[3+i] = OS_GetTick();
#endif
if ( ES_ERR_OK != ES_CloseLib() )
{
return FALSE;
}
tick[4+i] = OS_GetTick();
tick[5+i] = tick[4+i];
for(i=0;i<7;i++)
ptr+=STD_TSPrintf(ptr, "tick[%d]:%d\n",i,(int)OS_TicksToMicroSeconds(tick[i+1]-tick[i]));
#ifdef PROFILE_ES
tick[4+i] = OS_GetTick();
tick[5+i] = tick[4+i];
for(i=0;i<7;i++)
ptr+=STD_TSPrintf(ptr, "tick[%d]:%d\n",i,(int)OS_TicksToMicroSeconds(tick[i+1]-tick[i]));
#endif
return (i == nums ? -1 : i);
}

View File

@ -24,6 +24,8 @@
extern "C" {
#endif
#define HW_FIRM_ROUNDUP32(x) ( ((x) + 31) & -32 )
//------------------------------------- *_LoadBuffer
#define HW_FIRM_LOAD_BUFFER_BASE MI_GetWramMapStart_B()
#define HW_FIRM_LOAD_BUFFER_UNIT_SIZE 0x8000
@ -35,13 +37,21 @@ extern "C" {
#define HW_FIRM_FS_MOUNT_INFO_BUF_SIZE (HW_TWL_FS_BOOT_SRL_PATH_BUF - HW_TWL_FS_MOUNT_INFO_BUF)
#define HW_FIRM_FS_BOOT_SRL_PATH_BUF_SIZE (HW_TWL_ROM_HEADER_BUF - HW_TWL_FS_BOOT_SRL_PATH_BUF)
#define HW_FIRM_FATFS_ARCHNAME_LIST (HW_FIRM_FATFS_ARCHNAME_LIST_END - HW_FIRM_FATFS_ARCHNAME_LIST_SIZE)
#define HW_FIRM_FATFS_ARCHNAME_LIST_SIZE MATH_ROUNDUP(OS_MOUNT_ARCHIVE_NAME_LEN * OS_MOUNT_INFO_MAX + 1, 32) // 0xC0
#define HW_FIRM_FATFS_ARCHNAME_LIST_END HW_FIRM_FATFS_COMMAND_BUFFER // 0x02ff5800
#define HW_FIRM_FATFS_ARCHNAME_LIST (HW_FIRM_FATFS_ARCHNAME_LIST_END - HW_FIRM_FATFS_ARCHNAME_LIST_SIZE) // 0x02fee120
#define HW_FIRM_FATFS_ARCHNAME_LIST_SIZE MATH_ROUNDUP(OS_MOUNT_ARCHIVE_NAME_LEN * OS_MOUNT_INFO_MAX + 1, 32) // 0xc0
#define HW_FIRM_FATFS_ARCHNAME_LIST_END HW_FIRM_FATFS_COMMAND_BUFFER // 0x2fee1e0
#define HW_FIRM_FATFS_COMMAND_BUFFER (HW_FIRM_FATFS_COMMAND_BUFFER_END - HW_FIRM_FATFS_COMMAND_BUFFER_SIZE)
#define HW_FIRM_FATFS_COMMAND_BUFFER_SIZE FATFS_COMMAND_BUFFER_MAX // 0x1000
#define HW_FIRM_FATFS_COMMAND_BUFFER_END HW_FIRM_FS_TEMP_BUFFER // 0x02ff6800
#define HW_FIRM_FATFS_COMMAND_BUFFER_END HW_FIRM_FS_FATFS_DRIVE // 0x2fef1e0
#define HW_FIRM_FS_FATFS_DRIVE (HW_FIRM_FS_FATFS_DRIVE_END - HW_FIRM_FS_FATFS_DRIVE_SIZE)
#define HW_FIRM_FS_FATFS_DRIVE_SIZE HW_FIRM_ROUNDUP32(sizeof(FSFATFSArchiveContext[FS_MOUNTDRIVE_MAX])) // 0x1cc0
#define HW_FIRM_FS_FATFS_DRIVE_END HW_FIRM_FS_FATFS_ASYNC_REQUEST // 0x02ff0ea0
#define HW_FIRM_FS_FATFS_ASYNC_REQUEST (HW_FIRM_FS_FATFS_ASYNC_REQUEST_END - HW_FIRM_FS_FATFS_ASYNC_REQUEST_SIZE)
#define HW_FIRM_FS_FATFS_ASYNC_REQUEST_SIZE HW_FIRM_ROUNDUP32(sizeof(FATFSRequestBuffer[FS_MOUNTDRIVE_MAX])) // 0x5960
#define HW_FIRM_FS_FATFS_ASYNC_REQUEST_END HW_FIRM_FS_TEMP_BUFFER // 0x02ff6800
#define HW_FIRM_FS_TEMP_BUFFER (HW_FIRM_FS_TEMP_BUFFER_END - HW_FIRM_FS_TEMP_BUFFER_SIZE)
#define HW_FIRM_FS_TEMP_BUFFER_SIZE FS_TEMPORARY_BUFFER_MAX // 0x5800