← Documents Documentation/arch/arm64/silicon-errata.rst GitHub 원문 ↗

Linux 6.18.37 · Architecture

Silicon Errata and Software Workarounds

ARM silicon errata 분류와 Linux alternatives 기반 workaround 정책, 143개 구현사별 registry를 제공합니다.

Source pathDocumentation/arch/arm64/silicon-errata.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

silicon-errata.rst:1-355

Linux는 실제로 OS가 trigger할 수 있고 non-secure 조치가 필요한 silicon errata만 software workaround 대상으로 삼습니다. 영향이 큰 workaround는 alternatives framework와 Kconfig로 관리하고 affected CPU에서 runtime patch하며, 이 문서는 구현사와 component별 전체 registry입니다.

Erratum 처리 결정
Erratum 확인Linux에서 trigger 가능?Non-secure workaround 필요?영향 범위 평가Alternatives 또는 code-level 회피

분류와 Linux trigger 가능성, system-wide 영향에 따라 구현 방식을 선택합니다.

Workaround 정책
분류Hardware 의미Linux 관점
A실행 가능한 workaround 없음드물게 조치로 C로 declassify
B수용 가능한 workaround 존재필요 시 OS special treatment
C정상 상황에서 발생 가능성 낮음대개 별도 조치 없음

Errata category와 Linux의 일반적인 대응을 연결합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 =======================================
2 Silicon Errata and Software Workarounds
3 =======================================
4
5 Author: Will Deacon <will.deacon@arm.com>
6
7 Date : 27 November 2015
8
9 It is an unfortunate fact of life that hardware is often produced with
10 so-called "errata", which can cause it to deviate from the architecture
11 under specific circumstances. For hardware produced by ARM, these
12 errata are broadly classified into the following categories:
13
14 ========== ========================================================
15 Category A A critical error without a viable workaround.
16 Category B A significant or critical error with an acceptable
17 workaround.
18 Category C A minor error that is not expected to occur under normal
19 operation.
20 ========== ========================================================
21
22 For more information, consult one of the "Software Developers Errata
23 Notice" documents available on infocenter.arm.com (registration
24 required).
25
26 As far as Linux is concerned, Category B errata may require some special
27 treatment in the operating system. For example, avoiding a particular
28 sequence of code, or configuring the processor in a particular way. A
29 less common situation may require similar actions in order to declassify
30 a Category A erratum into a Category C erratum. These are collectively
31 known as "software workarounds" and are only required in the minority of
32 cases (e.g. those cases that both require a non-secure workaround *and*
33 can be triggered by Linux).
34
35 For software workarounds that may adversely impact systems unaffected by
36 the erratum in question, a Kconfig entry is added under "Kernel
37 Features" -> "ARM errata workarounds via the alternatives framework".
38 With the exception of workarounds for errata deemed "rare" by Arm, these
39 are enabled by default and patched in at runtime when an affected CPU is
40 detected. For less-intrusive workarounds, a Kconfig option is not
41 available and the code is structured (preferably with a comment) in such
42 a way that the erratum will not be hit.
43
44 This approach can make it slightly onerous to determine exactly which
45 errata are worked around in an arbitrary kernel source tree, so this
46 file acts as a registry of software workarounds in the Linux Kernel and
47 will be updated when new workarounds are committed and backported to
48 stable kernels.
49
50 +----------------+-----------------+-----------------+-----------------------------+
51 | Implementor | Component | Erratum ID | Kconfig |
52 +================+=================+=================+=============================+
53 | Allwinner | A64/R18 | UNKNOWN1 | SUN50I_ERRATUM_UNKNOWN1 |
54 +----------------+-----------------+-----------------+-----------------------------+
55 +----------------+-----------------+-----------------+-----------------------------+
56 | Ampere | AmpereOne | AC03_CPU_38 | AMPERE_ERRATUM_AC03_CPU_38 |
57 +----------------+-----------------+-----------------+-----------------------------+
58 | Ampere | AmpereOne AC04 | AC04_CPU_10 | AMPERE_ERRATUM_AC03_CPU_38 |
59 +----------------+-----------------+-----------------+-----------------------------+
60 | Ampere | AmpereOne AC04 | AC04_CPU_23 | AMPERE_ERRATUM_AC04_CPU_23 |
61 +----------------+-----------------+-----------------+-----------------------------+
62 +----------------+-----------------+-----------------+-----------------------------+
63 | ARM | Cortex-A510 | #2457168 | ARM64_ERRATUM_2457168 |
64 +----------------+-----------------+-----------------+-----------------------------+
65 | ARM | Cortex-A510 | #2064142 | ARM64_ERRATUM_2064142 |
66 +----------------+-----------------+-----------------+-----------------------------+
67 | ARM | Cortex-A510 | #2038923 | ARM64_ERRATUM_2038923 |
68 +----------------+-----------------+-----------------+-----------------------------+
69 | ARM | Cortex-A510 | #1902691 | ARM64_ERRATUM_1902691 |
70 +----------------+-----------------+-----------------+-----------------------------+
71 | ARM | Cortex-A510 | #2051678 | ARM64_ERRATUM_2051678 |
72 +----------------+-----------------+-----------------+-----------------------------+
73 | ARM | Cortex-A510 | #2077057 | ARM64_ERRATUM_2077057 |
74 +----------------+-----------------+-----------------+-----------------------------+
75 | ARM | Cortex-A510 | #2441009 | ARM64_ERRATUM_2441009 |
76 +----------------+-----------------+-----------------+-----------------------------+
77 | ARM | Cortex-A510 | #2658417 | ARM64_ERRATUM_2658417 |
78 +----------------+-----------------+-----------------+-----------------------------+
79 | ARM | Cortex-A510 | #3117295 | ARM64_ERRATUM_3117295 |
80 +----------------+-----------------+-----------------+-----------------------------+
81 | ARM | Cortex-A520 | #2966298 | ARM64_ERRATUM_2966298 |
82 +----------------+-----------------+-----------------+-----------------------------+
83 | ARM | Cortex-A53 | #826319 | ARM64_ERRATUM_826319 |
84 +----------------+-----------------+-----------------+-----------------------------+
85 | ARM | Cortex-A53 | #827319 | ARM64_ERRATUM_827319 |
86 +----------------+-----------------+-----------------+-----------------------------+
87 | ARM | Cortex-A53 | #824069 | ARM64_ERRATUM_824069 |
88 +----------------+-----------------+-----------------+-----------------------------+
89 | ARM | Cortex-A53 | #819472 | ARM64_ERRATUM_819472 |
90 +----------------+-----------------+-----------------+-----------------------------+
91 | ARM | Cortex-A53 | #845719 | ARM64_ERRATUM_845719 |
92 +----------------+-----------------+-----------------+-----------------------------+
93 | ARM | Cortex-A53 | #843419 | ARM64_ERRATUM_843419 |
94 +----------------+-----------------+-----------------+-----------------------------+
95 | ARM | Cortex-A55 | #1024718 | ARM64_ERRATUM_1024718 |
96 +----------------+-----------------+-----------------+-----------------------------+
97 | ARM | Cortex-A55 | #1530923 | ARM64_ERRATUM_1530923 |
98 +----------------+-----------------+-----------------+-----------------------------+
99 | ARM | Cortex-A55 | #2441007 | ARM64_ERRATUM_2441007 |
100 +----------------+-----------------+-----------------+-----------------------------+
101 | ARM | Cortex-A57 | #832075 | ARM64_ERRATUM_832075 |
102 +----------------+-----------------+-----------------+-----------------------------+
103 | ARM | Cortex-A57 | #852523 | N/A |
104 +----------------+-----------------+-----------------+-----------------------------+
105 | ARM | Cortex-A57 | #834220 | ARM64_ERRATUM_834220 |
106 +----------------+-----------------+-----------------+-----------------------------+
107 | ARM | Cortex-A57 | #1319537 | ARM64_ERRATUM_1319367 |
108 +----------------+-----------------+-----------------+-----------------------------+
109 | ARM | Cortex-A57 | #1742098 | ARM64_ERRATUM_1742098 |
110 +----------------+-----------------+-----------------+-----------------------------+
111 | ARM | Cortex-A72 | #853709 | N/A |
112 +----------------+-----------------+-----------------+-----------------------------+
113 | ARM | Cortex-A72 | #1319367 | ARM64_ERRATUM_1319367 |
114 +----------------+-----------------+-----------------+-----------------------------+
115 | ARM | Cortex-A72 | #1655431 | ARM64_ERRATUM_1742098 |
116 +----------------+-----------------+-----------------+-----------------------------+
117 | ARM | Cortex-A73 | #858921 | ARM64_ERRATUM_858921 |
118 +----------------+-----------------+-----------------+-----------------------------+
119 | ARM | Cortex-A76 | #1188873,1418040| ARM64_ERRATUM_1418040 |
120 +----------------+-----------------+-----------------+-----------------------------+
121 | ARM | Cortex-A76 | #1165522 | ARM64_ERRATUM_1165522 |
122 +----------------+-----------------+-----------------+-----------------------------+
123 | ARM | Cortex-A76 | #1286807 | ARM64_ERRATUM_1286807 |
124 +----------------+-----------------+-----------------+-----------------------------+
125 | ARM | Cortex-A76 | #1463225 | ARM64_ERRATUM_1463225 |
126 +----------------+-----------------+-----------------+-----------------------------+
127 | ARM | Cortex-A76 | #1490853 | N/A |
128 +----------------+-----------------+-----------------+-----------------------------+
129 | ARM | Cortex-A76 | #3324349 | ARM64_ERRATUM_3194386 |
130 +----------------+-----------------+-----------------+-----------------------------+
131 | ARM | Cortex-A76 | #4193800 | ARM64_ERRATUM_4118414 |
132 +----------------+-----------------+-----------------+-----------------------------+
133 | ARM | Cortex-A76AE | #4193801 | ARM64_ERRATUM_4118414 |
134 +----------------+-----------------+-----------------+-----------------------------+
135 | ARM | Cortex-A77 | #1491015 | N/A |
136 +----------------+-----------------+-----------------+-----------------------------+
137 | ARM | Cortex-A77 | #1508412 | ARM64_ERRATUM_1508412 |
138 +----------------+-----------------+-----------------+-----------------------------+
139 | ARM | Cortex-A77 | #3324348 | ARM64_ERRATUM_3194386 |
140 +----------------+-----------------+-----------------+-----------------------------+
141 | ARM | Cortex-A77 | #4193798 | ARM64_ERRATUM_4118414 |
142 +----------------+-----------------+-----------------+-----------------------------+
143 | ARM | Cortex-A78 | #3324344 | ARM64_ERRATUM_3194386 |
144 +----------------+-----------------+-----------------+-----------------------------+
145 | ARM | Cortex-A78 | #4193791 | ARM64_ERRATUM_4118414 |
146 +----------------+-----------------+-----------------+-----------------------------+
147 | ARM | Cortex-A78AE | #4193793 | ARM64_ERRATUM_4118414 |
148 +----------------+-----------------+-----------------+-----------------------------+
149 | ARM | Cortex-A78C | #3324346,3324347| ARM64_ERRATUM_3194386 |
150 +----------------+-----------------+-----------------+-----------------------------+
151 | ARM | Cortex-A78C | #4193794 | ARM64_ERRATUM_4118414 |
152 +----------------+-----------------+-----------------+-----------------------------+
153 | ARM | Cortex-A710 | #2119858 | ARM64_ERRATUM_2119858 |
154 +----------------+-----------------+-----------------+-----------------------------+
155 | ARM | Cortex-A710 | #2054223 | ARM64_ERRATUM_2054223 |
156 +----------------+-----------------+-----------------+-----------------------------+
157 | ARM | Cortex-A710 | #2224489 | ARM64_ERRATUM_2224489 |
158 +----------------+-----------------+-----------------+-----------------------------+
159 | ARM | Cortex-A710 | #3324338 | ARM64_ERRATUM_3194386 |
160 +----------------+-----------------+-----------------+-----------------------------+
161 | ARM | Cortex-A710 | #4193788 | ARM64_ERRATUM_4118414 |
162 +----------------+-----------------+-----------------+-----------------------------+
163 | ARM | Cortex-A715 | #2645198 | ARM64_ERRATUM_2645198 |
164 +----------------+-----------------+-----------------+-----------------------------+
165 | ARM | Cortex-A715 | #3456084 | ARM64_ERRATUM_3194386 |
166 +----------------+-----------------+-----------------+-----------------------------+
167 | ARM | Cortex-A720 | #3456091 | ARM64_ERRATUM_3194386 |
168 +----------------+-----------------+-----------------+-----------------------------+
169 | ARM | Cortex-A725 | #3456106 | ARM64_ERRATUM_3194386 |
170 +----------------+-----------------+-----------------+-----------------------------+
171 | ARM | Cortex-X1 | #1502854 | N/A |
172 +----------------+-----------------+-----------------+-----------------------------+
173 | ARM | Cortex-X1 | #3324344 | ARM64_ERRATUM_3194386 |
174 +----------------+-----------------+-----------------+-----------------------------+
175 | ARM | Cortex-X1 | #4193791 | ARM64_ERRATUM_4118414 |
176 +----------------+-----------------+-----------------+-----------------------------+
177 | ARM | Cortex-X1C | #3324346 | ARM64_ERRATUM_3194386 |
178 +----------------+-----------------+-----------------+-----------------------------+
179 | ARM | Cortex-X1C | #4193792 | ARM64_ERRATUM_4118414 |
180 +----------------+-----------------+-----------------+-----------------------------+
181 | ARM | Cortex-X2 | #2119858 | ARM64_ERRATUM_2119858 |
182 +----------------+-----------------+-----------------+-----------------------------+
183 | ARM | Cortex-X2 | #2224489 | ARM64_ERRATUM_2224489 |
184 +----------------+-----------------+-----------------+-----------------------------+
185 | ARM | Cortex-X2 | #3324338 | ARM64_ERRATUM_3194386 |
186 +----------------+-----------------+-----------------+-----------------------------+
187 | ARM | Cortex-X2 | #4193788 | ARM64_ERRATUM_4118414 |
188 +----------------+-----------------+-----------------+-----------------------------+
189 | ARM | Cortex-X3 | #3324335 | ARM64_ERRATUM_3194386 |
190 +----------------+-----------------+-----------------+-----------------------------+
191 | ARM | Cortex-X3 | #4193786 | ARM64_ERRATUM_4118414 |
192 +----------------+-----------------+-----------------+-----------------------------+
193 | ARM | Cortex-X4 | #3194386 | ARM64_ERRATUM_3194386 |
194 +----------------+-----------------+-----------------+-----------------------------+
195 | ARM | Cortex-X4 | #4118414 | ARM64_ERRATUM_4118414 |
196 +----------------+-----------------+-----------------+-----------------------------+
197 | ARM | Cortex-X925 | #3324334 | ARM64_ERRATUM_3194386 |
198 +----------------+-----------------+-----------------+-----------------------------+
199 | ARM | Cortex-X925 | #4193781 | ARM64_ERRATUM_4118414 |
200 +----------------+-----------------+-----------------+-----------------------------+
201 | ARM | Neoverse-N1 | #1188873,1418040| ARM64_ERRATUM_1418040 |
202 +----------------+-----------------+-----------------+-----------------------------+
203 | ARM | Neoverse-N1 | #1349291 | N/A |
204 +----------------+-----------------+-----------------+-----------------------------+
205 | ARM | Neoverse-N1 | #1490853 | N/A |
206 +----------------+-----------------+-----------------+-----------------------------+
207 | ARM | Neoverse-N1 | #1542419 | ARM64_ERRATUM_1542419 |
208 +----------------+-----------------+-----------------+-----------------------------+
209 | ARM | Neoverse-N1 | #3324349 | ARM64_ERRATUM_3194386 |
210 +----------------+-----------------+-----------------+-----------------------------+
211 | ARM | Neoverse-N1 | #4193800 | ARM64_ERRATUM_4118414 |
212 +----------------+-----------------+-----------------+-----------------------------+
213 | ARM | Neoverse-N2 | #2139208 | ARM64_ERRATUM_2139208 |
214 +----------------+-----------------+-----------------+-----------------------------+
215 | ARM | Neoverse-N2 | #2067961 | ARM64_ERRATUM_2067961 |
216 +----------------+-----------------+-----------------+-----------------------------+
217 | ARM | Neoverse-N2 | #2253138 | ARM64_ERRATUM_2253138 |
218 +----------------+-----------------+-----------------+-----------------------------+
219 | ARM | Neoverse-N2 | #3324339 | ARM64_ERRATUM_3194386 |
220 +----------------+-----------------+-----------------+-----------------------------+
221 | ARM | Neoverse-N2 | #4193789 | ARM64_ERRATUM_4118414 |
222 +----------------+-----------------+-----------------+-----------------------------+
223 | ARM | Neoverse-N3 | #3456111 | ARM64_ERRATUM_3194386 |
224 +----------------+-----------------+-----------------+-----------------------------+
225 | ARM | Neoverse-V1 | #1619801 | N/A |
226 +----------------+-----------------+-----------------+-----------------------------+
227 | ARM | Neoverse-V1 | #3324341 | ARM64_ERRATUM_3194386 |
228 +----------------+-----------------+-----------------+-----------------------------+
229 | ARM | Neoverse-V1 | #4193790 | ARM64_ERRATUM_4118414 |
230 +----------------+-----------------+-----------------+-----------------------------+
231 | ARM | Neoverse-V2 | #3324336 | ARM64_ERRATUM_3194386 |
232 +----------------+-----------------+-----------------+-----------------------------+
233 | ARM | Neoverse-V2 | #4193787 | ARM64_ERRATUM_4118414 |
234 +----------------+-----------------+-----------------+-----------------------------+
235 | ARM | Neoverse-V3 | #3312417 | ARM64_ERRATUM_3194386 |
236 +----------------+-----------------+-----------------+-----------------------------+
237 | ARM | Neoverse-V3 | #4193784 | ARM64_ERRATUM_4118414 |
238 +----------------+-----------------+-----------------+-----------------------------+
239 | ARM | Neoverse-V3AE | #3312417 | ARM64_ERRATUM_3194386 |
240 +----------------+-----------------+-----------------+-----------------------------+
241 | ARM | Neoverse-V3AE | #4193784 | ARM64_ERRATUM_4118414 |
242 +----------------+-----------------+-----------------+-----------------------------+
243 | ARM | C1-Premium | #4193780 | ARM64_ERRATUM_4118414 |
244 +----------------+-----------------+-----------------+-----------------------------+
245 | ARM | C1-Pro | #4193714 | ARM64_ERRATUM_4193714 |
246 +----------------+-----------------+-----------------+-----------------------------+
247 | ARM | C1-Ultra | #4193780 | ARM64_ERRATUM_4118414 |
248 +----------------+-----------------+-----------------+-----------------------------+
249 | ARM | MMU-500 | #841119,826419 | ARM_SMMU_MMU_500_CPRE_ERRATA|
250 | | | #562869,1047329 | |
251 +----------------+-----------------+-----------------+-----------------------------+
252 | ARM | MMU-600 | #1076982,1209401| N/A |
253 +----------------+-----------------+-----------------+-----------------------------+
254 | ARM | MMU-700 | #2268618,2812531| N/A |
255 +----------------+-----------------+-----------------+-----------------------------+
256 +----------------+-----------------+-----------------+-----------------------------+
257 | ARM | GIC-700 | #2941627 | ARM64_ERRATUM_2941627 |
258 +----------------+-----------------+-----------------+-----------------------------+
259 +----------------+-----------------+-----------------+-----------------------------+
260 | Broadcom | Brahma-B53 | N/A | ARM64_ERRATUM_845719 |
261 +----------------+-----------------+-----------------+-----------------------------+
262 | Broadcom | Brahma-B53 | N/A | ARM64_ERRATUM_843419 |
263 +----------------+-----------------+-----------------+-----------------------------+
264 +----------------+-----------------+-----------------+-----------------------------+
265 | Cavium | ThunderX ITS | #22375,24313 | CAVIUM_ERRATUM_22375 |
266 +----------------+-----------------+-----------------+-----------------------------+
267 | Cavium | ThunderX ITS | #23144 | CAVIUM_ERRATUM_23144 |
268 +----------------+-----------------+-----------------+-----------------------------+
269 | Cavium | ThunderX GICv3 | #23154,38545 | CAVIUM_ERRATUM_23154 |
270 +----------------+-----------------+-----------------+-----------------------------+
271 | Cavium | ThunderX GICv3 | #38539 | N/A |
272 +----------------+-----------------+-----------------+-----------------------------+
273 | Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 |
274 +----------------+-----------------+-----------------+-----------------------------+
275 | Cavium | ThunderX Core | #30115 | CAVIUM_ERRATUM_30115 |
276 +----------------+-----------------+-----------------+-----------------------------+
277 | Cavium | ThunderX SMMUv2 | #27704 | N/A |
278 +----------------+-----------------+-----------------+-----------------------------+
279 | Cavium | ThunderX2 SMMUv3| #74 | N/A |
280 +----------------+-----------------+-----------------+-----------------------------+
281 | Cavium | ThunderX2 SMMUv3| #126 | N/A |
282 +----------------+-----------------+-----------------+-----------------------------+
283 | Cavium | ThunderX2 Core | #219 | CAVIUM_TX2_ERRATUM_219 |
284 +----------------+-----------------+-----------------+-----------------------------+
285 +----------------+-----------------+-----------------+-----------------------------+
286 | Marvell | ARM-MMU-500 | #582743 | N/A |
287 +----------------+-----------------+-----------------+-----------------------------+
288 +----------------+-----------------+-----------------+-----------------------------+
289 | NVIDIA | Carmel Core | N/A | NVIDIA_CARMEL_CNP_ERRATUM |
290 +----------------+-----------------+-----------------+-----------------------------+
291 | NVIDIA | Olympus core | T410-OLY-1029 | ARM64_ERRATUM_4118414 |
292 +----------------+-----------------+-----------------+-----------------------------+
293 | NVIDIA | T241 GICv3/4.x | T241-FABRIC-4 | N/A |
294 +----------------+-----------------+-----------------+-----------------------------+
295 +----------------+-----------------+-----------------+-----------------------------+
296 | Freescale/NXP | LS2080A/LS1043A | A-008585 | FSL_ERRATUM_A008585 |
297 +----------------+-----------------+-----------------+-----------------------------+
298 +----------------+-----------------+-----------------+-----------------------------+
299 | Hisilicon | Hip0{5,6,7} | #161010101 | HISILICON_ERRATUM_161010101 |
300 +----------------+-----------------+-----------------+-----------------------------+
301 | Hisilicon | Hip0{6,7} | #161010701 | N/A |
302 +----------------+-----------------+-----------------+-----------------------------+
303 | Hisilicon | Hip0{6,7} | #161010803 | N/A |
304 +----------------+-----------------+-----------------+-----------------------------+
305 | Hisilicon | Hip07 | #161600802 | HISILICON_ERRATUM_161600802 |
306 +----------------+-----------------+-----------------+-----------------------------+
307 | Hisilicon | Hip08 SMMU PMCG | #162001800 | N/A |
308 +----------------+-----------------+-----------------+-----------------------------+
309 | Hisilicon | Hip{08,09,09A,10| #162001900 | N/A |
310 | | ,10C,11} | | |
311 | | SMMU PMCG | | |
312 +----------------+-----------------+-----------------+-----------------------------+
313 | Hisilicon | Hip09 | #162100801 | HISILICON_ERRATUM_162100801 |
314 +----------------+-----------------+-----------------+-----------------------------+
315 +----------------+-----------------+-----------------+-----------------------------+
316 | Qualcomm Tech. | Kryo/Falkor v1 | E1003 | QCOM_FALKOR_ERRATUM_1003 |
317 +----------------+-----------------+-----------------+-----------------------------+
318 | Qualcomm Tech. | Kryo/Falkor v1 | E1009 | QCOM_FALKOR_ERRATUM_1009 |
319 +----------------+-----------------+-----------------+-----------------------------+
320 | Qualcomm Tech. | QDF2400 ITS | E0065 | QCOM_QDF2400_ERRATUM_0065 |
321 +----------------+-----------------+-----------------+-----------------------------+
322 | Qualcomm Tech. | Falkor v{1,2} | E1041 | QCOM_FALKOR_ERRATUM_1041 |
323 +----------------+-----------------+-----------------+-----------------------------+
324 | Qualcomm Tech. | Kryo4xx Gold | N/A | ARM64_ERRATUM_1463225 |
325 +----------------+-----------------+-----------------+-----------------------------+
326 | Qualcomm Tech. | Kryo4xx Gold | N/A | ARM64_ERRATUM_1418040 |
327 +----------------+-----------------+-----------------+-----------------------------+
328 | Qualcomm Tech. | Kryo4xx Silver | N/A | ARM64_ERRATUM_1530923 |
329 +----------------+-----------------+-----------------+-----------------------------+
330 | Qualcomm Tech. | Kryo4xx Silver | N/A | ARM64_ERRATUM_1024718 |
331 +----------------+-----------------+-----------------+-----------------------------+
332 | Qualcomm Tech. | Kryo4xx Gold | N/A | ARM64_ERRATUM_1286807 |
333 +----------------+-----------------+-----------------+-----------------------------+
334 +----------------+-----------------+-----------------+-----------------------------+
335 | Rockchip | RK3588 | #3588001 | ROCKCHIP_ERRATUM_3588001 |
336 +----------------+-----------------+-----------------+-----------------------------+
337 | Rockchip | RK3568 | #3568002 | ROCKCHIP_ERRATUM_3568002 |
338 +----------------+-----------------+-----------------+-----------------------------+
339 +----------------+-----------------+-----------------+-----------------------------+
340 | Fujitsu | A64FX | E#010001 | FUJITSU_ERRATUM_010001 |
341 +----------------+-----------------+-----------------+-----------------------------+
342 +----------------+-----------------+-----------------+-----------------------------+
343 | ASR | ASR8601 | #8601001 | N/A |
344 +----------------+-----------------+-----------------+-----------------------------+
345 +----------------+-----------------+-----------------+-----------------------------+
346 | Microsoft | Azure Cobalt 100| #2139208 | ARM64_ERRATUM_2139208 |
347 +----------------+-----------------+-----------------+-----------------------------+
348 | Microsoft | Azure Cobalt 100| #2067961 | ARM64_ERRATUM_2067961 |
349 +----------------+-----------------+-----------------+-----------------------------+
350 | Microsoft | Azure Cobalt 100| #2253138 | ARM64_ERRATUM_2253138 |
351 +----------------+-----------------+-----------------+-----------------------------+
352 | Microsoft | Azure Cobalt 100| #3324339 | ARM64_ERRATUM_3194386 |
353 +----------------+-----------------+-----------------+-----------------------------+
354 | Microsoft | Azure Cobalt 100| #4193789 | ARM64_ERRATUM_4118414 |
355 +----------------+-----------------+-----------------+-----------------------------+
356

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Silicon errata 분류

1-24

저자: Will Deacon, 2015-11-27. Hardware에는 특정 조건에서 architecture와 다르게 동작하게 만드는 errata가 존재합니다. ARM hardware의 errata는 크게 다음 범주로 분류됩니다.

분류정의
Category A실행 가능한 workaround가 없는 critical error
Category B수용 가능한 workaround가 있는 significant 또는 critical error
Category C정상 동작에서는 발생할 것으로 예상하지 않는 minor error

자세한 내용은 infocenter.arm.com에서 제공하는 `Software Developers Errata Notice` 문서를 참조하십시오. 문서를 보려면 등록이 필요합니다.

Linux software workaround 정책

25-49

Linux에서는 Category B errata가 특정 code sequence를 피하거나 processor를 특별히 설정하는 등 OS의 별도 처리를 요구할 수 있습니다. 드물게 Category A erratum을 Category C로 낮추기 위해 같은 종류의 조치가 필요할 수도 있습니다.

이 조치들을 통틀어 software workaround라고 합니다. Non-secure workaround가 필요하고 동시에 Linux가 문제를 trigger할 수 있는 경우처럼, 실제로는 소수 errata에만 필요합니다.

영향받지 않는 system에도 성능이나 동작상 불이익을 줄 수 있는 workaround에는 `Kernel Features` -> `ARM errata workarounds via the alternatives framework` 아래 Kconfig entry를 둡니다. Arm이 `rare`로 분류한 errata를 제외하면 기본 enable하며 affected CPU를 찾았을 때 runtime에 patch합니다.

