mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
NandInitializer が無線ファームを消去してしまう不具合を修正。RomVersion を 0->1 へ
ファーム書き込み時のキャッシュ操作をより安全な形に改善。 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1103 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
466f7c8dd1
commit
46043f3a55
@ -282,7 +282,13 @@ static BOOL NAMUTi_DeleteNonprotectedTitleEntity(const char* path)
|
||||
// ディレクトリの場合
|
||||
if (entryInfo.attributes & FS_ATTRIBUTE_IS_DIRECTORY)
|
||||
{
|
||||
s8 titlePropety = (s8)(entryInfo.longname[TITLE_ID_HI_SIZE-1] - '0');
|
||||
u8 titlePropety = (u8)(entryInfo.longname[TITLE_ID_HI_SIZE-1] - '0');
|
||||
|
||||
// 文字コードで0-9とa-fは連続していないという罠
|
||||
if (titlePropety >= ('a'-'0'))
|
||||
{
|
||||
titlePropety -= 0x27;
|
||||
}
|
||||
|
||||
// プロテクト対象でない場合ディレクトリごと消去する
|
||||
if (!(titlePropety & PROTECT_TITLE_PROPERTY))
|
||||
|
||||
@ -68,7 +68,7 @@ Property
|
||||
#
|
||||
# REMASTER VERSION: Mastering version
|
||||
#
|
||||
#RomVersion 0
|
||||
RomVersion 1
|
||||
|
||||
#
|
||||
# ROM SPEED TYPE: [MROM/1TROM/UNDEFINED]
|
||||
|
||||
@ -394,8 +394,6 @@ static BOOL WriteNandfirm(char* file_name)
|
||||
kamiFontPrintfConsoleEx(1, "Fail kamiNvramRead()!\n");
|
||||
}
|
||||
|
||||
// 読み込みはARM7が直接メモリに書き出すため
|
||||
DC_InvalidateRange(pTempBuf, sizeof(NORHeaderDS));
|
||||
// 書き込み後のCRCを計算
|
||||
crc_r1 = SVC_GetCRC16( 0xffff, pTempBuf, sizeof(NORHeaderDS) );
|
||||
|
||||
@ -423,14 +421,16 @@ static BOOL WriteNandfirm(char* file_name)
|
||||
|
||||
// CRCを計算するので念のためにクリアしてからリードする
|
||||
MI_CpuFill8( sNvramPageSizeBuffer, 0xee, NVRAM_PAGE_SIZE );
|
||||
|
||||
// 読み込みはARM7が直接メモリに書き出すため
|
||||
DC_InvalidateRange(sNvramPageSizeBuffer, NVRAM_PAGE_SIZE);
|
||||
|
||||
if (kamiNvramRead(NVRAM_NORFIRM_RESERVED_ADDRESS, sNvramPageSizeBuffer, NVRAM_PAGE_SIZE) == KAMI_RESULT_SEND_ERROR)
|
||||
{
|
||||
kamiFontPrintfConsoleEx(1, "Fail kamiNvramRead()\n");
|
||||
result = FALSE;
|
||||
}
|
||||
|
||||
// 読み込みはARM7が直接メモリに書き出すため
|
||||
DC_InvalidateRange(sNvramPageSizeBuffer, NVRAM_PAGE_SIZE);
|
||||
// 書き込み後のCRCを計算
|
||||
crc_norfirm_reserved_area_r = SVC_GetCRC16( 0xffff, sNvramPageSizeBuffer, NVRAM_PAGE_SIZE );
|
||||
|
||||
@ -442,13 +442,13 @@ static BOOL WriteNandfirm(char* file_name)
|
||||
}
|
||||
|
||||
#ifdef CLEAR_NON_ASIGNED_AREA_AND_RESERVED_AREA_ALL
|
||||
DC_InvalidateRange( sNvramPageSizeBuffer, NVRAM_PAGE_SIZE );
|
||||
// 未割り当て領域+予約領域を0クリアします(開発用)
|
||||
if (kamiNvramRead(NVRAM_CONFIG_DATA_OFFSET_ADDRESS, &sNvramPageSizeBuffer, NVRAM_PAGE_SIZE) == KAMI_RESULT_SEND_ERROR)
|
||||
{
|
||||
kamiFontPrintfConsoleEx(1, "Fail kamiNvramRead()\n");
|
||||
result = FALSE;
|
||||
}
|
||||
DC_InvalidateRange( sNvramPageSizeBuffer, NVRAM_PAGE_SIZE );
|
||||
sReservedAreaEndAddress = (u32)(*(u16 *)sNvramPageSizeBuffer << NVRAM_CONFIG_DATA_OFFSET_SHIFT) - 0xA00;// TWL WiFi設定 + NTR WiFi設定 を差し引く
|
||||
//OS_Printf("end = %x\n", sReservedAreaEndAddress);
|
||||
|
||||
@ -476,12 +476,12 @@ static BOOL WriteNandfirm(char* file_name)
|
||||
result = FALSE;
|
||||
}
|
||||
|
||||
DC_InvalidateRange( sNvramPageSizeBuffer, NVRAM_PAGE_SIZE );
|
||||
if (kamiNvramRead(NVRAM_CONFIG_DATA_OFFSET_ADDRESS, &sNvramPageSizeBuffer, NVRAM_PAGE_SIZE) == KAMI_RESULT_SEND_ERROR)
|
||||
{
|
||||
kamiFontPrintfConsoleEx(1, "Fail kamiNvramRead()\n");
|
||||
result = FALSE;
|
||||
}
|
||||
DC_InvalidateRange( sNvramPageSizeBuffer, NVRAM_PAGE_SIZE );
|
||||
sReservedAreaEndAddress = (u32)(*(u16 *)sNvramPageSizeBuffer << NVRAM_CONFIG_DATA_OFFSET_SHIFT) - 0xA00;// TWL WiFi設定 + NTR WiFi設定 を差し引く
|
||||
|
||||
MI_CpuFill8( sNvramPageSizeBuffer, 0x00, NVRAM_PAGE_SIZE );
|
||||
|
||||
@ -355,14 +355,15 @@ static BOOL WriteNorfirm(char* file_name)
|
||||
result = FALSE;
|
||||
}
|
||||
|
||||
// 読み込みはARM7が直接メモリに書き出す
|
||||
DC_InvalidateRange(pTempBuf, sizeof(NORHeaderDS));
|
||||
|
||||
// CRCチェックのためNvramからリード
|
||||
if (kamiNvramRead(0, pTempBuf, sizeof(NORHeaderDS) ) == KAMI_RESULT_SEND_ERROR)
|
||||
{
|
||||
OS_Printf("kamiNvramRead ... ERROR!\n");
|
||||
}
|
||||
|
||||
// 読み込みはARM7が直接メモリに書き出す
|
||||
DC_InvalidateRange(pTempBuf, sizeof(NORHeaderDS));
|
||||
// 書き込み後のCRCを計算
|
||||
crc_r1 = SVC_GetCRC16( 0xffff, pTempBuf, sizeof(NORHeaderDS) );
|
||||
|
||||
@ -398,15 +399,15 @@ static BOOL WriteNorfirm(char* file_name)
|
||||
kamiFontPrintfConsoleEx(0, "Start CRC check\n");
|
||||
kamiFontLoadScreenData();
|
||||
|
||||
// 読み込みはARM7が直接メモリに書き出す
|
||||
DC_InvalidateRange(pTempBuf, file_size);
|
||||
|
||||
// CRCチェックのためNvramからリード
|
||||
if (kamiNvramRead(0, pTempBuf, file_size ) == KAMI_RESULT_SEND_ERROR)
|
||||
{
|
||||
OS_Printf("kamiNvramRead ... ERROR!\n");
|
||||
}
|
||||
|
||||
// 読み込みはARM7が直接メモリに書き出す
|
||||
DC_InvalidateRange(pTempBuf, file_size);
|
||||
|
||||
// 書き込み後のCRCを計算
|
||||
crc_r2 = SVC_GetCRC16( 0xffff, pTempBuf+512, file_size-512 );
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user