| 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 硬件平台规范提供支持,并为特定的硬件组合(以下称为“系统配置”)创建一个列表(以下称为“中央数据库”)。系统配置中的各个硬件块只有在该配置的上下文中才属于支持类别。
本文档仅涉及树顶 (Top of Tree)(最新可用修订版本)的 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:提供名称或模型。
- 说明:提供有关系统配置的详细信息,这些信息应足以完整定义 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:用于从 _supported_sys_config.yaml 中删除系统配置,从而从支持的类别中删除系统配置的 Gerrit 更改的 ID。available_in_git:仍包含系统配置 _supported_sys_config.yaml 且因此属于支持的类别的最后一个已知 Git SHA。
初始 _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 团队的任何成员(例如 build gardener)都可以将其恢复。
向后兼容性
初始列表将包含已归入支持的类别的系统配置。如上所列,此列表包括 VIM3、特定 NUC 和 Astro。
文档
我们将在 fuchsia.dev/fuchsia-src/reference/hardware/supported 中创建一个类似于 fuchsia.dev/fuchsia-src/reference/hardware/drivers 的 fuchsia.dev 页面。在支持的类别中指定硬件的其他页面将指向此新页面,例如在 NUC 上安装 Fuchsia 将更新为指向此新页面。