1
0
Fork 0
alistair23-linux/drivers/staging/gs_fpgaboot
Bartlomiej Zolnierkiewicz 031ba1fd91 staging: remove redundant 'default n' from Kconfig
'default n' is the default value for any bool or tristate Kconfig
setting so there is no need to write it explicitly.

Also since commit f467c5640c ("kconfig: only write '# CONFIG_FOO
is not set' for visible symbols") the Kconfig behavior is the same
regardless of 'default n' being present or not:

    ...
    One side effect of (and the main motivation for) this change is making
    the following two definitions behave exactly the same:

        config FOO
                bool

        config FOO
                bool
                default n

    With this change, neither of these will generate a
    '# CONFIG_FOO is not set' line (assuming FOO isn't selected/implied).
    That might make it clearer to people that a bare 'default n' is
    redundant.
    ...

Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-04-16 13:39:01 +02:00
..
Kconfig staging: remove redundant 'default n' from Kconfig 2019-04-16 13:39:01 +02:00
Makefile staging: add missing SPDX lines to Makefile files 2019-04-03 11:10:15 +02:00
README staging: gs_fpgaboot Fix trailing whitespace. 2014-09-19 17:42:15 -07:00
TODO
gs_fpgaboot.c staging: gs_fpgaboot: add SPDX identifiers 2019-01-15 16:08:05 +01:00
gs_fpgaboot.h staging: gs_fpgaboot: add SPDX identifiers 2019-01-15 16:08:05 +01:00
io.c staging: gs_fpgaboot: cleanup alignment issue - style 2019-01-15 16:08:05 +01:00
io.h staging: gs_fpgaboot: add SPDX identifiers 2019-01-15 16:08:05 +01:00

README

==============================================================================
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