영향이 작은 workaround에는 Kconfig option을 제공하지 않고 erratum을 만나지 않도록 code를 구성하며, 가능하면 설명 comment를 남깁니다. 임의의 kernel source tree가 정확히 어떤 errata를 우회하는지 찾기 어려울 수 있으므로 이 문서는 Linux Kernel software workaround의 registry 역할을 하며 새 workaround가 commit되거나 stable kernel로 backport될 때 갱신됩니다.

Workaround registry 1

50-200

아래 표는 원문 registry의 첫 번째 부분입니다. 구현사, 구성 요소, erratum ID, Kconfig 값을 원문 순서와 표기로 보존했습니다. `N/A`는 별도 Kconfig option이 없음을 뜻합니다.

구현사구성 요소Erratum IDKconfig
`Allwinner``A64/R18``UNKNOWN1``SUN50I_ERRATUM_UNKNOWN1`
`Ampere``AmpereOne``AC03_CPU_38``AMPERE_ERRATUM_AC03_CPU_38`
`Ampere``AmpereOne AC04``AC04_CPU_10``AMPERE_ERRATUM_AC03_CPU_38`
`Ampere``AmpereOne AC04``AC04_CPU_23``AMPERE_ERRATUM_AC04_CPU_23`
`ARM``Cortex-A510``#2457168``ARM64_ERRATUM_2457168`
`ARM``Cortex-A510``#2064142``ARM64_ERRATUM_2064142`
`ARM``Cortex-A510``#2038923``ARM64_ERRATUM_2038923`
`ARM``Cortex-A510``#1902691``ARM64_ERRATUM_1902691`
`ARM``Cortex-A510``#2051678``ARM64_ERRATUM_2051678`
`ARM``Cortex-A510``#2077057``ARM64_ERRATUM_2077057`
`ARM``Cortex-A510``#2441009``ARM64_ERRATUM_2441009`
`ARM``Cortex-A510``#2658417``ARM64_ERRATUM_2658417`
`ARM``Cortex-A510``#3117295``ARM64_ERRATUM_3117295`
`ARM``Cortex-A520``#2966298``ARM64_ERRATUM_2966298`
`ARM``Cortex-A53``#826319``ARM64_ERRATUM_826319`
`ARM``Cortex-A53``#827319``ARM64_ERRATUM_827319`
`ARM``Cortex-A53``#824069``ARM64_ERRATUM_824069`
`ARM``Cortex-A53``#819472``ARM64_ERRATUM_819472`
`ARM``Cortex-A53``#845719``ARM64_ERRATUM_845719`
`ARM``Cortex-A53``#843419``ARM64_ERRATUM_843419`
`ARM``Cortex-A55``#1024718``ARM64_ERRATUM_1024718`
`ARM``Cortex-A55``#1530923``ARM64_ERRATUM_1530923`
`ARM``Cortex-A55``#2441007``ARM64_ERRATUM_2441007`
`ARM``Cortex-A57``#832075``ARM64_ERRATUM_832075`
`ARM``Cortex-A57``#852523``N/A`
`ARM``Cortex-A57``#834220``ARM64_ERRATUM_834220`
`ARM``Cortex-A57``#1319537``ARM64_ERRATUM_1319367`
`ARM``Cortex-A57``#1742098``ARM64_ERRATUM_1742098`
`ARM``Cortex-A72``#853709``N/A`
`ARM``Cortex-A72``#1319367``ARM64_ERRATUM_1319367`
`ARM``Cortex-A72``#1655431``ARM64_ERRATUM_1742098`
`ARM``Cortex-A73``#858921``ARM64_ERRATUM_858921`
`ARM``Cortex-A76``#1188873,1418040``ARM64_ERRATUM_1418040`
`ARM``Cortex-A76``#1165522``ARM64_ERRATUM_1165522`
`ARM``Cortex-A76``#1286807``ARM64_ERRATUM_1286807`
`ARM``Cortex-A76``#1463225``ARM64_ERRATUM_1463225`
`ARM``Cortex-A76``#1490853``N/A`
`ARM``Cortex-A76``#3324349``ARM64_ERRATUM_3194386`
`ARM``Cortex-A76``#4193800``ARM64_ERRATUM_4118414`
`ARM``Cortex-A76AE``#4193801``ARM64_ERRATUM_4118414`
`ARM``Cortex-A77``#1491015``N/A`
`ARM``Cortex-A77``#1508412``ARM64_ERRATUM_1508412`
`ARM``Cortex-A77``#3324348``ARM64_ERRATUM_3194386`
`ARM``Cortex-A77``#4193798``ARM64_ERRATUM_4118414`
`ARM``Cortex-A78``#3324344``ARM64_ERRATUM_3194386`
`ARM``Cortex-A78``#4193791``ARM64_ERRATUM_4118414`
`ARM``Cortex-A78AE``#4193793``ARM64_ERRATUM_4118414`
`ARM``Cortex-A78C``#3324346,3324347``ARM64_ERRATUM_3194386`
`ARM``Cortex-A78C``#4193794``ARM64_ERRATUM_4118414`
`ARM``Cortex-A710``#2119858``ARM64_ERRATUM_2119858`
`ARM``Cortex-A710``#2054223``ARM64_ERRATUM_2054223`
`ARM``Cortex-A710``#2224489``ARM64_ERRATUM_2224489`
`ARM``Cortex-A710``#3324338``ARM64_ERRATUM_3194386`
`ARM``Cortex-A710``#4193788``ARM64_ERRATUM_4118414`
`ARM``Cortex-A715``#2645198``ARM64_ERRATUM_2645198`
`ARM``Cortex-A715``#3456084``ARM64_ERRATUM_3194386`
`ARM``Cortex-A720``#3456091``ARM64_ERRATUM_3194386`
`ARM``Cortex-A725``#3456106``ARM64_ERRATUM_3194386`
`ARM``Cortex-X1``#1502854``N/A`
`ARM``Cortex-X1``#3324344``ARM64_ERRATUM_3194386`
`ARM``Cortex-X1``#4193791``ARM64_ERRATUM_4118414`
`ARM``Cortex-X1C``#3324346``ARM64_ERRATUM_3194386`
`ARM``Cortex-X1C``#4193792``ARM64_ERRATUM_4118414`
`ARM``Cortex-X2``#2119858``ARM64_ERRATUM_2119858`
`ARM``Cortex-X2``#2224489``ARM64_ERRATUM_2224489`
`ARM``Cortex-X2``#3324338``ARM64_ERRATUM_3194386`
`ARM``Cortex-X2``#4193788``ARM64_ERRATUM_4118414`
`ARM``Cortex-X3``#3324335``ARM64_ERRATUM_3194386`
`ARM``Cortex-X3``#4193786``ARM64_ERRATUM_4118414`
`ARM``Cortex-X4``#3194386``ARM64_ERRATUM_3194386`
`ARM``Cortex-X4``#4118414``ARM64_ERRATUM_4118414`
`ARM``Cortex-X925``#3324334``ARM64_ERRATUM_3194386`
`ARM``Cortex-X925``#4193781``ARM64_ERRATUM_4118414`

