mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
・NORファームがビルドできるよう変更。
・とりあえずテスト用にnorfirm-printがビルドできるように変更。 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@7 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
a5de32578d
commit
9501084c1d
@ -20,8 +20,6 @@ TWLFIRM_COMMONDEFS_ = TRUE
|
|||||||
|
|
||||||
NITRO_NO_STD_PCHDR = TRUE # プリコンパイルヘッダ抑止
|
NITRO_NO_STD_PCHDR = TRUE # プリコンパイルヘッダ抑止
|
||||||
|
|
||||||
#TWLFIRM_ROOT ?= $(shell cygpath -am ../../)
|
|
||||||
|
|
||||||
export TWLBROM_ROOT := $(TWLFIRM_ROOT)/bootrom
|
export TWLBROM_ROOT := $(TWLFIRM_ROOT)/bootrom
|
||||||
|
|
||||||
|
|
||||||
@ -166,9 +164,9 @@ ifeq ($(CODEGEN_PROC),ARM9)
|
|||||||
|
|
||||||
FIRM_LIBS_BASE ?= \
|
FIRM_LIBS_BASE ?= \
|
||||||
libos \
|
libos \
|
||||||
libmi \
|
# libmi \
|
||||||
libgcd \
|
# libgcd \
|
||||||
libacsign \
|
# libacsign \
|
||||||
|
|
||||||
FIRM_TWL_LIBS_BASE ?= \
|
FIRM_TWL_LIBS_BASE ?= \
|
||||||
|
|
||||||
@ -176,11 +174,11 @@ else # ($(CODEGEN_PROC),ARM7)
|
|||||||
|
|
||||||
FIRM_LIBS_BASE ?= \
|
FIRM_LIBS_BASE ?= \
|
||||||
libos_sp \
|
libos_sp \
|
||||||
libnvram_sp \
|
# libnvram_sp \
|
||||||
libgcd_sp \
|
# libgcd_sp \
|
||||||
libaes_sp \
|
# libaes_sp \
|
||||||
libacsign_sp \
|
# libacsign_sp \
|
||||||
libfirmsd_sp \
|
# libfirmsd_sp \
|
||||||
|
|
||||||
FIRM_TWL_LIBS_BASE ?= \
|
FIRM_TWL_LIBS_BASE ?= \
|
||||||
|
|
||||||
@ -245,6 +243,14 @@ FIRM_INSTALL_ADDINS := $(FIRM_INSTALL_ROOT)/add-ins
|
|||||||
#
|
#
|
||||||
MACRO_FLAGS += -DFIRM_TARGET_$(FIRM_TARGET)
|
MACRO_FLAGS += -DFIRM_TARGET_$(FIRM_TARGET)
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Makelcf change for build firmware
|
||||||
|
#
|
||||||
|
ifneq ($(filter NORFIRM NANDFIRM GCDFIRM,$(FIRM_TARGET)),)
|
||||||
|
MAKELCF := $(NITROSDK_ROOT)/tools/bin/makelcf.exe
|
||||||
|
endif
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
endif # TWLFIRM_COMMONDEFS_
|
endif # TWLFIRM_COMMONDEFS_
|
||||||
#----- End of commondefs -----
|
#----- End of commondefs -----
|
||||||
|
|||||||
@ -56,16 +56,16 @@ firmlib:
|
|||||||
@$(MAKE) -C $(TWLFIRM_ROOT)/build/libraries
|
@$(MAKE) -C $(TWLFIRM_ROOT)/build/libraries
|
||||||
|
|
||||||
# .nor
|
# .nor
|
||||||
$(BINDIR)/%.nor: $(SDEPENDS_BIN) $(ROM_SPEC) $(LDEPENDS_BIN) $(EDEPENDS_BIN) $(MAKEFILE) $(MAKENORFIRM) $(MAKEFIRM_RSA_PRVKEY)
|
$(BINDIR)/%.nor: $(SDEPENDS_BIN) $(FIRM_SPEC) $(LDEPENDS_BIN) $(EDEPENDS_BIN) $(MAKEFILE) $(MAKENORFIRM) $(MAKEFIRM_RSA_PRVKEY)
|
||||||
$(MAKENORFIRM) $(MAKEFIRM_FLAGS) $(MAKEFIRM_DEFS) $(ROM_SPEC) $@
|
$(MAKENORFIRM) $(MAKEFIRM_FLAGS) $(MAKEFIRM_DEFS) $(FIRM_SPEC) $@
|
||||||
|
|
||||||
# .nand
|
# .nand
|
||||||
$(BINDIR)/%.nand: $(SDEPENDS_BIN) $(ROM_SPEC) $(LDEPENDS_BIN) $(EDEPENDS_BIN) $(MAKEFILE) $(MAKENANDFIRM) $(MAKEFIRM_RSA_PRVKEY)
|
$(BINDIR)/%.nand: $(SDEPENDS_BIN) $(FIRM_SPEC) $(LDEPENDS_BIN) $(EDEPENDS_BIN) $(MAKEFILE) $(MAKENANDFIRM) $(MAKEFIRM_RSA_PRVKEY)
|
||||||
$(MAKENANDFIRM) $(MAKEFIRM_FLAGS) $(MAKEFIRM_DEFS) $(ROM_SPEC) $@
|
$(MAKENANDFIRM) $(MAKEFIRM_FLAGS) $(MAKEFIRM_DEFS) $(FIRM_SPEC) $@
|
||||||
|
|
||||||
# .gcd
|
# .gcd
|
||||||
$(BINDIR)/%.gcd: $(SDEPENDS_BIN) $(ROM_SPEC) $(LDEPENDS_BIN) $(EDEPENDS_BIN) $(MAKEFILE) $(MAKEGCDFIRM) $(MAKEFIRM_RSA_PRVKEY)
|
$(BINDIR)/%.gcd: $(SDEPENDS_BIN) $(FIRM_SPEC) $(LDEPENDS_BIN) $(EDEPENDS_BIN) $(MAKEFILE) $(MAKEGCDFIRM) $(MAKEFIRM_RSA_PRVKEY)
|
||||||
$(MAKEGCDFIRM) $(MAKEFIRM_FLAGS) $(MAKEFIRM_DEFS) $(ROM_SPEC) $@
|
$(MAKEGCDFIRM) $(MAKEFIRM_FLAGS) $(MAKEFIRM_DEFS) $(FIRM_SPEC) $@
|
||||||
|
|
||||||
# .rbin
|
# .rbin
|
||||||
$(BINDIR)/$(TARGET_BIN_BASENAME).rbin: $(OBJS)
|
$(BINDIR)/$(TARGET_BIN_BASENAME).rbin: $(OBJS)
|
||||||
@ -73,7 +73,18 @@ $(BINDIR)/$(TARGET_BIN_BASENAME).rbin: $(OBJS)
|
|||||||
|
|
||||||
# .axf
|
# .axf
|
||||||
$(BINDIR)/$(TARGET_BIN_BASENAME).axf: $(OBJS) $(LCFILE) $(MAKEFILE) $(LDEPENDS_NEF) $(EDEPENDS_NEF) $(ALIBRARIES) $(LDRES_FILE) $(CW_LIBCXX)
|
$(BINDIR)/$(TARGET_BIN_BASENAME).axf: $(OBJS) $(LCFILE) $(MAKEFILE) $(LDEPENDS_NEF) $(EDEPENDS_NEF) $(ALIBRARIES) $(LDRES_FILE) $(CW_LIBCXX)
|
||||||
$(LD) $(LDFLAGS) $(LIBRARY_DIRS) @$(call empath,$(LDRES_FILE)) $(call empath,$(LCFILE)) -o $(call empath,$@)
|
ifeq ($(NITRO_CCTYPE),RVCT)
|
||||||
|
$(LD) $(LDFLAGS) $(LIBRARY_DIRS) -o $@ $(GLIBRARIES) $(OBJS)
|
||||||
|
else
|
||||||
|
$(LD) $(LDFLAGS) $(LIBRARY_DIRS) @$(LDRES_FILE) $(LCFILE) -o $@
|
||||||
|
ifeq ($(TWL_PLATFORM),TS)
|
||||||
|
cp $(BINDIR)/$(TARGET_BIN_BASENAME).axf $(BINDIR)/$(TARGET_BIN_BASENAME).nef
|
||||||
|
else # ($(TWL_PLATFORM),BB)
|
||||||
|
ifdef FIRM_STRIP_AXF
|
||||||
|
$(OBJCOPY) $@ $(BINDIR)/$(TARGET_BIN_BASENAME).sbin
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
TWLFIRM_MODULERULES_ = TRUE
|
TWLFIRM_MODULERULES_ = TRUE
|
||||||
|
|||||||
41
build/libraries/Makefile
Normal file
41
build/libraries/Makefile
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#! make -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlFirm - libraries
|
||||||
|
# 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 $(TWLFIRM_ROOT)/build/buildtools/commondefs
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
SUBDIRS = \
|
||||||
|
os \
|
||||||
|
# syscall \
|
||||||
|
# init \
|
||||||
|
# mi \
|
||||||
|
# nvram \
|
||||||
|
# gcd \
|
||||||
|
# aes \
|
||||||
|
# acsign \
|
||||||
|
# acsign_ecc \
|
||||||
|
# devices \
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
include $(TWLFIRM_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
|
|
||||||
|
#===== End of Makefile =====
|
||||||
62
build/libraries/os/ARM7/Makefile
Normal file
62
build/libraries/os/ARM7/Makefile
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
#! make -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlFirm - libraries_sp - os
|
||||||
|
# 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:$
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
SUBDIRS =
|
||||||
|
#SUBMAKES = Makefile.CALLTRACE \
|
||||||
|
# Makefile.FUNCTIONCOST
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# build ARM & THUMB libraries
|
||||||
|
FIRM_CODEGEN_ALL ?= TRUE
|
||||||
|
|
||||||
|
# Codegen for sub processer
|
||||||
|
FIRM_PROC = ARM7
|
||||||
|
|
||||||
|
SRCDIR = ../common .
|
||||||
|
|
||||||
|
SRCS = \
|
||||||
|
os_init_firm.c \
|
||||||
|
os_boot.c \
|
||||||
|
|
||||||
|
TARGET_LIB = libos_sp$(FIRM_LIBSUFFIX).a
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# DEBUG版ビルドの場合、RELEASE版でビルドして
|
||||||
|
# DEBUG版のライブラリを装います。
|
||||||
|
|
||||||
|
ifdef NITRO_DEBUG
|
||||||
|
NITRO_BUILD_TYPE = RELEASE
|
||||||
|
endif
|
||||||
|
|
||||||
|
include $(TWLFIRM_ROOT)/build/buildtools/commondefs
|
||||||
|
|
||||||
|
INSTALL_TARGETS = $(TARGETS)
|
||||||
|
INSTALL_DIR = $(FIRM_INSTALL_LIBDIR)
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
do-build: $(TARGETS)
|
||||||
|
|
||||||
|
include $(TWLFIRM_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
|
|
||||||
|
#===== End of Makefile =====
|
||||||
60
build/libraries/os/ARM9/Makefile
Normal file
60
build/libraries/os/ARM9/Makefile
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
#! make -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlFirm - libraries - os
|
||||||
|
# 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:$
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
SUBDIRS =
|
||||||
|
SUBMAKES =
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# build ARM & THUMB libraries
|
||||||
|
FIRM_CODEGEN_ALL ?= TRUE
|
||||||
|
|
||||||
|
SRCDIR = ../common .
|
||||||
|
|
||||||
|
SRCS = \
|
||||||
|
os_init_firm.c \
|
||||||
|
os_boot.c \
|
||||||
|
os_cache_tag.c \
|
||||||
|
|
||||||
|
TARGET_LIB = libos$(FIRM_LIBSUFFIX).a
|
||||||
|
|
||||||
|
include $(TWLFIRM_ROOT)/build/buildtools/commondefs
|
||||||
|
|
||||||
|
INSTALL_TARGETS = $(TARGETS)
|
||||||
|
INSTALL_DIR = $(FIRM_INSTALL_LIBDIR)
|
||||||
|
|
||||||
|
ifdef NITRO_CALLTRACE
|
||||||
|
CCFLAGS += -DOS_PROFILE_AVAILABLE -DOS_PROFILE_CALL_TRACE
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef NITRO_FUNCTIONCOST
|
||||||
|
CCFLAGS += -DOS_PROFILE_AVAILABLE -DOS_PROFILE_FUNCTION_COST
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef NITRO_TCM_APPLY
|
||||||
|
CCFLAGS += -DSDK_TCM_APPLY
|
||||||
|
endif
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
do-build: $(TARGETS)
|
||||||
|
|
||||||
|
include $(TWLFIRM_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
|
#===== End of Makefile =====
|
||||||
269
build/libraries/os/ARM9/os_cache_tag.c
Normal file
269
build/libraries/os/ARM9/os_cache_tag.c
Normal file
@ -0,0 +1,269 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlFirm - OS
|
||||||
|
File: os_cache_tag.c
|
||||||
|
|
||||||
|
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/os/ARM9/os_cache_tag.h>
|
||||||
|
#include <nitro/code32.h>
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
// DATA CACHE (for specified range)
|
||||||
|
//===========================================================================
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: DC_ClearTagAll
|
||||||
|
|
||||||
|
Description: clear tag in data cache
|
||||||
|
|
||||||
|
Arguments: None
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void DC_ClearTagAll( void )
|
||||||
|
{
|
||||||
|
DC_FillTagAll( 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: DC_FillTagAll
|
||||||
|
|
||||||
|
Description: clear tag in data cache
|
||||||
|
|
||||||
|
Arguments: data : fill data
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
asm void DC_FillTagAll( u32 data )
|
||||||
|
{
|
||||||
|
mov r12, #0
|
||||||
|
@1:
|
||||||
|
mov r2, #0
|
||||||
|
@2:
|
||||||
|
orr r3, r2, r12
|
||||||
|
mcr p15, 3, r3, c15, c0, 0 // set index
|
||||||
|
mcr p15, 3, r0, c15, c2, 0 // clear tag
|
||||||
|
add r2, r2, #HW_CACHE_LINE_SIZE
|
||||||
|
cmp r2, #HW_DCACHE_SIZE/4
|
||||||
|
blt @2
|
||||||
|
|
||||||
|
add r12, r12, #1<<HW_C7_CACHE_SET_NO_SHIFT
|
||||||
|
cmp r12, #0
|
||||||
|
bne @1
|
||||||
|
|
||||||
|
bx lr
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: DC_ClearDataAll
|
||||||
|
|
||||||
|
Description: clear data in data cache
|
||||||
|
|
||||||
|
Arguments: None
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void DC_ClearDataAll( void )
|
||||||
|
{
|
||||||
|
DC_FillDataAll( 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: DC_FillDataAll
|
||||||
|
|
||||||
|
Description: fill data in data cache
|
||||||
|
|
||||||
|
Arguments: data : fill data
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
asm void DC_FillDataAll( u32 data )
|
||||||
|
{
|
||||||
|
mov r12, #0
|
||||||
|
@1:
|
||||||
|
mov r2, #0
|
||||||
|
@2:
|
||||||
|
orr r3, r2, r12
|
||||||
|
mcr p15, 3, r3, c15, c0, 0 // set index
|
||||||
|
mcr p15, 3, r0, c15, c4, 0 // clear data
|
||||||
|
add r2, r2, #4
|
||||||
|
cmp r2, #HW_DCACHE_SIZE/4
|
||||||
|
blt @2
|
||||||
|
|
||||||
|
add r12, r12, #1<<HW_C7_CACHE_SET_NO_SHIFT
|
||||||
|
cmp r12, #0
|
||||||
|
bne @1
|
||||||
|
|
||||||
|
bx lr
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: DC_GetTagAndDataAll
|
||||||
|
|
||||||
|
Description: get tag and data in data cache
|
||||||
|
|
||||||
|
Arguments: tag tag address
|
||||||
|
data data address
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
asm void DC_GetTagAndDataAll( void* tag, void* data )
|
||||||
|
{
|
||||||
|
mov r12, #0
|
||||||
|
@1:
|
||||||
|
mov r2, #0
|
||||||
|
@2:
|
||||||
|
orr r3, r2, r12
|
||||||
|
mcr p15, 3, r3, c15, c0, 0 // set index
|
||||||
|
tst r2, #HW_CACHE_LINE_SIZE - 1
|
||||||
|
mrceq p15, 3, r3, c15, c2, 0 // get tag
|
||||||
|
streq r3, [r0], #4
|
||||||
|
mrc p15, 3, r3, c15, c4, 0 // get data
|
||||||
|
str r3, [r1], #4
|
||||||
|
add r2, r2, #4
|
||||||
|
cmp r2, #HW_DCACHE_SIZE/4
|
||||||
|
blt @2
|
||||||
|
|
||||||
|
add r12, r12, #1<<HW_C7_CACHE_SET_NO_SHIFT
|
||||||
|
cmp r12, #0
|
||||||
|
bne @1
|
||||||
|
|
||||||
|
bx lr
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
// INSTRUCTION CACHE
|
||||||
|
//===========================================================================
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: IC_ClearTagAll
|
||||||
|
|
||||||
|
Description: clear tag in instruction cache
|
||||||
|
|
||||||
|
Arguments: None
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void IC_ClearTagAll( void )
|
||||||
|
{
|
||||||
|
IC_FillTagAll( 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: IC_FillTagAll
|
||||||
|
|
||||||
|
Description: fill tag in instruction cache
|
||||||
|
|
||||||
|
Arguments: None
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
asm void IC_FillTagAll( u32 data )
|
||||||
|
{
|
||||||
|
mov r12, #0
|
||||||
|
@1:
|
||||||
|
mov r2, #0
|
||||||
|
@2:
|
||||||
|
orr r3, r2, r12
|
||||||
|
mcr p15, 3, r3, c15, c0, 0 // set index
|
||||||
|
mcr p15, 3, r0, c15, c1, 0 // clear tag
|
||||||
|
add r2, r2, #HW_CACHE_LINE_SIZE
|
||||||
|
cmp r2, #HW_ICACHE_SIZE/4
|
||||||
|
blt @2
|
||||||
|
|
||||||
|
add r12, r12, #1<<HW_C7_CACHE_SET_NO_SHIFT
|
||||||
|
cmp r12, #0
|
||||||
|
bne @1
|
||||||
|
|
||||||
|
bx lr
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: IC_ClearInstructionAll
|
||||||
|
|
||||||
|
Description: clear instruction in instruction cache
|
||||||
|
|
||||||
|
Arguments: None
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void IC_ClearInstructionAll( void )
|
||||||
|
{
|
||||||
|
IC_FillInstructionAll( 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: IC_FillInstructionAll
|
||||||
|
|
||||||
|
Description: fill instruction in instruction cache
|
||||||
|
|
||||||
|
Arguments: data : fill data
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
asm void IC_FillInstructionAll( u32 data )
|
||||||
|
{
|
||||||
|
mov r12, #0
|
||||||
|
@1:
|
||||||
|
mov r2, #0
|
||||||
|
@2:
|
||||||
|
orr r3, r2, r12
|
||||||
|
mcr p15, 3, r3, c15, c0, 0 // set index
|
||||||
|
mcr p15, 3, r0, c15, c3, 0 // clear data
|
||||||
|
add r2, r2, #4
|
||||||
|
cmp r2, #HW_ICACHE_SIZE/4
|
||||||
|
blt @2
|
||||||
|
|
||||||
|
add r12, r12, #1<<HW_C7_CACHE_SET_NO_SHIFT
|
||||||
|
cmp r12, #0
|
||||||
|
bne @1
|
||||||
|
|
||||||
|
bx lr
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: IC_GetTagAndInstructionAll
|
||||||
|
|
||||||
|
Description: get tag and instruction in instruction cache
|
||||||
|
|
||||||
|
Arguments: tag tag address
|
||||||
|
inst instruction address
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
asm void IC_GetTagAndInstructionAll( void* tag, void* inst )
|
||||||
|
{
|
||||||
|
mov r12, #0
|
||||||
|
@1:
|
||||||
|
mov r2, #0
|
||||||
|
@2:
|
||||||
|
orr r3, r2, r12
|
||||||
|
mcr p15, 3, r3, c15, c0, 0 // set index
|
||||||
|
tst r2, #HW_CACHE_LINE_SIZE - 1
|
||||||
|
mrceq p15, 3, r3, c15, c1, 0 // get tag
|
||||||
|
streq r3, [r0], #4
|
||||||
|
mrc p15, 3, r3, c15, c3, 0 // get data
|
||||||
|
str r3, [r1], #4
|
||||||
|
add r2, r2, #4
|
||||||
|
cmp r2, #HW_ICACHE_SIZE/4
|
||||||
|
blt @2
|
||||||
|
|
||||||
|
add r12, r12, #1<<HW_C7_CACHE_SET_NO_SHIFT
|
||||||
|
cmp r12, #0
|
||||||
|
bne @1
|
||||||
|
|
||||||
|
bx lr
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#include <nitro/codereset.h>
|
||||||
32
build/libraries/os/Makefile
Normal file
32
build/libraries/os/Makefile
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
#! make -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlFirm - libraries - os
|
||||||
|
# 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 $(TWLFIRM_ROOT)/build/buildtools/commondefs
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
SUBDIRS = ARM9 \
|
||||||
|
ARM7 \
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
include $(TWLFIRM_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
|
|
||||||
|
#===== End of Makefile =====
|
||||||
57
build/libraries/os/common/os_boot.c
Normal file
57
build/libraries/os/common/os_boot.c
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlFirm - OS
|
||||||
|
File: os_boot.c
|
||||||
|
|
||||||
|
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 <firm/os.h>
|
||||||
|
#include <firm/mi.h>
|
||||||
|
#ifdef SDK_ARM9
|
||||||
|
#include <twl/os/ARM9/os_cache_tag.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: OSi_Finalize
|
||||||
|
|
||||||
|
Description: finalize
|
||||||
|
|
||||||
|
Arguments: None
|
||||||
|
|
||||||
|
Returns: None
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void OSi_Finalize(void)
|
||||||
|
{
|
||||||
|
(void)OS_DisableIrq();
|
||||||
|
reg_OS_IE = 0;
|
||||||
|
reg_OS_IF = 0xffffffff;
|
||||||
|
#ifdef SDK_ARM7
|
||||||
|
reg_OS_IE2 = 0;
|
||||||
|
reg_OS_IF2 = 0xffffffff;
|
||||||
|
#else // SDK_ARM9
|
||||||
|
(void)OS_DisableInterrupts();
|
||||||
|
DC_Disable();
|
||||||
|
DC_FlushAll();
|
||||||
|
DC_WaitWriteBufferEmpty();
|
||||||
|
IC_Disable();
|
||||||
|
IC_InvalidateAll();
|
||||||
|
|
||||||
|
// clear cache
|
||||||
|
IC_ClearTagAll();
|
||||||
|
IC_ClearInstructionAll();
|
||||||
|
DC_ClearTagAll();
|
||||||
|
DC_ClearDataAll();
|
||||||
|
|
||||||
|
OS_DisableProtectionUnit();
|
||||||
|
#endif // SDK_ARM9
|
||||||
|
}
|
||||||
|
|
||||||
146
build/libraries/os/common/os_init_firm.c
Normal file
146
build/libraries/os/common/os_init_firm.c
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlFirm - OS
|
||||||
|
File: os_init_firm.c
|
||||||
|
|
||||||
|
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 <firm.h>
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: OS_InitNOR
|
||||||
|
|
||||||
|
Description: initialize sdk os for norfirm
|
||||||
|
|
||||||
|
Arguments: None
|
||||||
|
|
||||||
|
Returns: None
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
#pragma profile off
|
||||||
|
void OS_InitNOR(void)
|
||||||
|
{
|
||||||
|
#ifdef SDK_ARM9
|
||||||
|
//---- system shared area check
|
||||||
|
SDK_ASSERT((u32)&(OS_GetSystemWork()->command_area) == HW_CMD_AREA);
|
||||||
|
|
||||||
|
//----------------------------------------------------------------
|
||||||
|
// for ARM9
|
||||||
|
|
||||||
|
#ifdef SDK_ENABLE_ARM7_PRINT
|
||||||
|
// Init PrintServer for ARM7 (if specified)
|
||||||
|
OS_InitPrintServer();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//---- Init Arena (arenas except SUBPRIV-WRAM)
|
||||||
|
OS_InitArena();
|
||||||
|
|
||||||
|
//---- Init interProcessor I/F
|
||||||
|
// Sync with ARM7 to enable OS_GetConsoleType()
|
||||||
|
// PXI_Init() must be called before OS_InitArenaEx()
|
||||||
|
PXI_Init();
|
||||||
|
|
||||||
|
//---- Init Spinlock
|
||||||
|
OS_InitLock();
|
||||||
|
|
||||||
|
//---- Init Arena (extended main)
|
||||||
|
OS_InitArenaEx();
|
||||||
|
|
||||||
|
//---- Init IRQ Table
|
||||||
|
OS_InitIrqTable();
|
||||||
|
|
||||||
|
//---- Init IRQ Stack checker
|
||||||
|
OS_SetIrqStackChecker();
|
||||||
|
|
||||||
|
//---- Init Exception System
|
||||||
|
OS_InitException();
|
||||||
|
|
||||||
|
//---- Init MI (Wram bank and DMA0 arranged)
|
||||||
|
MI_Init();
|
||||||
|
|
||||||
|
//---- Init VCountAlarm
|
||||||
|
OS_InitVAlarm();
|
||||||
|
|
||||||
|
//---- Init VRAM exclusive System
|
||||||
|
OSi_InitVramExclusive();
|
||||||
|
|
||||||
|
//---- Init Thread System
|
||||||
|
#ifndef SDK_NO_THREAD
|
||||||
|
OS_InitThread();
|
||||||
|
#endif
|
||||||
|
//---- Init Reset System
|
||||||
|
#ifndef SDK_SMALL_BUILD
|
||||||
|
OS_InitReset();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//---- Init Cartridge
|
||||||
|
#ifndef SDK_TEG
|
||||||
|
// CTRDG_Init();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//---- Init Card
|
||||||
|
#ifndef SDK_SMALL_BUILD
|
||||||
|
// CARD_Init();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//---- Init Power Manager
|
||||||
|
#ifndef SDK_TEG
|
||||||
|
// PM_Init();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//---- adjust VCOUNT
|
||||||
|
// OSi_WaitVCount0();
|
||||||
|
|
||||||
|
#else // SDK_ARM9
|
||||||
|
//----------------------------------------------------------------
|
||||||
|
// for ARM7
|
||||||
|
|
||||||
|
//---- Init Arena (SUBPRIV-WRAM arena)
|
||||||
|
OS_InitArena();
|
||||||
|
|
||||||
|
//---- Init interProcessor I/F
|
||||||
|
PXI_Init();
|
||||||
|
|
||||||
|
//---- Init Spinlock
|
||||||
|
OS_InitLock();
|
||||||
|
|
||||||
|
//---- Init IRQ Table
|
||||||
|
OS_InitIrqTable();
|
||||||
|
|
||||||
|
#define SDK_EXCEPTION_BUG
|
||||||
|
#ifndef SDK_EXCEPTION_BUG
|
||||||
|
//---- Init Exception System
|
||||||
|
OS_InitException();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//---- Init Tick
|
||||||
|
OS_InitTick();
|
||||||
|
|
||||||
|
//---- Init Alarm System
|
||||||
|
OS_InitAlarm();
|
||||||
|
|
||||||
|
//---- Init Thread System
|
||||||
|
OS_InitThread();
|
||||||
|
|
||||||
|
//---- Init Reset System
|
||||||
|
#ifndef SDK_SMALL_BUILD
|
||||||
|
OS_InitReset();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//---- Init Cartridge
|
||||||
|
#ifndef SDK_TEG
|
||||||
|
// CTRDG_Init();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // SDK_ARM9
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma profile reset
|
||||||
48
build/norfirm/norfirm-print/ARM7/Makefile
Normal file
48
build/norfirm/norfirm-print/ARM7/Makefile
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#! make -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlFirm - tools - norfirm-print
|
||||||
|
# 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:$
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
FIRM_PROC = ARM7
|
||||||
|
FIRM_TARGET = NORFIRM
|
||||||
|
|
||||||
|
SUBDIRS =
|
||||||
|
|
||||||
|
LINCLUDES = ../include
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
TARGET_BIN = twl_norfirm7_print.axf
|
||||||
|
|
||||||
|
SRCS = \
|
||||||
|
main.c \
|
||||||
|
|
||||||
|
#SRCDIR = # using default
|
||||||
|
#LCFILE = # using default
|
||||||
|
|
||||||
|
|
||||||
|
include $(TWLFIRM_ROOT)/build/buildtools/commondefs
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
do-build: $(TARGETS)
|
||||||
|
|
||||||
|
|
||||||
|
include $(TWLFIRM_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
|
|
||||||
|
#===== End of Makefile =====
|
||||||
31
build/norfirm/norfirm-print/ARM7/main.c
Normal file
31
build/norfirm/norfirm-print/ARM7/main.c
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlFirm - tools - norfirm-print
|
||||||
|
File: main.c
|
||||||
|
|
||||||
|
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 <firm.h>
|
||||||
|
|
||||||
|
|
||||||
|
void TwlSpMain( void )
|
||||||
|
{
|
||||||
|
OS_TPrintf( "\nNOR Boot time is %d msec.\n", OS_TicksToMilliSecondsBROM32(OS_GetTick()));
|
||||||
|
|
||||||
|
OS_InitNOR();
|
||||||
|
|
||||||
|
OS_TPrintf( "\nARM7 starts.\n" );
|
||||||
|
OS_TPrintf( "\nARM7 ends.\n" );
|
||||||
|
|
||||||
|
OS_Terminate();
|
||||||
|
}
|
||||||
|
|
||||||
47
build/norfirm/norfirm-print/ARM9/Makefile
Normal file
47
build/norfirm/norfirm-print/ARM9/Makefile
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
#! make -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlFirm - tools - norfirm-print
|
||||||
|
# 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:$
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
FIRM_TARGET = NORFIRM
|
||||||
|
|
||||||
|
SUBDIRS =
|
||||||
|
|
||||||
|
LINCLUDES = ../include
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
TARGET_BIN = twl_norfirm9_print.axf
|
||||||
|
|
||||||
|
SRCS = \
|
||||||
|
main.c \
|
||||||
|
|
||||||
|
#SRCDIR = # using default
|
||||||
|
#LCFILE = # using default
|
||||||
|
|
||||||
|
|
||||||
|
include $(TWLFIRM_ROOT)/build/buildtools/commondefs
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
do-build: $(TARGETS)
|
||||||
|
|
||||||
|
|
||||||
|
include $(TWLFIRM_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
|
|
||||||
|
#===== End of Makefile =====
|
||||||
31
build/norfirm/norfirm-print/ARM9/main.c
Normal file
31
build/norfirm/norfirm-print/ARM9/main.c
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlFirm - tools - norfirm-print
|
||||||
|
File: main.c
|
||||||
|
|
||||||
|
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 <firm.h>
|
||||||
|
|
||||||
|
|
||||||
|
void TwlMain( void )
|
||||||
|
{
|
||||||
|
OS_TPrintf( "\nNOR Boot time is %d msec.\n", OS_TicksToMilliSecondsBROM32(OS_GetTick()));
|
||||||
|
|
||||||
|
OS_InitNOR();
|
||||||
|
|
||||||
|
OS_TPrintf( "\nARM9 starts.\n" );
|
||||||
|
OS_TPrintf( "\nARM9 ends.\n" );
|
||||||
|
|
||||||
|
OS_Terminate();
|
||||||
|
}
|
||||||
|
|
||||||
51
build/norfirm/norfirm-print/Makefile
Normal file
51
build/norfirm/norfirm-print/Makefile
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
#! make -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlFirm - build
|
||||||
|
# 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:$
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
FIRM_TARGET = NORFIRM
|
||||||
|
|
||||||
|
|
||||||
|
include $(TWLFIRM_ROOT)/build/buildtools/commondefs
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
SUBDIRS = \
|
||||||
|
ARM7 \
|
||||||
|
ARM9 \
|
||||||
|
wram_regs \
|
||||||
|
|
||||||
|
TARGET_BIN = norfirm_print.nor
|
||||||
|
BINDIR = .
|
||||||
|
MAKEFIRM_ARM9 = ARM9/bin/ARM9-$(FIRM_PLATFORM)$(CODEGEN_ARCH)/$(FIRM_BUILD_DIR)/twl_norfirm9_print.axf
|
||||||
|
MAKEFIRM_ARM7 = ARM7/bin/ARM7-$(FIRM_PLATFORM)$(CODEGEN_ARCH)/$(FIRM_BUILD_DIR)/twl_norfirm7_print.axf
|
||||||
|
MAKEFIRM_RSA_PRVKEY = $(TWL_KEYSDIR)/rsa/private_nor.der
|
||||||
|
LDEPENDS_BIN += wram_regs/wram_regs.rbin
|
||||||
|
|
||||||
|
NITRO_MAKEROM = TRUE
|
||||||
|
MAKEFIRM_FLAGS += -p
|
||||||
|
FIRM_SPEC = norfirm-BB.norsf
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
do-build: $(TARGET_BIN)
|
||||||
|
|
||||||
|
include $(TWLFIRM_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
|
|
||||||
|
#===== End of Makefile =====
|
||||||
25
build/norfirm/norfirm-print/norfirm-BB.norsf
Normal file
25
build/norfirm/norfirm-print/norfirm-BB.norsf
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#NORSF --- Norfirm Spec File
|
||||||
|
|
||||||
|
VERSION : GENERATE
|
||||||
|
|
||||||
|
BOOT_NAND : TRUE # TRUE or FALSE
|
||||||
|
|
||||||
|
RSA_KEY : $(MAKEFIRM_RSA_PRVKEY)
|
||||||
|
OUT_KEY : rsa_public.sbin
|
||||||
|
|
||||||
|
WRAM_RBIN: ./wram_regs/wram_regs.rbin
|
||||||
|
|
||||||
|
DECOMP_PROC : ARM9 # ARM9 or ARM7
|
||||||
|
|
||||||
|
ARM9_COMP : TRUE # TRUE or FALSE, should be before ARM9_SBIN
|
||||||
|
ARM9_SBIN : $(MAKEFIRM_ARM9).sbin
|
||||||
|
ARM9_ELF : $(MAKEFIRM_ARM9).axf
|
||||||
|
|
||||||
|
ARM7_COMP : TRUE # TRUE or FALSE, should be before ARM7_SBIN
|
||||||
|
ARM7_SBIN : $(MAKEFIRM_ARM7).sbin
|
||||||
|
ARM7_ELF : $(MAKEFIRM_ARM7).axf
|
||||||
|
|
||||||
|
NCD_ROMOFS : 0x07fe00
|
||||||
|
|
||||||
|
BAUDRATE : 8M # 4M or 8M
|
||||||
|
ARM9_X2 : TRUE # TRUE or FALSE
|
||||||
48
build/norfirm/norfirm-print/wram_regs/Makefile
Normal file
48
build/norfirm/norfirm-print/wram_regs/Makefile
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#! make -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlFirm - tools - norfirm-print
|
||||||
|
# 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:$
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
SUBDIRS =
|
||||||
|
|
||||||
|
LINCLUDES = ../include
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
TARGET_BIN = wram_regs.rbin
|
||||||
|
|
||||||
|
SRCS = \
|
||||||
|
wram_regs.c \
|
||||||
|
|
||||||
|
#SRCDIR = # using default
|
||||||
|
#LCFILE = # using default
|
||||||
|
|
||||||
|
|
||||||
|
include $(TWLFIRM_ROOT)/build/buildtools/commondefs
|
||||||
|
|
||||||
|
INSTALL_DIR = .
|
||||||
|
INSTALL_TARGETS = $(BINDIR)/$(TARGET_BIN)
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
do-build: $(TARGETS)
|
||||||
|
|
||||||
|
|
||||||
|
include $(TWLFIRM_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
|
|
||||||
|
#===== End of Makefile =====
|
||||||
91
build/norfirm/norfirm-print/wram_regs/wram_regs.c
Normal file
91
build/norfirm/norfirm-print/wram_regs/wram_regs.c
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlFirm - tools - makenorfirm
|
||||||
|
File: wram_regs.c
|
||||||
|
|
||||||
|
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/mi.h>
|
||||||
|
#include <firm/format/wram_regs.h>
|
||||||
|
|
||||||
|
MIHeader_WramRegs wram_regs_init =
|
||||||
|
{
|
||||||
|
// ARM9
|
||||||
|
{
|
||||||
|
REG_MI_MBK_A0_FIELD( 1, MI_WRAM_A_OFFSET_0KB , MI_WRAM_ARM7 ),
|
||||||
|
REG_MI_MBK_A1_FIELD( 1, MI_WRAM_A_OFFSET_64KB , MI_WRAM_ARM7 ),
|
||||||
|
REG_MI_MBK_A2_FIELD( 1, MI_WRAM_A_OFFSET_128KB, MI_WRAM_ARM7 ),
|
||||||
|
REG_MI_MBK_A3_FIELD( 1, MI_WRAM_A_OFFSET_192KB, MI_WRAM_ARM7 ),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
REG_MI_MBK_B0_FIELD( 1, MI_WRAM_BC_OFFSET_0KB , MI_WRAM_ARM7 ),
|
||||||
|
REG_MI_MBK_B1_FIELD( 1, MI_WRAM_BC_OFFSET_32KB , MI_WRAM_ARM7 ),
|
||||||
|
REG_MI_MBK_B2_FIELD( 1, MI_WRAM_BC_OFFSET_64KB , MI_WRAM_ARM7 ),
|
||||||
|
REG_MI_MBK_B3_FIELD( 1, MI_WRAM_BC_OFFSET_96KB , MI_WRAM_ARM7 ),
|
||||||
|
REG_MI_MBK_B4_FIELD( 1, MI_WRAM_BC_OFFSET_128KB, MI_WRAM_ARM7 ),
|
||||||
|
REG_MI_MBK_B5_FIELD( 1, MI_WRAM_BC_OFFSET_160KB, MI_WRAM_ARM7 ),
|
||||||
|
REG_MI_MBK_B6_FIELD( 1, MI_WRAM_BC_OFFSET_192KB, MI_WRAM_ARM7 ),
|
||||||
|
REG_MI_MBK_B7_FIELD( 1, MI_WRAM_BC_OFFSET_224KB, MI_WRAM_ARM7 ),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
REG_MI_MBK_C0_FIELD( 1, MI_WRAM_BC_OFFSET_0KB , MI_WRAM_ARM9 ),
|
||||||
|
REG_MI_MBK_C1_FIELD( 1, MI_WRAM_BC_OFFSET_32KB , MI_WRAM_ARM9 ),
|
||||||
|
REG_MI_MBK_C2_FIELD( 1, MI_WRAM_BC_OFFSET_64KB , MI_WRAM_ARM9 ),
|
||||||
|
REG_MI_MBK_C3_FIELD( 1, MI_WRAM_BC_OFFSET_96KB , MI_WRAM_ARM9 ),
|
||||||
|
REG_MI_MBK_C4_FIELD( 1, MI_WRAM_BC_OFFSET_128KB, MI_WRAM_ARM9 ),
|
||||||
|
REG_MI_MBK_C5_FIELD( 1, MI_WRAM_BC_OFFSET_160KB, MI_WRAM_ARM9 ),
|
||||||
|
REG_MI_MBK_C6_FIELD( 1, MI_WRAM_BC_OFFSET_192KB, MI_WRAM_ARM9 ),
|
||||||
|
REG_MI_MBK_C7_FIELD( 1, MI_WRAM_BC_OFFSET_224KB, MI_WRAM_ARM9 ),
|
||||||
|
},
|
||||||
|
REG_MI_MBK6_FIELD( REG_WRAM_MAP_CONV_ADDR( 6, A, EADDR, MI_WRAM_MAP_NULL ),
|
||||||
|
MI_WRAM_IMAGE_128KB,
|
||||||
|
REG_WRAM_MAP_CONV_ADDR( 6, A, SADDR, MI_WRAM_MAP_NULL )
|
||||||
|
),
|
||||||
|
REG_MI_MBK7_FIELD( REG_WRAM_MAP_CONV_ADDR( 7, B, EADDR, MI_WRAM_MAP_NULL ),
|
||||||
|
MI_WRAM_IMAGE_128KB,
|
||||||
|
REG_WRAM_MAP_CONV_ADDR( 7, B, SADDR, MI_WRAM_MAP_NULL )
|
||||||
|
),
|
||||||
|
REG_MI_MBK8_FIELD( REG_WRAM_MAP_CONV_ADDR( 8, C, EADDR, HW_WRAM_AREA_HALF + 0x00020000 ),
|
||||||
|
MI_WRAM_IMAGE_128KB,
|
||||||
|
REG_WRAM_MAP_CONV_ADDR( 8, C, SADDR, HW_WRAM_AREA_HALF )
|
||||||
|
),
|
||||||
|
|
||||||
|
// ARM7
|
||||||
|
REG_MI_MBK6_FIELD( REG_WRAM_MAP_CONV_ADDR( 6, A, EADDR, HW_WRAM_AREA_HALF + 0x00020000 ),
|
||||||
|
MI_WRAM_IMAGE_128KB,
|
||||||
|
REG_WRAM_MAP_CONV_ADDR( 6, A, SADDR, HW_WRAM_AREA_HALF )
|
||||||
|
),
|
||||||
|
REG_MI_MBK7_FIELD( REG_WRAM_MAP_CONV_ADDR( 7, B, EADDR, HW_WRAM_AREA_HALF + 0x00040000 ),
|
||||||
|
MI_WRAM_IMAGE_128KB,
|
||||||
|
REG_WRAM_MAP_CONV_ADDR( 7, B, SADDR, HW_WRAM_AREA_HALF + 0x00020000 )
|
||||||
|
),
|
||||||
|
REG_MI_MBK8_FIELD( REG_WRAM_MAP_CONV_ADDR( 8, C, EADDR, MI_WRAM_MAP_NULL ),
|
||||||
|
MI_WRAM_IMAGE_128KB,
|
||||||
|
REG_WRAM_MAP_CONV_ADDR( 8, C, SADDR, MI_WRAM_MAP_NULL )
|
||||||
|
),
|
||||||
|
|
||||||
|
// WRAM Lock
|
||||||
|
{
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
},
|
||||||
|
|
||||||
|
// WRAM-0/1
|
||||||
|
3,
|
||||||
|
|
||||||
|
// VRAM-C
|
||||||
|
7,
|
||||||
|
// VRAM-D
|
||||||
|
7,
|
||||||
|
};
|
||||||
|
|
||||||
@ -19,12 +19,14 @@
|
|||||||
|
|
||||||
#include <twl.h>
|
#include <twl.h>
|
||||||
|
|
||||||
#include <firm/memorymap.h>
|
|
||||||
#include <firm/os.h>
|
#include <firm/os.h>
|
||||||
|
/*
|
||||||
|
#include <firm/memorymap.h>
|
||||||
#include <firm/mi.h>
|
#include <firm/mi.h>
|
||||||
#include <firm/nvram.h>
|
#include <firm/nvram.h>
|
||||||
#include <firm/pm.h>
|
#include <firm/pm.h>
|
||||||
#include <firm/gcd.h>
|
#include <firm/gcd.h>
|
||||||
|
*/
|
||||||
|
|
||||||
/* FIRM_H_ */
|
/* FIRM_H_ */
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
151
include/twl/os/ARM9/os_cache_tag.h
Normal file
151
include/twl/os/ARM9/os_cache_tag.h
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlFirm - OS - include
|
||||||
|
File: os_cache_tag.h
|
||||||
|
|
||||||
|
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:$
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef TWL_OS_CACHE_TAG_H_
|
||||||
|
#define TWL_OS_CACHE_TAG_H_
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <twl/misc.h>
|
||||||
|
#include <twl/types.h>
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
// DATA CACHE (for specified range)
|
||||||
|
//===========================================================================
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: DC_ClearTagAll
|
||||||
|
|
||||||
|
Description: clear tag in data cache
|
||||||
|
|
||||||
|
Arguments: None
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void DC_ClearTagAll( void );
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: DC_ClearDataAll
|
||||||
|
|
||||||
|
Description: clear data in data cache
|
||||||
|
|
||||||
|
Arguments: None
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void DC_ClearDataAll( void );
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: DC_FillTagAll
|
||||||
|
|
||||||
|
Description: clear tag in data cache
|
||||||
|
|
||||||
|
Arguments: data : fill data
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void DC_FillTagAll( u32 data );
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: DC_FillDataAll
|
||||||
|
|
||||||
|
Description: fill data in data cache
|
||||||
|
|
||||||
|
Arguments: data : fill data
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void DC_FillDataAll( u32 data );
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: DC_GetTagAndDataAll
|
||||||
|
|
||||||
|
Description: get tag and data in data cache
|
||||||
|
|
||||||
|
Arguments: tag tag address
|
||||||
|
data data address
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void DC_GetTagAndDataAll( void* tag, void* data );
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
// INSTRUCTION CACHE
|
||||||
|
//===========================================================================
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: IC_ClearTagAll
|
||||||
|
|
||||||
|
Description: clear tag in instruction cache
|
||||||
|
|
||||||
|
Arguments: None
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void IC_ClearTagAll( void );
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: IC_ClearInstructionAll
|
||||||
|
|
||||||
|
Description: clear instruction in instruction cache
|
||||||
|
|
||||||
|
Arguments: None
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void IC_ClearInstructionAll( void );
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: IC_FillTagAll
|
||||||
|
|
||||||
|
Description: fill tag in instruction cache
|
||||||
|
|
||||||
|
Arguments: None
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void IC_FillTagAll( u32 data );
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: IC_FillInstructionAll
|
||||||
|
|
||||||
|
Description: fill instruction in instruction cache
|
||||||
|
|
||||||
|
Arguments: data : fill data
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void IC_FillInstructionAll( u32 data );
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: IC_GetTagAndInstructionAll
|
||||||
|
|
||||||
|
Description: get tag and instruction in instruction cache
|
||||||
|
|
||||||
|
Arguments: tag tag address
|
||||||
|
inst instruction address
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void IC_GetTagAndInstructionAll( void* tag, void* inst );
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* TWL_OS_CACHE_TAG_H_ */
|
||||||
|
#endif
|
||||||
Loading…
Reference in New Issue
Block a user