mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
NVRAM関連のアクセスをSDKのライブラリを使用するように変更。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1673 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
a16c96d8cf
commit
82ee8c8c55
@ -30,7 +30,6 @@ SRCS = crt0.SCFG_NOLOCK.c \
|
||||
main.c \
|
||||
kami_pxi.c \
|
||||
formatter.c \
|
||||
nvram_misc.c \
|
||||
mcu_firm.c
|
||||
|
||||
TARGET_NAME = armadillo
|
||||
|
||||
@ -41,7 +41,6 @@ Ltdautoload SCRWRAM
|
||||
Object $(OBJDIR)/main.o
|
||||
Object $(OBJDIR)/kami_pxi.o
|
||||
Object $(OBJDIR)/formatter.o
|
||||
Object $(OBJDIR)/nvram_misc.o
|
||||
Object $(OBJDIR)/mcu_firm.o
|
||||
|
||||
Library libsea_sp$(LIBSUFFIX).a
|
||||
|
||||
@ -1,43 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: TwlSDK - NandInitializer
|
||||
File: nvram.h
|
||||
|
||||
Copyright 2008 Nintendo. All rights reserved.
|
||||
|
||||
These coded instructions, statements, and computer programs contain
|
||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
Company Ltd., and are protected by Federal copyright law. They may
|
||||
not be disclosed to third parties or copied or duplicated in any form,
|
||||
in whole or in part, without the prior written consent of Nintendo.
|
||||
|
||||
$Date:: $
|
||||
$Rev$
|
||||
$Author$
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef FIRM_NVRAM_H_
|
||||
#define FIRM_NVRAM_H_
|
||||
|
||||
#include <twl/types.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef SDK_ARM9
|
||||
#else // SDK_ARM7
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
ŠÖ<EFBFBD>”’è‹`
|
||||
*---------------------------------------------------------------------------*/
|
||||
void NVRAMi_Read(u32 address, void *buf, u32 size);
|
||||
void NVRAMi_Write(u32 address, void *buf, u32 size);
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
/* FIRM_NVRAM_H_ */
|
||||
#endif
|
||||
@ -21,7 +21,6 @@
|
||||
#include "fifo.h"
|
||||
#include "twl/cdc.h"
|
||||
#include "formatter.h"
|
||||
#include "nvram.h"
|
||||
#include "mcu_firm.h"
|
||||
#include <twl/ltdmain_begin.h>
|
||||
#include <twl/mcu.h>
|
||||
@ -129,7 +128,6 @@ static void KamiPxiCallback(PXIFifoTag tag, u32 data, BOOL err)
|
||||
{
|
||||
case KAMI_EXE_FORMAT:
|
||||
case KAMI_NAND_IO:
|
||||
case KAMI_NVRAM_IO:
|
||||
case KAMI_MCU_WRITE_FIRM:
|
||||
case KAMI_MCU_IO:
|
||||
case KAMI_ARM7_IO:
|
||||
@ -227,30 +225,6 @@ static void KamiThread(void *arg)
|
||||
}
|
||||
break;
|
||||
|
||||
case KAMI_NVRAM_IO:
|
||||
{
|
||||
BOOL is_read;
|
||||
u32 adress;
|
||||
void* buffer;
|
||||
u32 size;
|
||||
|
||||
is_read = (BOOL)kamiWork.data[0];
|
||||
KAMI_UNPACK_U32(&adress, &kamiWork.data[1]);
|
||||
KAMI_UNPACK_U32((u32 *)(&buffer), &kamiWork.data[5]);
|
||||
KAMI_UNPACK_U32(&size, &kamiWork.data[9]);
|
||||
|
||||
if (is_read)
|
||||
{
|
||||
NVRAMi_Read( adress, buffer, size );
|
||||
}
|
||||
else
|
||||
{
|
||||
NVRAMi_Write( adress, buffer, size );
|
||||
}
|
||||
KamiReturnResult(kamiWork.command, KAMI_PXI_RESULT_SUCCESS);
|
||||
}
|
||||
break;
|
||||
|
||||
case KAMI_MCU_WRITE_FIRM:
|
||||
{
|
||||
void* buffer;
|
||||
|
||||
@ -1,181 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: TwlSDK - NandInitializer
|
||||
File: nvram_misc.c
|
||||
|
||||
Copyright 2008 Nintendo. All rights reserved.
|
||||
|
||||
These coded instructions, statements, and computer programs contain
|
||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
Company Ltd., and are protected by Federal copyright law. They may
|
||||
not be disclosed to third parties or copied or duplicated in any form,
|
||||
in whole or in part, without the prior written consent of Nintendo.
|
||||
|
||||
$Date:: $
|
||||
$Rev$
|
||||
$Author$
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "nvram.h"
|
||||
#include "spi_sp.h"
|
||||
#include "nvram_sp.h"
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: NvramCheckReadyToRead
|
||||
|
||||
Description: NVRAMを読み出し可能な状態かどうか確認する。
|
||||
|
||||
Arguments: None.
|
||||
|
||||
Returns: BOOL - 読み出し可能な状態の場合にTRUEを返す。
|
||||
FALSEの場合は読み出し禁止の状態。
|
||||
*---------------------------------------------------------------------------*/
|
||||
static BOOL NvramCheckReadyToRead(void)
|
||||
{
|
||||
u16 tempStatus;
|
||||
|
||||
// ステータスレジスタ読み出し
|
||||
NVRAM_ReadStatusRegister((u8 *)(&tempStatus));
|
||||
// 書き込みもしくは消去操作中かを確認
|
||||
if (tempStatus & NVRAM_STATUS_REGISTER_WIP)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: NvramCheckReadyToWrite
|
||||
|
||||
Description: NVRAMを書き込み可能な状態かどうか確認する。
|
||||
|
||||
Arguments: None.
|
||||
|
||||
Returns: BOOL - 書き込み可能な状態の場合にTRUEを返す。
|
||||
FALSEの場合は書き込み禁止の状態。
|
||||
*---------------------------------------------------------------------------*/
|
||||
static BOOL NvramCheckReadyToWrite(void)
|
||||
{
|
||||
u16 tempStatus;
|
||||
|
||||
// ステータスレジスタ読み出し
|
||||
NVRAM_ReadStatusRegister((u8 *)(&tempStatus));
|
||||
// 書き込みもしくは消去操作中かを確認
|
||||
if (tempStatus & NVRAM_STATUS_REGISTER_WIP)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
// 書き込み許可されているかを確認
|
||||
if (!(tempStatus & NVRAM_STATUS_REGISTER_WEL))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: NVRAM_WaitOperation
|
||||
|
||||
Description:
|
||||
|
||||
Arguments: None.
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
static void NVRAM_WaitOperation(void)
|
||||
{
|
||||
while( NvramCheckReadyToRead() == FALSE ) {
|
||||
}
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: NVRAM_WaitWriteEnable
|
||||
|
||||
Description:
|
||||
|
||||
Arguments: None.
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
static void NVRAM_WaitWriteEnable(void)
|
||||
{
|
||||
while( NvramCheckReadyToWrite() == FALSE ) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: NVRAMi_Read
|
||||
|
||||
Description:
|
||||
|
||||
Arguments: None.
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
void NVRAMi_Read(u32 address, void *buf, u32 size)
|
||||
{
|
||||
NVRAM_WaitOperation();
|
||||
NVRAM_ReadDataBytes(address, size, buf);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: NVRAMi_Write
|
||||
|
||||
Description:
|
||||
|
||||
Arguments: None.
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
void NVRAMi_Write(u32 address, void *buf, u32 size)
|
||||
{
|
||||
u32 i;
|
||||
u32 page_start;
|
||||
u32 page_end;
|
||||
u32 offset_start;
|
||||
u32 offset_end;
|
||||
u8 *src_ptr;
|
||||
u8 temp_buffer[SPI_NVRAM_PAGE_SIZE];
|
||||
|
||||
src_ptr = (u8 *)buf;
|
||||
page_start = (address / SPI_NVRAM_PAGE_SIZE) * SPI_NVRAM_PAGE_SIZE;
|
||||
page_end = ((address+size-1) / SPI_NVRAM_PAGE_SIZE ) * SPI_NVRAM_PAGE_SIZE;
|
||||
offset_start = address % SPI_NVRAM_PAGE_SIZE;
|
||||
offset_end = (address+size-1) % SPI_NVRAM_PAGE_SIZE;
|
||||
|
||||
while( page_start <= page_end ) {
|
||||
if( offset_start != 0 ) {
|
||||
NVRAMi_Read(page_start, temp_buffer, offset_start);
|
||||
}
|
||||
if( page_start != page_end ) {
|
||||
for( i = offset_start ; i < SPI_NVRAM_PAGE_SIZE ; i++ ) {
|
||||
temp_buffer[i] = *src_ptr++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for( i = offset_start ; i <= offset_end ; i++ ) {
|
||||
temp_buffer[i] = *src_ptr++;
|
||||
}
|
||||
if( offset_end != (SPI_NVRAM_PAGE_SIZE-1) ) {
|
||||
NVRAMi_Read(page_start+offset_end+1, &(temp_buffer[offset_end+1]), SPI_NVRAM_PAGE_SIZE - (offset_end+1) );
|
||||
}
|
||||
}
|
||||
|
||||
NVRAM_WriteEnable();
|
||||
NVRAM_WaitWriteEnable();
|
||||
|
||||
NVRAM_PageErase((u32)page_start);
|
||||
|
||||
NVRAM_WaitOperation();
|
||||
|
||||
NVRAM_WriteEnable();
|
||||
|
||||
NVRAM_PageWrite((u32)page_start, (u16)SPI_NVRAM_PAGE_SIZE, temp_buffer);
|
||||
NVRAM_WaitOperation();
|
||||
|
||||
page_start += SPI_NVRAM_PAGE_SIZE;
|
||||
offset_start = 0;
|
||||
}
|
||||
}
|
||||
@ -61,7 +61,6 @@ void KamiPxiInit( void );
|
||||
KAMIResult ExeFormatAsync(FormatMode format_mode, KAMICallback callback);
|
||||
KAMIResult ExeFormat(FormatMode format_mode);
|
||||
KAMIResult kamiNandIo(u32 block, void* buffer, u32 count, BOOL is_read);
|
||||
KAMIResult kamiNvramIo(u32 address, void* buffer, u32 size, BOOL is_read);
|
||||
KAMIResult kamiMcuWriteFirm(void* buffer );
|
||||
KAMIResult kamiMcuIo(u32 reg_no, void* buffer, u32 value, BOOL is_read);
|
||||
KAMIResult kamiARM7Io(u32 addr, u32* buffer, u32 value, BOOL is_read);
|
||||
@ -81,14 +80,6 @@ static KAMIResult kamiNandWrite(u32 block, void* buffer, u32 count)
|
||||
{
|
||||
return kamiNandIo(block, buffer, count, FALSE);
|
||||
}
|
||||
static KAMIResult kamiNvramRead(u32 adress, void* buffer, u32 size)
|
||||
{
|
||||
return kamiNvramIo(adress, buffer, size, TRUE);
|
||||
}
|
||||
static KAMIResult kamiNvramWrite(u32 adress, void* buffer, u32 size)
|
||||
{
|
||||
return kamiNvramIo(adress, buffer, size, FALSE);
|
||||
}
|
||||
static KAMIResult kamiMcuRead(u8 reg_no, void* buffer)
|
||||
{
|
||||
return kamiMcuIo((u32)reg_no, buffer, 0, TRUE);
|
||||
|
||||
@ -204,53 +204,6 @@ KAMIResult kamiNandIo(u32 block, void* buffer, u32 count, BOOL is_read)
|
||||
return KAMI_RESULT_SEND_ERROR;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: Nvramアクセス関数
|
||||
|
||||
Description:
|
||||
|
||||
Arguments: None.
|
||||
|
||||
Returns:
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
KAMIResult kamiNvramIo(u32 address, void* buffer, u32 size, BOOL is_read)
|
||||
{
|
||||
OSIntrMode enabled;
|
||||
u8 data[12];
|
||||
int i;
|
||||
|
||||
// ロック
|
||||
enabled = OS_DisableInterrupts();
|
||||
if (kamiWork.lock)
|
||||
{
|
||||
(void)OS_RestoreInterrupts(enabled);
|
||||
return KAMI_RESULT_BUSY;
|
||||
}
|
||||
kamiWork.lock = TRUE;
|
||||
(void)OS_RestoreInterrupts(enabled);
|
||||
|
||||
kamiWork.callback = NULL;
|
||||
kamiWork.arg = 0;
|
||||
kamiWork.data = 0;
|
||||
|
||||
// データ作成
|
||||
KAMI_PACK_U32(&data[0], &address);
|
||||
KAMI_PACK_U32(&data[4], &buffer);
|
||||
KAMI_PACK_U32(&data[8], &size);
|
||||
|
||||
if (KamiSendPxiCommand(KAMI_NVRAM_IO, 12, (u8)is_read))
|
||||
{
|
||||
for (i = 0; i < 12; i+=3)
|
||||
{
|
||||
KamiSendPxiData(&data[i]);
|
||||
}
|
||||
KamiWaitBusy();
|
||||
return (KAMIResult)kamiWork.result;
|
||||
}
|
||||
return KAMI_RESULT_SEND_ERROR;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: kamiMcuWriteFirm
|
||||
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
#include <twl/fatfs.h>
|
||||
#include <nitro/card.h>
|
||||
#include <twl/nam.h>
|
||||
#include <nitro/nvram.h>
|
||||
#include "kami_font.h"
|
||||
#include "kami_pxi.h"
|
||||
|
||||
@ -131,9 +132,9 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
||||
crc_w2 = SVC_GetCRC16( 0xffff, pTempBuf+512, file_size-512 );
|
||||
|
||||
// まずNORHeaderDS領域を書き込む(40byte?)
|
||||
if (kamiNvramWrite(0, (void*)pTempBuf, sizeof(NORHeaderDS)) == KAMI_RESULT_SEND_ERROR)
|
||||
if (NVRAMi_Write(0, sizeof(NORHeaderDS), (void*)pTempBuf) != NVRAM_RESULT_SUCCESS)
|
||||
{
|
||||
kamiFontPrintfConsoleEx(1, "Fail kamiNvramWrite()\n");
|
||||
kamiFontPrintfConsoleEx(1, "Fail NVRAMi_Write()\n");
|
||||
result = FALSE;
|
||||
}
|
||||
|
||||
@ -142,9 +143,9 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
||||
DC_FlushRange(pTempBuf, sizeof(NORHeaderDS));
|
||||
|
||||
// CRCチェックのためNvramからリード
|
||||
if (kamiNvramRead(0, pTempBuf, sizeof(NORHeaderDS) ) == KAMI_RESULT_SEND_ERROR)
|
||||
if (NVRAMi_Read(0, sizeof(NORHeaderDS), pTempBuf) != NVRAM_RESULT_SUCCESS)
|
||||
{
|
||||
kamiFontPrintfConsoleEx(1, "Fail kamiNvramRead()!\n");
|
||||
kamiFontPrintfConsoleEx(1, "Fail NVRAMi_Read()!\n");
|
||||
}
|
||||
DC_StoreRange(pTempBuf, sizeof(NORHeaderDS));
|
||||
|
||||
@ -167,9 +168,9 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
||||
// NORファームリザーブ領域の書き込みデータのCRCを計算
|
||||
crc_norfirm_reserved_area_w = SVC_GetCRC16( 0xffff, sNvramPageSizeBuffer, NVRAM_PAGE_SIZE );
|
||||
|
||||
if (kamiNvramWrite(NVRAM_NORFIRM_RESERVED_ADDRESS, sNvramPageSizeBuffer, NVRAM_PAGE_SIZE) == KAMI_RESULT_SEND_ERROR)
|
||||
if (NVRAMi_Write(NVRAM_NORFIRM_RESERVED_ADDRESS, NVRAM_PAGE_SIZE, sNvramPageSizeBuffer) != NVRAM_RESULT_SUCCESS)
|
||||
{
|
||||
kamiFontPrintfConsoleEx(1, "Fail kamiNvramWrite()\n");
|
||||
kamiFontPrintfConsoleEx(1, "Fail NVRAMi_Write()\n");
|
||||
result = FALSE;
|
||||
}
|
||||
|
||||
@ -179,9 +180,9 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
||||
// 読み込みはARM7が直接メモリに書き出すため
|
||||
DC_FlushRange(sNvramPageSizeBuffer, NVRAM_PAGE_SIZE);
|
||||
|
||||
if (kamiNvramRead(NVRAM_NORFIRM_RESERVED_ADDRESS, sNvramPageSizeBuffer, NVRAM_PAGE_SIZE) == KAMI_RESULT_SEND_ERROR)
|
||||
if (NVRAMi_Read(NVRAM_NORFIRM_RESERVED_ADDRESS, NVRAM_PAGE_SIZE, sNvramPageSizeBuffer) != NVRAM_RESULT_SUCCESS)
|
||||
{
|
||||
kamiFontPrintfConsoleEx(1, "Fail kamiNvramRead()\n");
|
||||
kamiFontPrintfConsoleEx(1, "Fail NVRAMi_Read()\n");
|
||||
result = FALSE;
|
||||
}
|
||||
|
||||
@ -199,9 +200,9 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
||||
#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)
|
||||
if (NVRAMi_Read(NVRAM_CONFIG_DATA_OFFSET_ADDRESS, NVRAM_PAGE_SIZE, &sNvramPageSizeBuffer) != NVRAM_RESULT_SUCCESS)
|
||||
{
|
||||
kamiFontPrintfConsoleEx(1, "Fail kamiNvramRead()\n");
|
||||
kamiFontPrintfConsoleEx(1, "Fail NVRAMi_Read()\n");
|
||||
result = FALSE;
|
||||
}
|
||||
sReservedAreaEndAddress = (u32)(*(u16 *)sNvramPageSizeBuffer << NVRAM_CONFIG_DATA_OFFSET_SHIFT) - 0xA00;// TWL WiFi設定 + NTR WiFi設定 を差し引く
|
||||
@ -212,9 +213,9 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
||||
|
||||
for (write_offset=NVRAM_NON_ASIGNED_AREA_ADDRESS; write_offset < sReservedAreaEndAddress; write_offset += NVRAM_PAGE_SIZE)
|
||||
{
|
||||
if (kamiNvramWrite(write_offset, sNvramPageSizeBuffer, NVRAM_PAGE_SIZE) == KAMI_RESULT_SEND_ERROR)
|
||||
if (NVRAMi_Write(write_offset, NVRAM_PAGE_SIZE, sNvramPageSizeBuffer) != NVRAM_RESULT_SUCCESS)
|
||||
{
|
||||
kamiFontPrintfConsoleEx(1, "Fail kamiNvramWrite()\n");
|
||||
kamiFontPrintfConsoleEx(1, "Fail NVRAMi_Write()\n");
|
||||
result = FALSE;
|
||||
}
|
||||
}
|
||||
@ -225,16 +226,16 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
||||
MI_CpuFill8( sNvramPageSizeBuffer, 0x00, NVRAM_PAGE_SIZE );
|
||||
DC_FlushRange( sNvramPageSizeBuffer, NVRAM_PAGE_SIZE );
|
||||
|
||||
if (kamiNvramWrite(NVRAM_NON_ASIGNED_AREA_ADDRESS, sNvramPageSizeBuffer, NVRAM_PAGE_SIZE) == KAMI_RESULT_SEND_ERROR)
|
||||
if (NVRAMi_Write(NVRAM_NON_ASIGNED_AREA_ADDRESS, NVRAM_PAGE_SIZE, sNvramPageSizeBuffer) != NVRAM_RESULT_SUCCESS)
|
||||
{
|
||||
kamiFontPrintfConsoleEx(1, "Fail kamiNvramWrite()\n");
|
||||
kamiFontPrintfConsoleEx(1, "Fail NVRAMi_Write()\n");
|
||||
result = FALSE;
|
||||
}
|
||||
|
||||
DC_InvalidateRange( sNvramPageSizeBuffer, NVRAM_PAGE_SIZE );
|
||||
if (kamiNvramRead(NVRAM_CONFIG_DATA_OFFSET_ADDRESS, &sNvramPageSizeBuffer, NVRAM_PAGE_SIZE) == KAMI_RESULT_SEND_ERROR)
|
||||
if (NVRAMi_Read(NVRAM_CONFIG_DATA_OFFSET_ADDRESS, NVRAM_PAGE_SIZE, &sNvramPageSizeBuffer) != NVRAM_RESULT_SUCCESS)
|
||||
{
|
||||
kamiFontPrintfConsoleEx(1, "Fail kamiNvramRead()\n");
|
||||
kamiFontPrintfConsoleEx(1, "Fail NVRAMi_Read()\n");
|
||||
result = FALSE;
|
||||
}
|
||||
sReservedAreaEndAddress = (u32)(*(u16 *)sNvramPageSizeBuffer << NVRAM_CONFIG_DATA_OFFSET_SHIFT) - 0xA00;// TWL WiFi設定 + NTR WiFi設定 を差し引く
|
||||
@ -242,9 +243,9 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
||||
MI_CpuFill8( sNvramPageSizeBuffer, 0x00, NVRAM_PAGE_SIZE );
|
||||
DC_FlushRange( sNvramPageSizeBuffer, NVRAM_PAGE_SIZE );
|
||||
|
||||
if (kamiNvramWrite(sReservedAreaEndAddress - 0x100, sNvramPageSizeBuffer, NVRAM_PAGE_SIZE) == KAMI_RESULT_SEND_ERROR)
|
||||
if (NVRAMi_Write(sReservedAreaEndAddress - 0x100, NVRAM_PAGE_SIZE, sNvramPageSizeBuffer) != NVRAM_RESULT_SUCCESS)
|
||||
{
|
||||
kamiFontPrintfConsoleEx(1, "Fail kamiNvramWrite()\n");
|
||||
kamiFontPrintfConsoleEx(1, "Fail NVRAMi_Write()\n");
|
||||
result = FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -21,6 +21,7 @@
|
||||
#include <nitro/card.h>
|
||||
#include <twl/nam.h>
|
||||
#include <stddef.h>
|
||||
#include <nitro/nvram.h>
|
||||
#include "kami_font.h"
|
||||
#include "kami_pxi.h"
|
||||
#include "process_topmenu.h"
|
||||
@ -350,9 +351,9 @@ static BOOL WriteNorfirm(char* file_name)
|
||||
crc_w2 = SVC_GetCRC16( 0xffff, pTempBuf+512, file_size-512 );
|
||||
|
||||
// まずNORHeaderDS領域を書き込む(40byte?)
|
||||
if (kamiNvramWrite(0, (void*)pTempBuf, sizeof(NORHeaderDS)) == KAMI_RESULT_SEND_ERROR)
|
||||
if (NVRAMi_Write(0, sizeof(NORHeaderDS), (void*)pTempBuf ) != NVRAM_RESULT_SUCCESS)
|
||||
{
|
||||
kamiFontPrintfConsoleEx(1, "Fail SPI_NvramPageWrite()\n");
|
||||
kamiFontPrintfConsoleEx(1, "Fail NVRAMi_Write()\n");
|
||||
result = FALSE;
|
||||
}
|
||||
|
||||
@ -360,9 +361,9 @@ static BOOL WriteNorfirm(char* file_name)
|
||||
DC_InvalidateRange(pTempBuf, sizeof(NORHeaderDS));
|
||||
|
||||
// CRCチェックのためNvramからリード
|
||||
if (kamiNvramRead(0, pTempBuf, sizeof(NORHeaderDS) ) == KAMI_RESULT_SEND_ERROR)
|
||||
if (NVRAMi_Read(0, sizeof(NORHeaderDS), pTempBuf) != NVRAM_RESULT_SUCCESS)
|
||||
{
|
||||
OS_Printf("kamiNvramRead ... ERROR!\n");
|
||||
OS_Printf("NVRAMi_Read ... ERROR!\n");
|
||||
}
|
||||
|
||||
// 書き込み後のCRCを計算
|
||||
@ -386,9 +387,9 @@ static BOOL WriteNorfirm(char* file_name)
|
||||
while ( nor_addr < file_size)
|
||||
{
|
||||
// 書きこみ
|
||||
if (kamiNvramWrite((u32)nor_addr, (void*)(pTempBuf + nor_addr), NVRAM_PAGE_SIZE) == KAMI_RESULT_SEND_ERROR)
|
||||
if (NVRAMi_Write((u32)nor_addr, NVRAM_PAGE_SIZE, (void*)(pTempBuf + nor_addr)) != NVRAM_RESULT_SUCCESS)
|
||||
{
|
||||
OS_TPrintf("======= Fail SPI_NvramPageWrite() ======== \n");
|
||||
OS_TPrintf("======= Fail NVRAMi_Write() ======== \n");
|
||||
result = FALSE;
|
||||
break;
|
||||
}
|
||||
@ -405,7 +406,7 @@ static BOOL WriteNorfirm(char* file_name)
|
||||
DC_InvalidateRange(pTempBuf, file_size);
|
||||
|
||||
// CRCチェックのためNvramからリード
|
||||
if (kamiNvramRead(0, pTempBuf, file_size ) == KAMI_RESULT_SEND_ERROR)
|
||||
if (NVRAMi_Read(0, file_size, pTempBuf ) != NVRAM_RESULT_SUCCESS)
|
||||
{
|
||||
OS_Printf("kamiNvramRead ... ERROR!\n");
|
||||
}
|
||||
|
||||
@ -63,7 +63,6 @@ typedef enum KamiCommand
|
||||
KAMI_TEST_COMMAND,
|
||||
KAMI_EXE_FORMAT,
|
||||
KAMI_NAND_IO,
|
||||
KAMI_NVRAM_IO,
|
||||
KAMI_MCU_IO,
|
||||
KAMI_MCU_WRITE_FIRM,
|
||||
KAMI_ARM7_IO,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user