The Nexys2 and Nexys3 board feature a Cypress FX2 USB interface. It allows to configure the FPGA and to transfer between FPGA and a PC. The retro project uses a custom firmware in the FX2, this writeup describes the installation of tools, environment setup and generation of the FX2 firmware.
the download contains pre-build firmware images for the Cypress FX2 USB Interface. Re-building them requires
- Small Device C Compiler -> package:
sdcc
sdcc-ucsim
- for FX2 firmware download and jtag programming over USB one needs
- fxload -> package:
fxload
- urjtag -> package:
urjtag
for Ubuntu 12.04 or 14.04, is broken in Ubuntu 16.04. See INSTALL_urjtag.md for installation from sources !!
- fxload -> package:
The default USB VID and PID is defined by two environment variables. For internal lab use one can use
export RETRO_FX2_VID=16c0
export RETRO_FX2_PID=03ef
Carefully read the disclaimer about usage of USB VID/PID numbers
in the file README_USB-VID-PID.md. You'll be responsible for a
misuse of the defaults provided with the project sources.
Usage of this VID/PID in any commercial product is forbidden.
For using the Cypress FX2 USB interface on Digilent Nexys2 and Nexys3
boards udev
rules must be set up to allow user level access to
these devices. A set of rules is provided under
$RETROBASE/tools/fx2/sys
Follow the README.md file in this directory.
Notes:
- the provided udev rules use the VID/PID for internal lab use as described above. If a different VID/PID is used the file must be modified.
- your user account must be in group
plugdev
(should be the default).
The download includes pre-build firmware images for the Cypress FX2 USB interface used on the Digilent Nexys2 and Nexys3 boards. These firmware images are under
$RETROBASE/tools/fx2/bin
To re-build them, e.g. because a different USB VID/PID is to be used
cd $RETROBASE/tools/fx2/src
make clean
make
make install
Note: The default build assumes that sdcc with a version 3.x is installed. In case sdcc 2.x is installed use
make SDCC29=1
instead. See also tools/fx2/src/README.md.
Please read README_USB-VID-PID.md carefully to understand the usage of USB VID and PID.