mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
makegcdfirmへROMヘッダテンプレートを指定するオプション追加。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@402 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
89e0f3c708
commit
72ca446dc2
@ -40,6 +40,12 @@ MAKEFIRM_DEFS += -DFIRM_ROOT='$(FIRM_ROOT)' \
|
|||||||
-DMAKEFIRM_ARM7='$(basename $(MAKEFIRM_ARM7))' \
|
-DMAKEFIRM_ARM7='$(basename $(MAKEFIRM_ARM7))' \
|
||||||
-DMAKEFIRM_RSA_PRVKEY='$(MAKEFIRM_RSA_PRVKEY)' \
|
-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)
|
FIRM_SDEPENDS_BIN = $(MAKEFIRM_RSA_PRVKEY) $(MAKEFIRM_ARM9) $(MAKEFIRM_ARM7)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -167,20 +167,6 @@ SDK_WEAK_SYMBOL asm void _start( void )
|
|||||||
mov r2, #HW_DTCM_SIZE
|
mov r2, #HW_DTCM_SIZE
|
||||||
bl INITi_CpuClear32
|
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
|
//---- load autoload block and initialize bss
|
||||||
// bl INITi_DoAutoload
|
// bl INITi_DoAutoload
|
||||||
#ifndef SDK_FINALROM // for IS-TWL-DEBUGGER
|
#ifndef SDK_FINALROM // for IS-TWL-DEBUGGER
|
||||||
|
|||||||
Binary file not shown.
@ -24,7 +24,7 @@
|
|||||||
#include "defval.h"
|
#include "defval.h"
|
||||||
#include "version.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
|
// Main
|
||||||
@ -35,10 +35,11 @@ int main(int argc, char *argv[])
|
|||||||
int n;
|
int n;
|
||||||
int narg;
|
int narg;
|
||||||
char *gcdfirmFile;
|
char *gcdfirmFile;
|
||||||
|
char *rhFile = NULL;
|
||||||
|
|
||||||
InitAppName(argv[0]);
|
InitAppName(argv[0]);
|
||||||
|
|
||||||
while ((n = getopt(argc, argv, "D:hvpd")) != -1)
|
while ((n = getopt(argc, argv, "D:hvt:pd")) != -1)
|
||||||
{
|
{
|
||||||
switch (n)
|
switch (n)
|
||||||
{
|
{
|
||||||
@ -50,6 +51,10 @@ int main(int argc, char *argv[])
|
|||||||
AddDefVal(optarg);
|
AddDefVal(optarg);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 't':
|
||||||
|
rhFile = optarg;
|
||||||
|
break;
|
||||||
|
|
||||||
case 'p':
|
case 'p':
|
||||||
PrintMode = TRUE;
|
PrintMode = TRUE;
|
||||||
break;
|
break;
|
||||||
@ -70,7 +75,7 @@ int main(int argc, char *argv[])
|
|||||||
gcdfirmFile =
|
gcdfirmFile =
|
||||||
strdup(narg >
|
strdup(narg >
|
||||||
1 ? argv[optind + 1] : ChangeSuffix(argv[optind], DEFAULT_NORFIRM_SUFFIX));
|
1 ? argv[optind + 1] : ChangeSuffix(argv[optind], DEFAULT_NORFIRM_SUFFIX));
|
||||||
return makegcdfirm(argv[optind], gcdfirmFile);
|
return makegcdfirm(argv[optind], gcdfirmFile, rhFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
usage:
|
usage:
|
||||||
@ -80,7 +85,7 @@ int main(int argc, char *argv[])
|
|||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"NITRO-SDK Development Tool - %s - Make gcdfirm file \n"
|
"NITRO-SDK Development Tool - %s - Make gcdfirm file \n"
|
||||||
"Build %lu\n\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);
|
makegcdfirm, SDK_DATE_OF_LATEST_FILE, makegcdfirm);
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
@ -91,7 +96,7 @@ int main(int argc, char *argv[])
|
|||||||
// makegcdfirm
|
// 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);
|
debug_printf("makegcdfirm(): '%s' -> '%s'\n", specFile, norFile);
|
||||||
|
|
||||||
@ -102,5 +107,5 @@ static int makegcdfirm(const char *specFile, const char *norFile)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return OutputGcdfirmFile(specFile, norFile) ? 0 : 1;
|
return OutputGcdfirmFile(specFile, norFile, rhFile) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,6 +19,6 @@
|
|||||||
|
|
||||||
#include "misc.h"
|
#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_
|
#endif //MAKEGCDFIRM_H_
|
||||||
|
|||||||
@ -83,7 +83,7 @@ static BOOL NandFirm_Command(char * line, int num);
|
|||||||
static BOOL ERROR_Command(char * line, int num);
|
static BOOL ERROR_Command(char * line, int num);
|
||||||
|
|
||||||
static BOOL InitializeAesKey(void);
|
static BOOL InitializeAesKey(void);
|
||||||
static BOOL InitializeGcdfirmFile(void);
|
static BOOL InitializeGcdfirmFile(const char *rhFile);
|
||||||
static BOOL FinalizeGcdfirmFile(const char *gcdFile);
|
static BOOL FinalizeGcdfirmFile(const char *gcdFile);
|
||||||
|
|
||||||
static s32 Offset; // Current offset
|
static s32 Offset; // Current offset
|
||||||
@ -101,7 +101,7 @@ tErrorFlags errFlags;
|
|||||||
// Output - gcdfirm File
|
// Output - gcdfirm File
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
BOOL OutputGcdfirmFile(const char *specFile, const char *gcdFile)
|
BOOL OutputGcdfirmFile(const char *specFile, const char *gcdFile, const char *rhFile)
|
||||||
{
|
{
|
||||||
char *buffer;
|
char *buffer;
|
||||||
BOOL state;
|
BOOL state;
|
||||||
@ -118,7 +118,7 @@ BOOL OutputGcdfirmFile(const char *specFile, const char *gcdFile)
|
|||||||
|
|
||||||
specFileName = specFile;
|
specFileName = specFile;
|
||||||
|
|
||||||
state = InitializeGcdfirmFile() && ConstructGcdfirmFile(buffer) &&
|
state = InitializeGcdfirmFile( rhFile ) && ConstructGcdfirmFile(buffer) &&
|
||||||
FinalizeGcdfirmFile(gcdFile) && CloseFile();
|
FinalizeGcdfirmFile(gcdFile) && CloseFile();
|
||||||
|
|
||||||
if (!state)
|
if (!state)
|
||||||
@ -933,9 +933,14 @@ static BOOL InitializeAesKey(void)
|
|||||||
// Output - Initialize Gcdfirm File
|
// 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]));
|
memset(&signedContext.hash[FIRM_SIGNED_HASH_IDX_HASH_TABLE], 0x00, sizeof(signedContext.hash[0]));
|
||||||
gcdHeader.h.w = wram_regs_init;
|
gcdHeader.h.w = wram_regs_init;
|
||||||
|
|||||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user