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