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

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
// 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

View File

@ -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

View File

@ -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