SPDX-License-Identifier: GPL-2.0

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 <will.deacon@arm.com>
zh_CN:	Fu Wei <wefu@redhat.com>
zh_TW:	Hu Haowen <src.res.211@gmail.com>
C:	1926e54f115725a9248d0c4c65c22acaf94de4c4
---------------------------------------------------------------------
Documentation/arch/arm64/silicon-errata.rst 的中文翻譯

如果想評論或更新本文的內容,請直接聯繫原文檔的維護者。如果你使用英文
交流有困難的話,也可以向中文版維護者求助。如果本翻譯更新不及時或者翻
譯存在問題,請聯繫中文版維護者。

英文版維護者: Will Deacon <will.deacon@arm.com>
中文版維護者: 傅煒  Fu Wei <wefu@redhat.com>
中文版翻譯者: 傅煒  Fu Wei <wefu@redhat.com>
中文版校譯者: 傅煒  Fu Wei <wefu@redhat.com>
繁體中文版校譯者: 胡皓文  Hu Haowen <src.res.211@gmail.com>
本文翻譯提交時的 Git 檢出點爲: 1926e54f115725a9248d0c4c65c22acaf94de4c4

以下爲正文
---------------------------------------------------------------------
                晶片勘誤和軟體補救措施
                ==================

作者: Will Deacon <will.deacon@arm.com>
日期: 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    |