162306a36Sopenharmony_ciChinese translated version of Documentation/arch/arm64/silicon-errata.rst
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciIf you have any comment or update to the content, please contact the
462306a36Sopenharmony_cioriginal document maintainer directly.  However, if you have a problem
562306a36Sopenharmony_cicommunicating in English you can also ask the Chinese maintainer for
662306a36Sopenharmony_cihelp.  Contact the Chinese maintainer if this translation is outdated
762306a36Sopenharmony_cior if there is a problem with the translation.
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciM:	Will Deacon <will.deacon@arm.com>
1062306a36Sopenharmony_cizh_CN:	Fu Wei <wefu@redhat.com>
1162306a36Sopenharmony_ciC:	1926e54f115725a9248d0c4c65c22acaf94de4c4
1262306a36Sopenharmony_ci---------------------------------------------------------------------
1362306a36Sopenharmony_ciDocumentation/arch/arm64/silicon-errata.rst 的中文翻译
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文
1662306a36Sopenharmony_ci交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻
1762306a36Sopenharmony_ci译存在问题,请联系中文版维护者。
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci英文版维护者: Will Deacon <will.deacon@arm.com>
2062306a36Sopenharmony_ci中文版维护者: 傅炜  Fu Wei <wefu@redhat.com>
2162306a36Sopenharmony_ci中文版翻译者: 傅炜  Fu Wei <wefu@redhat.com>
2262306a36Sopenharmony_ci中文版校译者: 傅炜  Fu Wei <wefu@redhat.com>
2362306a36Sopenharmony_ci本文翻译提交时的 Git 检出点为: 1926e54f115725a9248d0c4c65c22acaf94de4c4
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci以下为正文
2662306a36Sopenharmony_ci---------------------------------------------------------------------
2762306a36Sopenharmony_ci                芯片勘误和软件补救措施
2862306a36Sopenharmony_ci                ==================
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci作者: Will Deacon <will.deacon@arm.com>
3162306a36Sopenharmony_ci日期: 2015年11月27日
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci一个不幸的现实:硬件经常带有一些所谓的“瑕疵(errata)”,导致其在
3462306a36Sopenharmony_ci某些特定情况下会违背构架定义的行为。就基于 ARM 的硬件而言,这些瑕疵
3562306a36Sopenharmony_ci大体可分为以下几类:
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci  A 类:无可行补救措施的严重缺陷。
3862306a36Sopenharmony_ci  B 类:有可接受的补救措施的重大或严重缺陷。
3962306a36Sopenharmony_ci  C 类:在正常操作中不会显现的小瑕疵。
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci更多资讯,请在 infocenter.arm.com (需注册)中查阅“软件开发者勘误
4262306a36Sopenharmony_ci笔记”(“Software Developers Errata Notice”)文档。
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci对于 Linux 而言,B 类缺陷可能需要操作系统的某些特别处理。例如,避免
4562306a36Sopenharmony_ci一个特殊的代码序列,或是以一种特定的方式配置处理器。在某种不太常见的
4662306a36Sopenharmony_ci情况下,为将 A 类缺陷当作 C 类处理,可能需要用类似的手段。这些手段被
4762306a36Sopenharmony_ci统称为“软件补救措施”,且仅在少数情况需要(例如,那些需要一个运行在
4862306a36Sopenharmony_ci非安全异常级的补救措施 *并且* 能被 Linux 触发的情况)。
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci对于尚在讨论中的可能对未受瑕疵影响的系统产生干扰的软件补救措施,有一个
5162306a36Sopenharmony_ci相应的内核配置(Kconfig)选项被加在 “内核特性(Kernel Features)”->
5262306a36Sopenharmony_ci“基于可选方法框架的 ARM 瑕疵补救措施(ARM errata workarounds via
5362306a36Sopenharmony_cithe alternatives framework)"。这些选项被默认开启,若探测到受影响的CPU,
5462306a36Sopenharmony_ci补丁将在运行时被使用。至于对系统运行影响较小的补救措施,内核配置选项
5562306a36Sopenharmony_ci并不存在,且代码以某种规避瑕疵的方式被构造(带注释为宜)。
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci这种做法对于在任意内核源代码树中准确地判断出哪个瑕疵已被软件方法所补救
5862306a36Sopenharmony_ci稍微有点麻烦,所以在 Linux 内核中此文件作为软件补救措施的注册表,
5962306a36Sopenharmony_ci并将在新的软件补救措施被提交和向后移植(backported)到稳定内核时被更新。
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci| 实现者         | 受影响的组件    | 勘误编号        | 内核配置                |
6262306a36Sopenharmony_ci+----------------+-----------------+-----------------+-------------------------+
6362306a36Sopenharmony_ci| ARM            | Cortex-A53      | #826319         | ARM64_ERRATUM_826319    |
6462306a36Sopenharmony_ci| ARM            | Cortex-A53      | #827319         | ARM64_ERRATUM_827319    |
6562306a36Sopenharmony_ci| ARM            | Cortex-A53      | #824069         | ARM64_ERRATUM_824069    |
6662306a36Sopenharmony_ci| ARM            | Cortex-A53      | #819472         | ARM64_ERRATUM_819472    |
6762306a36Sopenharmony_ci| ARM            | Cortex-A53      | #845719         | ARM64_ERRATUM_845719    |
6862306a36Sopenharmony_ci| ARM            | Cortex-A53      | #843419         | ARM64_ERRATUM_843419    |
6962306a36Sopenharmony_ci| ARM            | Cortex-A57      | #832075         | ARM64_ERRATUM_832075    |
7062306a36Sopenharmony_ci| ARM            | Cortex-A57      | #852523         | N/A                     |
7162306a36Sopenharmony_ci| ARM            | Cortex-A57      | #834220         | ARM64_ERRATUM_834220    |
7262306a36Sopenharmony_ci|                |                 |                 |                         |
7362306a36Sopenharmony_ci| Cavium         | ThunderX ITS    | #22375, #24313  | CAVIUM_ERRATUM_22375    |
7462306a36Sopenharmony_ci| Cavium         | ThunderX GICv3  | #23154          | CAVIUM_ERRATUM_23154    |
75