annotate eeproms/jtag-unbuf @ 68:5cbde3c80c24

fteeprom-{erase,prog}: detach logic: change to detach by default As it turns out, detaching all ttyUSB interfaces of a multichannel device does not require outside knowledge of how many channels there are, as in our previous -d option design that is being removed here - instead we can read the bNumInterfaces constant from the USB device's config descriptor and thus know how many interfaces there are in total. Based on this discovery, change the design of fteeprom-{erase,prog} as follows: * remove -d option; * flip the default to where we detach all interfaces by default; * add -n option to NOT detach any interfaces.
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 13 Sep 2023 06:37:03 +0000
parents 434806360d91
children d46ea7a3fa0c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 # This EEPROM configuration is meant to be programmed into COTS FT2232D
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 # breakout boards used as unbuffered JTAG adapters. The custom USB VID:PID
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 # belongs to Falconia Partners LLC; we hereby allow the community to program
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 # this PID into generic FT2232D boards (not made by Falconia) as long as
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 # it is used for the present purpose with this full EEPROM configuration.
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 # The purpose of having a custom USB ID is to prevent the Linux kernel
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 # ftdi_sio driver from treating this FT2232D instance as a dual UART and
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 # creating a ttyUSB device for Channel A. If you wish to use Channel B
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 # as a UART (which is still available for that purpose), you will need to use
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 # a Linux kernel version with commit 6cf87e5edd9944e1d3b6efd966ea401effc304ee
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 # included, or apply that commit locally if your kernel version does not
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 # include it.
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 vid 0x0403 # FTDI
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 pid 0x7151 # Allocated by FTDI to Falconia Partners LLC
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 manuf FTDI
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 product Unbuffered JTAG adapter
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 # We program Channel A to come up in the 245 FIFO mode prior to being
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 # switched into MPSSE mode by OpenOCD, as opposed to the default 232 UART mode.
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 # If the FT2232D chip's ADBUS pins are connected directly to the JTAG target
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 # without a buffer (what we mean by an unbuffered JTAG adapter), the default
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 # 232 UART mode is NOT safe, as it will produce a fight on the ADBUS2 line
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 # between the UART RTS output and the target's TDO output. 245 FIFO mode is
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 # expected to be safer, as all 8 ADBUS lines will be inputs for as long as
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 # the ACBUS2 line is left unconnected and not driven by anything.
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 byte00 0x01 # Channel A: FIFO mode, D2XX driver
434806360d91 eeproms: subset import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 byte01 0x08 # Channel B: UART mode, VCP driver