comparison eeproms/icestick @ 165:7a4e8d23ab3a

eeproms/icestick: programming for Lattice Icestick
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 30 Jul 2023 18:10:51 +0000
parents
children
comparison
equal deleted inserted replaced
164:9336a48746d9 165:7a4e8d23ab3a
1 # Lattice iCEstick FPGA board features an FT2232H chip, with Channel A wired
2 # for MPSSE mode (access to SPI flash and FPGA configuration controls) and
3 # Channel B wired as a UART for user logic implemented in the FPGA. This
4 # FT2232H subsystem includes a 93C56 EEPROM, but boards are shipped with it
5 # blank, causing the FT2232H chip to take its default VID:PID.
6 #
7 # Having this default VID:PID causes undesirable behavior under Linux: a pair
8 # of ttyUSB devices is created upon plug-in, but the first of these two then
9 # disappears when the developer runs iceprog to manipulate FPGA programming,
10 # creating a gap in ttyUSB device numbers. And even if you are working with a
11 # stable logic design and not running iceprog, the first of the two created
12 # ttyUSB devices is still bogus, as that hardware channel is wired for MPSSE
13 # and not UART.
14 #
15 # In Falconian queendom, the solution to this problem is to program the EEPROM
16 # behind the FT2232H chip with our own image and set the USB ID to a code that
17 # tells the Linux kernel to create a ttyUSB device only for Channel B - the
18 # so-called "JTAG quirk". Falconia Partners LLC got a block of 8 PIDs
19 # officially allocated to us by FTDI, and since 2020-09 the mainline Linux
20 # kernel recognizes two of them as JTAG quirks. Use one of those two PIDs.
21
22 vid 0x0403 # FTDI
23 pid 0x7150 # Allocated by FTDI to Falconia, JTAG quirk in Linux
24
25 manuf Lattice
26 product ICE40HX1K-STICK-EVN