]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPkg/Library/ArmLib/Arm/ArmV7Lib.c
ArmPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / ArmPkg / Library / ArmLib / Arm / ArmV7Lib.c
1 /** @file
2
3 Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
4 Copyright (c) 2011 - 2014, ARM Limited. All rights reserved.
5
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7
8 **/
9 #include <Uefi.h>
10 #include <Chipset/ArmV7.h>
11 #include <Library/ArmLib.h>
12 #include <Library/BaseLib.h>
13 #include <Library/IoLib.h>
14 #include "ArmV7Lib.h"
15 #include "ArmLibPrivate.h"
16
17 VOID
18 ArmV7DataCacheOperation (
19 IN ARM_V7_CACHE_OPERATION DataCacheOperation
20 )
21 {
22 UINTN SavedInterruptState;
23
24 SavedInterruptState = ArmGetInterruptState ();
25 ArmDisableInterrupts ();
26
27 ArmV7AllDataCachesOperation (DataCacheOperation);
28
29 ArmDataSynchronizationBarrier ();
30
31 if (SavedInterruptState) {
32 ArmEnableInterrupts ();
33 }
34 }
35
36 VOID
37 EFIAPI
38 ArmInvalidateDataCache (
39 VOID
40 )
41 {
42 ArmDataSynchronizationBarrier ();
43 ArmV7DataCacheOperation (ArmInvalidateDataCacheEntryBySetWay);
44 }
45
46 VOID
47 EFIAPI
48 ArmCleanInvalidateDataCache (
49 VOID
50 )
51 {
52 ArmDataSynchronizationBarrier ();
53 ArmV7DataCacheOperation (ArmCleanInvalidateDataCacheEntryBySetWay);
54 }
55
56 VOID
57 EFIAPI
58 ArmCleanDataCache (
59 VOID
60 )
61 {
62 ArmDataSynchronizationBarrier ();
63 ArmV7DataCacheOperation (ArmCleanDataCacheEntryBySetWay);
64 }