diff --git a/build/nandfirm/menu-launcher/ARM7/main.c b/build/nandfirm/menu-launcher/ARM7/main.c index 01717eee..d706c512 100644 --- a/build/nandfirm/menu-launcher/ARM7/main.c +++ b/build/nandfirm/menu-launcher/ARM7/main.c @@ -33,7 +33,7 @@ PRINT_MEMORY_ADDR を定義すると、そのアドレスからSPrintfを行います(このファイルのみ) FINALROM版でもコードが残るので注意してください。 */ -#define PRINT_MEMORY_ADDR 0x02000600 +#define PRINT_MEMORY_ADDR 0x02FFC800 /* 定義するとアイドルスレッドを作成します。 @@ -110,8 +110,7 @@ static void PreInit(void) /* リセットパラメータ(1バイト)を共有領域(4バイト)にコピー */ -#define FIRM_AVAILABLE_BIT 0x80000000UL - *(u32*)HW_RESET_PARAMETER_BUF = (u32)MCUi_ReadRegister( MCU_REG_TEMP_ADDR ) | FIRM_AVAILABLE_BIT; + *(u32*)HW_RESET_PARAMETER_BUF = (u32)(MCU_GetFreeRegister( OS_MCU_RESET_VALUE_OFS ) | OS_MCU_RESET_VALUE_BUF_ENABLE_MASK); /* バッテリー残量チェック */ @@ -163,12 +162,17 @@ void TwlSpMain( void ) { int fd; // menu file descriptor +#ifdef PROFILE_ENABLE + // 0: bootrom + profile[pf_cnt++] = OS_TicksToMicroSecondsBROM32(OS_GetTick()); +#endif + InitDebugLED(); SetDebugLED(++step); // 0x81 PreInit(); - // 0: before PXI + // 1: before PXI PUSH_PROFILE(); SetDebugLED(++step); // 0x82 @@ -176,13 +180,13 @@ void TwlSpMain( void ) OS_EnableIrq(); OS_EnableInterrupts(); - // 1: after PXI + // 2: after PXI PUSH_PROFILE(); SetDebugLED(++step); // 0x83 PostInit(); - // 2: after PM_InitFIRM + // 3: after PM_InitFIRM PUSH_PROFILE(); SetDebugLED(++step); // 0x84 @@ -195,7 +199,7 @@ void TwlSpMain( void ) goto end; } - // 3: after FS_Init + // 4: after FS_Init PUSH_PROFILE(); SetDebugLED(++step); // 0x85 @@ -207,7 +211,7 @@ void TwlSpMain( void ) goto end; } - // 4: after PXI + // 5: after PXI PUSH_PROFILE(); SetDebugLED(++step); // 0x86 @@ -219,7 +223,7 @@ void TwlSpMain( void ) goto end; } - // 5: after FS_OpenSrl + // 6: after FS_OpenSrl PUSH_PROFILE(); SetDebugLED(++step); // 0x87 @@ -231,7 +235,7 @@ void TwlSpMain( void ) goto end; } - // 6: after FS_LoadHeader + // 7: after FS_LoadHeader PUSH_PROFILE(); SetDebugLED(++step); // 0x88 @@ -243,7 +247,7 @@ void TwlSpMain( void ) goto end; } - // 7: after PXI + // 8: after PXI PUSH_PROFILE(); SetDebugLED(++step); // 0x89 @@ -252,7 +256,7 @@ void TwlSpMain( void ) AESi_InitKeysFIRM(); AESi_RecvSeed( rh->s.developer_encrypt ); - // 8: after AESi_RecvSeed + // 9: after AESi_RecvSeed PUSH_PROFILE(); SetDebugLED(++step); // 0x8a @@ -264,7 +268,7 @@ void TwlSpMain( void ) goto end; } - // 9: after FS_LoadStatic + // 10: after FS_LoadStatic PUSH_PROFILE(); SetDebugLED(++step); // 0x8b @@ -276,7 +280,7 @@ void TwlSpMain( void ) goto end; } - // 10: after PXI + // 11: after PXI PUSH_PROFILE(); #ifdef PROFILE_ENABLE { diff --git a/build/nandfirm/menu-launcher/ARM9/main.c b/build/nandfirm/menu-launcher/ARM9/main.c index 07711f1d..bde526d0 100644 --- a/build/nandfirm/menu-launcher/ARM9/main.c +++ b/build/nandfirm/menu-launcher/ARM9/main.c @@ -52,7 +52,7 @@ static SVCSignHeapContext acPool; PRINT_MEMORY_ADDR を定義すると、そのアドレスからSPrintfを行います(このファイルのみ) FINALROM版でもコードが残るので注意してください。 */ -#define PRINT_MEMORY_ADDR 0x02000200 +#define PRINT_MEMORY_ADDR 0x02FFC000 //#ifdef SDK_FINALROM // FINALROMで無効化 //#undef PROFILE_ENABLE @@ -204,9 +204,13 @@ static void EraseAll(void) void TwlMain( void ) { +#ifdef PROFILE_ENABLE + // 0: bootrom + profile[pf_cnt++] = OS_TicksToMicroSecondsBROM32(OS_GetTick()); +#endif PreInit(); - // 0: before PXI + // 1: before PXI PUSH_PROFILE(); OS_InitFIRM(); @@ -216,12 +220,12 @@ void TwlMain( void ) #ifdef PROFILE_ENABLE OS_InitTick(); #endif - // 1: after PXI + // 2: after PXI PUSH_PROFILE(); PostInit(); - // 2: after PostInit + // 3: after PostInit PUSH_PROFILE(); if ( !FS_ResolveSrl( MENU_TITLE_ID ) ) @@ -230,12 +234,12 @@ void TwlMain( void ) goto end; } - // 3: after FS_ResolveSrl + // 4: after FS_ResolveSrl PUSH_PROFILE(); PXI_NotifyID( FIRM_PXI_ID_SET_PATH ); - // 4: after PXI + // 5: after PXI PUSH_PROFILE(); if ( !FS_LoadHeader(&acPool, RSA_KEY_ADDR ) || !CheckHeader() ) @@ -244,18 +248,18 @@ void TwlMain( void ) goto end; } - // 5: after FS_LoadHeader + // 6: after FS_LoadHeader PUSH_PROFILE(); PXI_NotifyID( FIRM_PXI_ID_DONE_HEADER ); - // 6: after PXI + // 7: after PXI PUSH_PROFILE(); AESi_SendSeed( FS_GetAesKeySeed() ); FS_DeleteAesKeySeed(); - // 7: after AESi_SendSeed + // 8: after AESi_SendSeed PUSH_PROFILE(); if ( !FS_LoadStatic() ) @@ -264,12 +268,12 @@ void TwlMain( void ) goto end; } - // 8: after FS_LoadStatic + // 9: after FS_LoadStatic PUSH_PROFILE(); PXI_NotifyID( FIRM_PXI_ID_DONE_STATIC ); - // 9: after PXI + // 10: after PXI PUSH_PROFILE(); #ifdef PROFILE_ENABLE { diff --git a/build/nandfirm/menu-launcher2/ARM7/main.c b/build/nandfirm/menu-launcher2/ARM7/main.c index f81f8a17..2be74ced 100644 --- a/build/nandfirm/menu-launcher2/ARM7/main.c +++ b/build/nandfirm/menu-launcher2/ARM7/main.c @@ -34,7 +34,7 @@ PRINT_MEMORY_ADDR を定義すると、そのアドレスからSPrintfを行います(このファイルのみ) FINALROM版でもコードが残るので注意してください。 */ -#define PRINT_MEMORY_ADDR 0x02000600 +#define PRINT_MEMORY_ADDR 0x02FFC800 /* 定義するとアイドルスレッドを作成します。 @@ -110,8 +110,7 @@ static void PreInit(void) /* リセットパラメータ(1バイト)を共有領域(4バイト)にコピー */ -#define FIRM_AVAILABLE_BIT 0x80000000UL - *(u32*)HW_RESET_PARAMETER_BUF = (u32)MCUi_ReadRegister( MCU_REG_TEMP_ADDR ) | FIRM_AVAILABLE_BIT; + *(u32*)HW_RESET_PARAMETER_BUF = (u32)(MCU_GetFreeRegister( OS_MCU_RESET_VALUE_OFS ) | OS_MCU_RESET_VALUE_BUF_ENABLE_MASK); /* バッテリー残量チェック */ @@ -161,12 +160,17 @@ static void EraseAll(void) void TwlSpMain( void ) { +#ifdef PROFILE_ENABLE + // 0: bootrom + profile[pf_cnt++] = OS_TicksToMicroSecondsBROM32(OS_GetTick()); +#endif + InitDebugLED(); SetDebugLED(++step); // 0x81 PreInit(); - // 0: before PXI + // 1: before PXI PUSH_PROFILE(); SetDebugLED(++step); // 0x82 @@ -174,13 +178,13 @@ void TwlSpMain( void ) OS_EnableIrq(); OS_EnableInterrupts(); - // 1: after PXI + // 2: after PXI PUSH_PROFILE(); SetDebugLED(++step); // 0x83 PostInit(); - // 2: after PM_InitFIRM + // 3: after PM_InitFIRM PUSH_PROFILE(); SetDebugLED(++step); // 0x84 @@ -193,25 +197,25 @@ void TwlSpMain( void ) goto end; } - // 3: after FS_Init + // 4: after FS_Init PUSH_PROFILE(); SetDebugLED(++step); // 0x85 PM_BackLightOn( FALSE ); - // 4: + // 5: PUSH_PROFILE(); SetDebugLED(++step); // 0x86 //PM_BackLightOn( FALSE ); - // 5: + // 6: PUSH_PROFILE(); SetDebugLED(++step); // 0x87 //PM_BackLightOn( FALSE ); - // 6: + // 7: PUSH_PROFILE(); SetDebugLED(++step); // 0x88 @@ -223,7 +227,7 @@ void TwlSpMain( void ) goto end; } - // 7: after PXI + // 8: after PXI PUSH_PROFILE(); SetDebugLED(++step); // 0x89 @@ -232,13 +236,13 @@ void TwlSpMain( void ) AESi_InitKeysFIRM(); AESi_RecvSeed( rh->s.developer_encrypt ); - // 8: after AESi_RecvSeed + // 9: after AESi_RecvSeed PUSH_PROFILE(); SetDebugLED(++step); // 0x8a PM_BackLightOn( FALSE ); - // 9: + // 10: PUSH_PROFILE(); SetDebugLED(++step); // 0x8b @@ -250,7 +254,7 @@ void TwlSpMain( void ) goto end; } - // 10: after PXI + // 11: after PXI PUSH_PROFILE(); #ifdef PROFILE_ENABLE { diff --git a/build/nandfirm/menu-launcher2/ARM9/main.c b/build/nandfirm/menu-launcher2/ARM9/main.c index a6495a2d..ac776ecc 100644 --- a/build/nandfirm/menu-launcher2/ARM9/main.c +++ b/build/nandfirm/menu-launcher2/ARM9/main.c @@ -53,7 +53,7 @@ static SVCSignHeapContext acPool; PRINT_MEMORY_ADDR を定義すると、そのアドレスからSPrintfを行います(このファイルのみ) FINALROM版でもコードが残るので注意してください。 */ -#define PRINT_MEMORY_ADDR 0x02000200 +#define PRINT_MEMORY_ADDR 0x02FFC000 //#ifdef SDK_FINALROM // FINALROMで無効化 //#undef PROFILE_ENABLE @@ -207,9 +207,13 @@ void TwlMain( void ) { FSFile file; +#ifdef PROFILE_ENABLE + // 0: bootrom + profile[pf_cnt++] = OS_TicksToMicroSecondsBROM32(OS_GetTick()); +#endif PreInit(); - // 0: before PXI + // 1: before PXI PUSH_PROFILE(); OS_InitFIRM(); @@ -219,12 +223,12 @@ void TwlMain( void ) #ifdef PROFILE_ENABLE OS_InitTick(); #endif - // 1: after PXI + // 2: after PXI PUSH_PROFILE(); PostInit(); - // 2: after PostInit + // 3: after PostInit PUSH_PROFILE(); if ( !FS_ResolveSrl( MENU_TITLE_ID ) ) @@ -233,7 +237,7 @@ void TwlMain( void ) goto end; } - // 3: after FS_ResolveSrl + // 4: after FS_ResolveSrl PUSH_PROFILE(); if ( !FS_OpenSrl( &file ) ) @@ -242,7 +246,7 @@ void TwlMain( void ) goto end; } - // 4: after FS_OpenSrl + // 5: after FS_OpenSrl PUSH_PROFILE(); if ( !FS_LoadSrlHeader( &file, &acPool, RSA_KEY_ADDR ) || !CheckHeader() ) @@ -251,17 +255,17 @@ void TwlMain( void ) goto end; } - // 5: after FS_LoadSrlHeader + // 6: after FS_LoadSrlHeader PUSH_PROFILE(); PXI_NotifyID( FIRM_PXI_ID_DONE_HEADER ); - // 6: after PXI + // 7: after PXI PUSH_PROFILE(); AESi_SendSeed( FS_GetAesKeySeed() ); - // 7: after AESi_SendSeed + // 8: after AESi_SendSeed PUSH_PROFILE(); if ( !FS_LoadSrlStatic( &file ) ) @@ -270,12 +274,12 @@ void TwlMain( void ) goto end; } - // 8: after FS_LoadSrlStatic + // 9: after FS_LoadSrlStatic PUSH_PROFILE(); PXI_NotifyID( FIRM_PXI_ID_DONE_STATIC ); - // 9: after PXI + // 10: after PXI PUSH_PROFILE(); #ifdef PROFILE_ENABLE { diff --git a/build/nandfirm/sdmc-launcher/ARM7/main.c b/build/nandfirm/sdmc-launcher/ARM7/main.c index d1212cf5..43406e2d 100644 --- a/build/nandfirm/sdmc-launcher/ARM7/main.c +++ b/build/nandfirm/sdmc-launcher/ARM7/main.c @@ -110,8 +110,7 @@ static void PreInit(void) /* リセットパラメータ(1バイト)を共有領域(4バイト)にコピー */ -#define FIRM_AVAILABLE_BIT 0x80000000UL - *(u32*)HW_RESET_PARAMETER_BUF = (u32)MCUi_ReadRegister( MCU_REG_TEMP_ADDR ) | FIRM_AVAILABLE_BIT; + *(u32*)HW_RESET_PARAMETER_BUF = (u32)(MCU_GetFreeRegister( OS_MCU_RESET_VALUE_OFS ) | OS_MCU_RESET_VALUE_BUF_ENABLE_MASK); /* バッテリー残量チェック */