Update README
[ecpprog.git] / README.md
1 # ecpprog
2
3 A basic driver for FTDI based JTAG probes (FT232H, FT2232H, FT4232H), to program Lattice ECP5/Nexus FPGAs.
4
5 ## Features:
6 - SPI Flash programing via JTAG link to ECP5/NX part.
7 - Validate ECP5/NX IDCODEs
8 - Read/Decode ECP5/NX status register
9
10 ## Prerequisites
11
12 ```
13 sudo apt-get install libftdi-dev
14 ```
15
16 ## Building
17
18 ```
19 git clone https://github.com/gregdavill/ecpprog ecpprog
20 cd ecpprog/ecpprog
21 make
22 sudo make install
23 ```
24
25 ## Usage
26
27 ### Verify JTAG connection
28 ```
29 $ ecpprog -t
30 init..
31 IDCODE: 0x41111043 (LFE5U-25)
32 ECP5 Status Register: 0x00200000
33 flash ID: 0xEF 0x40 0x18 0x00
34 Bye.
35 ```
36
37 ### Flash a bitstream
38 ```
39 $ ecpprog /path/to/bitstream.bit
40 init..
41 IDCODE: 0x41111043 (LFE5U-25)
42 ECP5 Status Register: 0x00200000
43 reset..
44 flash ID: 0xEF 0x40 0x18 0x00
45 file size: 99302
46 erase 64kB sector at 0x000000..
47 erase 64kB sector at 0x010000..
48 programming.. 99302/99302
49 verify.. 99302/99302 VERIFY OK
50 Bye.
51 ```
52
53 ### Flash User/SoC code
54 ```
55 $ ecpprog -o 1M firmware.bin
56 init..
57 IDCODE: 0x41111043 (LFE5U-25)
58 ECP5 Status Register: 0x00200000
59 reset..
60 flash ID: 0xEF 0x40 0x18 0x00
61 file size: 294312
62 erase 64kB sector at 0x100000..
63 erase 64kB sector at 0x110000..
64 erase 64kB sector at 0x120000..
65 erase 64kB sector at 0x130000..
66 erase 64kB sector at 0x140000..
67 programming.. 294312/294312
68 verify.. 294312/294312 VERIFY OK
69 Bye.
70
71 ```