硬體需求和建議

本頁提供 Fuchsia 目前的硬體需求和建議摘要。我們的目標是針對只需要瞭解 Fuchsia 需要或建議的硬體供應商,提供簡單易懂的 RFC-0111:初始硬體平台規格說明。

必要功能

必須支援所有必要功能。如果系統不支援所需功能,Fuchsia 就無法正確建構或執行。

功能 領域 詳細說明 範例
指示集架構 (ISA) 架構
  • x86-64 架構必須支援 x86-64-v2 ISA。
  • Arm 架構至少須支援 Armv8.0-A。
  • Intel Westmere 及較新的 CPU。
  • AMD Bulldozer 及較新的 CPU。
  • Arm A35、A53、A55、A57、A65、A72、A73、A75、A76、A77、A78 和 X1。
QEMU 支援 架構
小端序位元組排序模式 架構
  • 所有 x86 CPU。
  • Arm 處理器支援小端序。
支援 LLVM 工具鍊 架構
  • 架構必須位於 LLVM 核心級別
  • Clang 工具鍊支援功能必須保持在最新狀態。
第 2 級 Rust 語言支援 架構
支援 Dart 語言 架構
支援 Go 語言 架構
功能完備的現代記憶體管理單位 (MMU) 平台
  • MMU 必須支援建立任意數量的位址空間。
  • MMU 必須將大小合理頁面的實體記憶體對應至其中任何空間。
  • MMU 必須透過硬體存取權控管機制,在個別位址空間之間強制執行保護。
  • Armv8.0-A 以上版本。
  • 2010 年之後的所有 x86 CPU。
64 位元平台 平台
  • 所有 x86-64 平台。
  • 所有 Armv8-A 及以上處理器 (A32 除外)。
時鐘與計時器 系統
  • 時鐘和計時器不得任意變更頻率。
  • 時鐘和計時器寬度必須至少為 56 位元。
  • 時鐘和計時器的累積時間必須超過 40 年。
  • 時鐘和計時器必須明確知道名詞頻率,無需執行執行階段校正。
系統啟動載入程式開放性 系統
  • Fuchsia 必須能夠變更及建構最終階段系統啟動載入程式
  • Fuchsia 必須要能夠發布「最終階段系統啟動載入程式」變更的來源和二進位檔。
序列控制台存取權 系統
  • 在開發期間,系統必須支援中斷導向的 TX 和 RX。
  • 提供給使用者的實際工作環境系統不需要序列控制台存取權。
  • (建議) 直接記憶體存取權 (DMA)。

建議功能

建議功能並不需要正確建構或執行 Fuchsia,但由於這些功能可提升 Fuchsia 的基本功能,因此建議使用這些功能。

功能 領域 詳細說明 範例
虛擬化支援 架構
  • Intel x86 CPU:VMX、EPT、RDTSCP、x2APIC、VPID、未受限制的訪客、TPR 虛擬化、MSR 點陣圖、例外狀況點陣圖、INVPCID (建議)、PAUSE-loop 結束 (建議)。
  • Armv8.0、EL2 存取權、主機實體計時器 / 訪客虛擬計時器分割、GICv2 或 GICv3、GIC 虛擬化。
  • Armv8-A AArch64。
  • Intel VT-x。
  • AMD VT:
時鐘與計時器 架構
  • 如果計時器值超過指定絕對門檻,計時器應向核心傳送中斷。
  • 時鐘和計時器應做為架構本身的一部分實作,而非週邊裝置。
I/O 記憶體管理單元 (IOMMU) 平台
  • IOMMU 應能 NAK 讀取及寫入從可明確識別的硬體單元啟動的交易。
  • IOMMU 應針對硬體 DMA 作業進行位址轉譯。
  • IOMMU 網頁錯誤情境應可偵測及偵錯。
  • Arm IOMMU 規格中的系統記憶體管理單元 (SMMU)。
  • Intel x86 IOMMU 規格。
  • Intel VT-d。
  • AMD-Vi.
支援硬體加密編譯加速功能 平台
  • 平台應提供 AES 和 SHA 的硬體加速。
  • Armv8.0-A (Cortex A34) 以上版本適用的 AES:AESE、AESD、AESMC、AESIMC、PMULL、PMULL2。
  • Armv8.0-A (Cortex A34) 以上版本適用的 SHA2:SHA256H、SHA256H2、SHA256UO、SHA256U1。
硬體輔助追蹤 平台
  • Arm CoreSight ETM。
  • Intel 最後分支版本記錄 (LBR)。
GCC 工具鍊支援 系統
  • 系統應可由 GCC 工具鍊完整支援。
第 1 級 Rust 語言支援 系統
說明文件與支援 系統
  • 系統應擁有有關註冊地圖、作業理論和啟動期間硬體狀態的公開說明文件。
  • 針對 Linux 或 Android 開放原始碼專案,或是其他授權與 Fuchsia 不相容的專案,請勿提供 Board 說明文件原始碼。
  • 系統供應商必須提供支援管道,讓 Fuchsia 貢獻者解答相關問題。
支援 Fastboot 系統
  • 系統啟動載入程式應支援非專屬傳輸方式的 Fastboot。如需應支援的 Fastboot 通訊協定指令完整清單,請參閱「必要的 Fastboot 指令」。

附錄:術語

這些術語定義是以文件定義為依據。

架構

處理器架構,例如 x86 或 Arm。

早期系統啟動載入程式

系統啟動載入程式的所有階段,早於最終階段系統啟動載入程式

最終階段系統啟動載入程式

載入 Fuchsia 核心的軟體元件。

平台

晶片系統 (SoC) 或 CPU 和晶片組的組合。

系統

具備 CPU、記憶體、週邊裝置等的完整電腦硬體系統。又稱為白板