mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-17 16:15:18 +00:00
05fd349b17
Fix checkpatch.pl issues with trailing whitespace in README. Signed-off-by: Aybuke Ozdemir <aybuke.147@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
70 lines
2.3 KiB
Text
70 lines
2.3 KiB
Text
==============================================================================
|
|
Linux Driver Source for Xilinx FPGA firmware download
|
|
==============================================================================
|
|
|
|
|
|
TABLE OF CONTENTS.
|
|
|
|
1. SUMMARY
|
|
2. BACKGROUND
|
|
3. DESIGN
|
|
4. HOW TO USE
|
|
5. REFERENCE
|
|
|
|
1. SUMMARY
|
|
|
|
- Download Xilinx FPGA firmware
|
|
- This module downloads Xilinx FPGA firmware using gpio pins.
|
|
|
|
2. BACKGROUND
|
|
|
|
An FPGA (Field Programmable Gate Array) is a programmable hardware that is
|
|
used in various applications. Hardware design needs to programmed through
|
|
a dedicated device or CPU assisted way (serial or parallel).
|
|
This driver provides a way to download FPGA firmware.
|
|
|
|
3. DESIGN
|
|
|
|
- load Xilinx FPGA bitstream format[1] firmware image file using
|
|
kernel firmware framework, request_firmware()
|
|
- program the Xilinx FPGA using SelectMAP (parallel) mode [2]
|
|
- FPGA prgram is done by gpio based bit-banging, as an example
|
|
- platform independent file: gs_fpgaboot.c
|
|
- platform dependent file: io.c
|
|
|
|
4. HOW TO USE
|
|
|
|
$ insmod gs_fpga.ko file="xlinx_fpga_top_bitstream.bit"
|
|
$ rmmod gs_fpga
|
|
|
|
5. USE CASE (from a mailing list discussion with Greg)
|
|
|
|
a. As a FPGA development support tool,
|
|
During FPGA firmware development, you need to download a new FPGA
|
|
image frequently.
|
|
You would do that with a dedicated JTAG, which usually a limited
|
|
resource in the lab.
|
|
However, if you use my driver, you don't have to have a dedicated JTAG.
|
|
This is a real gain :)
|
|
|
|
b. For the FPGA that runs without config after the download, which
|
|
doesn't talk to any of Linux interfaces (such as PCIE).
|
|
|
|
We download FPGA firmware from user triggered or some other way, and that's it.
|
|
Since that FPGA runs on its own, it doesn't require a linux driver
|
|
after the download.
|
|
|
|
c. For the FPGA that requires config after the download, which talk to
|
|
any of linux interfaces (such as PCIE)
|
|
|
|
Then, this type of FPGA config can be put into device tree and have a
|
|
separate driver (pcie or others), then THAT driver calls my driver to
|
|
download FPGA firmware during the Linux boot, the take over the device
|
|
through the interface.
|
|
|
|
6. REFERENCE
|
|
|
|
1. Xilinx APP NOTE XAPP583:
|
|
http://www.xilinx.com/support/documentation/application_notes/xapp583-fpga-configuration.pdf
|
|
2. bitstream file info:
|
|
http://home.earthlink.net/~davesullins/software/bitinfo.html
|