linux/Documentation/translations/zh_CN/arch/arm64/silicon-errata.txt

Chinese translated version of Documentation/arch/arm64/silicon-errata.rst

If you have any comment or update to the content, please contact the
original document maintainer directly.  However, if you have a problem
communicating in English you can also ask the Chinese maintainer for
help.  Contact the Chinese maintainer if this translation is outdated
or if there is a problem with the translation.

M:	Will Deacon <[email protected]>
zh_CN:	Fu Wei <[email protected]>
C:	1926e54f115725a9248d0c4c65c22acaf94de4c4
---------------------------------------------------------------------
Documentation/arch/arm64/silicon-errata.rst 的中文翻译

如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文
交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻
译存在问题,请联系中文版维护者。

英文版维护者: Will Deacon <[email protected]>
中文版维护者: 傅炜  Fu Wei <[email protected]>
中文版翻译者: 傅炜  Fu Wei <[email protected]>
中文版校译者: 傅炜  Fu Wei <[email protected]>
本文翻译提交时的 Git 检出点为: 1926e54f115725a9248d0c4c65c22acaf94de4c4

以下为正文
---------------------------------------------------------------------
                芯片勘误和软件补救措施
                ==================

作者: Will Deacon <[email protected]>
日期: 2015年11月27日

一个不幸的现实:硬件经常带有一些所谓的“瑕疵(errata)”,导致其在
某些特定情况下会违背构架定义的行为。就基于 ARM 的硬件而言,这些瑕疵
大体可分为以下几类:

  A 类:无可行补救措施的严重缺陷。
  B 类:有可接受的补救措施的重大或严重缺陷。
  C 类:在正常操作中不会显现的小瑕疵。

更多资讯,请在 infocenter.arm.com (需注册)中查阅“软件开发者勘误
笔记”(“Software Developers Errata Notice”)文档。

对于 Linux 而言,B 类缺陷可能需要操作系统的某些特别处理。例如,避免
一个特殊的代码序列,或是以一种特定的方式配置处理器。在某种不太常见的
情况下,为将 A 类缺陷当作 C 类处理,可能需要用类似的手段。这些手段被
统称为“软件补救措施”,且仅在少数情况需要(例如,那些需要一个运行在
非安全异常级的补救措施 *并且* 能被 Linux 触发的情况)。

对于尚在讨论中的可能对未受瑕疵影响的系统产生干扰的软件补救措施,有一个
相应的内核配置(Kconfig)选项被加在 “内核特性(Kernel Features)”->
“基于可选方法框架的 ARM 瑕疵补救措施(ARM errata workarounds via
the alternatives framework)"。这些选项被默认开启,若探测到受影响的CPU,
补丁将在运行时被使用。至于对系统运行影响较小的补救措施,内核配置选项
并不存在,且代码以某种规避瑕疵的方式被构造(带注释为宜)。

这种做法对于在任意内核源代码树中准确地判断出哪个瑕疵已被软件方法所补救
稍微有点麻烦,所以在 Linux 内核中此文件作为软件补救措施的注册表,
并将在新的软件补救措施被提交和向后移植(backported)到稳定内核时被更新。

| 实现者         | 受影响的组件    | 勘误编号        | 内核配置                |
+----------------+-----------------+-----------------+-------------------------+
| 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-A57      | #832075         | ARM64_ERRATUM_832075    |
| ARM            | Cortex-A57      | #852523         | N/A                     |
| ARM            | Cortex-A57      | #834220         | ARM64_ERRATUM_834220    |
|                |                 |                 |                         |
| Cavium         | ThunderX ITS    | #22375, #24313  | CAVIUM_ERRATUM_22375    |
| Cavium         | ThunderX GICv3  | #23154          | CAVIUM_ERRATUM_23154    |