openFPGALoader/README.md

83 lines
3.9 KiB
Markdown
Raw Normal View History

2019-12-06 11:51:47 +01:00
# openFPGALoader
2021-07-17 12:13:09 +02:00
2021-08-03 21:02:36 +02:00
<p align="right">
<a title="'Test' workflow Status" href="https://github.com/trabucayre/openFPGALoader/actions?query=workflow%3ATest"><img alt="'Test' workflow Status" src="https://img.shields.io/github/workflow/status/trabucayre/openFPGALoader/Test?longCache=true&style=flat-square&label=Test&logo=github%20actions&logoColor=fff"></a>
2021-07-17 12:13:09 +02:00
</p>
2021-08-03 21:02:36 +02:00
<p align="center">
<strong><a href="doc/first-steps.md">First steps</a><a href="INSTALL.md">Install</a><a href="doc/troubleshooting.md">Troubleshooting</a></strong><a href="doc/advanced-usage.md">Advanced usage</a>
</p>
2021-08-03 21:02:36 +02:00
Universal utility for programming FPGAs. Compatible with many boards, cables and FPGA from major manufacturers (Xilinx, Altera/Intel, Lattice, Gowin, Efinix, Anlogic). openFPGALoader works on [Linux](INSTALL.md#linux), [Windows](INSTALL.md#windows) and [macOS](INSTALL.md#macos).
2021-08-03 21:02:36 +02:00
Not sure if your hardware is supported? Check the hardware compatibility lists:
2021-08-03 21:02:36 +02:00
* [FPGA compatibility list](doc/fpga-compatibility-list.md)
* [Board compatibility list](doc/board-compatibility-list.md)
* [Cable compatibility list](doc/cable-compatibility-list.md)
2019-09-26 18:53:30 +02:00
2021-08-03 21:02:36 +02:00
Also checkout the vendor-specific documentation: [Anlogic](doc/anlogic.md), [Efinix](doc/efinix.md), [Gowin](doc/gowin.md), [Intel/Altera](doc/intel.md), [Lattice](doc/lattice.md), [Xilinx](doc/xilinx.md).
2020-04-13 15:57:31 +02:00
2021-08-11 23:32:26 +02:00
## Quick Usage
2021-08-11 23:36:04 +02:00
`arty` in the example below is one of the many FPGA board configurations listed [here](doc/board-compatibility-list.md).
```bash
2021-08-11 23:32:26 +02:00
openFPGALoader -b arty arty_bitstream.bit # Loading in SRAM
openFPGALoader -b arty -f arty_bitstream.bit # Writing in flash
```
2021-08-11 23:36:04 +02:00
You can also specify a JTAG cable model instead of the board model:
```bash
openFPGALoader -c cmsisdap fpga_bitstream.bit
```
2019-09-26 18:53:30 +02:00
## Usage
2021-08-03 21:02:36 +02:00
```
2019-12-06 11:51:47 +01:00
openFPGALoader --help
Usage: openFPGALoader [OPTION...] BIT_FILE
2020-10-05 14:50:51 +02:00
openFPGALoader -- a program to flash FPGA
--bitstream arg bitstream
-b, --board arg board name, may be used instead of cable
-c, --cable arg jtag interface
--ftdi-serial arg FTDI chip serial number
--ftdi-channel arg FTDI chip channel number (channels 0-3 map to
A-D)
-d, --device arg device to use (/dev/ttyUSBx)
--detect detect FPGA
--dfu DFU mode
--dump-flash Dump flash mode
--file-size arg provides size in Byte to dump, must be used with
dump-flash
--file-type arg provides file type instead of let's deduced by
using extension
--fpga-part arg fpga model flavor + package
--freq arg jtag frequency (Hz)
-f, --write-flash write bitstream in flash (default: false, only
for Gowin and ECP5 devices)
--index-chain arg device index in JTAG-chain
--list-boards list all supported boards
--list-cables list all supported cables
--list-fpga list all supported FPGA
-m, --write-sram write bitstream in SRAM (default: true, only for
Gowin and ECP5 devices)
-o, --offset arg start offset in EEPROM
--pins arg pin config (only for ft232R) TDI:TDO:TCK:TMS
--probe-firmware arg firmware for JTAG probe (usbBlasterII)
--quiet Produce quiet output (no progress bar)
-r, --reset reset FPGA after operations
--spi SPI mode (only for FTDI in serial mode)
-v, --verbose Produce verbose output
-h, --help Give this help list
--verify Verify write operation (SPI Flash only)
-V, --Version Print program version
2020-10-05 14:50:51 +02:00
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
Report bugs to <gwenhael.goavec-merou@trabucayre.com>.
2019-09-26 18:53:30 +02:00
```