# ecpprog A basic driver for FTDI based JTAG probes (FT232H, FT2232H, FT4232H), to program Lattice ECP5/Nexus FPGAs. ## Features: - SPI Flash programing via JTAG link to ECP5/NX part. - Validate ECP5/NX IDCODEs - Read/Decode ECP5/NX status register ## Prerequisites ``` sudo apt-get install libftdi-dev ``` ## Building ``` git clone https://github.com/gregdavill/ecpprog ecpprog cd ecpprog/ecpprog make sudo make install ``` ## Usage ### Verify JTAG connection ``` $ ecpprog -t init.. IDCODE: 0x41111043 (LFE5U-25) ECP5 Status Register: 0x00200000 flash ID: 0xEF 0x40 0x18 0x00 Bye. ``` ### Flash a bitstream ``` $ ecpprog /path/to/bitstream.bit init.. IDCODE: 0x41111043 (LFE5U-25) ECP5 Status Register: 0x00200000 reset.. flash ID: 0xEF 0x40 0x18 0x00 file size: 99302 erase 64kB sector at 0x000000.. erase 64kB sector at 0x010000.. programming.. 99302/99302 verify.. 99302/99302 VERIFY OK Bye. ``` ### Flash User/SoC code ``` $ ecpprog -o 1M firmware.bin init.. IDCODE: 0x41111043 (LFE5U-25) ECP5 Status Register: 0x00200000 reset.. flash ID: 0xEF 0x40 0x18 0x00 file size: 294312 erase 64kB sector at 0x100000.. erase 64kB sector at 0x110000.. erase 64kB sector at 0x120000.. erase 64kB sector at 0x130000.. erase 64kB sector at 0x140000.. programming.. 294312/294312 verify.. 294312/294312 VERIFY OK Bye. ```