📄 system_.s
字号:
;/*************************************************************************************
;
; Project Name : S3C6410 Validation
;
; Copyright 2006 by Samsung Electronics, Inc.
; All rights reserved.
;
; Project Description :
; This software is only for validating functions of the S3C6410.
; Anybody can use this software without our permission.
;
;--------------------------------------------------------------------------------------
;
; File Name : system_.s
;
; File Description : This file implements CP15 control.
;
; Author : Haksoo,Kim
; Dept. : AP Development Team
; Created Date : 2006/11/08
; Version : 0.1
;
; History
; - Created(Haksoo,Kim 2006/11/08)
;
;*************************************************************************************/
AREA |C$$code|, CODE, READONLY
;;===============================================================================
;;
;; Exception
;;
EXPORT SYSTEM_EnableVIC
SYSTEM_EnableVIC PROC
mrc p15,0,r0,c1,c0,0
orr r0,r0,#(1<<24)
mcr p15,0,r0,c1,c0,0
mov pc,lr
ENDP
EXPORT SYSTEM_DisableVIC
SYSTEM_DisableVIC PROC
mrc p15,0,r0,c1,c0,0
bic r0,r0,#(1<<24)
mcr p15,0,r0,c1,c0,0
mov pc,lr
ENDP
EXPORT SYSTEM_EnableIRQ
SYSTEM_EnableIRQ PROC
mrs r0,cpsr
bic r0,r0,#(1<<7)
msr cpsr_cxsf,r0
mov pc,lr
ENDP
EXPORT SYSTEM_DisableIRQ
SYSTEM_DisableIRQ PROC
mrs r0,cpsr
orr r0,r0,#(1<<7)
msr cpsr_cxsf,r0
mov pc,lr
ENDP
EXPORT SYSTEM_EnableFIQ
SYSTEM_EnableFIQ PROC
mrs r0,cpsr
bic r0,r0,#(1<<6)
msr cpsr_cxsf,r0
mov pc,lr
ENDP
EXPORT SYSTEM_DisableFIQ
SYSTEM_DisableFIQ PROC
mrs r0,cpsr
orr r0,r0,#(1<<6)
msr cpsr_cxsf,r0
mov pc,lr
ENDP
;;
;;===============================================================================
EXPORT Stop_WFI_Test
Stop_WFI_Test PROC
;stmfd sp!, {r0-r13}
stmfd sp!, {r0-r6}
ldr r5, =0x7E00FA1C ; Inform7
ldr r6, [r5]
mov r0, #0
ldr r1, =0x7E00F90C
mov r3, #0
mov r4, #0
LOOP_STOP
add r3, r3, #1
cmp r3, #0x2
blt Wait_BLK_PWR1
mcr p15,0,r0,c7,c10,5 ; Data Memory Barrier
mcr p15,0,r0,c7,c10,4 ; test, Data Sync. Barrier
mcr p15,0,r0,c7,c0,4
Wait_BLK_PWR1
ldr r2, [r1]
;cmp r2, #0x7F
;cmp r2, #0x51
cmp r2, r6
bne Wait_BLK_PWR1
add r4, r4, #1
cmp r4, #2
blt LOOP_STOP
ldmfd sp!, {r0-r6}
mov pc,lr
ENDP
EXPORT MMU_WaitForInterrupt
MMU_WaitForInterrupt PROC
mov r0, #0
mcr p15,0,r0,c7,c10,5 ; Data Memory Barrier
mcr p15,0,r0,c7,c10,4 ; test, Data Sync. Barrier
;mcr p15,0,r0,c7,c5,4 ; Flush Prefetch Buffer
mcr p15,0,r0,c7,c0,4
;for test
;nop
;nop
;nop
;bl SYSTEM_EnableIRQ
;ldr r1, =0x71200014
;ldr r2, =0xffffffff
;str r2, [r1]
;ldr r1, =0x71200F00
;ldr r2, =0x0
;str r2, [r1]
mov pc,lr
ENDP
;;===============================================================================
;;
;; MMU/Cache
;;
EXPORT SYSTEM_EnableBP
SYSTEM_EnableBP PROC
mrc p15,0,r0,c1,c0,0
orr r0,r0,#(1<<11)
mcr p15,0,r0,c1,c0,0
mov pc,lr
ENDP
EXPORT SYSTEM_EnableICache
SYSTEM_EnableICache PROC
mrc p15,0,r0,c1,c0,0
orr r0,r0,#(1<<12)
mcr p15,0,r0,c1,c0,0
mov pc,lr
ENDP
EXPORT SYSTEM_DisableICache
SYSTEM_DisableICache PROC
mrc p15,0,r0,c1,c0,0
bic r0,r0,#(1<<12)
mcr p15,0,r0,c1,c0,0
mov pc,lr
ENDP
EXPORT SYSTEM_EnableDCache
SYSTEM_EnableDCache PROC
mrc p15,0,r0,c1,c0,0
orr r0,r0,#(1<<2)
mcr p15,0,r0,c1,c0,0
mov pc,lr
ENDP
EXPORT SYSTEM_DisableDCache
SYSTEM_DisableDCache PROC
mrc p15,0,r0,c1,c0,0
bic r0,r0,#(1<<2)
mcr p15,0,r0,c1,c0,0
mov pc,lr
ENDP
EXPORT SYSTEM_InvalidateEntireICache
SYSTEM_InvalidateEntireICache PROC
mov r0,#0
mcr p15,0,r0,c7,c5,0
mov pc,lr
ENDP
EXPORT SYSTEM_InvalidateEntireDCache
SYSTEM_InvalidateEntireDCache PROC
mov r0,#0
mcr p15,0,r0,c7,c6,0
mov pc,lr
ENDP
EXPORT SYSTEM_InvalidateBothCache
SYSTEM_InvalidateBothCache PROC
mov r0,#0
mcr p15,0,r0,c7,c7,0
mov pc,lr
ENDP
EXPORT SYSTEM_CleanEntireDCache
SYSTEM_CleanEntireDCache PROC
mov r0,#0
mcr p15,0,r0,c7,c10,0
mov pc,lr
ENDP
EXPORT SYSTEM_CleanInvalidateEntireDCache
SYSTEM_CleanInvalidateEntireDCache PROC
mov r0,#0
mcr p15,0,r0,c7,c14,0
mov pc,lr
ENDP
EXPORT SYSTEM_EnableMMU
SYSTEM_EnableMMU PROC
mrc p15,0,r0,c1,c0,0
orr r0,r0,#(1<<0)
mcr p15,0,r0,c1,c0,0
mov pc,lr
ENDP
EXPORT SYSTEM_DisableMMU
SYSTEM_DisableMMU PROC
mrc p15,0,r0,c1,c0,0
bic r0,r0,#(1<<0)
mcr p15,0,r0,c1,c0,0
mov pc,lr
ENDP
EXPORT SYSTEM_InvalidateTLB
SYSTEM_InvalidateTLB PROC
mov r0,#0x0
mcr p15,0,r0,c8,c7,0
mov pc,lr
ENDP
EXPORT SYSTEM_SetTTBase
SYSTEM_SetTTBase PROC ; r0=TTBase
mcr p15,0,r0,c2,c0,0
mov pc,lr
ENDP
EXPORT SYSTEM_SetDomain
SYSTEM_SetDomain PROC ; r0=Domain
mcr p15,0,r0,c3,c0,0
mov pc,lr
ENDP
EXPORT SYSTEM_SetFCSEPID
SYSTEM_SetFCSEPID PROC ; r0= FCSEPID
mcr p15,0,r0,c13,c0,0
mov pc,lr
ENDP
EXPORT SYSTEM_EnableAlignFault
SYSTEM_EnableAlignFault PROC
mrc p15,0,r0,c1,c0,0
orr r0,r0,#(1<<1)
mcr p15,0,r0,c1,c0,0
mov pc,lr
ENDP
EXPORT SYSTEM_DisableAlignFault
SYSTEM_DisableAlignFault PROC
mrc p15,0,r0,c1,c0,0
bic r0,r0,#(1<<1)
mcr p15,0,r0,c1,c0,0
mov pc,lr
ENDP
EXPORT SYSTEM_ReadDFSR
SYSTEM_ReadDFSR PROC
mrc p15,0,r0,c5,c0,0
mov pc,lr
ENDP
EXPORT SYSTEM_ReadIFSR
SYSTEM_ReadIFSR PROC
mrc p15,0,r0,c5,c0,1
mov pc,lr
ENDP
EXPORT SYSTEM_ReadFAR
SYSTEM_ReadFAR PROC
mrc p15,0,r0,c6,c0,0
mov pc,lr
ENDP
;;
;;===============================================================================
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -