3 Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
4 Copyright (c) 2011 - 2014, ARM Limited. All rights reserved.
5 Copyright (c) 2020, NUVIA Inc. All rights reserved.<BR>
7 SPDX-License-Identifier: BSD-2-Clause-Patent
13 #include <Library/ArmLib.h>
14 #include <Library/DebugLib.h>
16 #include <Chipset/ArmV7.h>
19 #include "ArmLibPrivate.h"
22 ArmV7DataCacheOperation (
23 IN ARM_V7_CACHE_OPERATION DataCacheOperation
26 UINTN SavedInterruptState
;
28 SavedInterruptState
= ArmGetInterruptState ();
29 ArmDisableInterrupts ();
31 ArmV7AllDataCachesOperation (DataCacheOperation
);
33 ArmDataSynchronizationBarrier ();
35 if (SavedInterruptState
) {
36 ArmEnableInterrupts ();
42 ArmInvalidateDataCache (
46 ASSERT (!ArmMmuEnabled ());
48 ArmDataSynchronizationBarrier ();
49 ArmV7DataCacheOperation (ArmInvalidateDataCacheEntryBySetWay
);
54 ArmCleanInvalidateDataCache (
58 ASSERT (!ArmMmuEnabled ());
60 ArmDataSynchronizationBarrier ();
61 ArmV7DataCacheOperation (ArmCleanInvalidateDataCacheEntryBySetWay
);
70 ASSERT (!ArmMmuEnabled ());
72 ArmDataSynchronizationBarrier ();
73 ArmV7DataCacheOperation (ArmCleanDataCacheEntryBySetWay
);
77 Check whether the CPU supports the GIC system register interface (any version)
79 @return Whether GIC System Register Interface is supported
84 ArmHasGicSystemRegisters (
88 return ((ArmReadIdPfr1 () & ARM_PFR1_GIC
) != 0);
92 Check whether the CPU supports the Security extensions
94 @return Whether the Security extensions are implemented
99 ArmHasSecurityExtensions (
103 return ((ArmReadIdPfr1 () & ARM_PFR1_SEC
) != 0);