changeset 48:af70c59654ed

EEPROM dumps moved into eeproms/dumps and properly annotated
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 22 Apr 2019 21:36:48 +0000
parents 2c092eb1621b
children b2e9a6f3c833
files eeproms/dumps/FT232R-notes eeproms/dumps/FT232R-specimen1 eeproms/dumps/FT232R-specimen2 eeproms/dumps/flyswatter1 eeproms/dumps/om-debug-board-v3 eeproms/dumps/usb-com232-plus2 eeproms/flyswatter1 eeproms/ft232r-default-prog eeproms/ft232r-default-prog2 eeproms/om-debug-board-v3 eeproms/usb-com232-plus2
diffstat 11 files changed, 132 insertions(+), 64 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eeproms/dumps/FT232R-notes	Mon Apr 22 21:36:48 2019 +0000
@@ -0,0 +1,31 @@
+Unlike FT2232x devices with external EEPROMs, an FT232R device is not expected
+to ever have a blank EEPROM in normal usage: these chips have their EEPROM
+built in, and FTDI ships them with this internal EEPROM already programmed.
+It may be possible to create a "blank" EEPROM by explicitly programming 0xFFFF
+into every word, but it would be an unnatural scenario, and I (Mother Mychaela)
+do not currently have an FT232R device on which I can experiment: I don't have
+an FT232R device which is not valuable and which is not already bricked.
+
+I have read out the EEPROM content from the two specimen I did have available:
+FT232R-specimen1 came from a no-name ebay-sourced FT232RL breakout board;
+FT232R-specimen2 came from George UberWaves' "FTDI Professional" USB-serial
+cable with OsmocomBB branding.  Specimen 2 is probably a genuine FT232RL chip
+(I remember George telling me that he went out of his way to procure genuine
+FTDI chips after having been burned by FTDI's Winblows drivers screwing around
+with close-but-not-perfect clones), but specimen 1 is suspected to be one of
+those less-than-perfect clones: the serial number string was programmed to
+"00000000", whereas FTDI supposedly program true per-unit serial numbers.
+
+The only diffs between FT232R-specimen1 and FT232R-specimen2 are the just-
+mentioned serial number string (specimen 2 has it set to "A9031HG6", which looks
+like a real per-unit serial number), two non-understood "garbage" words after
+the last string, and of course the checksum.
+
+The unit that was specimen 1 (the suspected fake) is now bricked: when I tried
+to program my own EEPROM config generated with ftee-gen232r, the resulting
+EEPROM content became a bitwise AND between the previous image and the new one,
+as if the "EEPROM" is not really an erasable memory, but one of OTP kind where
+ones can be turned into zeros, but not the other way around.  I am not willing
+to experiment on the specimen 2 chip because it is part of a valuable cable
+assembly which I don't want to risk bricking, so I will need to order more
+sacrificial hardware and wait for it to arrive before I can experiment further.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eeproms/dumps/FT232R-specimen1	Mon Apr 22 21:36:48 2019 +0000
@@ -0,0 +1,8 @@
+00: 4000 0403 6001 0000 2DA0 0008 0000 0A98
+10: 20A2 12C2 1023 0005 030A 0046 0054 0044
+20: 0049 0320 0046 0054 0032 0033 0032 0052
+30: 0020 0055 0053 0042 0020 0055 0041 0052
+40: 0054 0312 0030 0030 0030 0030 0030 0030
+50: 0030 0030 0000 0001 0000 0000 0000 0000
+60: 0000 0000 0000 0000 0000 0000 0000 0000
+70: 0000 0000 0000 0000 0000 0000 0000 38AE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eeproms/dumps/FT232R-specimen2	Mon Apr 22 21:36:48 2019 +0000
@@ -0,0 +1,8 @@
+00: 4000 0403 6001 0000 2DA0 0008 0000 0A98
+10: 20A2 12C2 1023 0005 030A 0046 0054 0044
+20: 0049 0320 0046 0054 0032 0033 0032 0052
+30: 0020 0055 0053 0042 0020 0055 0041 0052
+40: 0054 0312 0041 0039 0030 0033 0031 0048
+50: 0047 0036 B74D 90B9 0000 0000 0000 0000
+60: 0000 0000 0000 0000 0000 0000 0000 0000
+70: 0000 0000 0000 0000 0000 0000 0000 269F
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eeproms/dumps/flyswatter1	Mon Apr 22 21:36:48 2019 +0000
@@ -0,0 +1,30 @@
+# The original Flyswatter (aka Flyswatter1) by TinCanTools is an
+# FT2232D-based buffered JTAG + UART adapter.  It has a 93C56 EEPROM
+# in which a custom set of textual ID strings have been programmed,
+# but the USB ID is still 0403:6010 (FT2232x default and signifying
+# a dual UART), causing the bogosity whereby the Linux kernel creates
+# two ttyUSB devices for both FT2232D channels, for the first out of
+# that pair to subsequently disappear when OpenOCD runs and starts
+# accessing Channel A for MPSSE JTAG via libusb.
+#
+# What follows is a dump of the EEPROM made from the FS1 board I managed
+# to score on ebay; given that the serial number string is set to "FS000000",
+# I am going to assume that the factory programming was the same on all
+# units, without unique serial numbers.
+
+00: 0000 0403 6010 0500 6480 0008 0200 1896
+10: 16AE 12C4 0056 0000 0000 0000 0000 0000
+20: 0000 0000 0000 0000 0000 0000 0000 0000
+30: 0000 0000 0000 0000 0000 0000 0000 0000
+40: 0000 0000 0000 0000 0000 0000 0000 0000
+50: 0000 0000 0000 0000 0000 0000 0000 0000
+60: 0000 0000 0000 0000 0000 0000 0000 0000
+70: 0000 0000 0000 0000 0000 0000 0000 0000
+80: 0000 0000 0000 0000 0000 0000 0000 0000
+90: 0000 0000 0000 0318 0054 0069 006E 0043
+A0: 0061 006E 0054 006F 006F 006C 0073 0316
+B0: 0046 006C 0079 0073 0077 0061 0074 0074
+C0: 0065 0072 0312 0046 0053 0030 0030 0030
+D0: 0030 0030 0030 0302 0000 0000 0000 0000
+E0: 0000 0000 0000 0000 0000 0000 0000 0000
+F0: 0000 0000 0000 0000 0000 0000 0000 8317
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eeproms/dumps/om-debug-board-v3	Mon Apr 22 21:36:48 2019 +0000
@@ -0,0 +1,31 @@
+# Openmoko's custom debug board for their Neo1973 and Neo FreeRunner
+# smartphones is an important piece of history; to the best of my
+# (Mychaela's) understanding, it was one of the first FT2232x devices
+# to formalize the idea of having the kernel create only one ttyUSB
+# device for Channel B (which is a standard UART), leaving Channel A
+# untouched for userspace applications like OpenOCD.  The feat is
+# accomplished by giving the device a custom USB ID (the one used by
+# OM for this debug board is 1457:5118), and teaching the ftdi_sio
+# driver in the Linux kernel to create only one ttyUSB device for
+# such USD IDs.
+#
+# What follows is a dump of the EEPROM made from the debug board which
+# I got with my FreeRunner back in 2011; it appears to have a per-unit
+# serial number string.  The FTDI chip is FT2232D and the EEPROM is a 93C56.
+
+00: 0802 1457 5118 0500 3280 0000 0200 1296
+10: 30A8 12D8 0056 0000 0000 0000 0000 0000
+20: 0000 0000 0000 0000 0000 0000 0000 0000
+30: 0000 0000 0000 0000 0000 0000 0000 0000
+40: 0000 0000 0000 0000 0000 0000 0000 0000
+50: 0000 0000 0000 0000 0000 0000 0000 0000
+60: 0000 0000 0000 0000 0000 0000 0000 0000
+70: 0000 0000 0000 0000 0000 0000 0000 0000
+80: 0000 0000 0000 0000 0000 0000 0000 0000
+90: 0000 0000 0000 0312 004F 0070 0065 006E
+A0: 004D 006F 006B 006F 0330 0044 0065 0062
+B0: 0075 0067 0020 0042 006F 0061 0072 0064
+C0: 0020 0066 006F 0072 0020 004E 0065 006F
+D0: 0031 0039 0037 0033 0312 0046 0054 0053
+E0: 0048 0044 004E 0032 004B 0000 0001 0000
+F0: 0000 0000 0000 0000 0000 0000 0000 773F
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eeproms/dumps/usb-com232-plus2	Mon Apr 22 21:36:48 2019 +0000
@@ -0,0 +1,24 @@
+# USB-COM232-PLUS2 is a board made by FTDI based on their FT2232H chip.
+# It is an adapter going from USB to two physical RS-232 ports on DE9M
+# connectors, thus it is a vanilla dual-UART device with the standard
+# 0403:6010 USB ID, but it still has an EEPROM (93C56) in which custom
+# textual ID strings have been programmed: the product string is
+# "USB-COM232 Plus2" instead of chip-default "Dual RS232-HS", and there
+# is a serial number string.
+
+00: 0808 0403 6010 0700 6480 0008 0000 0A9A
+10: 22A4 12C6 0000 0000 0056 0000 0000 0000
+20: 0000 0000 0000 0000 0000 0000 0000 0000
+30: 0000 0000 0000 0000 0000 0000 0000 0000
+40: 0000 0000 0000 0000 0000 0000 0000 0000
+50: 0000 0000 0000 0000 0000 0000 0000 0000
+60: 0000 0000 0000 0000 0000 0000 0000 0000
+70: 0000 0000 0000 0000 0000 0000 0000 0000
+80: 0000 0000 0000 0000 0000 0000 0000 0000
+90: 0000 0000 0000 0000 0000 030A 0046 0054
+A0: 0044 0049 0322 0055 0053 0042 002D 0043
+B0: 004F 004D 0032 0033 0032 0020 0050 006C
+C0: 0075 0073 0032 0312 0046 0054 0057 0055
+D0: 004C 0052 0054 004D 0302 0001 0000 0000
+E0: 0000 0000 0000 0000 0000 0000 0000 0000
+F0: 0000 0000 0000 0000 0000 0000 0000 BE30
--- a/eeproms/flyswatter1	Mon Apr 22 20:10:05 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-00: 0000 0403 6010 0500 6480 0008 0200 1896
-10: 16AE 12C4 0056 0000 0000 0000 0000 0000
-20: 0000 0000 0000 0000 0000 0000 0000 0000
-30: 0000 0000 0000 0000 0000 0000 0000 0000
-40: 0000 0000 0000 0000 0000 0000 0000 0000
-50: 0000 0000 0000 0000 0000 0000 0000 0000
-60: 0000 0000 0000 0000 0000 0000 0000 0000
-70: 0000 0000 0000 0000 0000 0000 0000 0000
-80: 0000 0000 0000 0000 0000 0000 0000 0000
-90: 0000 0000 0000 0318 0054 0069 006E 0043
-A0: 0061 006E 0054 006F 006F 006C 0073 0316
-B0: 0046 006C 0079 0073 0077 0061 0074 0074
-C0: 0065 0072 0312 0046 0053 0030 0030 0030
-D0: 0030 0030 0030 0302 0000 0000 0000 0000
-E0: 0000 0000 0000 0000 0000 0000 0000 0000
-F0: 0000 0000 0000 0000 0000 0000 0000 8317
--- a/eeproms/ft232r-default-prog	Mon Apr 22 20:10:05 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-00: 4000 0403 6001 0000 2DA0 0008 0000 0A98
-10: 20A2 12C2 1023 0005 030A 0046 0054 0044
-20: 0049 0320 0046 0054 0032 0033 0032 0052
-30: 0020 0055 0053 0042 0020 0055 0041 0052
-40: 0054 0312 0030 0030 0030 0030 0030 0030
-50: 0030 0030 0000 0001 0000 0000 0000 0000
-60: 0000 0000 0000 0000 0000 0000 0000 0000
-70: 0000 0000 0000 0000 0000 0000 0000 38AE
--- a/eeproms/ft232r-default-prog2	Mon Apr 22 20:10:05 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-00: 4000 0403 6001 0000 2DA0 0008 0000 0A98
-10: 20A2 12C2 1023 0005 030A 0046 0054 0044
-20: 0049 0320 0046 0054 0032 0033 0032 0052
-30: 0020 0055 0053 0042 0020 0055 0041 0052
-40: 0054 0312 0041 0039 0030 0033 0031 0048
-50: 0047 0036 B74D 90B9 0000 0000 0000 0000
-60: 0000 0000 0000 0000 0000 0000 0000 0000
-70: 0000 0000 0000 0000 0000 0000 0000 269F
--- a/eeproms/om-debug-board-v3	Mon Apr 22 20:10:05 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-00: 0802 1457 5118 0500 3280 0000 0200 1296
-10: 30A8 12D8 0056 0000 0000 0000 0000 0000
-20: 0000 0000 0000 0000 0000 0000 0000 0000
-30: 0000 0000 0000 0000 0000 0000 0000 0000
-40: 0000 0000 0000 0000 0000 0000 0000 0000
-50: 0000 0000 0000 0000 0000 0000 0000 0000
-60: 0000 0000 0000 0000 0000 0000 0000 0000
-70: 0000 0000 0000 0000 0000 0000 0000 0000
-80: 0000 0000 0000 0000 0000 0000 0000 0000
-90: 0000 0000 0000 0312 004F 0070 0065 006E
-A0: 004D 006F 006B 006F 0330 0044 0065 0062
-B0: 0075 0067 0020 0042 006F 0061 0072 0064
-C0: 0020 0066 006F 0072 0020 004E 0065 006F
-D0: 0031 0039 0037 0033 0312 0046 0054 0053
-E0: 0048 0044 004E 0032 004B 0000 0001 0000
-F0: 0000 0000 0000 0000 0000 0000 0000 773F
--- a/eeproms/usb-com232-plus2	Mon Apr 22 20:10:05 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-00: 0808 0403 6010 0700 6480 0008 0000 0A9A
-10: 22A4 12C6 0000 0000 0056 0000 0000 0000
-20: 0000 0000 0000 0000 0000 0000 0000 0000
-30: 0000 0000 0000 0000 0000 0000 0000 0000
-40: 0000 0000 0000 0000 0000 0000 0000 0000
-50: 0000 0000 0000 0000 0000 0000 0000 0000
-60: 0000 0000 0000 0000 0000 0000 0000 0000
-70: 0000 0000 0000 0000 0000 0000 0000 0000
-80: 0000 0000 0000 0000 0000 0000 0000 0000
-90: 0000 0000 0000 0000 0000 030A 0046 0054
-A0: 0044 0049 0322 0055 0053 0042 002D 0043
-B0: 004F 004D 0032 0033 0032 0020 0050 006C
-C0: 0075 0073 0032 0312 0046 0054 0057 0055
-D0: 004C 0052 0054 004D 0302 0001 0000 0000
-E0: 0000 0000 0000 0000 0000 0000 0000 0000
-F0: 0000 0000 0000 0000 0000 0000 0000 BE30