简介¶
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。