]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPkg/Library/ArmLib/Arm9/Arm9CacheInformation.c
ARM Packages: Removed trailing spaces
[mirror_edk2.git] / ArmPkg / Library / ArmLib / Arm9 / Arm9CacheInformation.c
CommitLineData
2ef2b01e
A
1/** @file\r
2\r
d6ebcab7 3 Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
64751727
OM
4 Copyright (c) 2014, ARM Limited. All rights reserved.\r
5\r
d6ebcab7 6 This program and the accompanying materials\r
2ef2b01e
A
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php\r
10\r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13\r
14**/\r
15\r
16#include <Library/ArmLib.h>\r
17#include "ArmLibPrivate.h"\r
18\r
19ARM_CACHE_TYPE\r
20EFIAPI\r
21ArmCacheType (\r
22 VOID\r
23 )\r
24{\r
64751727 25 switch (CACHE_TYPE (ArmCacheInfo ()))\r
2ef2b01e
A
26 {\r
27 case CACHE_TYPE_WRITE_BACK: return ARM_CACHE_TYPE_WRITE_BACK;\r
28 default: return ARM_CACHE_TYPE_UNKNOWN;\r
29 }\r
30}\r
31\r
32ARM_CACHE_ARCHITECTURE\r
33EFIAPI\r
34ArmCacheArchitecture (\r
35 VOID\r
36 )\r
37{\r
64751727 38 switch (CACHE_ARCHITECTURE (ArmCacheInfo ()))\r
2ef2b01e
A
39 {\r
40 case CACHE_ARCHITECTURE_UNIFIED: return ARM_CACHE_ARCHITECTURE_UNIFIED;\r
41 case CACHE_ARCHITECTURE_SEPARATE: return ARM_CACHE_ARCHITECTURE_SEPARATE;\r
42 default: return ARM_CACHE_ARCHITECTURE_UNKNOWN;\r
43 }\r
44}\r
45\r
46BOOLEAN\r
47EFIAPI\r
48ArmDataCachePresent (\r
49 VOID\r
50 )\r
51{\r
64751727 52 switch (DATA_CACHE_PRESENT (ArmCacheInfo ()))\r
2ef2b01e
A
53 {\r
54 case CACHE_PRESENT: return TRUE;\r
55 case CACHE_NOT_PRESENT: return FALSE;\r
56 default: return FALSE;\r
57 }\r
58}\r
3402aac7 59\r
2ef2b01e
A
60UINTN\r
61EFIAPI\r
62ArmDataCacheSize (\r
63 VOID\r
64 )\r
65{\r
64751727 66 switch (DATA_CACHE_SIZE (ArmCacheInfo ()))\r
2ef2b01e 67 {\r
3402aac7 68 case CACHE_SIZE_4_KB: return 4 * 1024;\r
2ef2b01e 69 case CACHE_SIZE_8_KB: return 8 * 1024;\r
3402aac7 70 case CACHE_SIZE_16_KB: return 16 * 1024;\r
2ef2b01e
A
71 case CACHE_SIZE_32_KB: return 32 * 1024;\r
72 case CACHE_SIZE_64_KB: return 64 * 1024;\r
73 case CACHE_SIZE_128_KB: return 128 * 1024;\r
74 default: return 0;\r
75 }\r
76}\r
3402aac7 77\r
2ef2b01e
A
78UINTN\r
79EFIAPI\r
80ArmDataCacheAssociativity (\r
81 VOID\r
82 )\r
83{\r
64751727 84 switch (DATA_CACHE_ASSOCIATIVITY (ArmCacheInfo ()))\r
2ef2b01e
A
85 {\r
86 case CACHE_ASSOCIATIVITY_4_WAY: return 4;\r
87 case CACHE_ASSOCIATIVITY_DIRECT: return 1;\r
88 default: return 0;\r
89 }\r
90}\r
3402aac7 91\r
2ef2b01e
A
92UINTN\r
93EFIAPI\r
94ArmDataCacheLineLength (\r
95 VOID\r
96 )\r
97{\r
64751727 98 switch (DATA_CACHE_LINE_LENGTH (ArmCacheInfo ()))\r
2ef2b01e
A
99 {\r
100 case CACHE_LINE_LENGTH_32_BYTES: return 32;\r
101 default: return 0;\r
102 }\r
103}\r
3402aac7 104\r
2ef2b01e
A
105BOOLEAN\r
106EFIAPI\r
107ArmInstructionCachePresent (\r
108 VOID\r
109 )\r
110{\r
64751727 111 switch (INSTRUCTION_CACHE_PRESENT (ArmCacheInfo ()))\r
2ef2b01e
A
112 {\r
113 case CACHE_PRESENT: return TRUE;\r
114 case CACHE_NOT_PRESENT: return FALSE;\r
115 default: return FALSE;\r
116 }\r
117}\r
3402aac7 118\r
2ef2b01e
A
119UINTN\r
120EFIAPI\r
121ArmInstructionCacheSize (\r
122 VOID\r
123 )\r
124{\r
64751727 125 switch (INSTRUCTION_CACHE_SIZE (ArmCacheInfo ()))\r
2ef2b01e 126 {\r
3402aac7 127 case CACHE_SIZE_4_KB: return 4 * 1024;\r
2ef2b01e 128 case CACHE_SIZE_8_KB: return 8 * 1024;\r
3402aac7 129 case CACHE_SIZE_16_KB: return 16 * 1024;\r
2ef2b01e
A
130 case CACHE_SIZE_32_KB: return 32 * 1024;\r
131 case CACHE_SIZE_64_KB: return 64 * 1024;\r
132 case CACHE_SIZE_128_KB: return 128 * 1024;\r
133 default: return 0;\r
134 }\r
135}\r
3402aac7 136\r
2ef2b01e
A
137UINTN\r
138EFIAPI\r
139ArmInstructionCacheAssociativity (\r
140 VOID\r
141 )\r
142{\r
64751727 143 switch (INSTRUCTION_CACHE_ASSOCIATIVITY (ArmCacheInfo ()))\r
2ef2b01e
A
144 {\r
145 case CACHE_ASSOCIATIVITY_8_WAY: return 8;\r
146 case CACHE_ASSOCIATIVITY_4_WAY: return 4;\r
147 case CACHE_ASSOCIATIVITY_DIRECT: return 1;\r
148 default: return 0;\r
149 }\r
150}\r
3402aac7 151\r
2ef2b01e
A
152UINTN\r
153EFIAPI\r
154ArmInstructionCacheLineLength (\r
155 VOID\r
156 )\r
157{\r
64751727 158 switch (INSTRUCTION_CACHE_LINE_LENGTH (ArmCacheInfo ()))\r
2ef2b01e
A
159 {\r
160 case CACHE_LINE_LENGTH_32_BYTES: return 32;\r
161 default: return 0;\r
162 }\r
163}\r
164\r
165\r