mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
WiFi設定データのクリア処理においてNVRAM関数の返り値をチェックし5回までリトライを行うように変更。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2270 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
7e48e2f463
commit
ce65f9d590
@ -81,7 +81,7 @@ static BOOL NAMUTi_ClearSavedataAll(void);
|
|||||||
static BOOL NAMUTi_InitShareData(void);
|
static BOOL NAMUTi_InitShareData(void);
|
||||||
static BOOL NAMUTi_MountAndFormatOtherTitleSaveData(u64 titleID, const char *arcname);
|
static BOOL NAMUTi_MountAndFormatOtherTitleSaveData(u64 titleID, const char *arcname);
|
||||||
static BOOL NAMUTi_RandClearFile(const char* path);
|
static BOOL NAMUTi_RandClearFile(const char* path);
|
||||||
static void NAMUTi_ClearWiFiSettings( void );
|
static BOOL NAMUTi_ClearWiFiSettings( void );
|
||||||
static void* NAMUT_Alloc(u32 size);
|
static void* NAMUT_Alloc(u32 size);
|
||||||
static void NAMUT_Free(void* buffer);
|
static void NAMUT_Free(void* buffer);
|
||||||
|
|
||||||
@ -164,7 +164,7 @@ BOOL NAMUT_Format(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// WiFi設定データをクリアします
|
// WiFi設定データをクリアします
|
||||||
NAMUTi_ClearWiFiSettings();
|
ret &= NAMUTi_ClearWiFiSettings();
|
||||||
|
|
||||||
// 本体設定データのクリア
|
// 本体設定データのクリア
|
||||||
ret &= NAMUT_ClearTWLSettings( TRUE );
|
ret &= NAMUT_ClearTWLSettings( TRUE );
|
||||||
@ -904,32 +904,66 @@ BOOL NAMUT_ClearTWLSettings( BOOL doWriteback )
|
|||||||
|
|
||||||
Returns: None.
|
Returns: None.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
static void NAMUTi_ClearWiFiSettings( void )
|
static BOOL NAMUTi_ClearWiFiSettings( void )
|
||||||
{
|
{
|
||||||
#define NCFG_ADDR 0x20
|
#define NCFG_ADDR 0x20
|
||||||
#define NTR_WIFI_DATA_SIZE 0x400
|
#define NTR_WIFI_DATA_SIZE 0x400
|
||||||
#define TWL_WIFI_DATA_SIZE 0x600
|
#define TWL_WIFI_DATA_SIZE 0x600
|
||||||
u32 total_size = ( NTR_WIFI_DATA_SIZE + TWL_WIFI_DATA_SIZE );
|
const s32 RetryCount = 5;
|
||||||
u8* pClearData = NAMUT_Alloc( total_size );
|
s32 i;
|
||||||
if (!pClearData)
|
BOOL readSuccess = FALSE;
|
||||||
{
|
BOOL writeSuccess = FALSE;
|
||||||
|
u32 total_size = ( NTR_WIFI_DATA_SIZE + TWL_WIFI_DATA_SIZE );
|
||||||
|
u8* pClearData = NAMUT_Alloc( total_size );
|
||||||
|
|
||||||
|
if (!pClearData)
|
||||||
|
{
|
||||||
OS_TWarning("Allocation failed. (%d)\n");
|
OS_TWarning("Allocation failed. (%d)\n");
|
||||||
return;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!NVRAMi_IsInitialized()) {
|
if (!NVRAMi_IsInitialized()) {
|
||||||
NVRAMi_Init();
|
NVRAMi_Init();
|
||||||
}
|
}
|
||||||
DC_FlushRange( &sNCFGAddr, 2 );
|
DC_FlushRange( &sNCFGAddr, 2 );
|
||||||
sNCFGAddr = 0;
|
sNCFGAddr = 0;
|
||||||
NVRAMi_Read( NCFG_ADDR, 2, (u8 *)&sNCFGAddr);
|
for (i=0;i<RetryCount;i++)
|
||||||
sNCFGAddr = (u32)( ( sNCFGAddr << 3 ) - ( NTR_WIFI_DATA_SIZE + TWL_WIFI_DATA_SIZE ) );
|
{
|
||||||
|
if (NVRAMi_Read( NCFG_ADDR, 2, (u8 *)&sNCFGAddr) == NVRAM_RESULT_SUCCESS)
|
||||||
|
{
|
||||||
|
readSuccess = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
MI_CpuFillFast( pClearData, 0xffffffff, total_size);
|
if (!readSuccess)
|
||||||
|
{
|
||||||
|
NAMUT_Free( pClearData );
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
sNCFGAddr = (u32)( ( sNCFGAddr << 3 ) - ( NTR_WIFI_DATA_SIZE + TWL_WIFI_DATA_SIZE ) );
|
||||||
|
|
||||||
|
MI_CpuFillFast( pClearData, 0xffffffff, total_size);
|
||||||
DC_FlushRange( pClearData, total_size );
|
DC_FlushRange( pClearData, total_size );
|
||||||
NVRAMi_Write( sNCFGAddr, total_size , pClearData );
|
|
||||||
|
|
||||||
NAMUT_Free( pClearData );
|
for (i=0;i<RetryCount;i++)
|
||||||
|
{
|
||||||
|
if (NVRAMi_Write( sNCFGAddr, total_size , pClearData ) == NVRAM_RESULT_SUCCESS)
|
||||||
|
{
|
||||||
|
writeSuccess = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
NAMUT_Free( pClearData );
|
||||||
|
|
||||||
|
if (!writeSuccess)
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user