mirror of
https://github.com/rvtr/ctr_firmware.git
synced 2025-10-31 07:51:08 -04:00
システム領域クリアの修正。
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:
parent
12dcde5fdf
commit
76da849d53
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user