# HG changeset patch # User Mychaela Falconia # Date 1690740651 0 # Node ID 7a4e8d23ab3aeabda74326d5dd0fd66ebb4741a0 # Parent 9336a48746d955e838d21ac07d8a2f87d02789be eeproms/icestick: programming for Lattice Icestick diff -r 9336a48746d9 -r 7a4e8d23ab3a eeproms/icestick --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eeproms/icestick Sun Jul 30 18:10:51 2023 +0000 @@ -0,0 +1,26 @@ +# Lattice iCEstick FPGA board features an FT2232H chip, with Channel A wired +# for MPSSE mode (access to SPI flash and FPGA configuration controls) and +# Channel B wired as a UART for user logic implemented in the FPGA. This +# FT2232H subsystem includes a 93C56 EEPROM, but boards are shipped with it +# blank, causing the FT2232H chip to take its default VID:PID. +# +# Having this default VID:PID causes undesirable behavior under Linux: a pair +# of ttyUSB devices is created upon plug-in, but the first of these two then +# disappears when the developer runs iceprog to manipulate FPGA programming, +# creating a gap in ttyUSB device numbers. And even if you are working with a +# stable logic design and not running iceprog, the first of the two created +# ttyUSB devices is still bogus, as that hardware channel is wired for MPSSE +# and not UART. +# +# In Falconian queendom, the solution to this problem is to program the EEPROM +# behind the FT2232H chip with our own image and set the USB ID to a code that +# tells the Linux kernel to create a ttyUSB device only for Channel B - the +# so-called "JTAG quirk". Falconia Partners LLC got a block of 8 PIDs +# officially allocated to us by FTDI, and since 2020-09 the mainline Linux +# kernel recognizes two of them as JTAG quirks. Use one of those two PIDs. + +vid 0x0403 # FTDI +pid 0x7150 # Allocated by FTDI to Falconia, JTAG quirk in Linux + +manuf Lattice +product ICE40HX1K-STICK-EVN