Please don't remove this functionality.  At times we do want to use this 
library to turn off the cache in preparation for going to another environment 
(say, loading an OS) and this is useful.

Eugene

-----Original Message-----
From: edk2-devel [mailto:[email protected]] On Behalf Of Ard 
Biesheuvel
Sent: Tuesday, November 03, 2015 3:17 AM
To: [email protected]; [email protected]; [email protected]
Cc: [email protected]; Ard Biesheuvel <[email protected]>
Subject: [edk2] [PATCH 08/10] 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 <[email protected]>
---
 ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.c 
b/ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.c
index 175d29496c32..8cc1990b3266 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 *
@@ -76,7 +76,7 @@ WriteBackInvalidateDataCache (
   VOID
   )
 {
-  ArmCleanInvalidateDataCache();
+  ASSERT (FALSE);
 }
 
 VOID *
@@ -96,7 +96,7 @@ WriteBackDataCache (
   VOID
   )
 {
-  ArmCleanDataCache();
+  ASSERT (FALSE);
 }
 
 VOID *
--
1.9.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to