mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
最新TwlSDKに合わせる
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@292 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
35a6525303
commit
4d406b0159
@ -14,8 +14,9 @@
|
|||||||
$Rev$
|
$Rev$
|
||||||
$Author$
|
$Author$
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
#include <nitro/code32.h>
|
#include <twl/code32.h>
|
||||||
#include <firm.h>
|
#include <firm.h>
|
||||||
|
#include <twl/hw/ARM7/mmap_wramEnv.h>
|
||||||
|
|
||||||
void _start(void);
|
void _start(void);
|
||||||
void _start_AutoloadDoneCallback(void *argv[]);
|
void _start_AutoloadDoneCallback(void *argv[]);
|
||||||
@ -442,6 +443,40 @@ _start_AutoloadDoneCallback(void* argv[])
|
|||||||
|
|
||||||
static asm void detect_main_memory_size( void )
|
static asm void detect_main_memory_size( void )
|
||||||
{
|
{
|
||||||
|
//################ this process is required before IPL
|
||||||
|
#if 0
|
||||||
|
// SCFG enable?
|
||||||
|
ldr r2, =REG_EXT_ADDR
|
||||||
|
ldr r0, [r2]
|
||||||
|
tst r0, #0x80000000
|
||||||
|
beq @9
|
||||||
|
#endif
|
||||||
|
ldr r2, =HW_PRV_WRAM_SYSRV
|
||||||
|
//OPT(bonding option)
|
||||||
|
ldr r3, =REG_OP_ADDR
|
||||||
|
ldrh r0, [r3]
|
||||||
|
strh r0, [r2, #8]
|
||||||
|
//OPT(JTAG info)
|
||||||
|
ldr r3, =REG_JTAG_ADDR
|
||||||
|
ldrb r0, [r3]
|
||||||
|
//CLK(only wram clock)
|
||||||
|
ldr r3, =REG_CLK_ADDR
|
||||||
|
ldrh r1, [r3]
|
||||||
|
and r1, r1, #0x80
|
||||||
|
orr r0, r0, r1, LSR 1
|
||||||
|
strb r0, [r2, #9]
|
||||||
|
@9:
|
||||||
|
//################
|
||||||
|
|
||||||
|
//---- copy scfg setting
|
||||||
|
ldr r2, =HW_PRV_WRAM_SYSRV
|
||||||
|
ldr r3, =HW_SYS_CONF_BUF
|
||||||
|
ldr r0, [r2, #HWi_WSYS04_WRAMOFFSET]
|
||||||
|
str r0, [r3, #HWi_WSYS04_OFFSET]
|
||||||
|
ldrh r0, [r2, #HWi_WSYS08_WRAMOFFSET]
|
||||||
|
strh r0, [r3, #HWi_WSYS08_OFFSET]
|
||||||
|
|
||||||
|
//---- detect memory size
|
||||||
#if 0 // NITRO hardware is not supported
|
#if 0 // NITRO hardware is not supported
|
||||||
mov r0, #OS_CONSOLE_SIZE_4MB
|
mov r0, #OS_CONSOLE_SIZE_4MB
|
||||||
mov r1, #0
|
mov r1, #0
|
||||||
@ -459,20 +494,14 @@ static asm void detect_main_memory_size( void )
|
|||||||
bne @1
|
bne @1
|
||||||
|
|
||||||
//---- 4MB
|
//---- 4MB
|
||||||
//---- check SMX_CNT
|
|
||||||
ldr r3, =REG_SMX_CNT_ADDR
|
|
||||||
ldrh r1, [r3]
|
|
||||||
and r1, r1, #OSi_DETECT_NITRO_MASK
|
|
||||||
cmp r1, #OSi_DETECT_NITRO_VAL
|
|
||||||
orreq r0, r0, #OS_CHIPTYPE_SMX_MASK
|
|
||||||
b @4
|
b @4
|
||||||
|
|
||||||
//---- 8MB or 16MB or 32MB
|
//---- 8MB or 16MB or 32MB
|
||||||
@2:
|
@2:
|
||||||
// check if running on twl/nitro
|
// check if running on twl/nitro
|
||||||
ldr r1, =REG_CLK_ADDR
|
ldr r1, =HW_SYS_CONF_BUF
|
||||||
ldrh r12, [r1]
|
ldrb r12, [r1,#HWi_WSYS09_OFFSET]
|
||||||
tst r12, #REG_SCFG_CLK_WRAMHCLK_MASK
|
tst r12, #HWi_WSYS09_CLK_WRAMHCLK_MASK
|
||||||
moveq r0, #OS_CONSOLE_SIZE_8MB
|
moveq r0, #OS_CONSOLE_SIZE_8MB
|
||||||
beq @4
|
beq @4
|
||||||
#else
|
#else
|
||||||
@ -495,20 +524,14 @@ static asm void detect_main_memory_size( void )
|
|||||||
bne @3
|
bne @3
|
||||||
mov r0, #OS_CONSOLE_SIZE_16MB
|
mov r0, #OS_CONSOLE_SIZE_16MB
|
||||||
@4:
|
@4:
|
||||||
strh r0, [r2]
|
|
||||||
|
|
||||||
//---- detect chiptype
|
//---- check SMX_CNT
|
||||||
ldr r2, =REG_OP_ADDR
|
ldr r3, =REG_SMX_CNT_ADDR
|
||||||
ldrh r0, [r2]
|
ldrh r1, [r3]
|
||||||
and r0, r0, #REG_SCFG_OP_OPT_MASK
|
and r1, r1, #OSi_DETECT_NITRO_MASK
|
||||||
|
cmp r1, #OSi_DETECT_NITRO_VAL
|
||||||
|
orreq r0, r0, #OS_CHIPTYPE_SMX_MASK
|
||||||
|
|
||||||
//---- detect jtag
|
|
||||||
ldr r2, =REG_JTAG_ADDR
|
|
||||||
ldrh r1, [r2]
|
|
||||||
and r1, r1, #REG_SCFG_JTAG_CPUJE_MASK
|
|
||||||
orr r0, r0, r1, LSL #1
|
|
||||||
|
|
||||||
ldr r2, =HW_CHIPTYPE_FLAG
|
|
||||||
strb r0, [r2]
|
strb r0, [r2]
|
||||||
|
|
||||||
bx lr
|
bx lr
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user