3 Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
4 Copyright (c) 2011 - 2014, ARM Limited. All rights reserved.
6 SPDX-License-Identifier: BSD-2-Clause-Patent
12 #include <Library/ArmLib.h>
13 #include <Library/DebugLib.h>
15 #include <Chipset/ArmV7.h>
18 #include "ArmLibPrivate.h"
21 ArmV7DataCacheOperation (
22 IN ARM_V7_CACHE_OPERATION DataCacheOperation
25 UINTN SavedInterruptState
;
27 SavedInterruptState
= ArmGetInterruptState ();
28 ArmDisableInterrupts ();
30 ArmV7AllDataCachesOperation (DataCacheOperation
);
32 ArmDataSynchronizationBarrier ();
34 if (SavedInterruptState
) {
35 ArmEnableInterrupts ();
41 ArmInvalidateDataCache (
45 ASSERT (!ArmMmuEnabled ());
47 ArmDataSynchronizationBarrier ();
48 ArmV7DataCacheOperation (ArmInvalidateDataCacheEntryBySetWay
);
53 ArmCleanInvalidateDataCache (
57 ASSERT (!ArmMmuEnabled ());
59 ArmDataSynchronizationBarrier ();
60 ArmV7DataCacheOperation (ArmCleanInvalidateDataCacheEntryBySetWay
);
69 ASSERT (!ArmMmuEnabled ());
71 ArmDataSynchronizationBarrier ();
72 ArmV7DataCacheOperation (ArmCleanDataCacheEntryBySetWay
);