・SDK3765に対応。

・mountInfoのバグ修正。
 titleIDの処理をu64で行うよう修正。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@503 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yosiokat 2008-01-23 04:39:19 +00:00
parent aa7f8a32e1
commit a1473a1b02
4 changed files with 26 additions and 23 deletions

View File

@ -23,7 +23,7 @@ extern "C" {
// Define -------------------------------------------------------------------
//#define HOTSW_NO_MESSAGE
#define HOTSW_NO_MESSAGE // Printf抑制スイッチ
#ifdef HOTSW_NO_MESSAGE
#define OS_TPrintf( ... ) ((void)0)

View File

@ -24,6 +24,13 @@
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
//-------------------------------------------------------

View File

@ -68,7 +68,7 @@ void SYSM_CaribrateTP( void )
store.data.raw_x1, store.data.raw_y1, (u16)store.data.dx1, (u16)store.data.dy1,
store.data.raw_x2, store.data.raw_y2, (u16)store.data.dx2, (u16)store.data.dy2 );
TP_SetCalibrateParam( &calibParam );
OS_Printf("TP_calib: %4d %4d %4d %4d %4d %4d\n",
OS_TPrintf("TP_calib: %4d %4d %4d %4d %4d %4d\n",
store.data.raw_x1, store.data.raw_y1, (u16)store.data.dx1, (u16)store.data.dy1,
store.data.raw_x2, store.data.raw_y2, (u16)store.data.dx2, (u16)store.data.dy2 );
}

View File

