RFC-0130:支援的硬體

RFC-0130:支援的硬體
狀態已接受
區域
  • 管理事宜
說明

Fuchsia 專案支援的硬體清單。

變更
作者
審查人員
提交日期 (年/月)2021-08-24
審查日期 (年/月)2021-09-28

摘要

此 RFC 會列出 Fuchsia 專案支援類別目前中的硬體。支援的類別定義請參閱 RFC-0111:初始 Fuchsia 硬體平台規格中。

提振精神

Fuchsia 專案需要有支援類別的官方硬體清單,才能確保:

  • 會提供一定層級的支援,例如測試是由 Fuchsia 專案執行。
  • 支援的類別有哪些特定設定可可靠。

相關人員

講師:CPU。

審查者:nicoh (Infra)、nmulcahey (Infra)、Ssmithdave (開發人員關係)、Nickvander (開發人員關係) 和 curtisgalloway (駕駛人)。

社交功能:這個 RFC 的草稿已傳送至基礎架構和 TQ-Drivers 的郵寄清單。

設計

既然 Fuchsia 專案在 RFC-0111: Initial Fuchsia 硬體平台規格中定義支援的類別,現在我們可以在中央資料庫中列出這類硬體。比起列出支援類別中的個別硬體區塊,Fuchsia 專案將依據 RFC-0111:初始 Fuchsia 硬體平台規格定義的支援,並針對特定硬體組合 (從此處稱為「中央資料庫」) 為特定硬體組合建立清單 (從此處稱為「系統設定」)。系統設定中的個別硬體區塊只會在此類設定結構定義中提供「支援的類別」

本文件僅提及 Tree Top of Tree (提供最新修訂版本) 的 Fuchsia 存放區 (最新修訂版本),即支援類別中的硬體,且由 Fuchsia 專案託管。

支援類別中硬體的驅動程式是由 Fuchsia 專案代管。這些驅動程式已做為 Fuchsia 持續整合的一部分進行測試,外部協作者可以看到測試結果。

Fuchsia 中的系統設定是由主機驅動程式定義。電路板驅動程式會啟動並設定所有其他驅動程式。主機板驅動程式可以定義多個系統設定,例如 x64 主機板驅動程式庫會透過 ACPI (進階設定和電源介面) 定義多個電腦系統設定。為了完整定義系統設定,中央資料庫會列出主機板驅動程式庫和說明,其中包含選用硬體模組等設定的詳細資料,明確指出在 Fuchsia 持續整合中測試的項目。

中央資料庫中列出的系統設定並不包括一般外部周邊裝置 (如任何 USB 裝置),而是列出整合到特定系統,且經過 Fuchsia 專案測試的硬體區塊。

中央資料庫不會預防日後的硬體認證研究室、硬體自我認證、硬體一致性測試等計畫。

中央資料庫會是 /docs/reference/hardware 中的 YAML 檔案。YAML 可讓您輕鬆處理這項資料,並以易於瀏覽的格式呈現,格式類似於列出 Fuchsia 硬體驅動程式的個別驅動程式。

在此 YAML 檔案中新增項目以及因此在支援類別中新增硬體的程序,是建立新的 RFC。這種做法符合新 RFC 的 RFC-0111 規定,才能將任何新的硬體加入 Fuchsia 專案的支援類別

實作

支援類別中的系統設定清單將於 /docs/reference/hardware/_supported_sys_config.yaml 進行維護。該 YAML 檔案中的項目包括:

  • name:提供名稱或模型。
  • 說明:提供系統設定的相關詳細資料,並提供充分的說明,以便完整定義要在 Fuchsia 專案中測試的確切系統。
  • 架構:如為 ARM、x86 或 RISC-V 執行個體,則可視需要選用。
  • RAM:RAM 的數量和類型 (可選擇)。
  • Storage:儲存空間的數量和類型 (選填)。
  • Manufacturer_link [製造商連結]:製造商連結 (選填)。
  • board_driver_location:定義這個主面板設定的主機驅動程式庫的位置。顯示該存放區中存放區和路徑的網址。

主面板驅動程式以其存放區和存放區中的路徑識別。

系統設定說明文件

對於從中央資料庫移除的系統設定,/docs/reference/hardware/_supported_sys_config_epitaphs.yaml 檔案會列出從支援類別中移除的所有系統設定。這個檔案會在 /docs/reference/hardware/_supported_sys_config.yaml 中納入相同的 YAML 項目,外加:

  • gerrit_change_id:用於從 _supported_sys_config.yaml 刪除系統設定的 Gerrit 變更 ID,因此屬於支援的類別
  • available_in_git:最後一個已知的 git SHA,該 SHA 仍包含系統設定 _supported_sys_config.yaml,因此屬於支援類別

_supported_sys_config.yaml 的初始清單

- name: 'VIM3'
  description: 'Board computer based on a Amlogic A311D SoC'
  Architecture: 'ARM'
  RAM: '2GB+ DDR4'
  storage: '16GB+ eMMC5.1'
  manufacturer_link: ‘https://www.khadas.com/vim3'
  board_driver_location: https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/src/devices/board/drivers/vim3'
- name: 'NUC7i5DNHE'
  description: 'Intel NUC based on 7th Gen i5'
  Architecture: 'x86'
  RAM: '4GB+ DDR4'
  storage: 'Samsung 860 EVO SSD 250GB'
  manufacturer_link: ‘https://www.intel.com/content/www/us/en/products/sku/122488/intel-nuc-kit-nuc7i5dnhe/specifications.html'
  board_driver_location: 'https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/src/devices/board/drivers/x86'
- name: 'NUC11TNHi5'
  description: 'Intel NUC based on 11th Gen i5'
  Architecture: 'x86'
  RAM: '4GB+ DDR4'
  storage: '128GB NVMe PCIe M.2 SSD'
  manufacturer_link: 'https://www.intel.com/content/www/us/en/products/sku/205594/intel-nuc-11-pro-kit-nuc11tnhi5/specifications.html'
  board_driver_location: 'https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/src/devices/board/drivers/x86'
- name: 'Astro'
  description: 'Based on the AMLogic S509D2G SoC, a complete system used for IoT applications'
  Architecture: 'ARM'
  board_driver_location: 'https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/src/devices/board/drivers/astro'

還原

任何變更均不得破壞支援類別中的硬體,因此即使通過持續整合測試,Fuchsia 團隊的成員仍可還原這些硬體的所有故障 (例如執行個體建構工具)。

回溯相容性

初始清單會包含支援類別中的系統設定。如上方清單所述,包含 VIM3、特定的 NUC 和 Astro。

說明文件

我們會在 fuchsia.dev/fuchsia-src/reference/hardware/supported 中建立 fuchsia.dev 頁面,類似 fuchsia.dev/fuchsia-src/reference/hardware/drivers。在「支援類別」中指定硬體的其他頁面會指向這個新頁面。例如,在 NUC 上安裝 Fuchsia 並指向這個新頁面。