mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
nandfirmのバージョンを表示するツールを追加。
(NandInitializer*/SystemUpdater) 512byteアライメントでない nandfirm の書き込みが正常に行えるように修正。(Rev2411への対応) git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2420 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
169cc0e49d
commit
909f2b93fa
@ -25,7 +25,8 @@ SUBDIRS_P = \
|
|||||||
NandInitializerRed \
|
NandInitializerRed \
|
||||||
NandInitializerProduction \
|
NandInitializerProduction \
|
||||||
NandInitializer \
|
NandInitializer \
|
||||||
ImportJump
|
ImportJump \
|
||||||
|
nandfirmVersionChecker
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@ -40,8 +40,9 @@
|
|||||||
定数定義
|
定数定義
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#define NAND_BLOCK_BYTE 0x200
|
#define NAND_BLOCK_BYTE 0x200
|
||||||
#define NAND_FIRM_START_OFFSET 0x200
|
#define NAND_FIRM_START_OFFSET 0x200
|
||||||
|
#define NAND_FIRM_START_OFFSET_IN_FILE 0x200
|
||||||
|
|
||||||
#define NVRAM_PAGE_SIZE 0x100
|
#define NVRAM_PAGE_SIZE 0x100
|
||||||
#define NVRAM_NORFIRM_RESERVED_ADDRESS 0x200
|
#define NVRAM_NORFIRM_RESERVED_ADDRESS 0x200
|
||||||
@ -74,8 +75,9 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
|||||||
BOOL read_is_ok;
|
BOOL read_is_ok;
|
||||||
u8* pTempBuf;
|
u8* pTempBuf;
|
||||||
u32 file_size;
|
u32 file_size;
|
||||||
|
u32 nandfirm_size;
|
||||||
u32 alloc_size;
|
u32 alloc_size;
|
||||||
u32 write_size;
|
u32 write_block;
|
||||||
BOOL result = TRUE;
|
BOOL result = TRUE;
|
||||||
u16 crc_w1, crc_w2;
|
u16 crc_w1, crc_w2;
|
||||||
u16 crc_r1, crc_r2;
|
u16 crc_r1, crc_r2;
|
||||||
@ -102,8 +104,12 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nandfirm_size = file_size - NAND_FIRM_START_OFFSET_IN_FILE;
|
||||||
|
|
||||||
// バッファ確保
|
// バッファ確保
|
||||||
alloc_size = ROUND_UP(file_size, 32) ;
|
// 書き込みがブロック単位(512byte)であることを考慮し+512
|
||||||
|
// さらにDC_Flushのケアとして32byteアライメントを考慮
|
||||||
|
alloc_size = ROUND_UP(file_size + 512, 32) ;
|
||||||
pTempBuf = allocFunc( alloc_size );
|
pTempBuf = allocFunc( alloc_size );
|
||||||
if (pTempBuf == NULL)
|
if (pTempBuf == NULL)
|
||||||
{
|
{
|
||||||
@ -112,10 +118,12 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MI_CpuClear8( pTempBuf, alloc_size );
|
||||||
|
|
||||||
// .nandファイルリード
|
// .nandファイルリード
|
||||||
DC_InvalidateRange(pTempBuf, alloc_size);
|
DC_FlushRange(pTempBuf, alloc_size);
|
||||||
read_is_ok = FS_ReadFile( &file, pTempBuf, (s32)file_size );
|
read_is_ok = FS_ReadFile( &file, pTempBuf, (s32)file_size );
|
||||||
DC_StoreRange(pTempBuf, file_size);
|
DC_FlushRange(pTempBuf, file_size);
|
||||||
if (!read_is_ok)
|
if (!read_is_ok)
|
||||||
{
|
{
|
||||||
kamiFontPrintfConsoleEx(1, "Fail FS_ReadFile!\n");
|
kamiFontPrintfConsoleEx(1, "Fail FS_ReadFile!\n");
|
||||||
@ -129,7 +137,7 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
|||||||
|
|
||||||
// 書き込み前のCRCを計算
|
// 書き込み前のCRCを計算
|
||||||
crc_w1 = SVC_GetCRC16( 0xffff, pTempBuf, sizeof(NORHeaderDS) );
|
crc_w1 = SVC_GetCRC16( 0xffff, pTempBuf, sizeof(NORHeaderDS) );
|
||||||
crc_w2 = SVC_GetCRC16( 0xffff, pTempBuf+512, file_size-512 );
|
crc_w2 = SVC_GetCRC16( 0xffff, pTempBuf+NAND_FIRM_START_OFFSET_IN_FILE, nandfirm_size );
|
||||||
|
|
||||||
// まずNORHeaderDS領域を書き込む(40byte?)
|
// まずNORHeaderDS領域を書き込む(40byte?)
|
||||||
if (NVRAMi_Write(0, sizeof(NORHeaderDS), (void*)pTempBuf) != NVRAM_RESULT_SUCCESS)
|
if (NVRAMi_Write(0, sizeof(NORHeaderDS), (void*)pTempBuf) != NVRAM_RESULT_SUCCESS)
|
||||||
@ -147,7 +155,7 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
|||||||
{
|
{
|
||||||
kamiFontPrintfConsoleEx(1, "Fail NVRAMi_Read()!\n");
|
kamiFontPrintfConsoleEx(1, "Fail NVRAMi_Read()!\n");
|
||||||
}
|
}
|
||||||
DC_StoreRange(pTempBuf, sizeof(NORHeaderDS));
|
DC_FlushRange(pTempBuf, sizeof(NORHeaderDS));
|
||||||
|
|
||||||
// 書き込み後のCRCを計算
|
// 書き込み後のCRCを計算
|
||||||
crc_r1 = SVC_GetCRC16( 0xffff, pTempBuf, sizeof(NORHeaderDS) );
|
crc_r1 = SVC_GetCRC16( 0xffff, pTempBuf, sizeof(NORHeaderDS) );
|
||||||
@ -187,7 +195,7 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 書き込み後のCRCを計算
|
// 書き込み後のCRCを計算
|
||||||
DC_StoreRange(sNvramPageSizeBuffer, NVRAM_PAGE_SIZE);
|
DC_FlushRange(sNvramPageSizeBuffer, NVRAM_PAGE_SIZE);
|
||||||
crc_norfirm_reserved_area_r = SVC_GetCRC16( 0xffff, sNvramPageSizeBuffer, NVRAM_PAGE_SIZE );
|
crc_norfirm_reserved_area_r = SVC_GetCRC16( 0xffff, sNvramPageSizeBuffer, NVRAM_PAGE_SIZE );
|
||||||
|
|
||||||
// NORファームリザーブ領域のCRC比較
|
// NORファームリザーブ領域のCRC比較
|
||||||
@ -260,25 +268,25 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
|||||||
// kamiFontPrintfConsoleEx(0, "NAND Firm Import Start!\n");
|
// kamiFontPrintfConsoleEx(0, "NAND Firm Import Start!\n");
|
||||||
|
|
||||||
// NAND書き込み
|
// NAND書き込み
|
||||||
write_size = file_size/NAND_BLOCK_BYTE + (file_size % NAND_BLOCK_BYTE != 0);
|
write_block = nandfirm_size/NAND_BLOCK_BYTE + (nandfirm_size % NAND_BLOCK_BYTE != 0);
|
||||||
kamiNandWrite( NAND_FIRM_START_OFFSET/NAND_BLOCK_BYTE, pTempBuf+NAND_FIRM_START_OFFSET, write_size ); // ブロック単位、バイト単位、ブロック単位
|
kamiNandWrite( NAND_FIRM_START_OFFSET/NAND_BLOCK_BYTE, pTempBuf+NAND_FIRM_START_OFFSET, write_block ); // ブロック単位、バイト単位、ブロック単位
|
||||||
|
|
||||||
// kamiFontPrintfConsoleEx(0, "Start CRC check\n");
|
// kamiFontPrintfConsoleEx(0, "Start CRC check\n");
|
||||||
kamiFontLoadScreenData();
|
kamiFontLoadScreenData();
|
||||||
|
|
||||||
// CRCを計算するので念のためにクリアしてからリードする
|
// CRCを計算するので念のためにクリアしてからリードする
|
||||||
MI_CpuClear8( pTempBuf, file_size );
|
MI_CpuClear8( pTempBuf, nandfirm_size );
|
||||||
DC_FlushRange(pTempBuf, file_size);
|
DC_FlushRange(pTempBuf, nandfirm_size);
|
||||||
|
|
||||||
// CRCチェックのためNandからリード
|
// CRCチェックのためNandからリード
|
||||||
if (kamiNandRead(0, pTempBuf, file_size/512 ) == KAMI_RESULT_SEND_ERROR)
|
if (kamiNandRead(NAND_FIRM_START_OFFSET/NAND_BLOCK_BYTE, pTempBuf, write_block ) == KAMI_RESULT_SEND_ERROR)
|
||||||
{
|
{
|
||||||
kamiFontPrintfConsoleEx(1, "kamiNandRead ... %s!\n", "ERROR");
|
kamiFontPrintfConsoleEx(1, "kamiNandRead ... %s!\n", "ERROR");
|
||||||
}
|
}
|
||||||
DC_StoreRange(pTempBuf, file_size);
|
DC_FlushRange(pTempBuf, nandfirm_size);
|
||||||
|
|
||||||
// 書き込み後のCRCを計算
|
// 書き込み後のCRCを計算
|
||||||
crc_r2 = SVC_GetCRC16( 0xffff, pTempBuf+512, file_size-512 );
|
crc_r2 = SVC_GetCRC16( 0xffff, pTempBuf, nandfirm_size );
|
||||||
|
|
||||||
// NAND部分についてのCRCチェック
|
// NAND部分についてのCRCチェック
|
||||||
if (crc_w2 == crc_r2)
|
if (crc_w2 == crc_r2)
|
||||||
|
|||||||
@ -20,7 +20,6 @@
|
|||||||
#include <nitro/card.h>
|
#include <nitro/card.h>
|
||||||
#include <twl/nam.h>
|
#include <twl/nam.h>
|
||||||
#include <nitro/nvram.h>
|
#include <nitro/nvram.h>
|
||||||
|
|
||||||
#include "kami_font.h"
|
#include "kami_font.h"
|
||||||
#include "kami_pxi.h"
|
#include "kami_pxi.h"
|
||||||
|
|
||||||
@ -41,8 +40,9 @@
|
|||||||
定数定義
|
定数定義
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#define NAND_BLOCK_BYTE 0x200
|
#define NAND_BLOCK_BYTE 0x200
|
||||||
#define NAND_FIRM_START_OFFSET 0x200
|
#define NAND_FIRM_START_OFFSET 0x200
|
||||||
|
#define NAND_FIRM_START_OFFSET_IN_FILE 0x200
|
||||||
|
|
||||||
#define NVRAM_PAGE_SIZE 0x100
|
#define NVRAM_PAGE_SIZE 0x100
|
||||||
#define NVRAM_NORFIRM_RESERVED_ADDRESS 0x200
|
#define NVRAM_NORFIRM_RESERVED_ADDRESS 0x200
|
||||||
@ -75,8 +75,9 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
|||||||
BOOL read_is_ok;
|
BOOL read_is_ok;
|
||||||
u8* pTempBuf;
|
u8* pTempBuf;
|
||||||
u32 file_size;
|
u32 file_size;
|
||||||
|
u32 nandfirm_size;
|
||||||
u32 alloc_size;
|
u32 alloc_size;
|
||||||
u32 write_size;
|
u32 write_block;
|
||||||
BOOL result = TRUE;
|
BOOL result = TRUE;
|
||||||
u16 crc_w1, crc_w2;
|
u16 crc_w1, crc_w2;
|
||||||
u16 crc_r1, crc_r2;
|
u16 crc_r1, crc_r2;
|
||||||
@ -103,8 +104,12 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nandfirm_size = file_size - NAND_FIRM_START_OFFSET_IN_FILE;
|
||||||
|
|
||||||
// バッファ確保
|
// バッファ確保
|
||||||
alloc_size = ROUND_UP(file_size, 32) ;
|
// 書き込みがブロック単位(512byte)であることを考慮し+512
|
||||||
|
// さらにDC_Flushのケアとして32byteアライメントを考慮
|
||||||
|
alloc_size = ROUND_UP(file_size + 512, 32) ;
|
||||||
pTempBuf = allocFunc( alloc_size );
|
pTempBuf = allocFunc( alloc_size );
|
||||||
if (pTempBuf == NULL)
|
if (pTempBuf == NULL)
|
||||||
{
|
{
|
||||||
@ -113,10 +118,12 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MI_CpuClear8( pTempBuf, alloc_size );
|
||||||
|
|
||||||
// .nandファイルリード
|
// .nandファイルリード
|
||||||
DC_InvalidateRange(pTempBuf, alloc_size);
|
DC_FlushRange(pTempBuf, alloc_size);
|
||||||
read_is_ok = FS_ReadFile( &file, pTempBuf, (s32)file_size );
|
read_is_ok = FS_ReadFile( &file, pTempBuf, (s32)file_size );
|
||||||
DC_StoreRange(pTempBuf, file_size);
|
DC_FlushRange(pTempBuf, file_size);
|
||||||
if (!read_is_ok)
|
if (!read_is_ok)
|
||||||
{
|
{
|
||||||
kamiFontPrintfConsoleEx(1, "Fail FS_ReadFile!\n");
|
kamiFontPrintfConsoleEx(1, "Fail FS_ReadFile!\n");
|
||||||
@ -130,7 +137,7 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
|||||||
|
|
||||||
// 書き込み前のCRCを計算
|
// 書き込み前のCRCを計算
|
||||||
crc_w1 = SVC_GetCRC16( 0xffff, pTempBuf, sizeof(NORHeaderDS) );
|
crc_w1 = SVC_GetCRC16( 0xffff, pTempBuf, sizeof(NORHeaderDS) );
|
||||||
crc_w2 = SVC_GetCRC16( 0xffff, pTempBuf+512, file_size-512 );
|
crc_w2 = SVC_GetCRC16( 0xffff, pTempBuf+NAND_FIRM_START_OFFSET_IN_FILE, nandfirm_size );
|
||||||
|
|
||||||
// まずNORHeaderDS領域を書き込む(40byte?)
|
// まずNORHeaderDS領域を書き込む(40byte?)
|
||||||
if (NVRAMi_Write(0, sizeof(NORHeaderDS), (void*)pTempBuf) != NVRAM_RESULT_SUCCESS)
|
if (NVRAMi_Write(0, sizeof(NORHeaderDS), (void*)pTempBuf) != NVRAM_RESULT_SUCCESS)
|
||||||
@ -148,7 +155,7 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
|||||||
{
|
{
|
||||||
kamiFontPrintfConsoleEx(1, "Fail NVRAMi_Read()!\n");
|
kamiFontPrintfConsoleEx(1, "Fail NVRAMi_Read()!\n");
|
||||||
}
|
}
|
||||||
DC_StoreRange(pTempBuf, sizeof(NORHeaderDS));
|
DC_FlushRange(pTempBuf, sizeof(NORHeaderDS));
|
||||||
|
|
||||||
// 書き込み後のCRCを計算
|
// 書き込み後のCRCを計算
|
||||||
crc_r1 = SVC_GetCRC16( 0xffff, pTempBuf, sizeof(NORHeaderDS) );
|
crc_r1 = SVC_GetCRC16( 0xffff, pTempBuf, sizeof(NORHeaderDS) );
|
||||||
@ -188,7 +195,7 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 書き込み後のCRCを計算
|
// 書き込み後のCRCを計算
|
||||||
DC_StoreRange(sNvramPageSizeBuffer, NVRAM_PAGE_SIZE);
|
DC_FlushRange(sNvramPageSizeBuffer, NVRAM_PAGE_SIZE);
|
||||||
crc_norfirm_reserved_area_r = SVC_GetCRC16( 0xffff, sNvramPageSizeBuffer, NVRAM_PAGE_SIZE );
|
crc_norfirm_reserved_area_r = SVC_GetCRC16( 0xffff, sNvramPageSizeBuffer, NVRAM_PAGE_SIZE );
|
||||||
|
|
||||||
// NORファームリザーブ領域のCRC比較
|
// NORファームリザーブ領域のCRC比較
|
||||||
@ -261,25 +268,25 @@ BOOL kamiWriteNandfirm(const char* pFullPath, NAMAlloc allocFunc, NAMFree freeFu
|
|||||||
// kamiFontPrintfConsoleEx(0, "NAND Firm Import Start!\n");
|
// kamiFontPrintfConsoleEx(0, "NAND Firm Import Start!\n");
|
||||||
|
|
||||||
// NAND書き込み
|
// NAND書き込み
|
||||||
write_size = file_size/NAND_BLOCK_BYTE + (file_size % NAND_BLOCK_BYTE != 0);
|
write_block = nandfirm_size/NAND_BLOCK_BYTE + (nandfirm_size % NAND_BLOCK_BYTE != 0);
|
||||||
kamiNandWrite( NAND_FIRM_START_OFFSET/NAND_BLOCK_BYTE, pTempBuf+NAND_FIRM_START_OFFSET, write_size ); // ブロック単位、バイト単位、ブロック単位
|
kamiNandWrite( NAND_FIRM_START_OFFSET/NAND_BLOCK_BYTE, pTempBuf+NAND_FIRM_START_OFFSET, write_block ); // ブロック単位、バイト単位、ブロック単位
|
||||||
|
|
||||||
// kamiFontPrintfConsoleEx(0, "Start CRC check\n");
|
// kamiFontPrintfConsoleEx(0, "Start CRC check\n");
|
||||||
kamiFontLoadScreenData();
|
kamiFontLoadScreenData();
|
||||||
|
|
||||||
// CRCを計算するので念のためにクリアしてからリードする
|
// CRCを計算するので念のためにクリアしてからリードする
|
||||||
MI_CpuClear8( pTempBuf, file_size );
|
MI_CpuClear8( pTempBuf, nandfirm_size );
|
||||||
DC_FlushRange(pTempBuf, file_size);
|
DC_FlushRange(pTempBuf, nandfirm_size);
|
||||||
|
|
||||||
// CRCチェックのためNandからリード
|
// CRCチェックのためNandからリード
|
||||||
if (kamiNandRead(0, pTempBuf, file_size/512 ) == KAMI_RESULT_SEND_ERROR)
|
if (kamiNandRead(NAND_FIRM_START_OFFSET/NAND_BLOCK_BYTE, pTempBuf, write_block ) == KAMI_RESULT_SEND_ERROR)
|
||||||
{
|
{
|
||||||
kamiFontPrintfConsoleEx(1, "kamiNandRead ... %s!\n", "ERROR");
|
kamiFontPrintfConsoleEx(1, "kamiNandRead ... %s!\n", "ERROR");
|
||||||
}
|
}
|
||||||
DC_StoreRange(pTempBuf, file_size);
|
DC_FlushRange(pTempBuf, nandfirm_size);
|
||||||
|
|
||||||
// 書き込み後のCRCを計算
|
// 書き込み後のCRCを計算
|
||||||
crc_r2 = SVC_GetCRC16( 0xffff, pTempBuf+512, file_size-512 );
|
crc_r2 = SVC_GetCRC16( 0xffff, pTempBuf, nandfirm_size );
|
||||||
|
|
||||||
// NAND部分についてのCRCチェック
|
// NAND部分についてのCRCチェック
|
||||||
if (crc_w2 == crc_r2)
|
if (crc_w2 == crc_r2)
|
||||||
|
|||||||
@ -0,0 +1,89 @@
|
|||||||
|
#! make -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlSDK - components - armadillo.TWL
|
||||||
|
# File: Makefile
|
||||||
|
#
|
||||||
|
# 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$
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
override TARGET_PLATFORM = TWL
|
||||||
|
override TWL_PROC = ARM7
|
||||||
|
override TWL_ARCHGEN = LIMITED
|
||||||
|
##override TWL_PLATFORM = TS
|
||||||
|
TWL_NO_STD_PCHDR = True
|
||||||
|
override TARGET_CODEGEN = ARM
|
||||||
|
|
||||||
|
ifndef TWLSDK_NOCRYPTO
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
SRCS = crt0.SCFG_NOLOCK.c \
|
||||||
|
main.c \
|
||||||
|
kami_pxi.c \
|
||||||
|
formatter.c \
|
||||||
|
mcu_firm.c
|
||||||
|
|
||||||
|
TARGET_NAME = armadillo
|
||||||
|
|
||||||
|
TARGET_NEF = $(TARGET_NAME).tef
|
||||||
|
LCFILE_SPEC = ../../NandInitializerRed/ARM7.TWL/$(TARGET_NAME).lsf
|
||||||
|
LCFILE_TEMPLATE = $(ROOT)/build/components/$(TARGET_NAME).TWL/$(TARGET_NAME).lcf.template
|
||||||
|
LDRES_TEMPLATE = $(ROOT)/build/components/$(TARGET_NAME).TWL/$(TARGET_NAME).response.template
|
||||||
|
|
||||||
|
CRT0_O = crt0.SCFG_NOLOCK.o
|
||||||
|
|
||||||
|
# スタック不足防止の為、インライン展開せずにコンパイルする
|
||||||
|
CCFLAGS_OPT = -O4 -inline off
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
include $(TWLSDK_ROOT)/build/buildtools/commondefs
|
||||||
|
|
||||||
|
MACRO_FLAGS += -DSDK_ARM7COMP_LTD -DSDK_SEA -DSDK_NOINIT
|
||||||
|
|
||||||
|
MAKELCF_FLAGS += -DISDBG_LIBS_TWL='$(if $(ISDBG_LIBS_TWL),$(ISDBG_LIBS_TWL),libstubsistd_sp$(TWL_LIBSUFFIX).a)' \
|
||||||
|
-DISDBG_LIBS_NITRO='libstubsisd_sp$(TWL_LIBSUFFIX).a'
|
||||||
|
|
||||||
|
LINCLUDES = $(ROOT)/build/libraries/spi/ARM7/include \
|
||||||
|
$(ROOT)/build/libraries/os/common/include \
|
||||||
|
$(ROOT)/build/libraries/init/common/include \
|
||||||
|
$(TWL_IPL_RED_ROOT)/include \
|
||||||
|
../../NandInitializerRed/common/include \
|
||||||
|
../../NandInitializerRed/ARM7.TWL/include \
|
||||||
|
../../common/ARM7/include \
|
||||||
|
$(ROOT)/build/libraries/fatfs/ARM7.TWL/include \
|
||||||
|
$(ROOT)/build/libraries/fatfs/ARM7.TWL/include/fatfs \
|
||||||
|
$(ROOT)/build/libraries/fatfs/ARM7.TWL/include/twl/fatfs/ARM7
|
||||||
|
|
||||||
|
SRCDIR = ../../NandInitializerRed/ARM7.TWL/src \
|
||||||
|
../../common/ARM7/src
|
||||||
|
|
||||||
|
LLIBRARY_DIRS += $(TWL_IPL_RED_ROOT)/lib/ARM7-TS/$(TWL_BUILD_DIR) \
|
||||||
|
./obj/ARM7-TS.LTD/$(TWL_BUILD_DIR)
|
||||||
|
|
||||||
|
LLIBRARIES += libwl_sp$(TWL_LIBSUFFIX).a \
|
||||||
|
libsdio_sp$(TWL_LIBSUFFIX).a \
|
||||||
|
libathdrv_sp$(TWL_LIBSUFFIX).a \
|
||||||
|
libwpa_sp$(TWL_LIBSUFFIX).a \
|
||||||
|
libhotsw_sp$(TWL_LIBSUFFIX).a \
|
||||||
|
libreloc_info_sp$(TWL_LIBSUFFIX).a
|
||||||
|
|
||||||
|
LDEPENDS_NEF = $(TWL_LIBS) $(LLIBRARIES)
|
||||||
|
|
||||||
|
do-build: $(TARGETS)
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
include $(TWLSDK_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
endif #ifndef TWLSDK_NOCRYPTO
|
||||||
|
|
||||||
|
#===== End of Makefile =====
|
||||||
@ -0,0 +1,73 @@
|
|||||||
|
#! make -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlIPL - systemMenu_tools - nandfirmVersionChecker
|
||||||
|
# File: Makefile
|
||||||
|
#
|
||||||
|
# Copyright 2007 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$
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
SYSM_DISABLE_DEBUG = TRUE
|
||||||
|
|
||||||
|
TARGET_FIRM = SYSTEMMENU
|
||||||
|
TARGET_PLATFORM = TWL
|
||||||
|
TWL_ARCHGEN = LIMITED
|
||||||
|
|
||||||
|
#TARGET_CODEGEN = THUMB
|
||||||
|
|
||||||
|
TITLEID_LO = 0NVA
|
||||||
|
#TARGET_TAD =
|
||||||
|
|
||||||
|
TARGET_BIN = nandfirmVersionChecker.srl
|
||||||
|
|
||||||
|
LCFILE_SPEC = ../../NandInitializerRed/ARM9.TWL/ARM9-TS.lsf
|
||||||
|
ROM_SPEC = ./main.rsf
|
||||||
|
|
||||||
|
MAKEROM_ARM7_BASE = ../ARM7.TWL/bin/$(TWL_BUILDTYPE_ARM7)/armadillo
|
||||||
|
MAKEROM_ARM7 = $(MAKEROM_ARM7_BASE).$(TWL_ELF_EXT)
|
||||||
|
|
||||||
|
SRCS = main.c \
|
||||||
|
kami_pxi.c \
|
||||||
|
font_data.c \
|
||||||
|
graphics.c \
|
||||||
|
keypad.c \
|
||||||
|
kami_font.c \
|
||||||
|
sd_event.c \
|
||||||
|
|
||||||
|
LINCLUDES = ../../NandInitializerRed/common/include \
|
||||||
|
../../NandInitializerRed/ARM9.TWL/include
|
||||||
|
|
||||||
|
SRCDIR = ./src \
|
||||||
|
../../NandInitializerRed/ARM9.TWL/src
|
||||||
|
|
||||||
|
#LCFILE = # using default
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
|
||||||
|
|
||||||
|
MAKEROM_FLAGS += -DTITLEID_LO='$(TITLEID_LO)' \
|
||||||
|
-DCARD_REGION='$(CARD_REGION)' \
|
||||||
|
-DDISABLE_DEBUG='$(SYSM_DISABLE_DEBUG)'
|
||||||
|
|
||||||
|
MAKETAD_FLAGS += -s
|
||||||
|
|
||||||
|
MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
do-build: $(TARGETS)
|
||||||
|
|
||||||
|
#include $(TWLSDK_ROOT)/build/buildtools/modulerules
|
||||||
|
include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
|
#===== End of Makefile =====
|
||||||
221
build/systemMenu_tools/nandfirmVersionChecker/ARM9.TWL/main.rsf
Normal file
221
build/systemMenu_tools/nandfirmVersionChecker/ARM9.TWL/main.rsf
Normal file
@ -0,0 +1,221 @@
|
|||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlSDK - include
|
||||||
|
# File: ROM-BB.rsf
|
||||||
|
#
|
||||||
|
# Copyright 2007 Nintendo. All rights reserved.
|
||||||
|
#
|
||||||
|
# These coded insructions, 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$
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# TWL ROM SPEC FILE
|
||||||
|
#
|
||||||
|
|
||||||
|
Arm9
|
||||||
|
{
|
||||||
|
Static "$(MAKEROM_ARM9:r).TWL.FLX.sbin$(COMPSUFFIX9)"
|
||||||
|
OverlayDefs "$(MAKEROM_ARM9:r)_defs.TWL.FLX.sbin$(COMPSUFFIX9)"
|
||||||
|
OverlayTable "$(MAKEROM_ARM9:r)_table.TWL.FLX.sbin$(COMPSUFFIX9)"
|
||||||
|
Elf "$(MAKEROM_ARM9:r).tef"
|
||||||
|
}
|
||||||
|
|
||||||
|
Arm7
|
||||||
|
{
|
||||||
|
Static "$(MAKEROM_ARM7_BASE:r).TWL.FLX.sbin$(COMPSUFFIX7)"
|
||||||
|
OverlayDefs "$(MAKEROM_ARM7_BASE:r)_defs.TWL.FLX.sbin$(COMPSUFFIX7)"
|
||||||
|
OverlayTable "$(MAKEROM_ARM7_BASE:r)_table.TWL.FLX.sbin$(COMPSUFFIX7)"
|
||||||
|
Elf "$(MAKEROM_ARM7_BASE:r).tef"
|
||||||
|
}
|
||||||
|
|
||||||
|
Arm9.Ltd
|
||||||
|
{
|
||||||
|
Static "$(MAKEROM_ARM9:r).TWL.LTD.sbin$(COMPSUFFIX9)"
|
||||||
|
OverlayDefs "$(MAKEROM_ARM9:r)_defs.TWL.LTD.sbin$(COMPSUFFIX9)"
|
||||||
|
OverlayTable "$(MAKEROM_ARM9:r)_table.TWL.LTD.sbin$(COMPSUFFIX9)"
|
||||||
|
}
|
||||||
|
|
||||||
|
Arm7.Ltd
|
||||||
|
{
|
||||||
|
Static "$(MAKEROM_ARM7_BASE:r).TWL.LTD.sbin$(COMPSUFFIX7)"
|
||||||
|
OverlayDefs "$(MAKEROM_ARM7_BASE:r)_defs.TWL.LTD.sbin$(COMPSUFFIX7)"
|
||||||
|
OverlayTable "$(MAKEROM_ARM7_BASE:r)_table.TWL.LTD.sbin$(COMPSUFFIX7)"
|
||||||
|
}
|
||||||
|
|
||||||
|
Property
|
||||||
|
{
|
||||||
|
###
|
||||||
|
### Settings for FinalROM
|
||||||
|
###
|
||||||
|
#### BEGIN
|
||||||
|
#
|
||||||
|
# TITLE NAME: Your product name within 12bytes
|
||||||
|
#
|
||||||
|
#TitleName "YourAppName"
|
||||||
|
|
||||||
|
#
|
||||||
|
# MAKER CODE: Your company ID# in 2 ascii words
|
||||||
|
# issued by NINTENDO
|
||||||
|
#
|
||||||
|
#MakerCode "00"
|
||||||
|
|
||||||
|
#
|
||||||
|
# REMASTER VERSION: Mastering version
|
||||||
|
#
|
||||||
|
RomVersion 2
|
||||||
|
|
||||||
|
#
|
||||||
|
# ROM SPEED TYPE: [MROM/1TROM/UNDEFINED]
|
||||||
|
#
|
||||||
|
RomSpeedType $(MAKEROM_ROMSPEED)
|
||||||
|
|
||||||
|
#
|
||||||
|
# ROM SIZE: in bit [64M/128M/256M/512M/1G/2G]
|
||||||
|
#
|
||||||
|
RomSize 64M
|
||||||
|
|
||||||
|
#
|
||||||
|
# ROM PADDING: TRUE if finalrom
|
||||||
|
#
|
||||||
|
#RomFootPadding TRUE
|
||||||
|
|
||||||
|
#
|
||||||
|
# ROM HEADER TEMPLATE: Provided to every product by NINTENDO
|
||||||
|
#
|
||||||
|
#RomHeaderTemplate ./etc/rom_header.template.sbin
|
||||||
|
|
||||||
|
#
|
||||||
|
# BANNER FILE: generated from Banner Spec File
|
||||||
|
#
|
||||||
|
BannerFile ../banner/banner.bnr
|
||||||
|
|
||||||
|
###
|
||||||
|
### Setting for TWL
|
||||||
|
###
|
||||||
|
|
||||||
|
#
|
||||||
|
# ROM HEADER Ltd: Provided to every product by NINTENDO
|
||||||
|
#
|
||||||
|
RomHeaderLtd $(TWLSDK_ROOT)/tools/bin/rom_header.LTD.sbin
|
||||||
|
|
||||||
|
#
|
||||||
|
# Digest parameters:
|
||||||
|
#
|
||||||
|
DigestParam 1024 32
|
||||||
|
|
||||||
|
#
|
||||||
|
# WRAM mapping: [MAP_BB_HYB/MAP_BB_LTD/MAP_TS_HYB/MAP_TS_LTD]
|
||||||
|
# don't have to edit
|
||||||
|
#
|
||||||
|
WramMapping MAP_TS_SCR
|
||||||
|
|
||||||
|
#
|
||||||
|
# CardRegion: card region [Japan/America/Europe/Australia/China/Korea]
|
||||||
|
#
|
||||||
|
CardRegion ALL
|
||||||
|
|
||||||
|
#
|
||||||
|
# CommonClientKey: launcher deliver common client Key [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
CommonClientKey FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# HwAESSlotB: launcher deliver HW AES slot B setting [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
HwAESSlotB FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# HwAESSlotC: launcher deliver HW AES slot C setting [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
HwAESSlotC FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# SDCardAccess: sd card access control [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
SDCardAccess FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# NANDAccess: NAND access control [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
NANDAccess TRUE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Codec mode:
|
||||||
|
# don't have to edit
|
||||||
|
#
|
||||||
|
CodecMode $(MAKEROM_CODEC_MODE)
|
||||||
|
|
||||||
|
#
|
||||||
|
# DisableDebug :最終ROMでは、実行時にデバッグできないようにTRUEにする必要があります。
|
||||||
|
#
|
||||||
|
DisableDebug $(DISABLE_DEBUG)
|
||||||
|
|
||||||
|
###
|
||||||
|
#### END
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
AppendProperty
|
||||||
|
{
|
||||||
|
#
|
||||||
|
# Publisher : "Nintendo"
|
||||||
|
# don't have to edit
|
||||||
|
Publisher Nintendo
|
||||||
|
|
||||||
|
#
|
||||||
|
# Application type : [USER/SYSTEM]
|
||||||
|
# don't have to edit
|
||||||
|
AppType System
|
||||||
|
|
||||||
|
#
|
||||||
|
# launch title on the launcher : [TRUE/FALSE]
|
||||||
|
# don't have to edit
|
||||||
|
Launch TRUE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Data only title : [TRUE/FALSE]
|
||||||
|
# don't have to edit
|
||||||
|
DataOnly FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Secure title : [TRUE/FALSE]
|
||||||
|
# don't have to edit
|
||||||
|
Secure TRUE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Boot allowed Media: [GameCard/NAND]
|
||||||
|
#
|
||||||
|
Media GameCard
|
||||||
|
|
||||||
|
#
|
||||||
|
# GameCode for TitleID : Your GameCode in 4 ascii words
|
||||||
|
#
|
||||||
|
GameCode $(TITLEID_LO)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Public save data size: [16K/32K/64K/128K/256K/512K/1M/2M/4M/8M]
|
||||||
|
#
|
||||||
|
#PublicSaveDataSize 32K
|
||||||
|
|
||||||
|
#
|
||||||
|
# Private save data size: [16K/32K/64K/128K/256K/512K/1M/2M/4M/8M]
|
||||||
|
#
|
||||||
|
#PrivateSaveDataSize 16K
|
||||||
|
|
||||||
|
#
|
||||||
|
# Enable SubBannerFile
|
||||||
|
#SubBannerFile TRUE
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
RomSpec
|
||||||
|
{
|
||||||
|
Offset 0x00000000
|
||||||
|
Segment ALL
|
||||||
|
}
|
||||||
@ -0,0 +1,186 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlSDK - nandfirmVersionChecker
|
||||||
|
File: main.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 <twl.h>
|
||||||
|
#include <twl/os/common/format_rom.h>
|
||||||
|
#include <firm/format/nandfirm.h>
|
||||||
|
#include "kami_font.h"
|
||||||
|
#include "graphics.h"
|
||||||
|
#include "keypad.h"
|
||||||
|
#include "kami_pxi.h"
|
||||||
|
|
||||||
|
#define SCRAMBLE_MASK 0x00406000
|
||||||
|
#define NAND_BLOCK_SIZE 0x200
|
||||||
|
|
||||||
|
extern void HWInfoWriterInit( void );
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
内部変数定義
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
static FSEventHook sSDHook;
|
||||||
|
static u8 tempBuf[NAND_BLOCK_SIZE];
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
内部関数定義
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
static void VBlankIntr(void);
|
||||||
|
static void InitAllocation(void);
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: TwlMain
|
||||||
|
|
||||||
|
Description: main
|
||||||
|
|
||||||
|
Arguments: None
|
||||||
|
|
||||||
|
Returns: None
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void
|
||||||
|
TwlMain()
|
||||||
|
{
|
||||||
|
// 製品ビルドランチャー&デバッガ上での起動対応
|
||||||
|
if ( OS_GetRunningConsoleType() & OS_CONSOLE_TWLDEBUGGER )
|
||||||
|
{
|
||||||
|
ROM_Header *dh = (void *)HW_ROM_HEADER_BUF;
|
||||||
|
dh->s.game_cmd_param &= ~SCRAMBLE_MASK;
|
||||||
|
}
|
||||||
|
|
||||||
|
OS_Init();
|
||||||
|
OS_InitTick();
|
||||||
|
OS_InitArena();
|
||||||
|
PXI_Init();
|
||||||
|
OS_InitLock();
|
||||||
|
OS_InitArenaEx();
|
||||||
|
OS_InitIrqTable();
|
||||||
|
OS_SetIrqStackChecker();
|
||||||
|
MI_Init();
|
||||||
|
OS_InitVAlarm();
|
||||||
|
OSi_InitVramExclusive();
|
||||||
|
OS_InitThread();
|
||||||
|
OS_InitReset();
|
||||||
|
GX_Init();
|
||||||
|
FX_Init();
|
||||||
|
SND_Init();
|
||||||
|
SNDEX_Init();
|
||||||
|
TP_Init();
|
||||||
|
RTC_Init();
|
||||||
|
|
||||||
|
KamiPxiInit(); /* 独自PXI初期化 */
|
||||||
|
|
||||||
|
// Vブランク割り込み設定
|
||||||
|
OS_SetIrqFunction(OS_IE_V_BLANK, VBlankIntr);
|
||||||
|
(void)OS_EnableIrqMask(OS_IE_V_BLANK);
|
||||||
|
(void)OS_EnableIrqMask(OS_IE_FIFO_RECV);
|
||||||
|
(void)OS_EnableIrq();
|
||||||
|
(void)GX_VBlankIntr(TRUE);
|
||||||
|
|
||||||
|
// initialize file-system
|
||||||
|
FS_Init(FS_DMA_NOT_USE);
|
||||||
|
|
||||||
|
// FS_Initの後の方が良い模様
|
||||||
|
InitAllocation();
|
||||||
|
|
||||||
|
// 表示関連初期化
|
||||||
|
InitGraphics();
|
||||||
|
kamiFontInit();
|
||||||
|
|
||||||
|
/* always preload FS table for faster directory access. */
|
||||||
|
{
|
||||||
|
u32 need_size = FS_GetTableSize();
|
||||||
|
void *p_table = OS_Alloc(need_size);
|
||||||
|
SDK_ASSERT(p_table != NULL);
|
||||||
|
(void)FS_LoadTable(p_table, need_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
kamiFontPrintfConsole( CONSOLE_ORANGE, "+------------------------------+");
|
||||||
|
kamiFontPrintfConsole( CONSOLE_ORANGE, "l nandfirm Version Checker l");
|
||||||
|
kamiFontPrintfConsole( CONSOLE_ORANGE, "+------------------------------+\n");
|
||||||
|
|
||||||
|
DC_FlushRange(tempBuf, sizeof(tempBuf));
|
||||||
|
|
||||||
|
// ブロック単位、バイト単位、ブロック単位
|
||||||
|
if (kamiNandRead(1, tempBuf, 1) == KAMI_RESULT_SEND_ERROR)
|
||||||
|
{
|
||||||
|
kamiFontPrintfConsoleEx(1, "kamiNandRead ... %s!\n", "ERROR");
|
||||||
|
}
|
||||||
|
DC_FlushRange(tempBuf, NAND_BLOCK_SIZE);
|
||||||
|
|
||||||
|
{
|
||||||
|
NANDHeaderLow* header = (NANDHeaderLow *)tempBuf;
|
||||||
|
u32 offsetbyte = header->sub_rom_offset + header->sub_size;
|
||||||
|
u32 offsetblock = offsetbyte / NAND_BLOCK_SIZE;
|
||||||
|
|
||||||
|
// ブロック単位、バイト単位、ブロック単位
|
||||||
|
if (kamiNandRead(offsetblock, tempBuf, 1) == KAMI_RESULT_SEND_ERROR)
|
||||||
|
{
|
||||||
|
kamiFontPrintfConsoleEx(1, "kamiNandRead ... %s!\n", "ERROR");
|
||||||
|
}
|
||||||
|
DC_FlushRange(tempBuf, NAND_BLOCK_SIZE);
|
||||||
|
|
||||||
|
kamiFontPrintfConsole( CONSOLE_ORANGE, "%s\n", tempBuf);
|
||||||
|
}
|
||||||
|
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
kamiPadRead();
|
||||||
|
|
||||||
|
// Vブランク待ち
|
||||||
|
OS_WaitVBlankIntr();
|
||||||
|
|
||||||
|
// フォントスクリーンデータロード
|
||||||
|
kamiFontLoadScreenData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: VBlankIntr
|
||||||
|
|
||||||
|
Description: VBlank割り込み処理
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
static void
|
||||||
|
VBlankIntr(void)
|
||||||
|
{
|
||||||
|
OS_SetIrqCheckFlag(OS_IE_V_BLANK); // checking VBlank interrupt
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: InitAllocation
|
||||||
|
|
||||||
|
Description: ヒープの初期化.
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
static void InitAllocation(void)
|
||||||
|
{
|
||||||
|
void *tmp;
|
||||||
|
OSHeapHandle hh;
|
||||||
|
|
||||||
|
/* アリーナの初期化 */
|
||||||
|
tmp = OS_InitAlloc(OS_ARENA_MAIN, OS_GetMainArenaLo(), OS_GetMainArenaHi(), 1);
|
||||||
|
OS_SetArenaLo(OS_ARENA_MAIN, tmp);
|
||||||
|
hh = OS_CreateHeap(OS_ARENA_MAIN, OS_GetMainArenaLo(), OS_GetMainArenaHi());
|
||||||
|
if (hh < 0)
|
||||||
|
OS_Panic("ARM9: Fail to create heap...\n");
|
||||||
|
hh = OS_SetCurrentHeap(OS_ARENA_MAIN, hh);
|
||||||
|
}
|
||||||
|
|
||||||
34
build/systemMenu_tools/nandfirmVersionChecker/Makefile
Normal file
34
build/systemMenu_tools/nandfirmVersionChecker/Makefile
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#! make -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlSDK - tests - camera
|
||||||
|
# File: Makefile
|
||||||
|
#
|
||||||
|
# Copyright 2007 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 $(TWLSDK_ROOT)/build/buildtools/commondefs
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
SUBDIRS = \
|
||||||
|
banner \
|
||||||
|
ARM7.TWL \
|
||||||
|
ARM9.TWL \
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
include $(TWLSDK_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
|
|
||||||
|
#===== End of Makefile =====
|
||||||
@ -0,0 +1,47 @@
|
|||||||
|
#! make -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlIPL
|
||||||
|
# File: Makefile
|
||||||
|
#
|
||||||
|
# Copyright 2007 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 $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
|
||||||
|
|
||||||
|
ICON_DIR = ./icon
|
||||||
|
|
||||||
|
BANNER_ICON = $(ICON_DIR)/gameIcon.bmp
|
||||||
|
BANNER_SPEC = banner_v3.bsf
|
||||||
|
|
||||||
|
TARGETS = banner.bnr
|
||||||
|
INSTALL_DIR = ./
|
||||||
|
INSTALL_TARGETS = $(TARGETS)
|
||||||
|
|
||||||
|
BANNER_ICON_NAME = $(basename $(BANNER_ICON))
|
||||||
|
BANNER_ICON_MIDDLE = $(addprefix $(BANNER_ICON_NAME), .nbfs .nbfc .nbfp)
|
||||||
|
|
||||||
|
LDIRT_CLEAN = $(TARGETS) \
|
||||||
|
$(BANNER_ICON_MIDDLE) \
|
||||||
|
$(TARGETS:.bnr=.srl)
|
||||||
|
|
||||||
|
include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# build
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
do-build: $(TARGETS)
|
||||||
|
|
||||||
|
$(TARGETS): $(BANNER_SPEC) $(BANNER_ICON) $(BANNER_ICON_MIDDLE)
|
||||||
|
$(MAKEBANNER) -N $(BANNER_ICON_NAME) $(BANNER_SPEC) $(TARGETS)
|
||||||
|
|
||||||
|
#
|
||||||
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 630 B |
Loading…
Reference in New Issue
Block a user