@ -25,12 +25,12 @@
#define PRV_SAVE_DATA_MOUNT_INDEX 5 // プライベートセーブデータの s_defaultMountInfo リストインデックス
#define PUB_SAVE_DATA_MOUNT_INDEX 6 // パブリック セーブデータの s_defaultMountInfo リストインデックス
#define TITLEID_HI_APP_SYS_FLAG_SHIFT 0
#define TITLEID_HI_NOT_LAUNCH_FLAG_SHIFT 1
#define TITLEID_HI_MEDIA_NAND_FLAG_SHIFT 2
#define TITLEID_HI_APP_SYS_FLAG ( 1 << TITLEID_HI_APP_SYS_FLAG_SHIFT )
#define TITLEID_HI_NOT_LAUNCH_FLAG ( 1 << TITLEID_HI_NOT_LAUNCH_FLAG_SHIFT )
#define TITLEID_HI_MEDIA_NAND_FLAG ( 1 << TITLEID_HI_MEDIA_NAND_FLAG_SHIFT )
#define TITLEID_APP_SYS_FLAG_SHIFT ( 32 + 0 )
#define TITLEID_NOT_LAUNCH_FLAG_SHIFT ( 32 + 1 )
#define TITLEID_MEDIA_NAND_FLAG_SHIFT ( 32 + 2 )
#define TITLEID_APP_SYS_FLAG ( 1ULL << TITLEID_APP_SYS_FLAG_SHIFT )
#define TITLEID_NOT_LAUNCH_FLAG ( 1ULL << TITLEID_NOT_LAUNCH_FLAG_SHIFT )
#define TITLEID_MEDIA_NAND_FLAG ( 1ULL << TITLEID_MEDIA_NAND_FLAG_SHIFT )
// extern data-----------------------------------------------------------------
@ -73,9 +73,6 @@ void SYSMi_SetLauncherMountInfo( void )
{
NAMTitleId titleID = TITLE_ID_LAUNCHER;
// マウント情報のクリア
MI_CpuClearFast( (void *)HW_TWL_FS_MOUNT_INFO_BUF, HW_TWL_ROM_HEADER_BUF - HW_TWL_FS_MOUNT_INFO_BUF );
// ※とりあえず自身はROMブートで。[TODO:]後で修正
// SYSMi_SetBootSRLPath( OS_BOOTTYPE_NAND, titleID ); // ※SDK2623では、BootSRLPathを"rom:"としたらFSi_InitRomArchiveでNANDアプリ扱いされてアクセス例外で落ちる。
@ -95,9 +92,6 @@ void SYSMi_SetLauncherMountInfo( void )
// システム領域に、ブートするアプリのマウント情報を登録する
void SYSMi_SetBootAppMountInfo( TitleProperty *pBootTitle )
{
// マウント情報のクリア
MI_CpuClearFast( (void *)HW_TWL_FS_MOUNT_INFO_BUF, HW_TWL_ROM_HEADER_BUF - HW_TWL_FS_MOUNT_INFO_BUF );
// アプリがTWL対応でない場合は、何もセットせずにリターン
if( ( (( ROM_Header_Short *)HW_TWL_ROM_HEADER_BUF)->platform_code ) == 0 ) {
return;
@ -111,6 +105,7 @@ void SYSMi_SetBootAppMountInfo( TitleProperty *pBootTitle )
SYSMi_ModifySaveDataMount( (OSBootType)pBootTitle->flags.bootType,
pBootTitle->titleID,
&s_defaultMountList[ PRV_SAVE_DATA_MOUNT_INDEX ] );
// マウント情報のセット
SYSMi_SetMountInfoCore( (OSBootType)pBootTitle->flags.bootType,
pBootTitle->titleID,
@ -148,8 +143,10 @@ static void SYSMi_SetBootSRLPath( OSBootType bootType, NAMTitleId titleID )
if( path[ 0 ] ) {
STD_CopyLStringZeroFill( (char *)HW_TWL_FS_BOOT_SRL_PATH_BUF, path, OS_MOUNT_PATH_LEN );
}else {
MI_CpuClearFast( (void *)HW_TWL_FS_BOOT_SRL_PATH_BUF, OS_MOUNT_PATH_LEN );
}
// OS_TPrintf( "boot path : %s\n", (char *)HW_TWL_FS_BOOT_SRL_PATH_BUF ); // ※今はOS_Init前で呼ばれるので、Printfできない。
OS_TPrintf( "boot SRL path : %s\n", (char *)HW_TWL_FS_BOOT_SRL_PATH_BUF ); // ※OS_Init前で呼ぶとPrintfできないので注意
}
@ -159,11 +156,12 @@ static void SYSMi_SetMountInfoCore( OSBootType bootType, NAMTitleId titleID, OSM
#pragma unused(bootType)
int i;
u32 titleID_Hi = (u32)( titleID >> 32 ); // u64で論理演算はできない
OSMountInfo *pDst = (OSMountInfo *)HW_TWL_FS_MOUNT_INFO_BUF;
MI_CpuClearFast( (void *)HW_TWL_FS_MOUNT_INFO_BUF, HW_TWL_FS_BOOT_SRL_PATH_BUF - HW_TWL_FS_MOUNT_INFO_BUF );
// ユーザーアプリの場合、"nand:", "nand2:"アーカイブを変更。
if( ( titleID_Hi & TITLEID_HI_APP_SYS_FLAG ) == 0 ) {
if( ( titleID & TITLEID_APP_SYS_FLAG ) == 0 ) {
pSrc[ 1 ].userPermission = 0; // "nand:"
pSrc[ 2 ].userPermission = 0; // "nand2:"
}
@ -190,15 +188,14 @@ static void SYSMi_SetMountInfoCore( OSBootType bootType, NAMTitleId titleID, OSM
static void SYSMi_ModifySaveDataMount( OSBootType bootType, NAMTitleId titleID, OSMountInfo *pMountTgt )
{
int i;
u32 titleID_Hi = (u32)( titleID >> 32 ); // u64で論理演算はできない
// ※カードからブートされた場合でも、titleIDが"NANDアプリ"の場合は、セーブデータをマウントするようにしている。
// セーブデータ有無を判定して、パスをセット
if( ( ( bootType == OS_BOOTTYPE_NAND ) && // NANDアプリがNANDからブートされた時
( titleID_Hi & TITLEID_HI_MEDIA_NAND_FLAG ) ) ||
( titleID & TITLEID_MEDIA_NAND_FLAG ) ) ||
( ( bootType == OS_BOOTTYPE_ROM ) && // ISデバッガ上で、NANDアプリがROM からブートされた時
( titleID_Hi & TITLEID_HI_MEDIA_NAND_FLAG ) &&
( titleID & TITLEID_MEDIA_NAND_FLAG ) &&
( SYSMi_GetWork()->isOnDebugger ) )
) {
char saveFilePath[ 2 ][ FS_ENTRY_LONGNAME_MAX ];
@ -235,15 +232,14 @@ static void SYSMi_ModifySaveDataMount( OSBootType bootType, NAMTitleId titleID,
static void SYSMi_ModifySaveDataMountForLauncher( OSBootType bootType, NAMTitleId titleID, OSMountInfo *pMountTgt )
{
int i;
u32 titleID_Hi = (u32)( titleID >> 32 ); // u64で論理演算はできない
// ※カードからブートされた場合でも、titleIDが"NANDアプリ"の場合は、セーブデータをマウントするようにしている。
// セーブデータ有無を判定して、パスをセット
if( ( ( bootType == OS_BOOTTYPE_NAND ) && // NANDアプリがNANDからブートされた時
( titleID_Hi & TITLEID_HI_MEDIA_NAND_FLAG ) ) ||
( titleID & TITLEID_MEDIA_NAND_FLAG ) ) ||
( ( bootType == OS_BOOTTYPE_ROM ) && // ISデバッガ上で、NANDアプリがROM からブートされた時
( titleID_Hi & TITLEID_HI_MEDIA_NAND_FLAG ) &&
( titleID & TITLEID_MEDIA_NAND_FLAG ) &&
( SYSMi_GetWork()->isOnDebugger ) )
) {
char saveFilePath[ 2 ][ FS_ENTRY_LONGNAME_MAX ];