Workaround registry 2

201-355

아래 표는 원문 registry의 나머지 부분입니다. 줄이 나뉜 cell은 한 항목으로 병합했으며 값과 순서는 바꾸지 않았습니다.

구현사구성 요소Erratum IDKconfig
`ARM``Neoverse-N1``#1188873,1418040``ARM64_ERRATUM_1418040`
`ARM``Neoverse-N1``#1349291``N/A`
`ARM``Neoverse-N1``#1490853``N/A`
`ARM``Neoverse-N1``#1542419``ARM64_ERRATUM_1542419`
`ARM``Neoverse-N1``#3324349``ARM64_ERRATUM_3194386`
`ARM``Neoverse-N1``#4193800``ARM64_ERRATUM_4118414`
`ARM``Neoverse-N2``#2139208``ARM64_ERRATUM_2139208`
`ARM``Neoverse-N2``#2067961``ARM64_ERRATUM_2067961`
`ARM``Neoverse-N2``#2253138``ARM64_ERRATUM_2253138`
`ARM``Neoverse-N2``#3324339``ARM64_ERRATUM_3194386`
`ARM``Neoverse-N2``#4193789``ARM64_ERRATUM_4118414`
`ARM``Neoverse-N3``#3456111``ARM64_ERRATUM_3194386`
`ARM``Neoverse-V1``#1619801``N/A`
`ARM``Neoverse-V1``#3324341``ARM64_ERRATUM_3194386`
`ARM``Neoverse-V1``#4193790``ARM64_ERRATUM_4118414`
`ARM``Neoverse-V2``#3324336``ARM64_ERRATUM_3194386`
`ARM``Neoverse-V2``#4193787``ARM64_ERRATUM_4118414`
`ARM``Neoverse-V3``#3312417``ARM64_ERRATUM_3194386`
`ARM``Neoverse-V3``#4193784``ARM64_ERRATUM_4118414`
`ARM``Neoverse-V3AE``#3312417``ARM64_ERRATUM_3194386`
`ARM``Neoverse-V3AE``#4193784``ARM64_ERRATUM_4118414`
`ARM``C1-Premium``#4193780``ARM64_ERRATUM_4118414`
`ARM``C1-Pro``#4193714``ARM64_ERRATUM_4193714`
`ARM``C1-Ultra``#4193780``ARM64_ERRATUM_4118414`
`ARM``MMU-500``#841119,826419 #562869,1047329``ARM_SMMU_MMU_500_CPRE_ERRATA`
`ARM``MMU-600``#1076982,1209401``N/A`
`ARM``MMU-700``#2268618,2812531``N/A`
`ARM``GIC-700``#2941627``ARM64_ERRATUM_2941627`
`Broadcom``Brahma-B53``N/A``ARM64_ERRATUM_845719`
`Broadcom``Brahma-B53``N/A``ARM64_ERRATUM_843419`
`Cavium``ThunderX ITS``#22375,24313``CAVIUM_ERRATUM_22375`
`Cavium``ThunderX ITS``#23144``CAVIUM_ERRATUM_23144`
`Cavium``ThunderX GICv3``#23154,38545``CAVIUM_ERRATUM_23154`
`Cavium``ThunderX GICv3``#38539``N/A`
`Cavium``ThunderX Core``#27456``CAVIUM_ERRATUM_27456`
`Cavium``ThunderX Core``#30115``CAVIUM_ERRATUM_30115`
`Cavium``ThunderX SMMUv2``#27704``N/A`
`Cavium``ThunderX2 SMMUv3``#74``N/A`
`Cavium``ThunderX2 SMMUv3``#126``N/A`
`Cavium``ThunderX2 Core``#219``CAVIUM_TX2_ERRATUM_219`
`Marvell``ARM-MMU-500``#582743``N/A`
`NVIDIA``Carmel Core``N/A``NVIDIA_CARMEL_CNP_ERRATUM`
`NVIDIA``Olympus core``T410-OLY-1029``ARM64_ERRATUM_4118414`
`NVIDIA``T241 GICv3/4.x``T241-FABRIC-4``N/A`
`Freescale/NXP``LS2080A/LS1043A``A-008585``FSL_ERRATUM_A008585`
`Hisilicon``Hip0{5,6,7}``#161010101``HISILICON_ERRATUM_161010101`
`Hisilicon``Hip0{6,7}``#161010701``N/A`
`Hisilicon``Hip0{6,7}``#161010803``N/A`
`Hisilicon``Hip07``#161600802``HISILICON_ERRATUM_161600802`
`Hisilicon``Hip08 SMMU PMCG``#162001800``N/A`
`Hisilicon``Hip{08,09,09A,10 ,10C,11} SMMU PMCG``#162001900``N/A`
`Hisilicon``Hip09``#162100801``HISILICON_ERRATUM_162100801`
`Qualcomm Tech.``Kryo/Falkor v1``E1003``QCOM_FALKOR_ERRATUM_1003`
`Qualcomm Tech.``Kryo/Falkor v1``E1009``QCOM_FALKOR_ERRATUM_1009`
`Qualcomm Tech.``QDF2400 ITS``E0065``QCOM_QDF2400_ERRATUM_0065`
`Qualcomm Tech.``Falkor v{1,2}``E1041``QCOM_FALKOR_ERRATUM_1041`
`Qualcomm Tech.``Kryo4xx Gold``N/A``ARM64_ERRATUM_1463225`
`Qualcomm Tech.``Kryo4xx Gold``N/A``ARM64_ERRATUM_1418040`
`Qualcomm Tech.``Kryo4xx Silver``N/A``ARM64_ERRATUM_1530923`
`Qualcomm Tech.``Kryo4xx Silver``N/A``ARM64_ERRATUM_1024718`
`Qualcomm Tech.``Kryo4xx Gold``N/A``ARM64_ERRATUM_1286807`
`Rockchip``RK3588``#3588001``ROCKCHIP_ERRATUM_3588001`
`Rockchip``RK3568``#3568002``ROCKCHIP_ERRATUM_3568002`
`Fujitsu``A64FX``E#010001``FUJITSU_ERRATUM_010001`
`ASR``ASR8601``#8601001``N/A`
`Microsoft``Azure Cobalt 100``#2139208``ARM64_ERRATUM_2139208`
`Microsoft``Azure Cobalt 100``#2067961``ARM64_ERRATUM_2067961`
`Microsoft``Azure Cobalt 100``#2253138``ARM64_ERRATUM_2253138`
`Microsoft``Azure Cobalt 100``#3324339``ARM64_ERRATUM_3194386`
`Microsoft``Azure Cobalt 100``#4193789``ARM64_ERRATUM_4118414`