diff doc/DUART28-EEPROM-config @ 78:f0b0970fbe2e

doc/DUART28-EEPROM-config article written
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 17 Sep 2020 04:18:46 +0000
parents
children df4bf4e06221
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/DUART28-EEPROM-config	Thu Sep 17 04:18:46 2020 +0000
@@ -0,0 +1,70 @@
+The EEPROM on the DUART28 adapter board has two valid configurations: DUART28C
+and DUART28S.  As of this writing the S configuration is the default shipping
+one, but this situation may change in the future.  The difference between the
+two configs is in the USB VID:PID presented by the USB device, and this USB ID
+difference has the following practical impact:
+
+* The C configuration presents a custom USB ID and requires a custom patch to
+  the Linux kernel ftdi_sio driver in order to work - without this ftdi_sio
+  driver patch it won't work at all.  But if you do go through the pain of
+  applying the needed patch to your Linux kernel ftdi_sio driver, the reward
+  is that you get not only the two Calypso UARTs, but also working boot control
+  outputs.
+
+* The S configuration presents the default FT2232x USB ID and is therefore
+  supported out of the box by the standard Linux ftdi_sio driver without needing
+  any patches.  However, the adapter's CTL1 and CTL2 outputs cannot be used in
+  this configuration (they will be bogusly asserted whenever Channel B ttyUSB
+  device is opened), and thus they must be left unconnected, and you don't get
+  to play with the remote boot control feature.
+
+The physical hardware is identical between the two configurations, only the
+EEPROM programming changes, thus end users need to be able to switch freely
+between the two EEPROM configs as they wish.  This article explains how to
+program the EEPROM back and forth between the two configs.
+
+Determining your current DUART28 config
+=======================================
+
+Connect the USB cable between your DUART28 board and your Linux host, and
+observe dmesg output.  If your DUART28 board is in the C configuration, it will
+present as USB ID 0403:7152, and if it is in the S config, it will present as
+USB ID 0403:6010.  You can also see these USB IDs with lsusb.  The product ID
+string is also programmed as "DUART28C" or "DUART28S".
+
+Converting from DUART28S to DUART28C
+====================================
+
+If your DUART28 board is currently in the S config, its USB ID will be
+0403:6010, which is the default ID for FTDI's two-channel FT2232x family.
+Because it is the standard default, there are plenty of other gadgets using the
+same ID - thus you need to ensure that you have no other USB devices with the
+same ID connected to your system during the reprogramming operation.  Run lsusb
+and ensure that you see only one USB device with ID 0403:6010.  Ensure that this
+one device really is your DUART28 board: unplug that USB cable and make sure
+that the device disappears, plug it back in and make sure that it reappears.
+
+One you have confirmed that you won't inadvertently hit some other FT2232x
+device, execute the actual programming command as follows (from the top
+directory of this code repository):
+
+ftee-gen2232c eeproms/duart28c $Serial | fteeprom-prog i:0x0403:0x6010
+
+(See FTDI-EEPROM-tools article for other ways to specify the target device to
+ fteeprom-prog.)
+
+Replace the $Serial metavariable with the 3-digit serial number of your DUART28
+adapter board as it appears on the factory serial number sticker.
+
+After this operation completes successfully, unplug and replug the USB cable
+between the DUART28 board and your host - the adapter should now show up with
+USB ID 0403:7152.
+
+Converting from DUART28C to DUART28S
+====================================
+
+If your DUART28 board is currently in the C config, its USB ID will be
+0403:7152, which is a private ID that belongs to us and should not be used by
+other parties.  The reverse conversion command is as follows:
+
+ftee-gen2232c eeproms/duart28s $Serial | fteeprom-prog i:0x0403:0x7152