From 72fe24747445dbcd52c91d850e8512f665f8ff69 Mon Sep 17 00:00:00 2001 From: yutaka Date: Wed, 23 Jan 2008 07:04:42 +0000 Subject: [PATCH] =?UTF-8?q?TwlSDK=E3=81=AEdefine=E3=82=92=E5=88=A9?= =?UTF-8?q?=E7=94=A8=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=20PROFILE=E3=81=A7bootrom=E3=81=AE=E5=87=A6=E7=90=86?= =?UTF-8?q?=E6=99=82=E9=96=93=E3=82=82=E5=8F=96=E5=BE=97=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3=20=E3=83=A1?= =?UTF-8?q?=E3=82=A4=E3=83=B3=E3=83=A1=E3=83=A2=E3=83=AA=E3=81=ABPrintf?= =?UTF-8?q?=E3=81=99=E3=82=8B=E3=82=A2=E3=83=89=E3=83=AC=E3=82=B9=E3=81=AE?= =?UTF-8?q?=E5=A4=89=E6=9B=B4?= 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@504 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/nandfirm/menu-launcher/ARM7/main.c | 32 +++++++++++++---------- build/nandfirm/menu-launcher/ARM9/main.c | 26 ++++++++++-------- build/nandfirm/menu-launcher2/ARM7/main.c | 32 +++++++++++++---------- build/nandfirm/menu-launcher2/ARM9/main.c | 26 ++++++++++-------- build/nandfirm/sdmc-launcher/ARM7/main.c | 3 +-- 5 files changed, 67 insertions(+), 52 deletions(-) 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); /* バッテリー残量チェック */