MountInfoとSrlPathにちゃんと対応したつもり

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@932 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yutaka 2008-03-24 12:21:19 +00:00
parent bbb6bc01a7
commit c8d8e4f517
3 changed files with 20 additions and 16 deletions

View File

@ -114,8 +114,7 @@ void FS_InitMountInfo( BOOL nand, BOOL sdmc )
*(u32*)dest = 0;
}
*(u8*)HW_TWL_RED_LAUNCHER_VER = 1;
*(char*)HW_FIRM_BOOT_SRL_PATH_BUF = 0;
// MI_CpuCopy8("nand:/nandfirm/menu_launcher.srl", (char*)HW_FIRM_BOOT_SRL_PATH_BUF, 0x40);
*(char*)HW_FIRM_BOOT_SRL_PATH_BUF = 0; // no rom archive
}
/*---------------------------------------------------------------------------*
@ -129,8 +128,7 @@ void FS_InitMountInfo( BOOL nand, BOOL sdmc )
*---------------------------------------------------------------------------*/
int FS_OpenSrl( void )
{
#define BOOT_SRL_PATH_BUF_SIZE (HW_TWL_ROM_HEADER_BUF - HW_TWL_FS_BOOT_SRL_PATH_BUF)
u16 fatpath[BOOT_SRL_PATH_BUF_SIZE];
ConvertPath(fatpath, (void*)HW_TWL_FS_BOOT_SRL_PATH_BUF, BOOT_SRL_PATH_BUF_SIZE);
u16 fatpath[HW_FIRM_FS_BOOT_SRL_PATH_BUF_SIZE];
ConvertPath(fatpath, (void*)HW_TWL_FS_BOOT_SRL_PATH_BUF, HW_FIRM_FS_BOOT_SRL_PATH_BUF_SIZE);
return FATFSi_rtfs_po_open((u8*)fatpath, 0, 0);
}

View File

@ -82,23 +82,26 @@ void OS_BootWithRomHeaderFromFIRM( ROM_Header* rom_header )
mem_list[i++] = NULL;
// copy forward
#ifdef SDK_ARM7
if ( *(char*)HW_TWL_FS_MOUNT_INFO_BUF )
{
mem_list[i++] = HW_TWL_FS_MOUNT_INFO_BUF;
mem_list[i++] = (u32)rom_header->s.sub_mount_info_ram_address;
mem_list[i++] = HW_TWL_ROM_HEADER_BUF - HW_TWL_FS_MOUNT_INFO_BUF;
}
// MountInfo (移動する?)
mem_list[i++] = HW_TWL_FS_MOUNT_INFO_BUF;
mem_list[i++] = (u32)rom_header->s.sub_mount_info_ram_address;
mem_list[i++] = HW_FIRM_FS_MOUNT_INFO_BUF_SIZE;
// srlファイル名
mem_list[i++] = HW_TWL_FS_BOOT_SRL_PATH_BUF;
mem_list[i++] = (u32)rom_header->s.sub_mount_info_ram_address + HW_FIRM_FS_MOUNT_INFO_BUF_SIZE;
mem_list[i++] = HW_FIRM_FS_BOOT_SRL_PATH_BUF_SIZE;
#endif
mem_list[i++] = NULL;
// copy backward
mem_list[i++] = NULL;
// post clear
#ifdef SDK_ARM7
if ( *(char*)HW_TWL_FS_MOUNT_INFO_BUF )
{
mem_list[i++] = HW_TWL_FS_MOUNT_INFO_BUF;
mem_list[i++] = HW_TWL_ROM_HEADER_BUF - HW_TWL_FS_MOUNT_INFO_BUF;
}
// MountInfo (移動する?)
mem_list[i++] = HW_TWL_FS_MOUNT_INFO_BUF;
mem_list[i++] = HW_FIRM_FS_MOUNT_INFO_BUF_SIZE;
// srlファイル名
mem_list[i++] = HW_TWL_FS_BOOT_SRL_PATH_BUF;
mem_list[i++] = HW_FIRM_FS_BOOT_SRL_PATH_BUF_SIZE;
#endif
mem_list[i++] = NULL;
SDK_ASSERT(i <= sizeof(mem_list)/sizeof(mem_list[0]));

View File

@ -32,6 +32,9 @@ extern "C" {
#define HW_FIRM_LOAD_BUFFER_END (HW_FIRM_LOAD_BUFFER_BASE + HW_FIRM_LOAD_BUFFER_SIZE)
//------------------------------------- FS/FATFS
#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 // 0x02ff6000