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
|
//---- 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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user