summaryrefslogtreecommitdiffstats
path: root/ArmPkg
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2015-11-09 13:27:36 +0000
committerabiesheuvel <abiesheuvel@Edk2>2015-11-09 13:27:36 +0000
commitf977e6500a3c8d0d9d986c1b5be0cf495edc5500 (patch)
tree3fcfbbe894dbdc7555fc430fde02577ce84b00c4 /ArmPkg
parentc722289324223c472fcf920f860dc4b49314dedf (diff)
downloadedk2-f977e6500a3c8d0d9d986c1b5be0cf495edc5500.tar.gz
edk2-f977e6500a3c8d0d9d986c1b5be0cf495edc5500.tar.bz2
edk2-f977e6500a3c8d0d9d986c1b5be0cf495edc5500.zip
ArmCacheMaintenanceLib: disallow whole D-cache maintenance operations
The ARM architecture provides no reliable way to clean or invalidate the entire data cache at runtime. The reason is that such maintenance requires the use of set/way maintenance operations, which are suitable only for the kind of maintenance that is carried out when the cache is taken offline entirely. So ASSERT () when any of the CacheMaintenanceLib whole data cache routines are invoked rather than pretending we can do anything meaningful here. 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@18756 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ArmPkg')
-rw-r--r--ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.c b/ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.c
index d4c16a6074..65ba8749e7 100644
--- a/ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.c
+++ b/ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.c
@@ -14,6 +14,7 @@
**/
#include <Base.h>
#include <Library/ArmLib.h>
+#include <Library/DebugLib.h>
#include <Library/PcdLib.h>
VOID
@@ -44,7 +45,6 @@ InvalidateInstructionCache (
VOID
)
{
- ArmCleanDataCache();
ArmInvalidateInstructionCache();
}
@@ -54,7 +54,7 @@ InvalidateDataCache (
VOID
)
{
- ArmInvalidateDataCache();
+ ASSERT (FALSE);
}
VOID *
@@ -75,7 +75,7 @@ WriteBackInvalidateDataCache (
VOID
)
{
- ArmCleanInvalidateDataCache();
+ ASSERT (FALSE);
}
VOID *
@@ -95,7 +95,7 @@ WriteBackDataCache (
VOID
)
{
- ArmCleanDataCache();
+ ASSERT (FALSE);
}
VOID *