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; *(u32*)dest = 0;
} }
*(u8*)HW_TWL_RED_LAUNCHER_VER = 1; *(u8*)HW_TWL_RED_LAUNCHER_VER = 1;
*(char*)HW_FIRM_BOOT_SRL_PATH_BUF = 0; *(char*)HW_FIRM_BOOT_SRL_PATH_BUF = 0; // no rom archive
// MI_CpuCopy8("nand:/nandfirm/menu_launcher.srl", (char*)HW_FIRM_BOOT_SRL_PATH_BUF, 0x40);
} }
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
@ -129,8 +128,7 @@ void FS_InitMountInfo( BOOL nand, BOOL sdmc )
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
int FS_OpenSrl( void ) int FS_OpenSrl( void )
{ {
#define BOOT_SRL_PATH_BUF_SIZE (HW_TWL_ROM_HEADER_BUF - HW_TWL_FS_BOOT_SRL_PATH_BUF) u16 fatpath[HW_FIRM_FS_BOOT_SRL_PATH_BUF_SIZE];
u16 fatpath[BOOT_SRL_PATH_BUF_SIZE]; ConvertPath(fatpath, (void*)HW_TWL_FS_BOOT_SRL_PATH_BUF, HW_FIRM_FS_BOOT_SRL_PATH_BUF_SIZE);
ConvertPath(fatpath, (void*)HW_TWL_FS_BOOT_SRL_PATH_BUF, BOOT_SRL_PATH_BUF_SIZE);
return FATFSi_rtfs_po_open((u8*)fatpath, 0, 0); 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; mem_list[i++] = NULL;
// copy forward // copy forward
#ifdef SDK_ARM7 #ifdef SDK_ARM7
if ( *(char*)HW_TWL_FS_MOUNT_INFO_BUF ) // MountInfo (移動する?)
{ mem_list[i++] = 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++] = (u32)rom_header->s.sub_mount_info_ram_address; mem_list[i++] = HW_FIRM_FS_MOUNT_INFO_BUF_SIZE;
mem_list[i++] = HW_TWL_ROM_HEADER_BUF - HW_TWL_FS_MOUNT_INFO_BUF; // 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 #endif
mem_list[i++] = NULL; mem_list[i++] = NULL;
// copy backward // copy backward
mem_list[i++] = NULL; mem_list[i++] = NULL;
// post clear // post clear
#ifdef SDK_ARM7 #ifdef SDK_ARM7
if ( *(char*)HW_TWL_FS_MOUNT_INFO_BUF ) // MountInfo (移動する?)
{ mem_list[i++] = HW_TWL_FS_MOUNT_INFO_BUF;
mem_list[i++] = HW_TWL_FS_MOUNT_INFO_BUF; mem_list[i++] = HW_FIRM_FS_MOUNT_INFO_BUF_SIZE;
mem_list[i++] = HW_TWL_ROM_HEADER_BUF - HW_TWL_FS_MOUNT_INFO_BUF; // srlファイル名
} mem_list[i++] = HW_TWL_FS_BOOT_SRL_PATH_BUF;
mem_list[i++] = HW_FIRM_FS_BOOT_SRL_PATH_BUF_SIZE;
#endif #endif
mem_list[i++] = NULL; mem_list[i++] = NULL;
SDK_ASSERT(i <= sizeof(mem_list)/sizeof(mem_list[0])); 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) #define HW_FIRM_LOAD_BUFFER_END (HW_FIRM_LOAD_BUFFER_BASE + HW_FIRM_LOAD_BUFFER_SIZE)
//------------------------------------- FS/FATFS //------------------------------------- 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 (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_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 #define HW_FIRM_FATFS_ARCHNAME_LIST_END HW_FIRM_FATFS_COMMAND_BUFFER // 0x02ff6000