システム領域クリアの修正。

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_firmware@138 b871894f-2f95-9b40-918c-086798483c85
This commit is contained in:
nakasima 2008-12-24 10:11:40 +00:00
parent 12dcde5fdf
commit 76da849d53
3 changed files with 33 additions and 25 deletions

View File

@ -42,19 +42,19 @@ asm void i_stupStartHandler( void )
//---- initialize stack pointer //---- initialize stack pointer
// SVC mode // SVC mode
mov r0, #HW_PSR_SVC_MODE mov r0, #HW_PSR_SVC_MODE | HW_PSR_IRQ_DISABLE | HW_PSR_FIQ_DISABLE
msr cpsr_c, r0 msr cpsr_fsxc, r0
ldr sp, =HW_BROM_SVC_STACK_END ldr sp, =HW_BROM_SVC_STACK_END
// IRQ mode // IRQ mode
mov r0, #HW_PSR_IRQ_MODE mov r0, #HW_PSR_IRQ_MODE | HW_PSR_IRQ_DISABLE | HW_PSR_FIQ_DISABLE
msr cpsr_c, r0 msr cpsr_fsxc, r0
ldr r0, =HW_BROM_IRQ_STACK_END ldr r0, =HW_BROM_IRQ_STACK_END
mov sp, r0 mov sp, r0
// System mode // System mode
mov r0, #HW_PSR_SYS_MODE mov r0, #HW_PSR_SYS_MODE | HW_PSR_IRQ_DISABLE | HW_PSR_FIQ_DISABLE
msr cpsr_csfx, r0 msr cpsr_fsxc, r0
ldr r0, =HW_BROM_SYS_STACK_END ldr r0, =HW_BROM_SYS_STACK_END
mov sp, r0 mov sp, r0
@ -71,11 +71,15 @@ asm void i_stupStartHandler( void )
bl stupEnableCP15 bl stupEnableCP15
//---- clear wram //---- clear wram
// 1KB // 4KB
mov r0, #0 mov r0, #0
ldr r1, =HW_AXI_WRAM_END ldr r1, =HW_AXI_WRAM_SHARED_SYS
mov r2, #0x0400 ldr r2, =HW_EXCP_VENEER_BUF
sub r1, r1, r2 sub r2, r2, r1
bl i_stupCpuClear32
ldr r1, =HW_EXCP_VENEER_BUF_END
rsb r2, r1, #HW_AXI_WRAM_END
bl i_stupCpuClear32 bl i_stupCpuClear32
//---- lnitialize sections //---- lnitialize sections

View File

@ -50,19 +50,19 @@ asm void i_stupStartHandler( void )
//---- initialize stack pointer //---- initialize stack pointer
// SVC mode // SVC mode
mov r0, #HW_PSR_SVC_MODE mov r0, #HW_PSR_SVC_MODE | HW_PSR_IRQ_DISABLE | HW_PSR_FIQ_DISABLE
msr cpsr_c, r0 msr cpsr_fsxc, r0
ldr sp, =HW_BROM_SVC_STACK_END ldr sp, =HW_BROM_SVC_STACK_END
// IRQ mode // IRQ mode
mov r0, #HW_PSR_IRQ_MODE mov r0, #HW_PSR_IRQ_MODE | HW_PSR_IRQ_DISABLE | HW_PSR_FIQ_DISABLE
msr cpsr_c, r0 msr cpsr_fsxc, r0
ldr r0, =HW_BROM_IRQ_STACK_END ldr r0, =HW_BROM_IRQ_STACK_END
mov sp, r0 mov sp, r0
// System mode // System mode
mov r0, #HW_PSR_SYS_MODE mov r0, #HW_PSR_SYS_MODE | HW_PSR_IRQ_DISABLE | HW_PSR_FIQ_DISABLE
msr cpsr_csfx, r0 msr cpsr_fsxc, r0
ldr r0, =HW_BROM_SYS_STACK_END ldr r0, =HW_BROM_SYS_STACK_END
mov sp, r0 mov sp, r0
@ -79,11 +79,16 @@ asm void i_stupStartHandler( void )
mov r2, #HW_DTCM_SIZE mov r2, #HW_DTCM_SIZE
bl i_stupCpuClear32 bl i_stupCpuClear32
// 1KB // 64B
mov r0, #0 mov r0, #0
ldr r1, =HW_PRV_WRAM_END ldr r1, =HW_PRV_WRAM_SYSRV
mov r2, #0x0400 ldr r2, =HW_EXCP_VENEER_BUF
sub r1, r1, r2 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 bl i_stupCpuClear32
//---- lnitialize sections //---- lnitialize sections

View File

@ -42,7 +42,7 @@ LSYM(0)
bx lr bx lr
i_stupExcpVennerCode i_stupExcpVennerCode
DCD i_stupSwiVeneerCode DCD i_stupExcpTerminateCode
DCD i_stupExcpTerminateCode DCD i_stupExcpTerminateCode
DCD i_stupSwiVeneerCode DCD i_stupSwiVeneerCode
DCD i_stupExcpTerminateCode DCD i_stupExcpTerminateCode
@ -55,7 +55,7 @@ i_stupExcpVennerCode
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: i_stupExcpTerminateCode Name: i_stupExcpTerminateCode
Description: exception Veneer Description: exception veneer code
Arguments: None Arguments: None
@ -63,15 +63,14 @@ i_stupExcpVennerCode
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
ASM void i_stupExcpTerminateCode( void ) ASM void i_stupExcpTerminateCode( void )
{ {
LSYM(0) ldr pc, =i_stupExcpTerminateCode
b BSYM(0)
LTORG LTORG
} }
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: i_stupSwiVeneerCode Name: i_stupSwiVeneerCode
Description: SWI Veneer Description: SWI veneer code
Arguments: None Arguments: None