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
This commit is contained in:
Ard Biesheuvel 2015-11-09 13:27:36 +00:00 committed by abiesheuvel
parent c722289324
commit f977e6500a
1 changed files with 4 additions and 4 deletions

View File

@ -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 *