FreeCalypso > hg > freecalypso-hwlab
annotate doc/USB-IDs @ 166:ef1b8b6c4aee
doc/USB-IDs: new paradigm
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 31 Jul 2023 00:00:13 +0000 |
parents | bac08ce19c08 |
children | df4bf4e06221 |
rev | line source |
---|---|
9
010982d9ab3b
doc/USB-IDs: explanatory note added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 USB PIDs 0x7150 through 0x7157 out of FTDI's VID 0x0403 have been officially |
010982d9ab3b
doc/USB-IDs: explanatory note added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 allocated by FTDI to Falconia Partners LLC for use in our company's hardware |
010982d9ab3b
doc/USB-IDs: explanatory note added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 products based on FTDI chips. The sole authority for further assignment and |
166
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
4 use of these USB IDs rests with Mychaela N. Falconia and no one else. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
5 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
6 Falconia-made vs off-the-shelf hardware |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
7 ======================================= |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
8 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
9 The common-sense ethical rules imposed by FTDI on the use of USB PIDs allocated |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
10 out of their VID 0x0403 stipulate that these USB IDs may be assigned only to |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
11 board-level products that use FTDI chips. However, in the case of USB PIDs |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
12 allocated by FTDI to Falconia Partners LLC, there is no specific requirement |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
13 that all board-level products using these ID codes must be physically |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
14 manufactured by our company: we can also program these ID codes into FTDI chip |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
15 EEPROMs on various off-the-shelf boards made by parties other than us, as long |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
16 as (1) those off-the-shelf boards feature genuine FTDI-made chips and (2) we as |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
17 in Falconia Partners LLC retain full control and sole deciding authority as to |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
18 which boards we program these ID codes into, when and how. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
19 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
20 As of 2023-07, we have only one board-level product with an FTDI chip that was |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
21 physically manufactured by us: our FreeCalypso DUART28 adapter, produced in |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
22 year 2020. That board has two supported EEPROM configurations, switchable by |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
23 end users, one of which uses an FTDI-Falconia USB ID code. Aside from this |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
24 Falconia-made DUART28, we've been programming FTDI-Falconia USB ID codes into |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
25 some off-the-shelf boards with FTDI chips: |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
26 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
27 * In earlier years we made heavy use of generic FT2232D breakout boards made by |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
28 PLDkit OU in Estonia. We are not sure if that original company still makes |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
29 them or not, but the person behind that company name did eventually sell us |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
30 their Gerber files, and we have published them here: |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
31 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
32 ftp://ftp.freecalypso.org/pub/USB/FTDI/ |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
33 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
34 Given that we have a stash of FT2232D chips and given that we still have use |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
35 cases for these generic breakout boards, we have a tentative plan to produce |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
36 our own Falconia-branded version of the same adapter/breakout board. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
37 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
38 * We are now starting to play with iCE40 FPGA designs using a Lattice iCEstick |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
39 board, and we quickly discovered that instead of programming their FT2232H |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
40 EEPROM with a distinguishing VID:PID code, Lattice left that EEPROM blank. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
41 To fix the problem of Linux kernel creating a bogus ttyUSB device for FT2232H |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
42 Channel A which subsequently disappears when the developer-operator runs |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
43 iceprog, we program the EEPROM ourselves, using one of our FTDI-Falconia PIDs |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
44 that is recognized by mainline Linux (since 2020-09) as a "JTAG quirk" device, |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
45 binding a ttyUSB device only to Channel B. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
46 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
47 Specific hw product vs particular desired treatment from Linux kernel |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
48 ===================================================================== |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
49 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
50 The original intent being USB VID:PID codes was to assign a different ID code |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
51 to each different physical hardware product. However, when it comes to |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
52 assigning different USB ID codes to various FTDI-based boards where the actual |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
53 chip always stays the same, there is only one reason to program any custom ID |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
54 codes at all: to elicit special treatment from the ftdi_sio driver in the Linux |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
55 kernel. If the EEPROM is omitted, left blank or programmed with the chip- |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
56 default VID:PID code, the ftdi_sio driver will bind a ttyUSB device to every |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
57 channel of a multichannel FT2232x or FT4232H chip; the only reason why anyone |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
58 would wish to program a non-standard USB ID code and (in all cases but one) go |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
59 through the pain of getting that code added to Linux is if this default ftdi_sio |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
60 driver behaviour is undesirable and some different special handling is desired |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
61 or required: |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
62 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
63 * Some FTDI-based designs support non-UART functions only and should be ignored |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
64 altogether by the ftdi_sio driver. In these cases, program a USB ID code |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
65 that is not known at all to this Linux kernel driver. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
66 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
67 * In many designs FT2232x Channel A is used for MPSSE (JTAG or SPI), while |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
68 Channel B is used as a UART. In this case the desire is to tell the ftdi_sio |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
69 driver to bind a ttyUSB device only to Channel B, and there is an ever-growing |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
70 list of USB ID codes (typically one or more from each board maker who ran into |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
71 this issue) that are recognized by the ftdi_sio driver as "JTAG quirk" |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
72 devices. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
73 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
74 * In yet other cases some other special quirk other than "skip Channel A for |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
75 JTAG" is desired from the ftdi_sio driver. We have one such use case in |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
76 FreeCalypso: we have dual-UART configurations (FT2232x chip, both channels |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
77 used as UARTs and need ttyUSB devices) in which the ttyUSB device for |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
78 Channel A needs to be fully standard, but the one for Channel B is modified |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
79 with a special quirk - see our Linux-DTR-RTS-flaw article. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
80 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
81 Specific FTDI-Falconia PID assignments |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
82 ====================================== |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
83 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
84 Our original plan was to assign specific ID codes out of our allocated range to |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
85 specific hw products of our own design and make, following the classic model |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
86 for USB VID:PID assignments. However, upon gaining some years of real-life |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
87 experience, we have switched to a Linux-centric model: we assign USB ID codes |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
88 based not on what physical hw it is, but on what kind of special treatment we |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
89 seek from the ftdi_sio driver in Linux. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
90 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
91 Furthermore and in an unconventional stance, we (Falconia family, doing business |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
92 as Falconia Partners LLC) explicitly allow any member of FOSS & OSHW community, |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
93 without any need to communicate with us, to program some of our FTDI-Falconia |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
94 USB PIDs into their own FTDI-based boards, under one essential condition - any |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
95 non-Falconia party who wishes to use one of our FTDI-Falconia USB PIDs may do |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
96 so if and only if: |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
97 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
98 * The specific PID code you wish to reuse is explicitly listed in the present |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
99 document as being eligible for third-party reuse; |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
100 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
101 * The manner in which you use that PID code is exactly as prescribed in this |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
102 document, not any other way. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
103 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
104 VID 0x0403, PIDs 0x7150 and 0x7151 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
105 ================================== |
9
010982d9ab3b
doc/USB-IDs: explanatory note added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 |
166
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
107 USB ID codes 0403:7150 and 0403:7151 are recognized by the ftdi_sio driver in |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
108 mainline Linux (since 2020-09) as "JTAG quirk" devices: the driver binds only |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
109 to Channel B and creates only one ttyUSB device. We (Falconia) grant permission |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
110 to anyone in FOSS & OSHW community to reuse either of these two ID codes in |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
111 their own FTDI-based board designs, or in their own personal programming of ID |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
112 EEPROMs on off-the-shelf FTDI-based boards, provided that: |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
113 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
114 * The FTDI chip is either FT2232C/D/L or FT2232H, genuine FTDI; |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
115 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
116 * Your intent with respect to handling from the ftdi_sio driver in Linux (or |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
117 its equivalent in other operating systems) is the same as ours: create a |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
118 ttyUSB device for Channel B only, while Channel A remains unbound. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
119 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
120 Choice between 0x7150 and 0x7151 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
121 -------------------------------- |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
122 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
123 Our original intent was to use PID 0x7150 for a planned buffered JTAG adapter |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
124 which we ended up never actually making, while 0x7151 was allocated for |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
125 programming into generic FT2232D breakout boards for an unbuffered JTAG adapter |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
126 configuration. As of 2023-07, that previously planned distinction is now |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
127 officially revoked: both PIDs may be used for any FTDI-based board-level gadget |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
128 that needs "JTAG quirk" handling from the ftdi_sio driver. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
129 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
130 When to comes to our own (Falconia/FreeCalypso) usage, our current plan as of |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
131 2023-07 is to use PID 0x7150 for FPGA boards that use FT2232x Channel A for |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
132 FPGA configuration and/or FPGA SPI flash programming, and use PID 0x7151 for |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
133 all JTAG adapters, buffered or unbuffered. However, other FOSS & OSHW community |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
134 members may use either PID, as long as the requirements listed above are met. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
135 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
136 USB ID 0x0403:0x7152 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
137 ==================== |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
138 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
139 For this FTDI-Falconia PID *NO* outside use permission is currently granted: we |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
140 as in Falconia family, doing business as Falconia Partners LLC, reserve this |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
141 FTDI-allocated PID for use in our own products only. We use this USB ID on |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
142 multiple hardware products, all of which meet the following criteria: |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
143 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
144 * The FTDI chip is two-channel FT2232x; |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
145 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
146 * Both channels are wired as UARTs and actually used as such, thus needing two |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
147 ttyUSB devices in Linux; |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
148 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
149 * Channel A is a fully standard UART, no special quirks; |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
150 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
151 * The ttyUSB device for Channel B must be given a special quirk: automatic |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
152 assertion of DTR & RTS upon device open MUST be suppressed, while TIOCMBIS |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
153 and TIOCMBIC ioctls remain available for explicit user control of these two |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
154 signals. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
155 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
156 The original user of this USB ID code is the 'C' configuration of our DUART28 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
157 hardware adapter (thus forming DUART28C); our current plan is to reuse the same |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
158 wiring arrangement and the same USB ID code on our upcoming FC Venus board. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
159 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
160 USB ID 0x0403:0x7153 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
161 ==================== |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
162 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
163 This USB ID code is explicitly reserved for community use - specifically, for |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
164 anyone who needs the same suppression of DTR & RTS auto-assertion which we've |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
165 implemented for 0x0403:0x7152, but needs it on a single-channel FTDI device, or |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
166 on all channels of a multichannel FTDI chip. We (Falconia) grant permission to |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
167 anyone in FOSS & OSHW community to use this USB ID code in their own FTDI-based |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
168 board designs, or in their own personal programming of ID EEPROMs on off-the- |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
169 shelf FTDI-based boards, provided that: |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
170 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
171 * The chip is genuine FTDI; |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
172 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
173 * Your intent with respect to handling from the ftdi_sio driver in Linux (or |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
174 its equivalent in other operating systems) is the same as ours: intentionally |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
175 make this particular ttyUSB device non-POSIX-compliant by NOT automatically |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
176 raising DTR and RTS on open, instead leaving all control over these two |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
177 signals up to userspace via explicit TIOCMBIS and TIOCMBIC ioctls. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
178 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
179 VID 0x0403, PIDs 0x7154 through 0x7156 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
180 ====================================== |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
181 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
182 These 3 FTDI-Falconia PIDs are currently unassigned. NO permission is granted |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
183 to any outside parties to use any of these unassigned PIDs. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
184 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
185 USB ID 0x0403:0x7157 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
186 ==================== |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
187 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
188 This USB ID code is reserved for FTDI-based board-level gadgets that are |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
189 entirely non-UART and should be skipped altogether by the ftdi_sio driver. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
190 Examples include, but are not limited to single-channel FT232H used for JTAG or |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
191 other MPSSE applications, FT2232H with both channels wired for MPSSE, or FT2232x |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
192 in MCU host bus emulation mode. We (Falconia) grant permission to anyone in |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
193 FOSS & OSHW community to use this USB ID code in their own FTDI-based board |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
194 designs, or in their own personal programming of ID EEPROMs on off-the-shelf |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
195 FTDI-based boards, provided that: |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
196 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
197 * The chip is genuine FTDI; |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
198 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
199 * Your intent with respect to handling from the ftdi_sio driver in Linux (or |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
200 its equivalent in other operating systems) is the same as ours: have the |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
201 driver ignore this FTDI-based USB device altogether and NOT bind to it. |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
202 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
203 Textual ID strings |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
204 ================== |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
205 |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
206 The configuration EEPROM on FTDI chips (internal on FT232R, external on most |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
207 others) allows the higher-level integrator to set not only VID:PID codes, but |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
208 also textual ID strings for manufacturer and product. We (Falconia/FreeCalypso) |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
209 always set meaningful textual ID strings in all of our FTDI EEPROM programming, |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
210 and we encourage others to do likewise. Furthermore, because we have switched |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
211 to using VID:PID codes to indicate what handling we seek from the ftdi_sio |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
212 driver in the Linux kernel, as opposed to identifying more specific hw products |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
213 or designs, it is no longer possible to locate specific device types by looking |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
214 at VID:PID alone. For this reason, our new philosophy is that userspace |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
215 applications that need to locate a specific type of non-UART FTDI device should |
ef1b8b6c4aee
doc/USB-IDs: new paradigm
Mychaela Falconia <falcon@freecalypso.org>
parents:
71
diff
changeset
|
216 match not only by VID:PID, but also by looking for specific product ID strings. |