硬件要求和建议
本页概述了 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 工具链支持
|
架构
|
|
|
第 2 层级 Rust 语言支持
|
架构
|
|
|
Dart 语言支持
|
架构
|
|
|
Go 语言支持
|
架构
|
|
|
功能齐全的现代内存管理单元 (MMU)
|
平台
|
-
MMU 必须支持创建任意数量的地址空间。
-
MMU 必须将大小合理的页面中的物理内存映射到其中的任何空间。
-
MMU 必须通过硬件访问权限控制机制在单独的地址空间之间强制执行保护。
|
- Armv8.0-A 及更高版本。
- 2010 年之后的所有 x86 CPU。
|
64 位平台
|
平台
|
|
- 所有 x86-64 平台。
- 所有 Armv8-A 及更高版本的处理器(A32 除外)。
|
时钟与计时器
|
系统
|
- 时钟和计时器不得随意更改频率。
- 时钟和计时器的宽度必须至少为 56 位。
- 时钟及计时器的滚动时间必须超过 40 年。
-
时钟和计时器必须具有无需运行时校准的明确可知标称频率。
|
|
引导加载程序开放性
|
系统
|
|
|
串行控制台访问权限
|
系统
|
-
在开发过程中,系统必须支持中断驱动的 TX 和 RX。
-
面向最终用户的生产系统不需要串行控制台访问权限。
-
(推荐)直接内存访问 (DMA)。
|
|
推荐功能
正确构建或运行 Fuchsia 不需要推荐功能,但这些功能可以改进 Fuchsia 的基本功能,非常受欢迎。
功能 |
领域 |
详细信息 |
示例 |
虚拟化支持
|
架构 |
-
Intel x86 CPU:VMX、EPT、RDTSCP、x2APIC、VPID、无限制客户机、TPR 虚拟化、MSR 位图、异常位图、INVPCID(推荐)、PAUSE 循环退出(推荐)。
-
Arm CPU: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。
|
支持硬件加密加速
|
平台 |
|
-
适用于 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 工具链支持
|
系统 |
|
|
第 1 层级 Rust 语言支持
|
系统 |
|
|
文档和支持
|
系统 |
-
系统应提供关于寄存器映射、操作理论和启动时硬件状态的公开文档。
-
板级文档不能是 Linux、Android 开源项目或任何其他具有与 Fuchsia 不兼容许可的项目文档源代码的分支。
-
系统供应商必须提供支持渠道,Fuchsia 贡献者可以通过这些渠道解答他们的问题。
|
|
支持 fastboot
|
系统 |
|
|
附录:术语
这些术语定义基于文档定义。
架构
x86 或 Arm 等处理器架构。
早期阶段引导加载程序
引导加载程序在最终阶段引导加载程序之前的所有阶段。
最终阶段引导加载程序
加载 Fuchsia 内核的软件组件。
系统芯片 (SoC) 或 CPU 与芯片组的组合。
系统
完整的计算机硬件系统,包含 CPU、内存、外围设备等。也称为“面板”。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-03-15。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2024-03-15。"],[],[]]