mirror of https://github.com/acidanthera/audk.git
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:
parent
c722289324
commit
f977e6500a
|
@ -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 *
|
||||
|
|
Loading…
Reference in New Issue