mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
・FW typeの読み出しを追加。
・titleID変更への対応。 ・無線ファームのファイル名をWLFWに変更。 それに伴い、WFW0、WFW1を作っていたMakefileを削除。 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@914 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
a99952e807
commit
706b2c4217
@ -56,7 +56,9 @@ SRCS = main.c launcher.c sound.c bannerCounter.c loadWlanFirm.c \
|
||||
$(BG_DIR)/BGData_Launcher.c
|
||||
|
||||
LINCLUDES = $(MISC_DIR)/include \
|
||||
$(SRCDIR)/$(LOGO_DIR)
|
||||
$(SRCDIR)/$(LOGO_DIR) \
|
||||
$(TWLSDK_ROOT)/build/libraries/wm/common.TWL/inc \
|
||||
$(TWLSDK_ROOT)/build/libraries/wm/ARM9.TWL/nwm/inc
|
||||
|
||||
LLIBRARIES += libes$(TWL_LIBSUFFIX).a \
|
||||
libboc$(TWL_LIBSUFFIX).a \
|
||||
|
||||
@ -21,6 +21,10 @@
|
||||
|
||||
#include <firm.h>
|
||||
#include <sysmenu.h>
|
||||
|
||||
#include "nwm_common_private.h"
|
||||
#include "nwm_arm9_private.h"
|
||||
|
||||
#include "loadWlanFirm.h"
|
||||
|
||||
/*
|
||||
@ -29,19 +33,23 @@
|
||||
|
||||
/* LCFGの無線ファームバージョンをタイトルIDとしてそのまま使う場合 */
|
||||
#define USE_LCFG_STRING 0
|
||||
|
||||
/* 無線FWダウンロード処理にかかる時間を計測する。 */
|
||||
#define MEASURE_WIRELESS_INITTIME 1
|
||||
|
||||
/* 無線FW認証処理にかかる時間を計測する。 */
|
||||
#define MEASURE_VERIFY_SIGN_TIME 1
|
||||
|
||||
/* ハッシュ比較の情報を出力する。 */
|
||||
#define REPORT_HASH_COMPARISON 1
|
||||
|
||||
/* Index of public key for WLAN firm */
|
||||
#define WLANFIRM_PUBKEY_INDEX 1
|
||||
#define SIGN_LENGTH 128
|
||||
|
||||
#define FWBUFFER_SIZE 0x40000
|
||||
#define SIGNHEAP_SIZE 0x01000
|
||||
|
||||
#define FWHEADER_SIZE 0xE0
|
||||
#define FWHEADER_SIZE 0x100
|
||||
|
||||
/*
|
||||
internal variables
|
||||
@ -64,12 +72,10 @@ static s32 ReadFirmwareHeader(char *path, u8 *buffer, s32 bufSize);
|
||||
static s32 ReadFirmwareBinary(char *path, u32 offset, u8 *buffer, s32 bufSize);
|
||||
static BOOL VerifyWlanfirmSignature(u8* buffer, u32 length);
|
||||
static BOOL CheckHash(const u8* hash, const u8* buffer, u32 length);
|
||||
#if (REPORT_HASH_COMPARISON == 1)
|
||||
static void PrintDigest(u8 *digest);
|
||||
#endif
|
||||
|
||||
extern NWMRetCode NWMi_InstallFirmware(NWMCallbackFunc callback, void* addr, u32 size, BOOL isColdstart);
|
||||
|
||||
extern u32 NWMi_GetFirmImageOffset(void* addr, u32 hwVersion);
|
||||
extern u32 NWMi_GetFirmImageLength(void* addr, u32 hwVersion);
|
||||
extern u8* NWMi_GetFirmImageHashAddress(void* addr, u32 hwVersion);
|
||||
|
||||
void InstallFirmCallback(void* arg)
|
||||
{
|
||||
@ -78,12 +84,12 @@ void InstallFirmCallback(void* arg)
|
||||
|
||||
if (cb->retcode == NWM_RETCODE_SUCCESS) {
|
||||
#if (MEASURE_WIRELESS_INITTIME == 1)
|
||||
OS_TPrintf("Wlan firm:LoadTime=%dmsec\n", OS_TicksToMilliSeconds(OS_GetTick() - startTick));
|
||||
OS_TPrintf("[Wlan Firm] LoadTime=%dmsec\n", OS_TicksToMilliSeconds(OS_GetTick() - startTick));
|
||||
#endif
|
||||
OS_TPrintf("Wlan firm:Wlan firmware has been installed successfully!\n");
|
||||
OS_TPrintf("[Wlan Firm] Wlan firmware has been installed successfully!\n");
|
||||
result = WLANFIRM_RESULT_SUCCESS;
|
||||
} else { // in case of failure
|
||||
OS_TPrintf("Wlan firm:FW download Timeout Error!\n");
|
||||
OS_TPrintf("[Wlan Firm] FW download Timeout Error!\n");
|
||||
result = WLANFIRM_RESULT_FAILURE;
|
||||
}
|
||||
|
||||
@ -105,11 +111,10 @@ void InstallFirmCallback(void* arg)
|
||||
|
||||
BOOL GetFirmwareFilepath(char *path)
|
||||
{
|
||||
u8 title[4] = { 'W','F','W','0' };
|
||||
u8 title[4] = { 'W','L','F','W' };
|
||||
|
||||
#if( USE_LCFG_STRING == 0 )
|
||||
char *title0 = "WFW0";
|
||||
char *title1 = "WFW1";
|
||||
char *title0 = "WLFW";
|
||||
#endif
|
||||
u32 titleID_hi;
|
||||
u32 titleID_lo;
|
||||
@ -120,11 +125,6 @@ BOOL GetFirmwareFilepath(char *path)
|
||||
{
|
||||
int i;
|
||||
if( title[0] == 0 ) {
|
||||
for( i = 0 ; i < 4 ; i++ ) {
|
||||
title[i] = (u8)*title1++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for( i = 0 ; i < 4 ; i++ ) {
|
||||
title[i] = (u8)*title0++;
|
||||
}
|
||||
@ -133,7 +133,7 @@ BOOL GetFirmwareFilepath(char *path)
|
||||
#endif
|
||||
|
||||
|
||||
titleID_hi = (( 3 /* Nintendo */ << 16) | 4 /* */ | 2 /* */ | 1 /* */);
|
||||
titleID_hi = (( 3 /* Nintendo */ << 16) | 8 /* CHANNEL_DATA_ONLY */ | 4 /* CHANNEL_CARD */ | 2 /* isLaunch */ | 1 /* isSystem */);
|
||||
|
||||
titleID_lo = ((u32)( title[0] ) & 0xff) << 24;
|
||||
titleID_lo |= ((u32)( title[1] )& 0xff) << 16;
|
||||
@ -142,13 +142,13 @@ BOOL GetFirmwareFilepath(char *path)
|
||||
|
||||
titleID = ((u64)(titleID_hi) << 32) | (u64)titleID_lo;
|
||||
|
||||
// OS_TPrintf( "titleID = 0x%08x%08x\n", titleID_hi, titleID_lo);
|
||||
// OS_TPrintf( "[Wlan Firm] titleID = 0x%08x%08x\n", titleID_hi, titleID_lo);
|
||||
|
||||
if( NAM_OK == NAM_GetTitleBootContentPathFast(path, titleID) ) {
|
||||
OS_TPrintf( "File = %s\n", path);
|
||||
OS_TPrintf( "[Wlan Firm] File = %s\n", path);
|
||||
}
|
||||
else {
|
||||
OS_TPrintf( "Error: NAM_GetTitleBootContentPathFast titleID = 0x%08x0x%08x\n",titleID_hi, titleID_lo);
|
||||
OS_TPrintf( "[Wlan Firm] Error: NAM_GetTitleBootContentPathFast titleID = 0x%08x0x%08x\n",titleID_hi, titleID_lo);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -220,7 +220,6 @@ BOOL VerifyWlanfirmSignature(u8* buffer, u32 length)
|
||||
u8 signDigest[SVC_SHA1_DIGEST_SIZE];
|
||||
SVCSHA1Context sctx;
|
||||
SVCSignHeapContext rctx;
|
||||
int i;
|
||||
u8* signHeap;
|
||||
#if (MEASURE_VERIFY_SIGN_TIME == 1)
|
||||
OSTick vstart = OS_GetTick();
|
||||
@ -237,12 +236,10 @@ BOOL VerifyWlanfirmSignature(u8* buffer, u32 length)
|
||||
SVC_SHA1Update( &sctx, (const void*)txt,txtlen);
|
||||
SVC_SHA1GetHash( &sctx, txtDigest );
|
||||
|
||||
OS_TPrintf("Wlan Firm digest: ");
|
||||
for (i = 0; i < SVC_SHA1_DIGEST_SIZE; i++ )
|
||||
{
|
||||
OS_TPrintf("%02X ", txtDigest[i]);
|
||||
}
|
||||
OS_TPrintf("\n");
|
||||
#if (REPORT_HASH_COMPARISON == 1)
|
||||
OS_TPrintf("[Wlan Firm] Wlan Firm digest: ");
|
||||
PrintDigest((u8*)txtDigest);
|
||||
#endif
|
||||
|
||||
/* decrypt according to RSA security */
|
||||
signHeap = SYSM_Alloc( SIGNHEAP_SIZE );
|
||||
@ -252,7 +249,7 @@ BOOL VerifyWlanfirmSignature(u8* buffer, u32 length)
|
||||
|
||||
if (FALSE == SVC_DecryptSign( &rctx, signDigest, (const void*)pSign, (const void*)pPubkey ))
|
||||
{
|
||||
OS_TPrintf("Wlan Firmware authentication has failed.\n");
|
||||
OS_TPrintf("[Wlan Firm] Wlan Firmware authentication has failed.\n");
|
||||
/* continue verifying process even though decryption fails
|
||||
in the case of bonding option = 0x01 (support ARM9/ARM7) */
|
||||
if (!( HWi_WSYS08_OP_OP0_MASK == SCFG_ReadBondingOption() ))
|
||||
@ -260,18 +257,16 @@ BOOL VerifyWlanfirmSignature(u8* buffer, u32 length)
|
||||
SYSM_Free(signHeap);
|
||||
return FALSE;
|
||||
}
|
||||
OS_TPrintf("But installation continues.\n");
|
||||
OS_TPrintf("[Wlan Firm] But installation continues.\n");
|
||||
}
|
||||
|
||||
SYSM_Free(signHeap);
|
||||
|
||||
OS_TPrintf("Decrypted digest: ");
|
||||
for (i = 0; i < SVC_SHA1_DIGEST_SIZE; i++ )
|
||||
{
|
||||
OS_TPrintf("%02X ", signDigest[i]);
|
||||
}
|
||||
OS_TPrintf("\n");
|
||||
|
||||
#if (REPORT_HASH_COMPARISON == 1)
|
||||
OS_TPrintf("[Wlan Firm] Decrypted digest: ");
|
||||
PrintDigest((u8*)signDigest);
|
||||
#endif
|
||||
|
||||
/*
|
||||
skip comparing SHA1 digests in the case of bonding option = 0x01 (support ARM9/ARM7)
|
||||
this restriction is for debugging TWL wireless firmware.
|
||||
@ -286,7 +281,7 @@ BOOL VerifyWlanfirmSignature(u8* buffer, u32 length)
|
||||
}
|
||||
|
||||
#if (MEASURE_VERIFY_SIGN_TIME == 1)
|
||||
OS_TPrintf("Wlan firm:Verify signature Time=%dmsec\n", OS_TicksToMilliSeconds(OS_GetTick() - vstart));
|
||||
OS_TPrintf("[Wlan Firm] Verify signature Time=%dmsec\n", OS_TicksToMilliSeconds(OS_GetTick() - vstart));
|
||||
#endif
|
||||
|
||||
return TRUE;
|
||||
@ -300,41 +295,50 @@ BOOL CheckHash(const u8* hash, const u8* buffer, u32 length)
|
||||
#if (MEASURE_VERIFY_SIGN_TIME == 1)
|
||||
OSTick vstart = OS_GetTick();
|
||||
#endif
|
||||
int i;
|
||||
|
||||
OS_TPrintf("Digest to compare: ");
|
||||
for (i = 0; i < SVC_SHA1_DIGEST_SIZE; i++ )
|
||||
{
|
||||
OS_TPrintf("%02X ", hash[i]);
|
||||
}
|
||||
OS_TPrintf("\n");
|
||||
|
||||
#if (REPORT_HASH_COMPARISON == 1)
|
||||
OS_TPrintf("[Wlan Firm] Digest to compare: ");
|
||||
PrintDigest((u8*)hash);
|
||||
#endif
|
||||
|
||||
/* calculate SHA-1 digest */
|
||||
SVC_SHA1Init( &sctx );
|
||||
SVC_SHA1Update( &sctx, (const void*)buffer, length);
|
||||
SVC_SHA1GetHash( &sctx, txtDigest );
|
||||
|
||||
OS_TPrintf("Calculated digest: ");
|
||||
for (i = 0; i < SVC_SHA1_DIGEST_SIZE; i++ )
|
||||
{
|
||||
OS_TPrintf("%02X ", txtDigest[i]);
|
||||
}
|
||||
OS_TPrintf("\n");
|
||||
#if (REPORT_HASH_COMPARISON == 1)
|
||||
OS_TPrintf("[Wlan Firm] Calculated digest: ");
|
||||
PrintDigest((u8*)txtDigest);
|
||||
#endif
|
||||
|
||||
/* verify digest */
|
||||
if (FALSE == SVC_CompareSHA1( (const void*)hash, (const void*)txtDigest ))
|
||||
{
|
||||
#if (MEASURE_VERIFY_SIGN_TIME == 1)
|
||||
OS_TPrintf("Wlan firm:Verify digest Time=%dmsec\n", OS_TicksToMilliSeconds(OS_GetTick() - vstart));
|
||||
OS_TPrintf("[Wlan Firm] Verify digest Time=%dmsec\n", OS_TicksToMilliSeconds(OS_GetTick() - vstart));
|
||||
#endif
|
||||
return FALSE;
|
||||
}
|
||||
#if (MEASURE_VERIFY_SIGN_TIME == 1)
|
||||
OS_TPrintf("Wlan firm:Verify digest Time=%dmsec\n", OS_TicksToMilliSeconds(OS_GetTick() - vstart));
|
||||
OS_TPrintf("[Wlan Firm] Verify digest Time=%dmsec\n", OS_TicksToMilliSeconds(OS_GetTick() - vstart));
|
||||
#endif
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#if (REPORT_HASH_COMPARISON == 1)
|
||||
void PrintDigest(u8 *digest)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SVC_SHA1_DIGEST_SIZE; i++ )
|
||||
{
|
||||
OS_TPrintf("%02X ", digest[i]);
|
||||
}
|
||||
OS_TPrintf("\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
BOOL InstallWlanFirmware(void)
|
||||
{
|
||||
NWMRetCode err;
|
||||
@ -363,70 +367,74 @@ BOOL InstallWlanFirmware(void)
|
||||
} else {
|
||||
s32 flen = 0;
|
||||
char path[256];
|
||||
u32 hwVersion;
|
||||
u32 offset, length;
|
||||
u8 hdrBuffer[FWHEADER_SIZE];
|
||||
u8 *pHash = NULL;
|
||||
u32 fwType;
|
||||
|
||||
// ColdStart
|
||||
if (FALSE == GetFirmwareFilepath(path)) {
|
||||
goto instfirm_error;
|
||||
}
|
||||
|
||||
// TODO: get WLAN chip version
|
||||
hwVersion = NWM_HW_VERSION_1_1; // tentative
|
||||
// Get WLAN Firmware type
|
||||
fwType = ((NWMFirmDataSegment *)NWM_PARAM_FWDATA_ADDRESS)->fwType;
|
||||
OS_TPrintf("[Wlan Firm] FWtype is %d\n", fwType);
|
||||
|
||||
// Read header of WLAN firm
|
||||
flen = ReadFirmwareHeader(path, hdrBuffer, FWHEADER_SIZE);
|
||||
|
||||
if ( 0 >= flen )
|
||||
{
|
||||
OS_TPrintf("Error: Couldn't read wlan firmware header.\n");
|
||||
OS_TPrintf("[Wlan Firm] Error: Couldn't read wlan firmware header.\n");
|
||||
goto instfirm_error;
|
||||
}
|
||||
|
||||
/*
|
||||
check signature data
|
||||
*/
|
||||
// Check signature data
|
||||
if (FALSE == VerifyWlanfirmSignature(hdrBuffer, (u32)flen))
|
||||
{
|
||||
OS_TPrintf("Error: This Wlan Firmware is quite illegal!\n");
|
||||
OS_TPrintf(" It has never been installed.\n");
|
||||
OS_TPrintf("[Wlan Firm] Error: This Wlan Firmware is quite illegal!\n");
|
||||
OS_TPrintf("[Wlan Firm] It has never been installed.\n");
|
||||
goto instfirm_error;
|
||||
}
|
||||
|
||||
offset = NWMi_GetFirmImageOffset(hdrBuffer, hwVersion);
|
||||
length = NWMi_GetFirmImageLength(hdrBuffer, hwVersion);
|
||||
// Find corresponding FW image
|
||||
offset = NWMi_GetFirmImageOffset(hdrBuffer, fwType);
|
||||
length = NWMi_GetFirmImageLength(hdrBuffer, fwType);
|
||||
|
||||
if (offset == 0 || length == 0) {
|
||||
OS_TPrintf("Error: Couldn't get Firmware image.\n");
|
||||
OS_TPrintf("[Wlan Firm] Error: Couldn't get Firmware image.\n");
|
||||
goto instfirm_error;
|
||||
}
|
||||
|
||||
/* Allocate FW buffer from heap. */
|
||||
pFwBuffer = SYSM_Alloc( length );
|
||||
if (!pFwBuffer) {
|
||||
OS_TWarning("Error: Couldn't allocate memory for WlanFirmware.\n");
|
||||
OS_TWarning("[Wlan Firm] Error: Couldn't allocate memory for WlanFirmware.\n");
|
||||
goto instfirm_error;
|
||||
}
|
||||
|
||||
|
||||
// Read FW image
|
||||
flen = ReadFirmwareBinary(path, offset, pFwBuffer, (s32)length);
|
||||
|
||||
if ( 0 >= flen )
|
||||
{
|
||||
OS_TPrintf("Error: Couldn't read wlan firmware.\n");
|
||||
OS_TPrintf("[Wlan Firm] Error: Couldn't read wlan firmware.\n");
|
||||
goto instfirm_error;
|
||||
}
|
||||
|
||||
pHash = NWMi_GetFirmImageHashAddress(hdrBuffer, hwVersion);
|
||||
// Compare hashes
|
||||
pHash = NWMi_GetFirmImageHashAddress(hdrBuffer, fwType);
|
||||
if (pHash == NULL)
|
||||
{
|
||||
OS_TPrintf("Error: Couldn't get hash of wlan firmware image.\n");
|
||||
OS_TPrintf("[Wlan Firm] Error: Couldn't get hash of wlan firmware image.\n");
|
||||
goto instfirm_error;
|
||||
}
|
||||
|
||||
|
||||
OS_TPrintf("[Wlan Firm] Check hash of firmware image.\n");
|
||||
if (FALSE == CheckHash((const u8*)pHash, (const u8*)pFwBuffer, length))
|
||||
{
|
||||
OS_TPrintf("Error: Hash data is illegal.\n");
|
||||
OS_TPrintf("[Wlan Firm] Error: Hash data is illegal.\n");
|
||||
goto instfirm_error;
|
||||
}
|
||||
|
||||
@ -435,6 +443,8 @@ BOOL InstallWlanFirmware(void)
|
||||
OS_TWarning("Error: Couldn't allocate memory for NWM.\n");
|
||||
goto instfirm_error;
|
||||
}
|
||||
|
||||
// Start FW installation
|
||||
NWM_Init(pNwmBuf, NWM_SYSTEM_BUF_SIZE, 3); /* 3 -> DMA no. */
|
||||
|
||||
#if (MEASURE_WIRELESS_INITTIME == 1)
|
||||
|
||||
@ -16,13 +16,41 @@
|
||||
# $Author:
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
SUBMAKES = Makefile0 Makefile1
|
||||
TARGET_FIRM = SYSTEMMENU
|
||||
|
||||
override TARGET_PLATFORM := TWL
|
||||
override TARGET_CODEGEN := ARM
|
||||
override TWL_ARCHGEN := LIMITED
|
||||
|
||||
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
|
||||
MY_FIRM_ROOT = $(TWLWIRELESS_ROOT)/binfile
|
||||
|
||||
MY_FIRM_ROOT_CYG = $(call eupath,$(MY_FIRM_ROOT))
|
||||
|
||||
|
||||
MY_TITLE = WLFW
|
||||
MY_FIRM = $(MY_FIRM_ROOT_CYG)/nwm_firm.bin
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
MY_SRL = $(MY_TITLE).srl
|
||||
MY_TAD = $(MY_TITLE).tad
|
||||
ATTACH_HEADER_COMMAND = $(SYSMENU_TOOLSDIR)/bin/attach_dummyromheader.exe
|
||||
|
||||
INSTALL_TARGETS = $(MY_TAD)
|
||||
INSTALL_DIR = $(ROOT)/build/tools/TwlNMenu/data
|
||||
|
||||
LDIRT_CLEAN = $(MY_SRL) $(MY_TAD)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
|
||||
|
||||
do-build : $(MY_TAD)
|
||||
|
||||
$(MY_SRL): $(MY_FIRM)
|
||||
$(ATTACH_HEADER_COMMAND) -s -l -i $(call empath,$<) -c $(MY_TITLE) -o $@
|
||||
|
||||
$(MY_TAD): $(MY_SRL)
|
||||
$(MAKETAD) -s $< $(MAKETAD_FLAGS) -o $@
|
||||
|
||||
#===== End of Makefile =====
|
||||
|
||||
@ -1,56 +0,0 @@
|
||||
#! 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:
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
TARGET_FIRM = SYSTEMMENU
|
||||
|
||||
override TARGET_PLATFORM := TWL
|
||||
override TARGET_CODEGEN := ARM
|
||||
override TWL_ARCHGEN := LIMITED
|
||||
|
||||
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
|
||||
MY_FIRM_ROOT = $(TWLWIRELESS_ROOT)/binfile
|
||||
|
||||
MY_FIRM_ROOT_CYG = $(call eupath,$(MY_FIRM_ROOT))
|
||||
|
||||
|
||||
MY_TITLE = WFW0
|
||||
MY_FIRM = $(MY_FIRM_ROOT_CYG)/nwm_firm.bin
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
MY_SRL = $(MY_TITLE).srl
|
||||
MY_TAD = $(MY_TITLE).tad
|
||||
ATTACH_HEADER_COMMAND = $(SYSMENU_TOOLSDIR)/bin/attach_dummyromheader.exe
|
||||
|
||||
INSTALL_TARGETS = $(MY_TAD)
|
||||
INSTALL_DIR = $(ROOT)/build/tools/TwlNMenu/data
|
||||
|
||||
LDIRT_CLEAN = $(MY_SRL) $(MY_TAD)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
|
||||
|
||||
do-build : $(MY_TAD)
|
||||
|
||||
$(MY_SRL): $(MY_FIRM)
|
||||
$(ATTACH_HEADER_COMMAND) -s -l -i $(call empath,$<) -c $(MY_TITLE) -o $@
|
||||
|
||||
$(MY_TAD): $(MY_SRL)
|
||||
$(MAKETAD) -s $< $(MAKETAD_FLAGS) -o $@
|
||||
|
||||
#===== End of Makefile =====
|
||||
@ -1,52 +0,0 @@
|
||||
#! 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:
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
TARGET_FIRM = SYSTEMMENU
|
||||
|
||||
override TARGET_PLATFORM := TWL
|
||||
override TARGET_CODEGEN := ARM
|
||||
override TWL_ARCHGEN := LIMITED
|
||||
|
||||
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
|
||||
MY_FIRM_ROOT = $(TWLWIRELESS_ROOT)/binfile
|
||||
MY_FIRM_ROOT_CYG = $(call eupath,$(MY_FIRM_ROOT))
|
||||
MY_TITLE = WFW1
|
||||
MY_FIRM = $(MY_FIRM_ROOT_CYG)/nwm_firm.bin
|
||||
#----------------------------------------------------------------------------
|
||||
MY_SRL = $(MY_TITLE).srl
|
||||
MY_TAD = $(MY_TITLE).tad
|
||||
ATTACH_HEADER_COMMAND = $(SYSMENU_TOOLSDIR)/bin/attach_dummyromheader.exe
|
||||
|
||||
INSTALL_TARGETS = $(MY_TAD)
|
||||
INSTALL_DIR = $(ROOT)/build/tools/TwlNMenu/data
|
||||
|
||||
LDIRT_CLEAN = $(MY_SRL) $(MY_TAD)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
|
||||
|
||||
do-build : $(MY_TAD)
|
||||
|
||||
$(MY_SRL): $(MY_FIRM)
|
||||
$(ATTACH_HEADER_COMMAND) -s -l -i $(call empath,$<) -c $(MY_TITLE) -o $@
|
||||
|
||||
$(MY_TAD): $(MY_SRL)
|
||||
$(MAKETAD) -s $< $(MAKETAD_FLAGS) -o $@
|
||||
|
||||
#===== End of Makefile =====
|
||||
Loading…
Reference in New Issue
Block a user