| RFC-0130:支援的硬體 | |
|---|---|
| 狀態 | 已接受 |
| 區域 |
|
| 說明 | Fuchsia 專案支援的硬體清單。 |
| Gerrit 變更 | |
| 作者 | |
| 審查人員 | |
| 提交日期 (年-月-日) | 2021-08-24 |
| 審查日期 (年-月-日) | 2021-09-28 |
摘要
這份 RFC 列出 Fuchsia 專案目前「支援」類別中的硬體。支援的類別定義於 RFC-0111:初始 Fuchsia 硬體平台規格。
提振精神
Fuchsia 專案必須在「支援的類別」中列出正式的硬體清單,確保:
- 提供特定層級的支援,例如由 Fuchsia 專案進行測試。
- 您可以在「支援的類別」中,查看特定設定的可靠資料來源。
利害關係人
促成者:cpu。
審查人員:nicoh (基礎架構)、nmulcahey (基礎架構)、smithdave (開發人員關係)、 nickvander (開發人員關係) 和 curtisgalloway (驅動程式)。
社交化:這份 RFC 草案已傳送至 Infra 和 TQ-Drivers 郵寄清單。
設計
Fuchsia 專案已在 RFC-0111:初始 Fuchsia 硬體平台規格中定義「支援的類別」,因此我們現在可以在中央資料庫中列出這類硬體。Fuchsia 專案不會列出支援類別中的個別硬體區塊,而是會根據 RFC-0111:初始 Fuchsia 硬體平台規格提供支援,並為特定硬體組合 (以下稱為「系統設定」) 建立清單 (以下稱為「中央資料庫」)。系統設定中的個別硬體區塊只有在這種設定的脈絡下,才會屬於「支援」類別。
本文僅指樹狀結構頂端的 Fuchsia 存放區 (最新修訂版本),也就是支援類別中的硬體,並由 Fuchsia 專案代管。
支援類別中的硬體驅動程式由 Fuchsia 專案代管。這些驅動程式會經過 Fuchsia 持續整合測試,外部貢獻者可以查看測試結果。
在 Fuchsia 中,系統設定是由主機板驅動程式定義。主機板驅動程式會啟動並設定所有其他驅動程式。主機板驅動程式可能會定義多個系統設定,例如 x64 主機板驅動程式庫會透過 ACPI (進階設定和電源介面) 定義多個 PC 系統設定。如要完整定義系統設定,中央資料庫會列出主機板驅動程式庫和說明,提供設定詳細資料 (例如選用硬體模組),清楚說明 Fuchsia 持續整合測試的內容。
中央資料庫列出的系統設定不包括一般外部周邊裝置 (例如任何 USB 裝置),而是列出整合到特定系統的硬體區塊,並由 Fuchsia 專案測試。
中央資料庫不會妨礙未來的計畫,例如硬體認證實驗室、硬體自我認證、硬體一致性測試等。
中央資料庫會是 /docs/reference/hardware 中的 YAML 檔案。YAML 可輕鬆處理這項資料,並以易於瀏覽的格式呈現,類似於 Fuchsia 硬體驅動程式中列出個別驅動程式的格式。
如要將新項目新增至這個 YAML 檔案,進而將新硬體新增至「支援的類別」,請建立新的 RFC。這是為了遵守 RFC-0111 的規定,也就是必須有新的 RFC,才能將任何新硬體新增至 Fuchsia 專案的支援類別。
實作
支援的類別中的系統設定清單將在 /docs/reference/hardware/_supported_sys_config.yaml 維護。該 YAML 檔案中的項目會包含:
- name:提供名稱或模型。
- description:提供系統設定的詳細資料,並充分說明 Fuchsia 專案測試的確切系統。
- 架構:例如 ARM、x86 或 RISC-V (選用)。
- RAM:RAM 容量和類型 (選填)。
- 儲存空間:儲存空間大小和類型 (選用)。
- manufacturer_link:製造商連結 (選填)。
- board_driver_location:定義這個主機板設定的主機板驅動程式庫位置。顯示存放區和該存放區內路徑的網址。
系統會根據存放區和存放區中的路徑,專屬識別開發板驅動程式。
系統設定墓誌銘
如果從中央資料庫移除系統設定,/docs/reference/hardware/_supported_sys_config_epitaphs.yaml 檔案會列出從「支援的類別」中移除的所有系統設定。這個檔案會包含 /docs/reference/hardware/_supported_sys_config.yaml 中的相同 YAML 項目,以及:
gerrit_change_id:Gerrit 變更的 ID,用於從 _supported_sys_config.yaml 刪除系統設定,因此也會從「支援的類別」中刪除。available_in_git:最後一個已知 Git 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'
還原
任何變更都不應導致支援類別中的硬體損壞,因此,即使通過持續整合測試,如果 CL 導致任何這類硬體損壞,Fuchsia 團隊的任何成員 (例如建構園丁) 都可能會還原該 CL。
回溯相容性
初始清單會包含「支援的類別」中已有的系統設定。如上所列,這份清單包含 VIM3、特定 NUC 和 Astro。
說明文件
我們會在 fuchsia.dev/fuchsia-src/reference/hardware/supported 中,建立類似於 fuchsia.dev/fuchsia-src/reference/hardware/drivers 的 fuchsia.dev 頁面。其他在「支援的類別」中指定硬體的頁面,都會指向這個新頁面。舉例來說,「在 NUC 上安裝 Fuchsia」會更新為指向這個新頁面。