diff --git a/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.c b/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.c index 924bf48020..3fbd591192 100644 --- a/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.c +++ b/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.c @@ -10,6 +10,7 @@ #include #include +#include #include @@ -41,6 +42,8 @@ ArmInvalidateDataCache ( VOID ) { + ASSERT (!ArmMmuEnabled ()); + ArmDataSynchronizationBarrier (); AArch64DataCacheOperation (ArmInvalidateDataCacheEntryBySetWay); } @@ -51,6 +54,8 @@ ArmCleanInvalidateDataCache ( VOID ) { + ASSERT (!ArmMmuEnabled ()); + ArmDataSynchronizationBarrier (); AArch64DataCacheOperation (ArmCleanInvalidateDataCacheEntryBySetWay); } @@ -61,6 +66,8 @@ ArmCleanDataCache ( VOID ) { + ASSERT (!ArmMmuEnabled ()); + ArmDataSynchronizationBarrier (); AArch64DataCacheOperation (ArmCleanDataCacheEntryBySetWay); } diff --git a/ArmPkg/Library/ArmLib/Arm/ArmV7Lib.c b/ArmPkg/Library/ArmLib/Arm/ArmV7Lib.c index 5d93aa6e0b..2c4a23e1a1 100644 --- a/ArmPkg/Library/ArmLib/Arm/ArmV7Lib.c +++ b/ArmPkg/Library/ArmLib/Arm/ArmV7Lib.c @@ -10,6 +10,7 @@ #include #include +#include #include @@ -41,6 +42,8 @@ ArmInvalidateDataCache ( VOID ) { + ASSERT (!ArmMmuEnabled ()); + ArmDataSynchronizationBarrier (); ArmV7DataCacheOperation (ArmInvalidateDataCacheEntryBySetWay); } @@ -51,6 +54,8 @@ ArmCleanInvalidateDataCache ( VOID ) { + ASSERT (!ArmMmuEnabled ()); + ArmDataSynchronizationBarrier (); ArmV7DataCacheOperation (ArmCleanInvalidateDataCacheEntryBySetWay); } @@ -61,6 +66,8 @@ ArmCleanDataCache ( VOID ) { + ASSERT (!ArmMmuEnabled ()); + ArmDataSynchronizationBarrier (); ArmV7DataCacheOperation (ArmCleanDataCacheEntryBySetWay); } diff --git a/ArmPkg/Library/ArmLib/ArmBaseLib.inf b/ArmPkg/Library/ArmLib/ArmBaseLib.inf index 106a09f821..f61c71b673 100644 --- a/ArmPkg/Library/ArmLib/ArmBaseLib.inf +++ b/ArmPkg/Library/ArmLib/ArmBaseLib.inf @@ -44,6 +44,9 @@ AArch64/AArch64Support.S AArch64/AArch64ArchTimerSupport.S +[LibraryClasses] + DebugLib + [Packages] ArmPkg/ArmPkg.dec MdePkg/MdePkg.dec