123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- Introduction
- ============
- The FPGA subsystem supports reprogramming FPGAs dynamically under
- Linux. Some of the core intentions of the FPGA subsystems are:
- * The FPGA subsystem is vendor agnostic.
- * The FPGA subsystem separates upper layers (userspace interfaces and
- enumeration) from lower layers that know how to program a specific
- FPGA.
- * Code should not be shared between upper and lower layers. This
- should go without saying. If that seems necessary, there's probably
- framework functionality that can be added that will benefit
- other users. Write the linux-fpga mailing list and maintainers and
- seek out a solution that expands the framework for broad reuse.
- * Generally, when adding code, think of the future. Plan for reuse.
- The framework in the kernel is divided into:
- FPGA Manager
- ------------
- If you are adding a new FPGA or a new method of programming an FPGA,
- this is the subsystem for you. Low level FPGA manager drivers contain
- the knowledge of how to program a specific device. This subsystem
- includes the framework in fpga-mgr.c and the low level drivers that
- are registered with it.
- FPGA Bridge
- -----------
- FPGA Bridges prevent spurious signals from going out of an FPGA or a
- region of an FPGA during programming. They are disabled before
- programming begins and re-enabled afterwards. An FPGA bridge may be
- actual hard hardware that gates a bus to a CPU or a soft ("freeze")
- bridge in FPGA fabric that surrounds a partial reconfiguration region
- of an FPGA. This subsystem includes fpga-bridge.c and the low level
- drivers that are registered with it.
- FPGA Region
- -----------
- If you are adding a new interface to the FPGA framework, add it on top
- of an FPGA region.
- The FPGA Region framework (fpga-region.c) associates managers and
- bridges as reconfigurable regions. A region may refer to the whole
- FPGA in full reconfiguration or to a partial reconfiguration region.
- The Device Tree FPGA Region support (of-fpga-region.c) handles
- reprogramming FPGAs when device tree overlays are applied.
|