diff options
author | Alan Tull <atull@kernel.org> | 2018-05-17 02:50:02 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-05-25 19:23:56 +0300 |
commit | 66c472cdb62d7b00de55722a772f7dfecf88abd1 (patch) | |
tree | b4dd1b7498ff16e1eb48dedfb66a7ad1bbb8c7ea /Documentation/driver-api/fpga/intro.rst | |
parent | 917a4304fe48c12d346f038c7d64da3f51bce53a (diff) | |
download | linux-66c472cdb62d7b00de55722a772f7dfecf88abd1.tar.xz |
Documentation: fpga: move fpga overview to driver-api
Start of moving Documentation/fpga/*.txt to driver-api, including:
- Add new directory driver-api/fpga
- Add new file driver-api/fpga/index.rst
- Add driver-api/fpga to driver-api/index.rst
- Move Documentation/fpga/overview.txt to driver-api/fpga/intro.rst
- Formatting and rewrites so that intro.rst will build cleanly
and form a good introduction to the rest of the docs to be added.
Signed-off-by: Alan Tull <atull@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'Documentation/driver-api/fpga/intro.rst')
-rw-r--r-- | Documentation/driver-api/fpga/intro.rst | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Documentation/driver-api/fpga/intro.rst b/Documentation/driver-api/fpga/intro.rst new file mode 100644 index 000000000000..51cd81dbb4dc --- /dev/null +++ b/Documentation/driver-api/fpga/intro.rst @@ -0,0 +1,54 @@ +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 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 re-use. + +The framework in the kernel is divided into: + +FPGA Manager +------------ + +If you are adding a new FPGA or a new method of programming a 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 a FPGA or a +region of a 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 a FPGA region to allow the most reuse of your interface. + +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. |