Installing openFPGALoader

Linux

Arch Linux

openFPGALoader is available in the default repositories:

sudo pacman -S openfpgaloader

Alternatively, you could build from source. First: install required libraries:

sudo pacman -S git cmake make gcc pkgconf libftdi libusb zlib hidapi gzip

Build step is similar as Debian

Fedora

openFPGALoader is available as a Copr repository:

sudo dnf copr enable mobicarte/openFPGALoader
sudo dnf install openFPGALoader

From source (Debian, Ubuntu)

This application uses libftdi1, so this library must be installed (and, depending on the distribution, headers too):

sudo apt install \
  git \
  gzip \
  libftdi1-2 \
  libftdi1-dev \
  libhidapi-hidraw0 \
  libhidapi-dev \
  libudev-dev \
  zlib1g-dev \
  cmake \
  pkg-config \
  make \
  g++

Hint

libudev-dev is optional, may be replaced by eudev-dev or just not installed.

By default, (e)udev support is enabled (used to open a device by his /dev/xx node). If you don’t want this option, use:

-DENABLE_UDEV=OFF

By default, cmsisdap support is enabled (used for colorlight I5, I9). If you don’t want this option, use:

-DENABLE_CMSISDAP=OFF

Alternatively you can manually specify the location of libusb and libftdi1:

-DUSE_PKGCONFIG=OFF \
-DLIBUSB_LIBRARIES=<path_to_libusb> \
-DLIBFTDI_LIBRARIES=<path_to_libftdi> \
-DLIBFTDI_VERSION=<version> \
-DCMAKE_CXX_FLAGS="-I<libusb_include_dir> -I<libftdi1_include_dir>"

You may also need to add this if you see link errors between libusb and pthread:

-DLINK_CMAKE_THREADS=ON

By default, libgpiod support is enabled If you don’t want this option, use:

-DENABLE_LIBGPIOD=OFF

Additionaly you have to install libgpiod

To build the app:

git clone https://github.com/trabucayre/openFPGALoader
cd openFPGALoader
mkdir build
cd build
cmake .. # add -DBUILD_STATIC=ON to build a static version
         # add -DENABLE_UDEV=OFF to disable udev support and -d /dev/xxx
         # add -DENABLE_CMSISDAP=OFF to disable CMSIS DAP support
cmake --build .
# or
make -j$(nproc)

To install

$ sudo make install

The default install path is /usr/local, to change it, use -DCMAKE_INSTALL_PREFIX=myInstallDir in cmake invokation.

Udev rules

By default, users have no access to converters. A rule file (99-openfpgaloader.rules) for udev is provided at the root directory of this repository. These rules set access right and group (plugdev) when a converter is plugged.

sudo cp 99-openfpgaloader.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger # force udev to take new rule
sudo usermod -a $USER -G plugdev # add user to plugdev group

After that you need to unplug and replug your device.

Hint

usermod is used to add $USER as a member of plugdev group. However this update is not taken into account immediately: it’s required to logout from current session and login again. Check, by using id $USER, if plugdev is mentioned after groups=. An alternate (and temporary) solution is to use sudo - $USER to have your user seen as a member of plugdev group (works only for the current terminal).

macOS

openFPGALoader is available as a Homebrew formula:

brew install openfpgaloader

Alternatively, if you want to build it by hand:

brew install --only-dependencies openfpgaloader
brew install cmake pkg-config zlib gzip
git clone https://github.com/trabucayre/openFPGALoader
cd openFPGALoader
mkdir build
cd build
cmake ..
make -j

Windows

Common

Bitstreams for XC2C (coolrunner-II) needs to be remapped using .map shipped with ISE. ISE path is set at configure time using:

-DISE_PATH=/somewhere/Xilinx/ISE_VERS/

default: /opt/Xilinx/14.7.