FreeCalypso > hg > fc-usbser-tools
view artifacts/om-debug-board-v3 @ 68:5cbde3c80c24
fteeprom-{erase,prog}: detach logic: change to detach by default
As it turns out, detaching all ttyUSB interfaces of a multichannel device
does not require outside knowledge of how many channels there are, as in
our previous -d option design that is being removed here - instead we can
read the bNumInterfaces constant from the USB device's config descriptor
and thus know how many interfaces there are in total. Based on this
discovery, change the design of fteeprom-{erase,prog} as follows:
* remove -d option;
* flip the default to where we detach all interfaces by default;
* add -n option to NOT detach any interfaces.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 13 Sep 2023 06:37:03 +0000 |
parents | 9ca4f9fa415b |
children |
line wrap: on
line source
# 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