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