# HG changeset patch # User Mychaela Falconia # Date 1555969008 0 # Node ID af70c59654ed34f0954360d79da78e9d88612de9 # Parent 2c092eb1621b57bbfe308559b7de68756bda33e1 EEPROM dumps moved into eeproms/dumps and properly annotated diff -r 2c092eb1621b -r af70c59654ed eeproms/dumps/FT232R-notes --- /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. diff -r 2c092eb1621b -r af70c59654ed eeproms/dumps/FT232R-specimen1 --- /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 diff -r 2c092eb1621b -r af70c59654ed eeproms/dumps/FT232R-specimen2 --- /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 diff -r 2c092eb1621b -r af70c59654ed eeproms/dumps/flyswatter1 --- /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 diff -r 2c092eb1621b -r af70c59654ed eeproms/dumps/om-debug-board-v3 --- /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 diff -r 2c092eb1621b -r af70c59654ed eeproms/dumps/usb-com232-plus2 --- /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 diff -r 2c092eb1621b -r af70c59654ed eeproms/flyswatter1 --- 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 diff -r 2c092eb1621b -r af70c59654ed eeproms/ft232r-default-prog --- 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 diff -r 2c092eb1621b -r af70c59654ed eeproms/ft232r-default-prog2 --- 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 diff -r 2c092eb1621b -r af70c59654ed eeproms/om-debug-board-v3 --- 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 diff -r 2c092eb1621b -r af70c59654ed eeproms/usb-com232-plus2 --- 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