Revision: 18895
          http://sourceforge.net/p/edk2/code/18895
Author:   abiesheuvel
Date:     2015-11-18 15:58:46 +0000 (Wed, 18 Nov 2015)
Log Message:
-----------
ArmPkg/ArmV7Lib: add function to test for presence of MP extensions

Some MMU manipulation is dependent on the presence of the multiprocessing
extensions. So add a function that returns this information.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <[email protected]>
Reviewed-by: Leif Lindholm <[email protected]>

Modified Paths:
--------------
    trunk/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmLibSupportV7.S
    trunk/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmLibSupportV7.asm
    trunk/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.h

Modified: trunk/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmLibSupportV7.S
===================================================================
--- trunk/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmLibSupportV7.S    2015-11-18 
15:58:26 UTC (rev 18894)
+++ trunk/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmLibSupportV7.S    2015-11-18 
15:58:46 UTC (rev 18895)
@@ -19,6 +19,7 @@
 .align 2
 
 GCC_ASM_EXPORT(ArmIsMpCore)
+GCC_ASM_EXPORT(ArmHasMpExtensions)
 GCC_ASM_EXPORT(ArmEnableAsynchronousAbort)
 GCC_ASM_EXPORT(ArmDisableAsynchronousAbort)
 GCC_ASM_EXPORT(ArmEnableIrq)
@@ -44,6 +45,12 @@
   movne   R0, #0
   bx      LR
 
+ASM_PFX(ArmHasMpExtensions):
+  mrc     p15,0,R0,c0,c0,5
+  // Get Multiprocessing extension (bit31)
+  lsr     R0, R0, #31
+  bx      LR
+
 ASM_PFX(ArmEnableAsynchronousAbort):
   cpsie   a
   isb

Modified: trunk/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmLibSupportV7.asm
===================================================================
--- trunk/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmLibSupportV7.asm  2015-11-18 
15:58:26 UTC (rev 18894)
+++ trunk/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmLibSupportV7.asm  2015-11-18 
15:58:46 UTC (rev 18895)
@@ -15,6 +15,7 @@
 
 
     EXPORT  ArmIsMpCore
+    EXPORT  ArmHasMpExtensions
     EXPORT  ArmEnableAsynchronousAbort
     EXPORT  ArmDisableAsynchronousAbort
     EXPORT  ArmEnableIrq
@@ -43,6 +44,12 @@
   movne   R0, #0
   bx      LR
 
+ArmHasMpExtensions
+  mrc     p15,0,R0,c0,c0,5
+  // Get Multiprocessing extension (bit31)
+  lsr     R0, R0, #31
+  bx      LR
+
 ArmEnableAsynchronousAbort
   cpsie   a
   isb

Modified: trunk/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.h
===================================================================
--- trunk/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.h   2015-11-18 15:58:26 UTC 
(rev 18894)
+++ trunk/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.h   2015-11-18 15:58:46 UTC 
(rev 18895)
@@ -28,5 +28,11 @@
   VOID
   );
 
+BOOLEAN
+EFIAPI
+ArmHasMpExtensions (
+  VOID
+  );
+
 #endif // __ARM_V7_LIB_H__
 


------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to