mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-16 18:24:24 +02:00
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 <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18895 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
63dbd62964
commit
2ea66ed9f9
@ -19,6 +19,7 @@
|
|||||||
.align 2
|
.align 2
|
||||||
|
|
||||||
GCC_ASM_EXPORT(ArmIsMpCore)
|
GCC_ASM_EXPORT(ArmIsMpCore)
|
||||||
|
GCC_ASM_EXPORT(ArmHasMpExtensions)
|
||||||
GCC_ASM_EXPORT(ArmEnableAsynchronousAbort)
|
GCC_ASM_EXPORT(ArmEnableAsynchronousAbort)
|
||||||
GCC_ASM_EXPORT(ArmDisableAsynchronousAbort)
|
GCC_ASM_EXPORT(ArmDisableAsynchronousAbort)
|
||||||
GCC_ASM_EXPORT(ArmEnableIrq)
|
GCC_ASM_EXPORT(ArmEnableIrq)
|
||||||
@ -44,6 +45,12 @@ ASM_PFX(ArmIsMpCore):
|
|||||||
movne R0, #0
|
movne R0, #0
|
||||||
bx LR
|
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):
|
ASM_PFX(ArmEnableAsynchronousAbort):
|
||||||
cpsie a
|
cpsie a
|
||||||
isb
|
isb
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
|
|
||||||
EXPORT ArmIsMpCore
|
EXPORT ArmIsMpCore
|
||||||
|
EXPORT ArmHasMpExtensions
|
||||||
EXPORT ArmEnableAsynchronousAbort
|
EXPORT ArmEnableAsynchronousAbort
|
||||||
EXPORT ArmDisableAsynchronousAbort
|
EXPORT ArmDisableAsynchronousAbort
|
||||||
EXPORT ArmEnableIrq
|
EXPORT ArmEnableIrq
|
||||||
@ -43,6 +44,12 @@ ArmIsMpCore
|
|||||||
movne R0, #0
|
movne R0, #0
|
||||||
bx LR
|
bx LR
|
||||||
|
|
||||||
|
ArmHasMpExtensions
|
||||||
|
mrc p15,0,R0,c0,c0,5
|
||||||
|
// Get Multiprocessing extension (bit31)
|
||||||
|
lsr R0, R0, #31
|
||||||
|
bx LR
|
||||||
|
|
||||||
ArmEnableAsynchronousAbort
|
ArmEnableAsynchronousAbort
|
||||||
cpsie a
|
cpsie a
|
||||||
isb
|
isb
|
||||||
|
@ -28,5 +28,11 @@ ArmReadIdMmfr0 (
|
|||||||
VOID
|
VOID
|
||||||
);
|
);
|
||||||
|
|
||||||
|
BOOLEAN
|
||||||
|
EFIAPI
|
||||||
|
ArmHasMpExtensions (
|
||||||
|
VOID
|
||||||
|
);
|
||||||
|
|
||||||
#endif // __ARM_V7_LIB_H__
|
#endif // __ARM_V7_LIB_H__
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user