再配置情報関連の修正版。ある程度動作確認がとれたのでコミット。

・ROMロード位置から再配置情報の自動設定を実装
・post clearのリスト生成は未実装(考案中)

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@305 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yoshida_teruhisa 2007-12-04 02:35:45 +00:00
parent 17573105db
commit 83ece203e0
2 changed files with 4 additions and 4 deletions

View File

@ -73,7 +73,7 @@ BOOL BOOT_WaitStart( void )
int list_count = PRE_CLEAR_NUM_MAX + 1; int list_count = PRE_CLEAR_NUM_MAX + 1;
int l; int l;
// メモリリストの設定 // メモリリストの設定
static u32 mem_list[PRE_CLEAR_NUM_MAX + 1 + COPY_NUM_MAX + 2 + POST_CLEAR_NUM_MAX] = static u32 mem_list[PRE_CLEAR_NUM_MAX + 1 + COPY_NUM_MAX + 2 + POST_CLEAR_NUM_MAX + 1] =
{ {
// pre clear // pre clear
SYSM_OWN_ARM7_MMEM_ADDR, SYSM_OWN_ARM7_MMEM_ADDR_END - SYSM_OWN_ARM7_MMEM_ADDR, SYSM_OWN_ARM7_MMEM_ADDR, SYSM_OWN_ARM7_MMEM_ADDR_END - SYSM_OWN_ARM7_MMEM_ADDR,

View File

@ -560,7 +560,7 @@ static BOOL SYSMi_CheckLoadRegionAndSetRelocateInfoEx
} }
// ここまで来ていれば再配置可能 // ここまで来ていれば再配置可能
if( default_region.start <= *dest && default_region.end <= *dest + length ) if( default_region.start <= *dest && *dest < default_region.end )
{ {
// デフォルト配置領域の後部に、再配置先の先頭部が被っているので、後方コピーフラグON // デフォルト配置領域の後部に、再配置先の先頭部が被っているので、後方コピーフラグON
info->rev = TRUE; info->rev = TRUE;
@ -588,7 +588,7 @@ static BOOL SYSMi_CheckLoadRegionAndSetRelocateInfo( RomSegmentName seg, u32 *de
static void SYSMi_LoadTitleThreadFunc( TitleProperty *pBootTitle ) static void SYSMi_LoadTitleThreadFunc( TitleProperty *pBootTitle )
{ enum { enum
{ {
region_header, region_header = 0,
region_arm9_ntr, region_arm9_ntr,
region_arm7_ntr, region_arm7_ntr,
region_arm9_twl, region_arm9_twl,
@ -683,7 +683,7 @@ OS_TPrintf("RebootSystem failed: logo CRC error\n");
// 領域読み込み先のチェック及び再配置情報データの作成 // 領域読み込み先のチェック及び再配置情報データの作成
for( i=0; i<RELOCATE_INFO_NUM; i++ ) for( i=0; i<RELOCATE_INFO_NUM; i++ )
{ {
if ( !SYSMi_CheckLoadRegionAndSetRelocateInfo( (RomSegmentName)i, &(destaddr[i+1]), length[i+1], &(SYSMi_GetWork()->romRelocateInfo[i]) ) ) if ( !SYSMi_CheckLoadRegionAndSetRelocateInfo( (RomSegmentName)i, &(destaddr[i+region_arm9_ntr]), length[i+region_arm9_ntr], &(SYSMi_GetWork()->romRelocateInfo[i]) ) )
{ {
OS_TPrintf("RebootSystem failed: ROM Load Region error\n"); OS_TPrintf("RebootSystem failed: ROM Load Region error\n");
FS_CloseFile(file); FS_CloseFile(file);