]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPkg/Library/ArmLib/ArmLib.c
ArmPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / ArmPkg / Library / ArmLib / ArmLib.c
CommitLineData
2ef2b01e
A
1/** @file\r
2\r
d6ebcab7 3 Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
52d44f77 4 Copyright (c) 2011 - 2014, ARM Ltd. All rights reserved.<BR>\r
3402aac7 5\r
4059386c 6 SPDX-License-Identifier: BSD-2-Clause-Patent\r
2ef2b01e
A
7\r
8**/\r
9\r
10#include <Base.h>\r
11\r
12#include <Library/ArmLib.h>\r
13#include <Library/DebugLib.h>\r
14#include <Library/PcdLib.h>\r
15\r
16#include "ArmLibPrivate.h"\r
17\r
bd6b9799 18VOID\r
19EFIAPI\r
20ArmSetAuxCrBit (\r
21 IN UINT32 Bits\r
22 )\r
23{\r
24 UINT32 val = ArmReadAuxCr();\r
25 val |= Bits;\r
26 ArmWriteAuxCr(val);\r
27}\r
28\r
836c3500 29VOID\r
30EFIAPI\r
31ArmUnsetAuxCrBit (\r
32 IN UINT32 Bits\r
33 )\r
34{\r
35 UINT32 val = ArmReadAuxCr();\r
36 val &= ~Bits;\r
37 ArmWriteAuxCr(val);\r
38}\r
52d44f77
OM
39\r
40//\r
41// Helper functions for accessing CPUACTLR\r
42//\r
43\r
44VOID\r
45EFIAPI\r
46ArmSetCpuActlrBit (\r
47 IN UINTN Bits\r
48 )\r
49{\r
50 UINTN Value;\r
51 Value = ArmReadCpuActlr ();\r
52 Value |= Bits;\r
53 ArmWriteCpuActlr (Value);\r
54}\r
55\r
56VOID\r
57EFIAPI\r
58ArmUnsetCpuActlrBit (\r
59 IN UINTN Bits\r
60 )\r
61{\r
62 UINTN Value;\r
63 Value = ArmReadCpuActlr ();\r
64 Value &= ~Bits;\r
65 ArmWriteCpuActlr (Value);\r
66}\r
fbf658eb
AB
67\r
68UINTN\r
69EFIAPI\r
70ArmDataCacheLineLength (\r
71 VOID\r
72 )\r
73{\r
74 return 4 << ((ArmCacheInfo () >> 16) & 0xf); // CTR_EL0.DminLine\r
75}\r
76\r
77UINTN\r
78EFIAPI\r
79ArmInstructionCacheLineLength (\r
80 VOID\r
81 )\r
82{\r
83 return 4 << (ArmCacheInfo () & 0xf); // CTR_EL0.IminLine\r
84}\r
c653fc2a
AB
85\r
86UINTN\r
87EFIAPI\r
88ArmCacheWritebackGranule (\r
89 VOID\r
90 )\r
91{\r
92 UINTN CWG;\r
93\r
94 CWG = (ArmCacheInfo () >> 24) & 0xf; // CTR_EL0.CWG\r
95\r
96 if (CWG == 0) {\r
97 return SIZE_2KB;\r
98 }\r
99\r
100 return 4 << CWG;\r
101}\r