FreeCalypso > hg > fc-usbser-tools
annotate doc/DUART28-EEPROM-config @ 81:8b0a01b19fb9
doc/FTDI-EEPROM-format: update for the discovery of
FTDI chips enforcing the requirement of using upper addresses for strings
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 26 Sep 2023 21:56:26 +0000 |
parents | dbaf239436cf |
children |
rev | line source |
---|---|
34
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 The EEPROM on the DUART28 adapter board has two valid configurations: DUART28C |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 and DUART28S. As of this writing the S configuration is the default shipping |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 one, but this situation may change in the future. The difference between the |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 two configs is in the USB VID:PID presented by the USB device, and this USB ID |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 difference has the following practical impact: |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 * The C configuration presents a custom USB ID and requires a custom patch to |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 the Linux kernel ftdi_sio driver in order to work - without this ftdi_sio |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 driver patch it won't work at all. But if you do go through the pain of |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 applying the needed patch to your Linux kernel ftdi_sio driver, the reward |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 is that you get not only the two Calypso UARTs, but also working boot control |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 outputs. |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 * The S configuration presents the default FT2232x USB ID and is therefore |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 supported out of the box by the standard Linux ftdi_sio driver without needing |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 any patches. However, the adapter's CTL1 and CTL2 outputs cannot be used in |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 this configuration (they will be bogusly asserted whenever Channel B ttyUSB |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 device is opened), and thus they must be left unconnected, and you don't get |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 to play with the remote boot control feature. |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 The physical hardware is identical between the two configurations, only the |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 EEPROM programming changes, thus end users need to be able to switch freely |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 between the two EEPROM configs as they wish. This article explains how to |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 program the EEPROM back and forth between the two configs. |
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 |
43
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
26 Using fc-duart28-conf utility |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
27 ============================= |
34
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 |
43
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
29 The present fc-usbser-tools package includes a specialized high-level utility |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
30 for examining and changing DUART28 adapter configuration. This utility has two |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
31 operation modes: |
34
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 |
43
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
33 fc-duart28-conf show -- check and show current configuration |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
34 fc-duart28-conf set C|S -- set new config by programming the EEPROM |
34
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 |
43
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
36 The show command is completely non-invasive: it looks through the system tree |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
37 of connected USB devices, looking for a DUART28 adapter (as identified not only |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
38 by USB VID:PID, but also by manufacturer and product ID strings), and if it |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
39 finds a DUART28 device, the tool reports its current configuration. |
34
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 |
43
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
41 The set command is invasive by necessity, as the fundamental identity of the |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
42 connected USB device is being changed: the tool commands the Linux kernel to |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
43 unbind the ftdi_sio driver from both interfaces (both ttyUSB devices disappear), |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
44 checks the current EEPROM configuration, and then reprograms it for the new |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
45 desired config. Once the operation completes, the DUART28 adapter needs to be |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
46 unplugged and replugged for the EEPROM change to take effect and for the |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
47 ftdi_sio driver to rebind. |
34
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 |
43
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
49 Unless you intentionally fool it by programming DUART28C or DUART28S EEPROM |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
50 config into some other FTDI device, fc-duart28-conf cannot hit a non-DUART28 |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
51 USB device by mistake: VID:PID, manufacturer ID string and product ID string |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
52 all have to match either DUART28C or DUART28S. If you have multiple DUART28 |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
53 adapters plugged in, the tool will hit the first one it finds - not a |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
54 recommended arrangement, but also one which is not expected to arise by |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
55 accident. |
34
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 |
43
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
57 Manual programming with ftee-gen2232c and fteeprom-prog |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
58 ======================================================= |
34
f5fbcf1ff032
doc: initial import from freecalypso-hwlab
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 |
43
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
60 In order to be safe in terms of not accidentally hitting some other FTDI-based |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
61 USB device, fc-duart28-conf requires the current state of the DUART28 adapter |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
62 to be either valid DUART28C or valid DUART28S. Under ordinary expected usage |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
63 this requirement is not a problem, but if you somehow manage to totally hose |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
64 your adapter's EEPROM, then fc-duart28-conf won't be able to recover it. If |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
65 you find yourself in the latter situation, see DUART28-EEPROM-manual article |
dbaf239436cf
doc/DUART28-EEPROM-config: update for fc-duart28-conf
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
66 for the older manual method which is always possible. |