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