RFC-0130:支持的硬件

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 将更新为指向此新页面。