NANDアプリでも使用するのでSYSM_APP_ROM_HEADER_BUFへ変更。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1385 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
nakasima 2008-05-16 12:23:29 +00:00
parent 174aaba20a
commit e67e648428
8 changed files with 34 additions and 34 deletions

View File

@ -53,7 +53,7 @@ typedef struct TitleBlackList {
static void BOOTi_ClearREG_RAM( void );
static void BOOTi_CutAwayRegionList( u32 *regionlist, u32 start, u32 end );
static void BOOTi_CheckTitleBlackList( void );
static void BOOTi_CheckTitleBlackList( ROM_Header_Short *pROMH );
// global variables--------------------------------------------------
@ -100,7 +100,7 @@ BOOL BOOT_WaitStart( void )
{
if( (reg_PXI_MAINPINTF & 0x000f ) == 0x000f ) {
// 最適化されるとポインタを初期化しただけでは何もコードは生成されません
ROM_Header *th = (ROM_Header *)SYSM_CARD_ROM_HEADER_BUF; // TWL拡張ROMヘッダDSアプリには無い
ROM_Header *th = (ROM_Header *)SYSM_APP_ROM_HEADER_BUF; // TWL拡張ROMヘッダDSアプリには無い
ROM_Header *dh = (ROM_Header *)(SYSMi_GetWork()->romHeaderNTR); // DS互換ROMヘッダ
BOOL isNtrMode;
@ -109,13 +109,13 @@ BOOL BOOT_WaitStart( void )
(void)OS_SetIrqMaskEx(0);
// NTR-ROMヘッダへのパッチ処理のためコピー
MI_CpuCopyFast( (void *)SYSM_CARD_ROM_HEADER_BUF, dh, HW_CARD_ROM_HEADER_SIZE );
MI_CpuCopyFast( th, dh, HW_CARD_ROM_HEADER_SIZE );
// ブラックリストをチェックし、起動制限をかける
BOOTi_CheckTitleBlackList();
BOOTi_CheckTitleBlackList( (void*)th );
// マウント情報を一時的にSYSM_TWL_MOUNT_INFO_TMP_BUFFERに登録
// ここまでにSYSM_CARD_ROM_HEADER_BUFのキャッシュがライトバックされている必要あり
// ここまでにSYSM_APP_ROM_HEADER_BUFのキャッシュがライトバックされている必要あり
SYSMi_SetBootAppMountInfo( &SYSMi_GetWork2()->bootTitleProperty );
// FSによってshared領域にコピーされたランチャー自身のマウントパスのクリア
@ -397,10 +397,9 @@ static void BOOTi_CutAwayRegionList( u32 *regionlist, u32 start, u32 end )
}
// 起動制限をかけるブラックリストTITLEのチェック
static void BOOTi_CheckTitleBlackList( void )
static void BOOTi_CheckTitleBlackList( ROM_Header_Short *pROMH )
{
const TitleBlackList *pBlackList = &s_blackList[ 0 ];
ROM_Header_Short *pROMH = (ROM_Header_Short *)SYSM_CARD_ROM_HEADER_BUF;
while( pBlackList->rom_version >= 0 ) {
if( ( pBlackList->titleID == pROMH->titleID ) &&

View File

@ -56,7 +56,7 @@ static void ie_subphandler( void )
void BOOT_Ready( void )
{
// 最適化されるとポインタを初期化しただけでは何もコードは生成されません
ROM_Header *th = (ROM_Header *)SYSM_CARD_ROM_HEADER_BUF; // TWL拡張ROMヘッダDSアプリには無い
ROM_Header *th = (ROM_Header *)SYSM_APP_ROM_HEADER_BUF; // TWL拡張ROMヘッダDSアプリには無い
ROM_Header *dh = (ROM_Header *)(SYSMi_GetWork()->romHeaderNTR); // DS互換ROMヘッダ
BOOL isNtrMode;
int i;

View File

@ -297,7 +297,7 @@ void HOTSW_Init(u32 threadPrio)
OS_WakeupThreadDirect(&HotSwThreadData.monitorThread);
// バッファの設定
HOTSW_SetBootSegmentBuffer((void *)SYSM_CARD_ROM_HEADER_BAK, SYSM_CARD_ROM_HEADER_SIZE );
HOTSW_SetBootSegmentBuffer((void *)SYSM_CARD_ROM_HEADER_BAK, SYSM_APP_ROM_HEADER_SIZE );
HOTSW_SetSecureSegmentBuffer(HOTSW_MODE1, (void *)SYSM_CARD_NTR_SECURE_BUF, SECURE_AREA_SIZE );
HOTSW_SetSecureSegmentBuffer(HOTSW_MODE2, (void *)SYSM_CARD_TWL_SECURE_BUF, SECURE_AREA_SIZE );
@ -458,7 +458,7 @@ static HotSwState LoadCardData(void)
if ( !s_cbData.pBootSegBuf->rh.s.enable_nitro_whitelist_signature )
#endif
// NTRカードの場合はRomHeaderバッファの1ページ目以降をクリアしておく。
MI_CpuClearFast((void *)(SYSM_CARD_ROM_HEADER_BAK + PAGE_SIZE), SYSM_CARD_ROM_HEADER_SIZE - PAGE_SIZE);
MI_CpuClearFast((void *)(SYSM_CARD_ROM_HEADER_BAK + PAGE_SIZE), SYSM_APP_ROM_HEADER_SIZE - PAGE_SIZE);
}
// SecureコマンドのPNG_ONコマンドetc用のレイテンシを求める(Latency1とLatency2を足す)
@ -1945,7 +1945,7 @@ static void FinalizeHotSw(HotSwApliType type)
}
// NANDアプリヘッダはコピー済み
if(((ROM_Header*)SYSM_CARD_ROM_HEADER_BUF)->s.game_card_on){
if(((ROM_Header*)SYSM_APP_ROM_HEADER_BUF)->s.game_card_on){
McPowerOn();
s_cbData.modeType = HOTSW_MODE2;

View File

@ -220,8 +220,8 @@ BOOL SYSMi_CopyCardRomHeader( void )
if( SYSM_IsExistCard() ) {
// ROMヘッダのリード
DC_InvalidateRange( (void *)SYSM_CARD_ROM_HEADER_BAK, SYSM_CARD_ROM_HEADER_SIZE ); // キャッシュケア
MI_CpuCopyFast( (void *)SYSM_CARD_ROM_HEADER_BAK, (void *)SYSM_CARD_ROM_HEADER_BUF, SYSM_CARD_ROM_HEADER_SIZE ); // ROMヘッダコピー
DC_InvalidateRange( (void *)SYSM_CARD_ROM_HEADER_BAK, SYSM_APP_ROM_HEADER_SIZE ); // キャッシュケア
MI_CpuCopyFast( (void *)SYSM_CARD_ROM_HEADER_BAK, (void *)SYSM_APP_ROM_HEADER_BUF, SYSM_APP_ROM_HEADER_SIZE ); // ROMヘッダコピー
SYSMi_GetWork()->cardHeaderCrc16 = SYSMi_GetWork()->cardHeaderCrc16_bak; // ROMヘッダCRCコピー
retval = TRUE;
@ -577,7 +577,7 @@ OS_TPrintf("RebootSystem failed: cant read file(%p, %d, %d, %d)\n", &s_authcode,
// 各領域を読み込む
source [region_header ] = 0x00000000;
length [region_header ] = HW_TWL_ROM_HEADER_BUF_SIZE;
destaddr[region_header ] = SYSM_CARD_ROM_HEADER_BUF;
destaddr[region_header ] = SYSM_APP_ROM_HEADER_BUF;
source [region_arm9_ntr] = head->s.main_rom_offset;
length [region_arm9_ntr] = head->s.main_size;
@ -774,7 +774,7 @@ void SYSM_StartLoadTitle( TitleProperty *pBootTitle )
static void SYSMi_AppendRelocateInfoCardSecureArea( void )
{
u32 size;
u32 *dest ;
u32 *dest;
// NTRセキュア領域の再配置は後でbootAPIおよびrebootライブラリにて行う
if( SYSM_GetCardRomHeader()->platform_code & PLATFORM_CODE_FLAG_TWL ) {
// TWLモード
@ -826,7 +826,7 @@ static AuthResult SYSMi_AuthenticateTWLHeader( TitleProperty *pBootTitle )
OSTick start,prev;
start = OS_GetTick();
head = ( ROM_Header *)SYSM_CARD_ROM_HEADER_BUF;
head = ( ROM_Header *)SYSM_APP_ROM_HEADER_BUF;
// NANDアプリの場合、NAM_CheckTitleLaunchRights()を呼んでチェック
if( pBootTitle->flags.bootType == LAUNCHER_BOOTTYPE_NAND )
@ -1017,7 +1017,7 @@ static AuthResult SYSMi_AuthenticateNTRDownloadAppHeader( TitleProperty *pBootTi
OSTick start;
start = OS_GetTick();
head = ( ROM_Header *)SYSM_CARD_ROM_HEADER_BUF;
head = ( ROM_Header *)SYSM_APP_ROM_HEADER_BUF;
// 署名処理
{
@ -1093,7 +1093,7 @@ static AuthResult SYSMi_AuthenticateNTRCardAppHeader( TitleProperty *pBootTitle)
// ヘッダ認証
static AuthResult SYSMi_AuthenticateHeader( TitleProperty *pBootTitle)
{
ROM_Header_Short *hs = ( ROM_Header_Short *)SYSM_CARD_ROM_HEADER_BUF;
ROM_Header_Short *hs = ( ROM_Header_Short *)SYSM_APP_ROM_HEADER_BUF;
// [TODO:]認証結果はどこかワークに保存しておく
// [TODO:]ヘッダに署名ビットがあるはずなので、それを確認して署名チェックを行う
if( hs->platform_code & PLATFORM_CODE_FLAG_TWL )
@ -1181,8 +1181,8 @@ static void SYSMi_AuthenticateTitleThreadFunc( TitleProperty *pBootTitle )
// BOOTTYPE_MEMORYでNTRモードのFSありでブートすると、旧NitroSDKでビルドされたアプリの場合、
// ROMアーカイブにカードが割り当てられて、FSで関係ないカードにアクセスにいってしまうので、それを防止する。
if( ( pBootTitle->flags.bootType == LAUNCHER_BOOTTYPE_MEMORY ) &&
( ( (( ROM_Header_Short *)SYSM_CARD_ROM_HEADER_BUF)->platform_code ) == 0 ) &&
( ( (( ROM_Header_Short *)SYSM_CARD_ROM_HEADER_BUF)->fat_size ) > 0 )
( ( (( ROM_Header_Short *)SYSM_APP_ROM_HEADER_BUF)->platform_code ) == 0 ) &&
( ( (( ROM_Header_Short *)SYSM_APP_ROM_HEADER_BUF)->fat_size ) > 0 )
) {
s_authResult = AUTH_RESULT_TITLE_BOOTTYPE_ERROR;
return;
@ -1233,7 +1233,7 @@ AuthResult SYSM_TryToBootTitle( TitleProperty *pBootTitle )
u8 *pBuffer = SYSM_Alloc( LCFG_WRITE_TEMP );
if( pBuffer != NULL ) {
LCFG_TSD_SetLastTimeBootSoftTitleID ( pBootTitle->titleID );
LCFG_TSD_SetLastTimeBootSoftPlatform( (u8)SYSM_GetCardRomHeader()->platform_code );
LCFG_TSD_SetLastTimeBootSoftPlatform( (u8)SYSM_GetAppRomHeader()->platform_code );
(void)LCFG_WriteTWLSettings( (u8 (*)[ LCFG_WRITE_TEMP ] )pBuffer );
SYSM_Free( pBuffer );
}
@ -1261,7 +1261,7 @@ static void SYSMi_makeTitleIdList( void )
// [TODO:]現在ブート不可タイトルについても入れるようにしているが
// これで良いのか?
OSTitleIDList *list = ( OSTitleIDList * )HW_OS_TITLE_ID_LIST;
ROM_Header_Short *hs = ( ROM_Header_Short *)SYSM_CARD_ROM_HEADER_BUF;
ROM_Header_Short *hs = ( ROM_Header_Short *)SYSM_APP_ROM_HEADER_BUF;
int l;
u8 count = 0;

View File

@ -105,7 +105,7 @@ void SYSMi_SetLauncherMountInfo( void )
void SYSMi_SetBootAppMountInfo( TitleProperty *pBootTitle )
{
OSMountInfo mountListBuffer[ DEFAULT_MOUNT_LIST_NUM ] ATTRIBUTE_ALIGN(4);
ROM_Header_Short *pROMH = ( ROM_Header_Short *)SYSM_CARD_ROM_HEADER_BUF;
ROM_Header_Short *pROMH = ( ROM_Header_Short *)SYSM_APP_ROM_HEADER_BUF;
// アプリがTWL対応でない場合は、何もセットせずにリターン
if( ( pROMH->platform_code ) == 0 ) {
return;
@ -225,8 +225,8 @@ static void SYSMi_ModifySaveDataMount( LauncherBootType bootType, NAMTitleId tit
) {
char saveFilePath[ 2 ][ FS_ENTRY_LONGNAME_MAX ];
u32 saveDataSize[ 2 ];
saveDataSize[ 0 ] = (( ROM_Header_Short *)SYSM_CARD_ROM_HEADER_BUF)->private_save_data_size;
saveDataSize[ 1 ] = (( ROM_Header_Short *)SYSM_CARD_ROM_HEADER_BUF)->public_save_data_size;
saveDataSize[ 0 ] = (( ROM_Header_Short *)SYSM_APP_ROM_HEADER_BUF)->private_save_data_size;
saveDataSize[ 1 ] = (( ROM_Header_Short *)SYSM_APP_ROM_HEADER_BUF)->public_save_data_size;
// セーブデータのファイルパスを取得
NAM_GetTitleSaveFilePath( saveFilePath[ 1 ], saveFilePath[ 0 ], titleID );

View File

@ -52,19 +52,19 @@ extern u32 SDK_AUTOLOAD_WRAM_START[];
#define SYSM_DMA_BUFOVER_BARRIER_SIZE 0x0200
// カードアプリ格納バッファ
#define SYSM_CARD_ROM_HEADER_SIZE 0x1000
// カードアプリ格納バッファROMヘッダバッファはNANDアプリでも使用
#define SYSM_APP_ROM_HEADER_SIZE 0x1000
//#ifdef DEBUG_USED_CARD_SLOT_B_
#define SYSM_CARD_BANNER_BUF ( SYSM_OWN_ARM9_MMEM_ADDR_END )
#define SYSM_CARD_BANNER_BUF_END ( SYSM_CARD_BANNER_BUF + 0x3000 )
#define SYSM_CARD_ROM_HEADER_BUF ( SYSM_CARD_BANNER_BUF_END )
#define SYSM_APP_ROM_HEADER_BUF ( SYSM_CARD_BANNER_BUF_END )
#if 0
#define SYSM_CARD_ROM_HEADER_BUF ( SYSM_OWN_ARM9_MMEM_ADDR_END )
#define SYSM_APP_ROM_HEADER_BUF ( SYSM_OWN_ARM9_MMEM_ADDR_END )
#endif
#define SYSM_CARD_ROM_HEADER_BUF_END ( SYSM_CARD_ROM_HEADER_BUF + SYSM_CARD_ROM_HEADER_SIZE )
#define SYSM_CARD_ROM_HEADER_BAK ( SYSM_CARD_ROM_HEADER_BUF_END )
#define SYSM_CARD_ROM_HEADER_BAK_END ( SYSM_CARD_ROM_HEADER_BAK + SYSM_CARD_ROM_HEADER_SIZE )
#define SYSM_APP_ROM_HEADER_BUF_END ( SYSM_APP_ROM_HEADER_BUF + SYSM_APP_ROM_HEADER_SIZE )
#define SYSM_CARD_ROM_HEADER_BAK ( SYSM_APP_ROM_HEADER_BUF_END )
#define SYSM_CARD_ROM_HEADER_BAK_END ( SYSM_CARD_ROM_HEADER_BAK + SYSM_APP_ROM_HEADER_SIZE )
#define SYSM_CARD_NTR_SECURE_BUF ( SYSM_CARD_ROM_HEADER_BAK_END )
#define SYSM_CARD_NTR_SECURE_BUF_END ( SYSM_CARD_NTR_SECURE_BUF + SECURE_AREA_SIZE )
#define SYSM_CARD_TWL_SECURE_BUF ( SYSM_CARD_NTR_SECURE_BUF_END )

View File

@ -200,8 +200,9 @@ typedef struct SDKBootCheckInfo{
// NANDファームがロードしてくれているマイコンフリーレジスタ値の取得
#define SYSMi_GetMCUFreeRegisterValue() ( *(vu8 *)HW_RESET_PARAMETER_BUF )
// カードROMヘッダワークの取得
#define SYSM_GetCardRomHeader() ( (ROM_Header_Short *)SYSM_CARD_ROM_HEADER_BUF )
// ROMヘッダワークの取得
#define SYSM_GetAppRomHeader() ( (ROM_Header_Short *)SYSM_APP_ROM_HEADER_BUF )
#define SYSM_GetCardRomHeader() SYSM_GetAppRomHeader()
#ifdef __cplusplus
}