NandInitializerのARM7コンポーネントへinitScfg.c追加。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@831 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
nakasima 2008-03-06 02:11:53 +00:00
parent 89ac6480ae
commit 15cf158bd4
3 changed files with 117 additions and 1 deletions

View File

@ -31,7 +31,11 @@ LCFILE_SPEC = main.lsf
LCFILE_TEMPLATE = racoon.lcf.template
LDRES_TEMPLATE = racoon.response.template
SRCS = main.c kami_pxi.c formatter.c nvram_misc.c
SRCS = main.c \
kami_pxi.c \
formatter.c \
nvram_misc.c \
initScfg.c \
LINCLUDES = ../common/include $(ROOT)/build/libraries/spi/ARM7/include

View File

@ -22,6 +22,7 @@ Static $(TARGET_NAME)
{
Address 0x02380000
Library crt0.LTD.TWL.o
Object $(OBJDIR)/initScfg.o
StackSize 1024 1024
}

View File

@ -0,0 +1,111 @@
/*---------------------------------------------------------------------------*
Project: TwlSDK - components - mongoose.TWL
File: initScfg.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:: 2008-03-03#$
$Rev: 4466 $
$Author: terui $
*---------------------------------------------------------------------------*/
#include <twl/memorymap_sp.h>
#include <twl/hw/common/mmap_wramEnv.h>
extern void INIT_InitializeScfg(void);
#include <twl/code32.h>
/*---------------------------------------------------------------------------*
Name: INIT_InitializeScfg
Description: SCFG
crt0
Arguments: None.
Returns: None.
*---------------------------------------------------------------------------*/
asm void
INIT_InitializeScfg(void)
{
// SCFG enable?
ldr r2, =REG_EXT_ADDR
ldr r0, [r2]
tst r0, #REG_SCFG_EXT_CFG_MASK
beq @end
/* NITRO 互換無線の送受信機能を動作 */
ldr r1, =REG_WL_ADDR
ldrh r0, [r1]
orr r0, r0, #REG_SCFG_WL_OFFB_MASK
strh r0, [r1]
/* 新規サウンドブロックへのクロック供給 */
ldr r1, =REG_CLK_ADDR
ldrh r0, [r1]
orr r0, r0, #REG_SCFG_CLK_SNDMCLK_MASK
strh r0, [r1]
/* ARM7 側の DMA には新 DMA 回路を採用し、サウンドにも新 DMA 回路を利用 */
ldr r1, =REG_EXT_ADDR
ldr r0, [r1]
orr r0, r0, #REG_SCFG_EXT_DMAC_MASK
orr r0, r0, #REG_SCFG_EXT_DSEL_MASK
str r0, [r1]
ldr r2, =HW_PRV_WRAM_SYSRV
//EXT(extentions)
ldr r3, =REG_EXT_ADDR
ldr r0, [r3]
str r0, [r2, #HWi_WSYS04_WRAMOFFSET]
//OPT(bonding option)
ldr r3, =REG_OP_ADDR
ldrb r0, [r3]
//A9ROM(ARM9 ROM)
ldr r3, =REG_A9ROM_ADDR
ldrb r1, [r3]
and r12,r1, #(REG_SCFG_A9ROM_RSEL_MASK | REG_SCFG_A9ROM_SEC_MASK)
orr r0, r0, r12, LSL #(HWi_WSYS08_ROM_ARM9RSEL_SHIFT - REG_SCFG_A9ROM_RSEL_SHIFT)
//A7ROM(ARM7 ROM)
ldr r3, =REG_A7ROM_ADDR
ldrb r1, [r3]
and r12,r1, #(REG_SCFG_A7ROM_RSEL_MASK | REG_SCFG_A7ROM_FUSE_MASK)
orr r0, r0, r12, LSL #(HWi_WSYS08_ROM_ARM7RSEL_SHIFT - REG_SCFG_A7ROM_RSEL_SHIFT)
//DS-WL(DS wireless)
ldr r3, =REG_WL_ADDR
ldrb r1, [r3]
and r12,r1, #REG_SCFG_WL_OFFB_MASK
orr r0, r0, r12, LSL #(HWi_WSYS08_WL_OFFB_SHIFT - REG_SCFG_WL_OFFB_SHIFT)
strb r0, [r2, #HWi_WSYS08_WRAMOFFSET]
//OPT(JTAG info)
ldr r3, =REG_JTAG_ADDR
ldrh r0, [r3]
and r12,r0, #REG_SCFG_JTAG_DSPJE_MASK
orr r0, r0, r12, LSR #(REG_SCFG_JTAG_DSPJE_SHIFT - HWi_WSYS09_JTAG_DSPJE_SHIFT)
//CLK(only wram clock)
ldr r3, =REG_CLK_ADDR
ldrh r1, [r3]
and r12,r1, #(REG_SCFG_CLK_AESHCLK_MASK | REG_SCFG_CLK_SD2HCLK_MASK | REG_SCFG_CLK_SD1HCLK_MASK)
orr r0, r0, r12, LSL #(HWi_WSYS09_CLK_SD1HCLK_SHIFT - REG_SCFG_CLK_SD1HCLK_SHIFT)
and r12,r1, #(REG_SCFG_CLK_SNDMCLK_MASK | REG_SCFG_CLK_WRAMHCLK_MASK)
orr r0, r0, r12, LSR #(REG_SCFG_CLK_WRAMHCLK_SHIFT - HWi_WSYS09_CLK_WRAMHCLK_SHIFT)
strb r0, [r2, #HWi_WSYS09_WRAMOFFSET]
#if 0
/* A7-SCFG ブロックへのアクセスを無効化 */
ldr r1, =REG_EXT_ADDR
ldr r0, [r1]
bic r0, r0, #REG_SCFG_EXT_CFG_MASK
str r0, [r1]
#endif
@end:
bx lr
}
#include <twl/codereset.h>