RFC-0130:支持的硬件

RFC-0130:支持的硬件
状态已接受
领域
  • 治理
说明

Fuchsia 项目支持的硬件列表。

Gerrit 更改
  • 572597
作者
审核人
提交日期(年-月-日)2021-08-24
审核日期(年-月-日)2021-09-28

总结

此 RFC 列出了当前包含在 Fuchsia 项目的受支持类别中的硬件。RFC-0111:初始 Fuchsia 硬件平台规范中定义了支持的类别

设计初衷

Fuchsia 项目需要在“受支持类别”中提供一个官方硬件列表,以确保:

  • 提供特定级别的支持,例如测试由 Fuchsia 项目完成。
  • 关于支持的类别中具体配置有哪些可信来源。

利益相关方

教员:cpu。

审核者:nicoh(基础架构)、nmulcahey(基础架构)、smithdave(开发者关系团队)、nickvander(开发者关系团队)和 Curtisgalloway(驱动程序)。

社交:此 RFC 的草稿已发送至基础架构和 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:存储量和类型(可选)。
  • Maker_link:指向制造商的链接(可选)。
  • board_driver_location:定义此板配置的板驱动程序的位置。用于显示代码库以及该代码库中的路径的网址。

板驱动程序由其代码库和在该代码库中的路径唯一标识。

系统配置摘要

对于从中央数据库中移除的系统配置,/docs/reference/hardware/_supported_sys_config_epitaphs.yaml 文件会列出从支持的类别中移除的所有系统配置。此文件将在 /docs/reference/hardware/_supported_sys_config.yaml 中包含相同的 YAML 条目,以及:

  • gerrit_change_id:Gerrit 更改的 ID,用于从 _supported_sys_config.yaml 中删除系统配置,从而从支持的类别中删除系统配置。
  • 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 团队的任何成员(例如构建花园)都可能会还原该 CL。

向后兼容性

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

文档

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