diff --git a/build/libraries/fs/ARM7/src/fs_firm.c b/build/libraries/fs/ARM7/src/fs_firm.c index f982d468..2ba0b882 100644 --- a/build/libraries/fs/ARM7/src/fs_firm.c +++ b/build/libraries/fs/ARM7/src/fs_firm.c @@ -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); } diff --git a/build/libraries/os/common/os_boot.c b/build/libraries/os/common/os_boot.c index 64ed03cf..e65d66c8 100644 --- a/build/libraries/os/common/os_boot.c +++ b/build/libraries/os/common/os_boot.c @@ -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])); diff --git a/include/firm/hw/common/mmap_firm.h b/include/firm/hw/common/mmap_firm.h index 0e31e55c..51793b6b 100644 --- a/include/firm/hw/common/mmap_firm.h +++ b/include/firm/hw/common/mmap_firm.h @@ -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