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 硬件平台规范中所定义的方式提供支持,而不是在受支持的类别中列出各个硬件块,并为特定的硬件组合(以下简称“系统配置”)创建一个列表(以下简称“中央数据库”)。只有在系统配置的上下文中,系统配置中的各个硬件块才属于“受支持”类别

本文档仅涉及树顶(最新可用修订版)的 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 的数量和类型,可选。
  • storage:存储空间的大小和类型,可选。
  • 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:上次已知的 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 团队的任何成员(例如 build 园丁)都可以将其还原。

向后兼容性

初始列表将包含已在“受支持”类别中的系统配置。如上所述,此列表包括 VIM3、特定 NUC 和 Astro。

文档

我们将在 fuchsia.dev/fuchsia-src/reference/hardware/supported 中创建一个类似于 fuchsia.dev/fuchsia-src/reference/hardware/drivers 的 fuchsia.dev 页面。在受支持的类别中指定硬件的其他页面将指向此新页面,例如在 NUC 上安装 Fuchsia 将更新为指向此新页面。