针对 Linux 内核 FPGA 管理器子系统当前存在的各类限制,AMD-Xilinx 工程师在 Linux 内核列表上发布了征求意见,计划为 Linux 内核提供补丁引入一种新的 sysfs 接口,从而可以对 FPGA 进行更多的用户空间控制。
这个新的 sysfs 接口可以处理 FPGA 配置、驱动程序探测和删除、桥接、用于在操作系统运行时重新编程 FPGA 的设备树覆盖文件支持,同时还可以通过主线版本的 Linux Kernel 提供更多当前没有的用户空间其他功能。
AMD 的这个新提案希望能够以适合上游到主线 Linux Kernel 的方式标准化 FPGA 子系统用户空间接口,不过目前这还只是提案阶段,接下来还要看 Linux 社区如何讨论。
下面是 AMD-Xilinx 工程师发布的征求意见:
现有的 FPGA 管理器子系统在内核中没有任何用户空间接口,除了 sysfs 中的状态和其他状态。
基本上 FPGA 是可以针对所需硬件功能重新编程的半导体器件,FPGA 可以根据用户需要在运行时使用不同类型的逻辑和 IP 进行重新编程,因此需要使用设备树覆盖来在运行时为 FPGA 重存在的 IP 和控制器删除 / 更新 / 添加设备。
但就目前来说 Linux Kernel 中没有任何用户界面来在运行时更新设备树。
不久前 Pantelis Antoniou 发布了一系列作品,该补丁引入了用于设备树覆盖的用户界面 configfs,这是一张动态更改内核实时设备树的方法,然而由于各种问题,该系列不定并未在主线中被接受。
这个 configfs 接口引起的主要问题之一就是安全性,因为它面向用户开放了用于修改实时设备树的接口。因此为了配置 / 编程 FPGA 设备,所有主要 FPGA 供应商都使用这个 configfs 系列作为配置 FPGA 的树外补丁,并且从未尝试引入通用接口配置 / 编程上游 FPGA 以及上游内核最终都没有对 FPGA 提供适当的支持。
注:赛灵思是 FPGA 领域的主要芯片开发商,此前该公司已经被 AMD 收购,去年 6 月份 AMD 宣布将赛灵思更名为 AMD 嵌入式。
了解更多: