Revision: 15396
http://sourceforge.net/p/edk2/code/15396
Author: oliviermartin
Date: 2014-03-26 19:31:01 +0000 (Wed, 26 Mar 2014)
Log Message:
-----------
ArmPkg/ArmLib: Added helper functions for accessing CPU ACTLR
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <[email protected]>
Modified Paths:
--------------
trunk/edk2/ArmPkg/Include/Library/ArmLib.h
trunk/edk2/ArmPkg/Library/ArmLib/Common/AArch64/ArmLibSupport.S
trunk/edk2/ArmPkg/Library/ArmLib/Common/Arm/ArmLibSupport.S
trunk/edk2/ArmPkg/Library/ArmLib/Common/Arm/ArmLibSupport.asm
trunk/edk2/ArmPkg/Library/ArmLib/Common/ArmLib.c
Modified: trunk/edk2/ArmPkg/Include/Library/ArmLib.h
===================================================================
--- trunk/edk2/ArmPkg/Include/Library/ArmLib.h 2014-03-26 19:29:31 UTC (rev
15395)
+++ trunk/edk2/ArmPkg/Include/Library/ArmLib.h 2014-03-26 19:31:01 UTC (rev
15396)
@@ -625,4 +625,33 @@
IN UINTN HypModeVectorBase
);
+
+//
+// Helper functions for accessing CPU ACTLR
+//
+
+UINTN
+EFIAPI
+ArmReadCpuActlr (
+ VOID
+ );
+
+VOID
+EFIAPI
+ArmWriteCpuActlr (
+ IN UINTN Val
+ );
+
+VOID
+EFIAPI
+ArmSetCpuActlrBit (
+ IN UINTN Bits
+ );
+
+VOID
+EFIAPI
+ArmUnsetCpuActlrBit (
+ IN UINTN Bits
+ );
+
#endif // __ARM_LIB__
Modified: trunk/edk2/ArmPkg/Library/ArmLib/Common/AArch64/ArmLibSupport.S
===================================================================
--- trunk/edk2/ArmPkg/Library/ArmLib/Common/AArch64/ArmLibSupport.S
2014-03-26 19:29:31 UTC (rev 15395)
+++ trunk/edk2/ArmPkg/Library/ArmLib/Common/AArch64/ArmLibSupport.S
2014-03-26 19:31:01 UTC (rev 15396)
@@ -37,6 +37,10 @@
GCC_ASM_EXPORT (ArmWriteMVBar)
GCC_ASM_EXPORT (ArmCallWFE)
GCC_ASM_EXPORT (ArmCallSEV)
+GCC_ASM_EXPORT (ArmReadCpuExCr)
+GCC_ASM_EXPORT (ArmWriteCpuExCr)
+GCC_ASM_EXPORT (ArmReadCpuActlr)
+GCC_ASM_EXPORT (ArmWriteCpuActlr)
#------------------------------------------------------------------------------
@@ -196,5 +200,24 @@
sev
ret
+ASM_PFX(ArmReadCpuExCr):
+ mrs x0, S3_1_c15_c2_1
+ ret
+ASM_PFX(ArmWriteCpuExCr):
+ msr S3_1_c15_c2_1, x0
+ dsb sy
+ isb
+ ret
+
+ASM_PFX(ArmReadCpuActlr):
+ mrs x0, S3_1_c15_c2_0
+ ret
+
+ASM_PFX(ArmWriteCpuActlr):
+ msr S3_1_c15_c2_0, x0
+ dsb sy
+ isb
+ ret
+
ASM_FUNCTION_REMOVE_IF_UNREFERENCED
Modified: trunk/edk2/ArmPkg/Library/ArmLib/Common/Arm/ArmLibSupport.S
===================================================================
--- trunk/edk2/ArmPkg/Library/ArmLib/Common/Arm/ArmLibSupport.S 2014-03-26
19:29:31 UTC (rev 15395)
+++ trunk/edk2/ArmPkg/Library/ArmLib/Common/Arm/ArmLibSupport.S 2014-03-26
19:31:01 UTC (rev 15396)
@@ -47,6 +47,8 @@
GCC_ASM_EXPORT(ArmCallWFE)
GCC_ASM_EXPORT(ArmCallSEV)
GCC_ASM_EXPORT(ArmReadSctlr)
+GCC_ASM_EXPORT(ArmReadCpuActlr)
+GCC_ASM_EXPORT(ArmWriteCpuActlr)
#------------------------------------------------------------------------------
@@ -161,7 +163,6 @@
mcr p15, 4, r0, c12, c0, 0
bx lr
-
ASM_PFX(ArmReadMVBar):
mrc p15, 0, r0, c12, c0, 1
bx lr
@@ -179,7 +180,17 @@
bx lr
ASM_PFX(ArmReadSctlr):
- mrc p15, 0, R0, c1, c0, 0 @ Read SCTLR into R0 (Read control
register configuration data)
- bx lr
+ mrc p15, 0, r0, c1, c0, 0 @ Read SCTLR into R0 (Read control
register configuration data)
+ bx lr
+ASM_PFX(ArmReadCpuActlr):
+ mrc p15, 0, r0, c1, c0, 1
+ bx lr
+
+ASM_PFX(ArmWriteCpuActlr):
+ mcr p15, 0, r0, c1, c0, 1
+ dsb
+ isb
+ bx lr
+
ASM_FUNCTION_REMOVE_IF_UNREFERENCED
Modified: trunk/edk2/ArmPkg/Library/ArmLib/Common/Arm/ArmLibSupport.asm
===================================================================
--- trunk/edk2/ArmPkg/Library/ArmLib/Common/Arm/ArmLibSupport.asm
2014-03-26 19:29:31 UTC (rev 15395)
+++ trunk/edk2/ArmPkg/Library/ArmLib/Common/Arm/ArmLibSupport.asm
2014-03-26 19:31:01 UTC (rev 15396)
@@ -47,6 +47,8 @@
EXPORT ArmCallWFE
EXPORT ArmCallSEV
EXPORT ArmReadSctlr
+ EXPORT ArmReadCpuActlr
+ EXPORT ArmWriteCpuActlr
AREA ArmLibSupport, CODE, READONLY
@@ -179,6 +181,17 @@
ArmReadSctlr
mrc p15, 0, r0, c1, c0, 0 // Read SCTLR into R0 (Read control
register configuration data)
- bx lr
+ bx lr
+
+ArmReadCpuActlr
+ mrc p15, 0, r0, c1, c0, 1
+ bx lr
+
+ArmWriteCpuActlr
+ mcr p15, 0, r0, c1, c0, 1
+ dsb
+ isb
+ bx lr
+
END
Modified: trunk/edk2/ArmPkg/Library/ArmLib/Common/ArmLib.c
===================================================================
--- trunk/edk2/ArmPkg/Library/ArmLib/Common/ArmLib.c 2014-03-26 19:29:31 UTC
(rev 15395)
+++ trunk/edk2/ArmPkg/Library/ArmLib/Common/ArmLib.c 2014-03-26 19:31:01 UTC
(rev 15396)
@@ -1,7 +1,7 @@
/** @file
Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
- Copyright (c) 2011 - 2012, ARM Ltd. All rights reserved.<BR>
+ Copyright (c) 2011 - 2014, ARM Ltd. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD
License
@@ -62,3 +62,31 @@
val &= ~Bits;
ArmWriteAuxCr(val);
}
+
+//
+// Helper functions for accessing CPUACTLR
+//
+
+VOID
+EFIAPI
+ArmSetCpuActlrBit (
+ IN UINTN Bits
+ )
+{
+ UINTN Value;
+ Value = ArmReadCpuActlr ();
+ Value |= Bits;
+ ArmWriteCpuActlr (Value);
+}
+
+VOID
+EFIAPI
+ArmUnsetCpuActlrBit (
+ IN UINTN Bits
+ )
+{
+ UINTN Value;
+ Value = ArmReadCpuActlr ();
+ Value &= ~Bits;
+ ArmWriteCpuActlr (Value);
+}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits