From 5f6747cf636c5d64b7fcd4ee3873459bb6d6ed32 Mon Sep 17 00:00:00 2001 From: yutaka Date: Thu, 6 Dec 2007 09:54:59 +0000 Subject: [PATCH] =?UTF-8?q?=E5=8B=95=E3=81=8B=E3=81=AA=E3=81=8F=E3=81=AA?= =?UTF-8?q?=E3=81=A3=E3=81=A6=E3=81=84=E3=81=9F=E3=81=AE=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=20BL=E8=BC=9D=E5=BA=A6=E3=82=9222=E3=81=AB=E8=A8=AD?= =?UTF-8?q?=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@331 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/nandfirm/sdmc-launcher/ARM7/main.c | 10 +++++++--- build/nandfirm/sdmc-launcher/ARM9/main.c | 17 ++++++++++++----- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/build/nandfirm/sdmc-launcher/ARM7/main.c b/build/nandfirm/sdmc-launcher/ARM7/main.c index e4fb35a8..682e57da 100644 --- a/build/nandfirm/sdmc-launcher/ARM7/main.c +++ b/build/nandfirm/sdmc-launcher/ARM7/main.c @@ -70,7 +70,8 @@ static void PreInit(void) /* リセットパラメータ(1バイト)を共有領域(4バイト)にコピー */ - *(u32*)HW_RESET_PARAMETER_BUF = (u32)MCUi_ReadRegister( MCU_REG_TEMP_ADDR ); +#define FIRM_AVAILABLE_BIT 0x80000000UL + *(u32*)HW_RESET_PARAMETER_BUF = (u32)MCUi_ReadRegister( MCU_REG_TEMP_ADDR ) | FIRM_AVAILABLE_BIT; } /*************************************************************** @@ -83,7 +84,8 @@ static void PreInit(void) static void EraseAll(void) { #ifdef SDK_FINALROM - // TODO + MI_CpuClearFast( (void*)HW_TWL_ROM_HEADER_BUF, HW_TWL_ROM_HEADER_BUF_SIZE ); + OS_BootFromFIRM(); #endif } @@ -231,10 +233,12 @@ void TwlSpMain( void ) OS_TPrintf("\n[ARM7] End\n"); } #endif - OS_SetDebugLED(++step); + OS_SetDebugLED(0); PRODUCTION_CHECK(); PM_BackLightOn( TRUE ); // last chance + PMi_SetParams( REG_PMIC_BL_BRT_A_ADDR, 22, PMIC_BL_BRT_A_MASK ); // brighter + PMi_SetParams( REG_PMIC_BL_BRT_B_ADDR, 22, PMIC_BL_BRT_B_MASK ); // brighter OS_BootFromFIRM(); diff --git a/build/nandfirm/sdmc-launcher/ARM9/main.c b/build/nandfirm/sdmc-launcher/ARM9/main.c index a2fab1ff..0138a814 100644 --- a/build/nandfirm/sdmc-launcher/ARM9/main.c +++ b/build/nandfirm/sdmc-launcher/ARM9/main.c @@ -51,6 +51,11 @@ u32 pf_cnt = 0; ***************************************************************/ static void PreInit(void) { + static const OSMountInfo firmSettings[] = + { + { 'A', OS_MOUNT_DEVICE_SD, OS_MOUNT_TGT_ROOT, 0, OS_MOUNT_RSC_MMEM, (OS_MOUNT_USR_R|OS_MOUNT_USR_W), 0, 0, "sdmc", "/" }, + { 0 } + }; /* メインメモリ関連 */ @@ -58,9 +63,10 @@ static void PreInit(void) MI_CpuClearFast((void *)HW_WRAM_EX_LOCK_BUF, (HW_WRAM_EX_LOCK_BUF_END - HW_WRAM_EX_LOCK_BUF)); MI_CpuClearFast((void *)HW_BIOS_EXCP_STACK_MAIN, (HW_REAL_TIME_CLOCK_BUF - HW_BIOS_EXCP_STACK_MAIN)); MI_CpuClearFast((void *)HW_PXI_SIGNAL_PARAM_ARM9, (HW_MMEMCHECKER_MAIN - HW_PXI_SIGNAL_PARAM_ARM9)); + MI_CpuClearFast((void*)HW_ROM_HEADER_BUF, (HW_ROM_HEADER_BUF_END-HW_ROM_HEADER_BUF)); - // FS_MOUNT領域クリア - MI_CpuClearFast((void*)HW_TWL_FS_MOUNT_INFO_BUF, (HW_TWL_ROM_HEADER_BUF-HW_TWL_FS_MOUNT_INFO_BUF)); + // FS_MOUNT領域の初期化 + MI_CpuCopy8(firmSettings, (char*)HW_TWL_FS_MOUNT_INFO_BUF, sizeof(firmSettings)); /* FromBrom関連 @@ -106,7 +112,7 @@ static BOOL CheckHeader(void) static ROM_Header_Short* const rhs = (ROM_Header_Short*)HW_TWL_ROM_HEADER_BUF; // TODO // イニシャルコード - OS_TPrintf("Initial Code : %08X\n", rhs->game_code); + OS_TPrintf("Initial Code : %08X\n", *(u32*)rhs->game_code); // エントリポイント OS_TPrintf("ARM9 Entry point : %08X\n", rhs->main_entry_address); OS_TPrintf("ARM7 Entry point : %08X\n", rhs->sub_entry_address); @@ -136,7 +142,8 @@ static BOOL CheckHeader(void) static void EraseAll(void) { #ifdef SDK_FINALROM - // TODO + MI_CpuClearFast( (void*)HW_TWL_ROM_HEADER_BUF, HW_TWL_ROM_HEADER_BUF_SIZE ); + OS_BootFromFIRM(); #endif } @@ -150,8 +157,8 @@ void TwlMain( void ) #endif OS_InitFIRM(); -#ifndef SDK_FINALROM OS_EnableIrq(); +#ifndef SDK_FINALROM OS_InitTick(); // 1: after PXI profile[pf_cnt++] = (u32)OS_TicksToMicroSeconds(OS_GetTick());