makegcdfirmへROMヘッダテンプレートを指定するオプション追加。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@402 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
nakasima 2007-12-26 06:32:12 +00:00
parent 89e0f3c708
commit 72ca446dc2
7 changed files with 28 additions and 26 deletions

View File

@ -40,6 +40,12 @@ MAKEFIRM_DEFS += -DFIRM_ROOT='$(FIRM_ROOT)' \
-DMAKEFIRM_ARM7='$(basename $(MAKEFIRM_ARM7))' \
-DMAKEFIRM_RSA_PRVKEY='$(MAKEFIRM_RSA_PRVKEY)' \
ifdef TWL_KEYSDIR
MAKEFIRM_FLAGS += -t'$(TWL_KEYSDIR)/blowfish/gcdfirm_header_twlj.template.sbin'
else
MAKEFIRM_FLAGS += -t'$(FIRM_ROOT)/build/tools/makegcdfirm/gcdfirm_header_twlj.template.sbin'
endif
FIRM_SDEPENDS_BIN = $(MAKEFIRM_RSA_PRVKEY) $(MAKEFIRM_ARM9) $(MAKEFIRM_ARM7)

View File

@ -167,20 +167,6 @@ SDK_WEAK_SYMBOL asm void _start( void )
mov r2, #HW_DTCM_SIZE
bl INITi_CpuClear32
#if 0
// BG/OBJ palette (1KB)
mov r0, #0
ldr r1, =HW_PLTT
mov r2, #HW_PLTT_SIZE
bl INITi_CpuClear32
// OAM (1KB)
mov r0, #0x0200
ldr r1, =HW_OAM
mov r2, #HW_OAM_SIZE
bl INITi_CpuClear32
#endif
//---- load autoload block and initialize bss
// bl INITi_DoAutoload
#ifndef SDK_FINALROM // for IS-TWL-DEBUGGER

View File

@ -24,7 +24,7 @@
#include "defval.h"
#include "version.h"
static int makegcdfirm(const char *specFile, const char *norFile);
static int makegcdfirm(const char *specFile, const char *norFile, const char *rhFile);
//---------------------------------------------------------------------------
// Main
@ -35,10 +35,11 @@ int main(int argc, char *argv[])
int n;
int narg;
char *gcdfirmFile;
char *rhFile = NULL;
InitAppName(argv[0]);
while ((n = getopt(argc, argv, "D:hvpd")) != -1)
while ((n = getopt(argc, argv, "D:hvt:pd")) != -1)
{
switch (n)
{
@ -50,6 +51,10 @@ int main(int argc, char *argv[])
AddDefVal(optarg);
break;
case 't':
rhFile = optarg;
break;
case 'p':
PrintMode = TRUE;
break;
@ -70,7 +75,7 @@ int main(int argc, char *argv[])
gcdfirmFile =
strdup(narg >
1 ? argv[optind + 1] : ChangeSuffix(argv[optind], DEFAULT_NORFIRM_SUFFIX));
return makegcdfirm(argv[optind], gcdfirmFile);
return makegcdfirm(argv[optind], gcdfirmFile, rhFile);
}
usage:
@ -80,7 +85,7 @@ int main(int argc, char *argv[])
fprintf(stderr,
"NITRO-SDK Development Tool - %s - Make gcdfirm file \n"
"Build %lu\n\n"
"Usage: %s [-phv] [-DNAME=VALUE ...] SPECFILE [NORFIRMFILE]\n\n",
"Usage: %s [-phv] [-tROMHEADERFILE] [-DNAME=VALUE ...] SPECFILE [NORFIRMFILE]\n\n",
makegcdfirm, SDK_DATE_OF_LATEST_FILE, makegcdfirm);
}
return 1;
@ -91,7 +96,7 @@ int main(int argc, char *argv[])
// makegcdfirm
//---------------------------------------------------------------------------
static int makegcdfirm(const char *specFile, const char *norFile)
static int makegcdfirm(const char *specFile, const char *norFile, const char *rhFile)
{
debug_printf("makegcdfirm(): '%s' -> '%s'\n", specFile, norFile);
@ -102,5 +107,5 @@ static int makegcdfirm(const char *specFile, const char *norFile)
return 1;
}
return OutputGcdfirmFile(specFile, norFile) ? 0 : 1;
return OutputGcdfirmFile(specFile, norFile, rhFile) ? 0 : 1;
}

View File

@ -19,6 +19,6 @@
#include "misc.h"
BOOL OutputGcdfirmFile(const char *specFile, const char *gcdFile);
BOOL OutputGcdfirmFile(const char *specFile, const char *gcdFile, const char *rhFile);
#endif //MAKEGCDFIRM_H_

View File

@ -83,7 +83,7 @@ static BOOL NandFirm_Command(char * line, int num);
static BOOL ERROR_Command(char * line, int num);
static BOOL InitializeAesKey(void);
static BOOL InitializeGcdfirmFile(void);
static BOOL InitializeGcdfirmFile(const char *rhFile);
static BOOL FinalizeGcdfirmFile(const char *gcdFile);
static s32 Offset; // Current offset
@ -101,7 +101,7 @@ tErrorFlags errFlags;
// Output - gcdfirm File
//---------------------------------------------------------------------------
BOOL OutputGcdfirmFile(const char *specFile, const char *gcdFile)
BOOL OutputGcdfirmFile(const char *specFile, const char *gcdFile, const char *rhFile)
{
char *buffer;
BOOL state;
@ -118,7 +118,7 @@ BOOL OutputGcdfirmFile(const char *specFile, const char *gcdFile)
specFileName = specFile;
state = InitializeGcdfirmFile() && ConstructGcdfirmFile(buffer) &&
state = InitializeGcdfirmFile( rhFile ) && ConstructGcdfirmFile(buffer) &&
FinalizeGcdfirmFile(gcdFile) && CloseFile();
if (!state)
@ -933,9 +933,14 @@ static BOOL InitializeAesKey(void)
// Output - Initialize Gcdfirm File
//---------------------------------------------------------------------------
static BOOL InitializeGcdfirmFile(void)
static BOOL InitializeGcdfirmFile(const char *rhFile)
{
ReadRomHeaderFile( GetSrcPath(GetAppBaseName(), DEFAULT_ROMHEADER_TEMPLATE) );
if ( !rhFile )
{
rhFile = GetSrcPath(GetAppBaseName(), DEFAULT_ROMHEADER_TEMPLATE);
}
ReadRomHeaderFile( rhFile );
memset(&signedContext.hash[FIRM_SIGNED_HASH_IDX_HASH_TABLE], 0x00, sizeof(signedContext.hash[0]));
gcdHeader.h.w = wram_regs_init;