简介¶
FPGA 子系统支持在 Linux 下动态地重新编程 FPGA。 FPGA 子系统的一些核心意图是
FPGA 子系统是供应商无关的。
FPGA 子系统将上层(用户空间接口和枚举)与知道如何编程特定 FPGA 的下层分开。
代码不应在上层和下层之间共享。 这应该是不言而喻的。 如果这似乎是必要的,则可能可以添加框架功能,这将使其他用户受益。 请写信给 linux-fpga 邮件列表和维护人员,并寻求一种解决方案,该解决方案可以扩展框架以进行广泛的重用。
通常,在添加代码时,请考虑未来。 计划重用。
内核中的框架分为
FPGA 管理器¶
如果您要添加新的 FPGA 或新的 FPGA 编程方法,则此子系统适合您。 低级 FPGA 管理器驱动程序包含如何编程特定设备的知识。 此子系统包括 fpga-mgr.c 中的框架以及向其注册的低级驱动程序。
FPGA 桥接¶
FPGA 桥接器可防止在编程期间从 FPGA 或 FPGA 区域发出杂散信号。 它们在编程开始之前被禁用,然后在编程之后重新启用。 FPGA 桥接器可能是实际的硬硬件,它将总线连接到 CPU,也可能是 FPGA 结构中的一个软(“冻结”)桥接器,该桥接器围绕 FPGA 的部分重新配置区域。 此子系统包括 fpga-bridge.c 和向其注册的低级驱动程序。
FPGA 区域¶
如果要向 FPGA 框架添加新接口,请将其添加到 FPGA 区域之上。
FPGA 区域框架 (fpga-region.c) 将管理器和桥接器关联为可重新配置的区域。 区域可以指完全重新配置中的整个 FPGA,也可以指部分重新配置区域。
设备树 FPGA 区域支持 (of-fpga-region.c) 在应用设备树覆盖时处理 FPGA 的重新编程。