3 Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
4 Portions copyright (c) 2011 - 2014, ARM Ltd. All rights reserved.<BR>
6 SPDX-License-Identifier: BSD-2-Clause-Patent
11 #include <Chipset/AArch64.h>
12 #include <Library/ArmLib.h>
13 #include <Library/BaseLib.h>
14 #include <Library/IoLib.h>
15 #include "AArch64Lib.h"
16 #include "ArmLibPrivate.h"
19 AArch64DataCacheOperation (
20 IN AARCH64_CACHE_OPERATION DataCacheOperation
23 UINTN SavedInterruptState
;
25 SavedInterruptState
= ArmGetInterruptState ();
26 ArmDisableInterrupts();
28 AArch64AllDataCachesOperation (DataCacheOperation
);
30 ArmDataSynchronizationBarrier ();
32 if (SavedInterruptState
) {
33 ArmEnableInterrupts ();
39 ArmInvalidateDataCache (
43 ArmDataSynchronizationBarrier ();
44 AArch64DataCacheOperation (ArmInvalidateDataCacheEntryBySetWay
);
49 ArmCleanInvalidateDataCache (
53 ArmDataSynchronizationBarrier ();
54 AArch64DataCacheOperation (ArmCleanInvalidateDataCacheEntryBySetWay
);
63 ArmDataSynchronizationBarrier ();
64 AArch64DataCacheOperation (ArmCleanDataCacheEntryBySetWay
);