glip  0.1.0-dev
The Generic Logic Interfacing Project
Cypress FX3 Firmware

The Cypress FX3 chip needs firmware for its configuration. We use the chip in the "Slave FIFO" mode which only forwards data between USB and a 32 bit wide FIFO interface.

Flashing the FX3 firmware

Currently, the firmware part on the Fx3 is a bit messy, as a Cypress vendor tool is required. The following steps flash the firmware.

1 mkdir fx3-install
2 cd fx3-install
3 tar -xf path/to/downloaded/FX3_SDK_Linux_v1.3.3.tar.gz
4 tar -xf cyusb_linux_1.0.4.tar.gz
5 cd cyusb_linux_1.0.4
6 sudo ./install.sh
1 LD_LIBRARY_PATH=/usr/local/lib cyusb_linux

Power cycle considerations

When powering (or resetting) the FX3 board the boot mode is determined by the PMODE pins. These pins are also connected to the FPGA board. Hence, the FX3 must either be disconnected from the FMC connector while being powered/resetted, or the FPGA must already be programmed with the PMODE pins set to 'z1z' (which is done in the demo projects).

With the PMODE jumper (J4) set, the FX3 will boot from USB and can be programmed. Without the jumper it will boot from the EEPROM.

Building the Firmware

The firmware that is used with the glip is based on the 'FX3 Slave FIFO Interface' example provided by Cypress. To build the firmware from source code follow these steps (under Linux):