📄 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)
;
;*************************************************************************************/
GET option.inc
AREA |C$$code|, CODE, READONLY
;============================
; ISR Routine
;============================
EXPORT ExceptionIRQ
ExceptionIRQ
sub sp,sp,#4 ; reserved for PC
stmfd sp!,{r8-r9}
ldr r9,=0x4a000014 ; rINTOFFSET
ldr r9,[r9]
ldr r8,=Exception_Vector + 0x20
add r8,r8,r9,lsl #2
ldr r8,[r8]
str r8,[sp,#8]
ldmfd sp!,{r8-r9,pc}
LTORG
;;===============================================================================
;;
;; 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
;;
;;===============================================================================
;;===============================================================================
;;
;; 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 + -