1*e4624435SJonathan CorbetChinese translated version of Documentation/arch/arm64/silicon-errata.rst
2*e4624435SJonathan Corbet
3*e4624435SJonathan CorbetIf you have any comment or update to the content, please contact the
4*e4624435SJonathan Corbetoriginal document maintainer directly.  However, if you have a problem
5*e4624435SJonathan Corbetcommunicating in English you can also ask the Chinese maintainer for
6*e4624435SJonathan Corbethelp.  Contact the Chinese maintainer if this translation is outdated
7*e4624435SJonathan Corbetor if there is a problem with the translation.
8*e4624435SJonathan Corbet
9*e4624435SJonathan CorbetM:	Will Deacon <will.deacon@arm.com>
10*e4624435SJonathan Corbetzh_CN:	Fu Wei <wefu@redhat.com>
11*e4624435SJonathan CorbetC:	1926e54f115725a9248d0c4c65c22acaf94de4c4
12*e4624435SJonathan Corbet---------------------------------------------------------------------
13*e4624435SJonathan CorbetDocumentation/arch/arm64/silicon-errata.rst 的中文翻译
14*e4624435SJonathan Corbet
15*e4624435SJonathan Corbet如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文
16*e4624435SJonathan Corbet交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻
17*e4624435SJonathan Corbet译存在问题,请联系中文版维护者。
18*e4624435SJonathan Corbet
19*e4624435SJonathan Corbet英文版维护者: Will Deacon <will.deacon@arm.com>
20*e4624435SJonathan Corbet中文版维护者: 傅炜  Fu Wei <wefu@redhat.com>
21*e4624435SJonathan Corbet中文版翻译者: 傅炜  Fu Wei <wefu@redhat.com>
22*e4624435SJonathan Corbet中文版校译者: 傅炜  Fu Wei <wefu@redhat.com>
23*e4624435SJonathan Corbet本文翻译提交时的 Git 检出点为: 1926e54f115725a9248d0c4c65c22acaf94de4c4
24*e4624435SJonathan Corbet
25*e4624435SJonathan Corbet以下为正文
26*e4624435SJonathan Corbet---------------------------------------------------------------------
27*e4624435SJonathan Corbet                芯片勘误和软件补救措施
28*e4624435SJonathan Corbet                ==================
29*e4624435SJonathan Corbet
30*e4624435SJonathan Corbet作者: Will Deacon <will.deacon@arm.com>
31*e4624435SJonathan Corbet日期: 2015年11月27日
32*e4624435SJonathan Corbet
33*e4624435SJonathan Corbet一个不幸的现实:硬件经常带有一些所谓的“瑕疵(errata)”,导致其在
34*e4624435SJonathan Corbet某些特定情况下会违背构架定义的行为。就基于 ARM 的硬件而言,这些瑕疵
35*e4624435SJonathan Corbet大体可分为以下几类:
36*e4624435SJonathan Corbet
37*e4624435SJonathan Corbet  A 类:无可行补救措施的严重缺陷。
38*e4624435SJonathan Corbet  B 类:有可接受的补救措施的重大或严重缺陷。
39*e4624435SJonathan Corbet  C 类:在正常操作中不会显现的小瑕疵。
40*e4624435SJonathan Corbet
41*e4624435SJonathan Corbet更多资讯,请在 infocenter.arm.com (需注册)中查阅“软件开发者勘误
42*e4624435SJonathan Corbet笔记”(“Software Developers Errata Notice”)文档。
43*e4624435SJonathan Corbet
44*e4624435SJonathan Corbet对于 Linux 而言,B 类缺陷可能需要操作系统的某些特别处理。例如,避免
45*e4624435SJonathan Corbet一个特殊的代码序列,或是以一种特定的方式配置处理器。在某种不太常见的
46*e4624435SJonathan Corbet情况下,为将 A 类缺陷当作 C 类处理,可能需要用类似的手段。这些手段被
47*e4624435SJonathan Corbet统称为“软件补救措施”,且仅在少数情况需要(例如,那些需要一个运行在
48*e4624435SJonathan Corbet非安全异常级的补救措施 *并且* 能被 Linux 触发的情况)。
49*e4624435SJonathan Corbet
50*e4624435SJonathan Corbet对于尚在讨论中的可能对未受瑕疵影响的系统产生干扰的软件补救措施,有一个
51*e4624435SJonathan Corbet相应的内核配置(Kconfig)选项被加在 “内核特性(Kernel Features)”->
52*e4624435SJonathan Corbet“基于可选方法框架的 ARM 瑕疵补救措施(ARM errata workarounds via
53*e4624435SJonathan Corbetthe alternatives framework)"。这些选项被默认开启,若探测到受影响的CPU,
54*e4624435SJonathan Corbet补丁将在运行时被使用。至于对系统运行影响较小的补救措施,内核配置选项
55*e4624435SJonathan Corbet并不存在,且代码以某种规避瑕疵的方式被构造(带注释为宜)。
56*e4624435SJonathan Corbet
57*e4624435SJonathan Corbet这种做法对于在任意内核源代码树中准确地判断出哪个瑕疵已被软件方法所补救
58*e4624435SJonathan Corbet稍微有点麻烦,所以在 Linux 内核中此文件作为软件补救措施的注册表,
59*e4624435SJonathan Corbet并将在新的软件补救措施被提交和向后移植(backported)到稳定内核时被更新。
60*e4624435SJonathan Corbet
61*e4624435SJonathan Corbet| 实现者         | 受影响的组件    | 勘误编号        | 内核配置                |
62*e4624435SJonathan Corbet+----------------+-----------------+-----------------+-------------------------+
63*e4624435SJonathan Corbet| ARM            | Cortex-A53      | #826319         | ARM64_ERRATUM_826319    |
64*e4624435SJonathan Corbet| ARM            | Cortex-A53      | #827319         | ARM64_ERRATUM_827319    |
65*e4624435SJonathan Corbet| ARM            | Cortex-A53      | #824069         | ARM64_ERRATUM_824069    |
66*e4624435SJonathan Corbet| ARM            | Cortex-A53      | #819472         | ARM64_ERRATUM_819472    |
67*e4624435SJonathan Corbet| ARM            | Cortex-A53      | #845719         | ARM64_ERRATUM_845719    |
68*e4624435SJonathan Corbet| ARM            | Cortex-A53      | #843419         | ARM64_ERRATUM_843419    |
69*e4624435SJonathan Corbet| ARM            | Cortex-A57      | #832075         | ARM64_ERRATUM_832075    |
70*e4624435SJonathan Corbet| ARM            | Cortex-A57      | #852523         | N/A                     |
71*e4624435SJonathan Corbet| ARM            | Cortex-A57      | #834220         | ARM64_ERRATUM_834220    |
72*e4624435SJonathan Corbet|                |                 |                 |                         |
73*e4624435SJonathan Corbet| Cavium         | ThunderX ITS    | #22375, #24313  | CAVIUM_ERRATUM_22375    |
74*e4624435SJonathan Corbet| Cavium         | ThunderX GICv3  | #23154          | CAVIUM_ERRATUM_23154    |
75