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
12 #include <Library/ArmLib.h>
13 #include <Library/DebugLib.h>
15 #include <Chipset/AArch64.h>
17 #include "AArch64Lib.h"
18 #include "ArmLibPrivate.h"
21 AArch64DataCacheOperation (
22 IN AARCH64_CACHE_OPERATION DataCacheOperation
25 UINTN SavedInterruptState
;
27 SavedInterruptState
= ArmGetInterruptState ();
28 ArmDisableInterrupts();
30 AArch64AllDataCachesOperation (DataCacheOperation
);
32 ArmDataSynchronizationBarrier ();
34 if (SavedInterruptState
) {
35 ArmEnableInterrupts ();
41 ArmInvalidateDataCache (
45 ASSERT (!ArmMmuEnabled ());
47 ArmDataSynchronizationBarrier ();
48 AArch64DataCacheOperation (ArmInvalidateDataCacheEntryBySetWay
);
53 ArmCleanInvalidateDataCache (
57 ASSERT (!ArmMmuEnabled ());
59 ArmDataSynchronizationBarrier ();
60 AArch64DataCacheOperation (ArmCleanInvalidateDataCacheEntryBySetWay
);
69 ASSERT (!ArmMmuEnabled ());
71 ArmDataSynchronizationBarrier ();
72 AArch64DataCacheOperation (ArmCleanDataCacheEntryBySetWay
);