From 76da849d53ce31e7ce63f7b32b09fe4c6f1863e7 Mon Sep 17 00:00:00 2001 From: nakasima Date: Wed, 24 Dec 2008 10:11:40 +0000 Subject: [PATCH] =?UTF-8?q?=E3=82=B7=E3=82=B9=E3=83=86=E3=83=A0=E9=A0=98?= =?UTF-8?q?=E5=9F=9F=E3=82=AF=E3=83=AA=E3=82=A2=E3=81=AE=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_firmware@138 b871894f-2f95-9b40-918c-086798483c85 --- .../build/libraries/init/ARM11/crt0_secure.c | 24 ++++++++++-------- .../libraries/init/ARM9/crt0_secure_sp.c | 25 +++++++++++-------- .../build/libraries/init/common/crt0_excp.c | 9 +++---- 3 files changed, 33 insertions(+), 25 deletions(-) diff --git a/trunk/bootrom/build/libraries/init/ARM11/crt0_secure.c b/trunk/bootrom/build/libraries/init/ARM11/crt0_secure.c index 5363e7c..0738208 100644 --- a/trunk/bootrom/build/libraries/init/ARM11/crt0_secure.c +++ b/trunk/bootrom/build/libraries/init/ARM11/crt0_secure.c @@ -42,19 +42,19 @@ asm void i_stupStartHandler( void ) //---- initialize stack pointer // SVC mode - mov r0, #HW_PSR_SVC_MODE - msr cpsr_c, r0 + mov r0, #HW_PSR_SVC_MODE | HW_PSR_IRQ_DISABLE | HW_PSR_FIQ_DISABLE + msr cpsr_fsxc, r0 ldr sp, =HW_BROM_SVC_STACK_END // IRQ mode - mov r0, #HW_PSR_IRQ_MODE - msr cpsr_c, r0 + mov r0, #HW_PSR_IRQ_MODE | HW_PSR_IRQ_DISABLE | HW_PSR_FIQ_DISABLE + msr cpsr_fsxc, r0 ldr r0, =HW_BROM_IRQ_STACK_END mov sp, r0 // System mode - mov r0, #HW_PSR_SYS_MODE - msr cpsr_csfx, r0 + mov r0, #HW_PSR_SYS_MODE | HW_PSR_IRQ_DISABLE | HW_PSR_FIQ_DISABLE + msr cpsr_fsxc, r0 ldr r0, =HW_BROM_SYS_STACK_END mov sp, r0 @@ -71,11 +71,15 @@ asm void i_stupStartHandler( void ) bl stupEnableCP15 //---- clear wram - // 1KB + // 4KB mov r0, #0 - ldr r1, =HW_AXI_WRAM_END - mov r2, #0x0400 - sub r1, r1, r2 + ldr r1, =HW_AXI_WRAM_SHARED_SYS + ldr r2, =HW_EXCP_VENEER_BUF + sub r2, r2, r1 + bl i_stupCpuClear32 + + ldr r1, =HW_EXCP_VENEER_BUF_END + rsb r2, r1, #HW_AXI_WRAM_END bl i_stupCpuClear32 //---- lnitialize sections diff --git a/trunk/bootrom/build/libraries/init/ARM9/crt0_secure_sp.c b/trunk/bootrom/build/libraries/init/ARM9/crt0_secure_sp.c index 8c6086f..9b0b8a5 100644 --- a/trunk/bootrom/build/libraries/init/ARM9/crt0_secure_sp.c +++ b/trunk/bootrom/build/libraries/init/ARM9/crt0_secure_sp.c @@ -50,19 +50,19 @@ asm void i_stupStartHandler( void ) //---- initialize stack pointer // SVC mode - mov r0, #HW_PSR_SVC_MODE - msr cpsr_c, r0 + mov r0, #HW_PSR_SVC_MODE | HW_PSR_IRQ_DISABLE | HW_PSR_FIQ_DISABLE + msr cpsr_fsxc, r0 ldr sp, =HW_BROM_SVC_STACK_END // IRQ mode - mov r0, #HW_PSR_IRQ_MODE - msr cpsr_c, r0 + mov r0, #HW_PSR_IRQ_MODE | HW_PSR_IRQ_DISABLE | HW_PSR_FIQ_DISABLE + msr cpsr_fsxc, r0 ldr r0, =HW_BROM_IRQ_STACK_END mov sp, r0 // System mode - mov r0, #HW_PSR_SYS_MODE - msr cpsr_csfx, r0 + mov r0, #HW_PSR_SYS_MODE | HW_PSR_IRQ_DISABLE | HW_PSR_FIQ_DISABLE + msr cpsr_fsxc, r0 ldr r0, =HW_BROM_SYS_STACK_END mov sp, r0 @@ -79,11 +79,16 @@ asm void i_stupStartHandler( void ) mov r2, #HW_DTCM_SIZE bl i_stupCpuClear32 - // 1KB + // 64B mov r0, #0 - ldr r1, =HW_PRV_WRAM_END - mov r2, #0x0400 - sub r1, r1, r2 + ldr r1, =HW_PRV_WRAM_SYSRV + ldr r2, =HW_EXCP_VENEER_BUF + sub r2, r2, r1 + bl i_stupCpuClear32 + + ldr r1, =HW_EXCP_VENEER_BUF_END + ldr r2, =HW_PRV_WRAM_SYSRV_END + sub r2, r2, r1 bl i_stupCpuClear32 //---- lnitialize sections diff --git a/trunk/bootrom/build/libraries/init/common/crt0_excp.c b/trunk/bootrom/build/libraries/init/common/crt0_excp.c index 93a4fd4..cccb53d 100644 --- a/trunk/bootrom/build/libraries/init/common/crt0_excp.c +++ b/trunk/bootrom/build/libraries/init/common/crt0_excp.c @@ -42,7 +42,7 @@ LSYM(0) bx lr i_stupExcpVennerCode - DCD i_stupSwiVeneerCode + DCD i_stupExcpTerminateCode DCD i_stupExcpTerminateCode DCD i_stupSwiVeneerCode DCD i_stupExcpTerminateCode @@ -55,7 +55,7 @@ i_stupExcpVennerCode /*---------------------------------------------------------------------------* Name: i_stupExcpTerminateCode - Description: exception Veneer + Description: exception veneer code Arguments: None @@ -63,15 +63,14 @@ i_stupExcpVennerCode *---------------------------------------------------------------------------*/ ASM void i_stupExcpTerminateCode( void ) { -LSYM(0) - b BSYM(0) + ldr pc, =i_stupExcpTerminateCode LTORG } /*---------------------------------------------------------------------------* Name: i_stupSwiVeneerCode - Description: SWI Veneer + Description: SWI veneer code Arguments: None