summaryrefslogtreecommitdiff
path: root/ArmPkg/Library/ArmLib/ArmV7
diff options
context:
space:
mode:
authorandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>2010-02-24 22:38:46 +0000
committerandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>2010-02-24 22:38:46 +0000
commit026c3d34ee83b4df623cc80761450a53e9f7622b (patch)
tree093ad41be275694e4a107bc0775853afcc59dc70 /ArmPkg/Library/ArmLib/ArmV7
parent14e00c13be4ead51d9fd38e07af661af63ca2359 (diff)
downloadedk2-platforms-026c3d34ee83b4df623cc80761450a53e9f7622b.tar.xz
Updated Hardware Interrupt protocol to add an EOI member. Added ARM Data/Instruction syncronization barrier support to the ARM lib.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10063 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ArmPkg/Library/ArmLib/ArmV7')
-rw-r--r--ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.S16
-rw-r--r--ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm17
2 files changed, 33 insertions, 0 deletions
diff --git a/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.S b/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.S
index 2cde8e2039..b4ec9b5122 100644
--- a/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.S
+++ b/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.S
@@ -34,6 +34,10 @@
.globl ASM_PFX(ArmEnableBranchPrediction)
.globl ASM_PFX(ArmDisableBranchPrediction)
.globl ASM_PFX(ArmV7AllDataCachesOperation)
+.globl ASM_PFX(ArmDataMemoryBarrier)
+.globl ASM_PFX(ArmDataSyncronizationBarrier)
+.globl ASM_PFX(ArmInstructionSynchronizationBarrier)
+
.set DC_ON, (0x1<<2)
.set IC_ON, (0x1<<12)
@@ -222,5 +226,17 @@ L_Finished:
ldmfd SP!, {r4-r12, lr}
bx LR
+ASM_PFX(ArmDataMemoryBarrier):
+ dmb
+ bx LR
+
+ASM_PFX(ArmDataSyncronizationBarrier):
+ dsb
+ bx LR
+
+ASM_PFX(ArmInstructionSynchronizationBarrier):
+ isb
+ bx LR
+
ASM_FUNCTION_REMOVE_IF_UNREFERENCED
diff --git a/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm b/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
index d1cf8c1642..e2676d4995 100644
--- a/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
+++ b/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
@@ -30,6 +30,10 @@
EXPORT ArmEnableBranchPrediction
EXPORT ArmDisableBranchPrediction
EXPORT ArmV7AllDataCachesOperation
+ EXPORT ArmDataMemoryBarrier
+ EXPORT ArmDataSyncronizationBarrier
+ EXPORT ArmInstructionSynchronizationBarrier
+
DC_ON EQU ( 0x1:SHL:2 )
IC_ON EQU ( 0x1:SHL:12 )
@@ -217,4 +221,17 @@ Finished
LDMFD SP!, {r4-r12, lr}
BX LR
+
+ArmDataMemoryBarrier
+ DMB
+ BX LR
+
+ArmDataSyncronizationBarrier
+ DSB
+ BX LR
+
+ArmInstructionSynchronizationBarrier
+ ISB
+ BX LR
+
END