diff options
author | oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524> | 2012-05-02 20:02:39 +0000 |
---|---|---|
committer | oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524> | 2012-05-02 20:02:39 +0000 |
commit | 836c350061600e6cde14b73417b9d073b00b0f69 (patch) | |
tree | 2e2a46ab3837b1444dd1639aea9e0f08cc4e1986 /ArmPkg/Library/ArmLib/Common/ArmLibSupport.S | |
parent | 7fffeef9bece37fe48341fcf47edb474f954e690 (diff) | |
download | edk2-836c350061600e6cde14b73417b9d073b00b0f69.tar.gz edk2-836c350061600e6cde14b73417b9d073b00b0f69.tar.bz2 edk2-836c350061600e6cde14b73417b9d073b00b0f69.zip |
ArmPkg/ArmLib: Added new functions to access ARM coprocessors
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13253 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ArmPkg/Library/ArmLib/Common/ArmLibSupport.S')
-rw-r--r-- | ArmPkg/Library/ArmLib/Common/ArmLibSupport.S | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/ArmPkg/Library/ArmLib/Common/ArmLibSupport.S b/ArmPkg/Library/ArmLib/Common/ArmLibSupport.S index da927b9d43..b19185412c 100644 --- a/ArmPkg/Library/ArmLib/Common/ArmLibSupport.S +++ b/ArmPkg/Library/ArmLib/Common/ArmLibSupport.S @@ -32,16 +32,21 @@ GCC_ASM_EXPORT(ArmSetTTBR0) GCC_ASM_EXPORT(ArmSetDomainAccessControl)
GCC_ASM_EXPORT(CPSRMaskInsert)
GCC_ASM_EXPORT(CPSRRead)
-GCC_ASM_EXPORT(ArmWriteCPACR)
+GCC_ASM_EXPORT(ArmReadCpacr)
+GCC_ASM_EXPORT(ArmWriteCpacr)
GCC_ASM_EXPORT(ArmWriteAuxCr)
GCC_ASM_EXPORT(ArmReadAuxCr)
GCC_ASM_EXPORT(ArmInvalidateTlb)
GCC_ASM_EXPORT(ArmUpdateTranslationTableEntry)
+GCC_ASM_EXPORT(ArmReadNsacr)
GCC_ASM_EXPORT(ArmWriteNsacr)
+GCC_ASM_EXPORT(ArmReadScr)
GCC_ASM_EXPORT(ArmWriteScr)
-GCC_ASM_EXPORT(ArmWriteVMBar)
+GCC_ASM_EXPORT(ArmReadMVBar)
+GCC_ASM_EXPORT(ArmWriteMVBar)
GCC_ASM_EXPORT(ArmCallWFE)
GCC_ASM_EXPORT(ArmCallSEV)
+GCC_ASM_EXPORT(ArmReadSctlr)
#------------------------------------------------------------------------------
@@ -88,7 +93,11 @@ ASM_PFX(CPSRRead): mrs r0, cpsr
bx lr
-ASM_PFX(ArmWriteCPACR):
+ASM_PFX(ArmReadCpacr):
+ mrc p15, 0, r0, c1, c0, 2
+ bx lr
+
+ASM_PFX(ArmWriteCpacr):
mcr p15, 0, r0, c1, c0, 2
isb
bx lr
@@ -136,15 +145,27 @@ ASM_PFX(ArmInvalidateTlb): isb
bx lr
+ASM_PFX(ArmReadNsacr):
+ mrc p15, 0, r0, c1, c1, 2
+ bx lr
+
ASM_PFX(ArmWriteNsacr):
mcr p15, 0, r0, c1, c1, 2
bx lr
+ASM_PFX(ArmReadScr):
+ mrc p15, 0, r0, c1, c1, 0
+ bx lr
+
ASM_PFX(ArmWriteScr):
mcr p15, 0, r0, c1, c1, 0
bx lr
-ASM_PFX(ArmWriteVMBar):
+ASM_PFX(ArmReadMVBar):
+ mrc p15, 0, r0, c12, c0, 1
+ bx lr
+
+ASM_PFX(ArmWriteMVBar):
mcr p15, 0, r0, c12, c0, 1
bx lr
@@ -156,4 +177,8 @@ ASM_PFX(ArmCallSEV): sev
bx lr
+ASM_PFX(ArmReadSctlr):
+ mrc p15, 0, R0, c1, c0, 0 @ Read SCTLR into R0 (Read control register configuration data)
+ bx lr
+
ASM_FUNCTION_REMOVE_IF_UNREFERENCED
|