diff --git a/build/gcdfirm/sdmc-launcher/ARM7/main.c b/build/gcdfirm/sdmc-launcher/ARM7/main.c index a1584f59..f5936b8c 100644 --- a/build/gcdfirm/sdmc-launcher/ARM7/main.c +++ b/build/gcdfirm/sdmc-launcher/ARM7/main.c @@ -33,7 +33,7 @@ PRINT_MEMORY_ADDR を定義すると、そのアドレスからSPrintfを行います(このファイルのみ) FINALROM版でもコードが残るので注意してください。 */ -#define PRINT_MEMORY_ADDR 0x02000600 +//#define PRINT_MEMORY_ADDR 0x02FFC800 #ifdef PROFILE_ENABLE diff --git a/build/gcdfirm/sdmc-launcher/ARM9/main.c b/build/gcdfirm/sdmc-launcher/ARM9/main.c index c229b167..b7ef81b7 100644 --- a/build/gcdfirm/sdmc-launcher/ARM9/main.c +++ b/build/gcdfirm/sdmc-launcher/ARM9/main.c @@ -16,10 +16,21 @@ *---------------------------------------------------------------------------*/ #include -#ifndef FIRM_USE_TWLSDK_KEYS -#define RSA_KEY_ADDR OSi_GetFromFirmAddr()->rsa_pubkey[4] // 鍵管理.xls参照 -#else #define RSA_KEY_ADDR rsa_key + +#ifndef FIRM_USE_TWLSDK_KEYS +static const u8 rsa_key[128] = +{ + 0xC7, 0x94, 0x50, 0x00, 0x3A, 0xE1, 0x0E, 0x6C, 0xA8, 0xD1, 0xC0, 0x2D, 0x77, 0xB7, 0x6D, 0xBC, + 0x31, 0xDB, 0x12, 0x08, 0x09, 0x0D, 0x2A, 0xE8, 0xC9, 0x1A, 0x2B, 0x6E, 0x6C, 0x85, 0x78, 0xD7, + 0x46, 0x50, 0x05, 0xB5, 0xCC, 0x3B, 0xEC, 0xBA, 0xF4, 0xDE, 0xC2, 0x13, 0x13, 0xBE, 0x67, 0xEE, + 0x85, 0x19, 0xEB, 0x62, 0xB3, 0x5C, 0x09, 0xA8, 0x54, 0x44, 0x26, 0x85, 0x25, 0xEA, 0xE5, 0x85, + 0xD1, 0xB5, 0xCE, 0xA0, 0xFF, 0x6B, 0x61, 0xCA, 0x94, 0xC1, 0x67, 0xBE, 0xC0, 0x7E, 0x3B, 0xFF, + 0x12, 0x9B, 0x79, 0xDB, 0xAC, 0xD3, 0x5A, 0x3F, 0x14, 0x37, 0x49, 0xA8, 0x7C, 0x2F, 0x07, 0xF4, + 0x8B, 0xA9, 0x8B, 0x8D, 0xB2, 0x60, 0xA5, 0xD5, 0x64, 0xEE, 0xCF, 0x3F, 0x32, 0xEE, 0x77, 0xAC, + 0x27, 0x75, 0x2B, 0x04, 0xD7, 0x26, 0xA8, 0x8A, 0x55, 0x2A, 0x76, 0xE5, 0x68, 0x80, 0x57, 0x85 +}; +#else static const u8 rsa_key[128] = { 0xAC, 0x93, 0xBB, @@ -52,7 +63,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 diff --git a/build/libraries/os/common/os_boot.c b/build/libraries/os/common/os_boot.c index c5dbc494..05d69755 100644 --- a/build/libraries/os/common/os_boot.c +++ b/build/libraries/os/common/os_boot.c @@ -53,17 +53,17 @@ void OS_BootWithRomHeaderFromFIRM( ROM_Header* rom_header ) mem_list[i++] = (u32)SDK_STATIC_START; mem_list[i++] = (u32)SDK_STATIC_BSS_END-(u32)SDK_STATIC_START; #ifdef SDK_ARM9 - /* ITCM全クリア */ - mem_list[i++] = (u32)HW_ITCM; - mem_list[i++] = (u32)HW_ITCM_SIZE; + /* ITCM全クリア (FromFrimを除く) */ + mem_list[i++] = HW_ITCM; + mem_list[i++] = HW_FIRM_FROM_FIRM_BUF - HW_ITCM; + mem_list[i++] = HW_FIRM_FROM_FIRM_BUF_END; + mem_list[i++] = HW_ITCM_END - HW_FIRM_FROM_FIRM_BUF_END; /* FS/FATFSバッファのクリア */ mem_list[i++] = (u32)HW_FIRM_FATFS_COMMAND_BUFFER; // 0x02ff7800 - 0x02ffbfff mem_list[i++] = (u32)HW_FIRM_FS_TEMP_BUFFER_END - (u32)HW_FIRM_FATFS_COMMAND_BUFFER; /* 一部鍵バッファのクリア (鍵管理.xls参照) */ mem_list[i++] = (u32)OSi_GetFromFirmAddr()->rsa_pubkey[0]; mem_list[i++] = ACS_PUBKEY_LEN; - mem_list[i++] = (u32)OSi_GetFromFirmAddr()->rsa_pubkey[4]; - mem_list[i++] = ACS_PUBKEY_LEN; #else // SDK_ARM7 /* FS_Loader用バッファのクリア */ mem_list[i++] = HW_FIRM_LOAD_BUFFER_BASE; @@ -86,6 +86,7 @@ void OS_BootWithRomHeaderFromFIRM( ROM_Header* rom_header ) // post clear mem_list[i++] = NULL; SDK_ASSERT(i <= sizeof(mem_list)/sizeof(mem_list[0])); +#if 0 #ifdef FIRM_USE_TWLSDK_KEYS // TwlSDK内の鍵を使っている時は量産用CPUではブートしない #ifdef SDK_ARM9 @@ -97,6 +98,7 @@ void OS_BootWithRomHeaderFromFIRM( ROM_Header* rom_header ) OS_Terminate(); } #endif // FIRM_USE_SDK_KEYS +#endif REBOOT_Execute(entry, wram_reg, mem_list, code_buf, stack_top, target, scfg, jtag); OS_Terminate(); } diff --git a/build/nandfirm/sdmc-launcher/ARM7/main.c b/build/nandfirm/sdmc-launcher/ARM7/main.c index e248beeb..ca8bae55 100644 --- a/build/nandfirm/sdmc-launcher/ARM7/main.c +++ b/build/nandfirm/sdmc-launcher/ARM7/main.c @@ -33,7 +33,7 @@ PRINT_MEMORY_ADDR を定義すると、そのアドレスからSPrintfを行います(このファイルのみ) FINALROM版でもコードが残るので注意してください。 */ -#define PRINT_MEMORY_ADDR 0x02000600 +//#define PRINT_MEMORY_ADDR 0x02FFC800 #ifdef PROFILE_ENABLE diff --git a/build/nandfirm/sdmc-launcher/ARM9/main.c b/build/nandfirm/sdmc-launcher/ARM9/main.c index e9f1fd50..fdca66e0 100644 --- a/build/nandfirm/sdmc-launcher/ARM9/main.c +++ b/build/nandfirm/sdmc-launcher/ARM9/main.c @@ -16,10 +16,21 @@ *---------------------------------------------------------------------------*/ #include -#ifndef FIRM_USE_TWLSDK_KEYS -#define RSA_KEY_ADDR OSi_GetFromFirmAddr()->rsa_pubkey[4] // 鍵管理.xls参照 -#else #define RSA_KEY_ADDR rsa_key + +#ifndef FIRM_USE_TWLSDK_KEYS +static const u8 rsa_key[128] = +{ + 0xC7, 0x94, 0x50, 0x00, 0x3A, 0xE1, 0x0E, 0x6C, 0xA8, 0xD1, 0xC0, 0x2D, 0x77, 0xB7, 0x6D, 0xBC, + 0x31, 0xDB, 0x12, 0x08, 0x09, 0x0D, 0x2A, 0xE8, 0xC9, 0x1A, 0x2B, 0x6E, 0x6C, 0x85, 0x78, 0xD7, + 0x46, 0x50, 0x05, 0xB5, 0xCC, 0x3B, 0xEC, 0xBA, 0xF4, 0xDE, 0xC2, 0x13, 0x13, 0xBE, 0x67, 0xEE, + 0x85, 0x19, 0xEB, 0x62, 0xB3, 0x5C, 0x09, 0xA8, 0x54, 0x44, 0x26, 0x85, 0x25, 0xEA, 0xE5, 0x85, + 0xD1, 0xB5, 0xCE, 0xA0, 0xFF, 0x6B, 0x61, 0xCA, 0x94, 0xC1, 0x67, 0xBE, 0xC0, 0x7E, 0x3B, 0xFF, + 0x12, 0x9B, 0x79, 0xDB, 0xAC, 0xD3, 0x5A, 0x3F, 0x14, 0x37, 0x49, 0xA8, 0x7C, 0x2F, 0x07, 0xF4, + 0x8B, 0xA9, 0x8B, 0x8D, 0xB2, 0x60, 0xA5, 0xD5, 0x64, 0xEE, 0xCF, 0x3F, 0x32, 0xEE, 0x77, 0xAC, + 0x27, 0x75, 0x2B, 0x04, 0xD7, 0x26, 0xA8, 0x8A, 0x55, 0x2A, 0x76, 0xE5, 0x68, 0x80, 0x57, 0x85 +}; +#else static const u8 rsa_key[128] = { 0xAC, 0x93, 0xBB, @@ -56,7 +67,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 diff --git a/docs/骰オ邂。逅.xls b/docs/骰オ邂。逅.xls index 22bec3e3..4b6620b0 100644 Binary files a/docs/骰オ邂。逅.xls and b/docs/骰オ邂。逅.xls differ