annotate doc/High-speed-serial @ 1008:2b4c3e0f73fc

doc/High-speed-serial: update for current situation
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 10 Dec 2023 23:42:12 +0000
parents 9edb7c07bb29
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 The highest baud rate supported by "standard" PC serial ports is 115200 bps,
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 but Calypso UARTs can go quite a bit faster. Being clocked with 13 MHz (a
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 standard frequency in the GSM world), these UARTs can produce non-standard
258
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
4 (outside of the GSM world) baud rates of 203125, 406250 and 812500 bps. Even
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
5 though these high baud rates aren't supported by "standard" RS-232 serial ports
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
6 on PCs, they *are* supported by some of the better USB to serial adapters,
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
7 namely CP2102 (USB to single UART) and the FT2232x family (USB to two UARTs).
1008
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
8 Both FTDI and CP2102 USB-serial adapters are officially endorsed in FreeCalypso
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
9 queendom:
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
10
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
11 * FreeCalypso DUART28 adapter (USB to dual UART at 2.8V, electrically optimized
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
12 for direct connection to Calypso UARTs) is based on FT2232D;
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
13
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
14 * For working with older Calypso devboards such as TI D-Sample and iWOW DSK
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
15 (two RS-232 UARTs), FTDI board USB-COM232-PLUS2 (based on FT2232H) is
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
16 officially recommended;
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
17
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
18 * Future FreeCalypso development boards will likely include a built-in FT2232H
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
19 subsystem;
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
20
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
21 * For working with Motorola C1xx and Openmoko GTA01/02 phones (Calypso UART
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
22 access via 2.5 mm headset jack), the cable we officially recommend is based
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
23 on CP2102;
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
24
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
25 * Pirelli DP-L10 is a Calypso phone with a built-in CP2102 USB-serial interface,
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
26 supported since the beginning of FreeCalypso project.
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 FreeCalypso tools can use these high serial baud rates in the following ways:
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 * When you use fc-loadtool to dump and program GSM device flash memory
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 (flashing firmware images), the transfers get annoyingly slow at 115200 baud
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 if you have to do it a lot. Switching to 406250 or even better 812500 baud
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 makes them go considerably faster.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 * Some of our target devices have large enough RAM to execute a GSM firmware
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 image entirely from RAM without flashing - very handy for development and
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 experimentation. The tool used to run these RAM-based images is fc-xram,
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 and it also supports the option of using high serial baud rates for the image
258
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
39 transfer for the same reason: repeatedly transferring >2 MiB images over
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 115200 baud gets tiresome.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41
258
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
42 * If you are building your own FreeCalypso-based or TI-based GSM firmware in a
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
43 special non-standard configuration, you can make it run its RVTMUX interface
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
44 at 406250 or 812500 baud. We used this trick when we tried to make TCS211
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
45 with D-Sample-targeting UI (176x220 pix LCD, 16 bits per pixel) send its
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
46 virtual LCD raster blits out the serial port. Our rvtdump and rvinterf
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
47 utilities support this mode of operation by providing options to select
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
48 different baud rates.
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
49
1008
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
50 FreeCalypso host tools approach to FTDI adapter support
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
51 =======================================================
258
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
52
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
53 There is one fundamental difference between the way CP2102 adapters support
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
54 non-standard baud rates (like the high GSM baud rates of interest to us) and
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
55 the way in which FTDI adapters support them. CP2102 chips have a built-in
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
56 EEPROM that contains (among other things) a 32-entry table in which the
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
57 supported serial baud rates are programmed, and the programming of this EEPROM
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
58 effects a remapping: a Linux userspace process can request B230400, B460800 or
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
59 B921600 from termios, but magically get 203125, 406250 or 812500 as the actual
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
60 resulting serial baud rate instead. In contrast, FTDI adapters have no such
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
61 magic remapping mechanism in hardware, thus in order to get 203125, 406250 or
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
62 812500 baud with an FTDI adapter, the userspace process has to explicitly
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
63 request these special baud rates from the serial driver in the kernel, and
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
64 doing the latter requires foregoing the standard termios API and using Linux-
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
65 specific <asm/...> header files and raw ioctl calls instead.
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
66
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
67 When support for high GSM baud rates was first added to FreeCalypso host tools
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
68 back in 2013, there was no need to support the more difficult FTDI adapters as
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
69 the easier to work with CP2102 was fully sufficient for our needs, hence our
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
70 original FC host tools implementation required "magic" baud rate remapping
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
71 somewhere below, usually in form of CP2102 EEPROM programming but also possibly
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
72 by way of a hacky patch to the ftdi_sio driver in the Linux kernel to achieve
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
73 the same effect with rarely-needed FTDI adapters.
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
74
1008
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
75 The situation has changed as our project transitioned from hacking on Motorola,
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
76 Openmoko and Pirelli phones to proper Calypso GSM MS development boards,
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
77 bringing out both Calypso UARTs rather than just one. The most convenient
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
78 serial adapters for working with these dual UARTs are FT2232x, thus we now have
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
79 a strong need to support the use of these FTDI adapters, including the use of
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
80 high GSM baud rates, in a manner which does not fight against the mainline
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
81 Linux kernel.
258
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
82
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
83 In a radical change from fc-host-tools-r6 and earlier, the present version of
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
84 FreeCalypso host tools uses new libserial code that differs from the old code
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
85 as follows:
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
86
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
87 * Linux-specific <asm/...> headers are used instead of <termios.h>;
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
88
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
89 * Linux-specific raw ioctl calls are used instead of tcsetattr() for serial
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
90 port setup;
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
91
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
92 * When the user requests 203125, 406250 or 812500 baud, these are the actual
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
93 baud rates requested from the kernel, not 230400/460800/921600 baud.
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94
1008
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
95 This change is expected to have no adverse effect on existing CP2102 users,
258
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
96 as the cp210x driver in Linux appears to cope fine with the strange baud rate
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
97 requests from userspace and the correct CP2102 EEPROM baud rate entry still
1008
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
98 gets selected (tested on Slackware 13.37, Slackware 14.2 and Debian 9), but
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
99 when working with FTDI adapters, this change makes our high GSM baud rates work
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
100 without needing the dirty kernel patch which we used in the early part of 2017.
258
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
101
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
102 Support for other Unix flavors
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
103 ==============================
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
104
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
105 The serial port handling code for all of FC host tools has been factored out
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
106 into a common library called libserial. We have two versions of libserial:
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
107
694
9edb7c07bb29 doc/High-speed-serial updated for libserial rename
Mychaela Falconia <falcon@freecalypso.org>
parents: 258
diff changeset
108 * libserial-posix uses the standard and presumably portable termios API, but
258
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
109 requires "magic" remapping of baud rates by some invisible genie below (like
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
110 CP2102 EEPROM programming) in order to get 203125/406250/812500 baud.
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
111
694
9edb7c07bb29 doc/High-speed-serial updated for libserial rename
Mychaela Falconia <falcon@freecalypso.org>
parents: 258
diff changeset
112 * libserial-linux uses Linux-specific header files and raw ioctl calls to
258
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
113 request the actual desired baud rates.
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
114
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
115 If you would like to run FreeCalypso host tools under FreeBSD, illumos or some
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
116 other alternative-to-Linux OS, you have two basic choices:
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117
258
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
118 * If you wish to use high GSM baud rates with non-remapping FTDI adapters or
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
119 other serial interfaces which support the baud rates in question without
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
120 remapping, you will need to figure out how to request non-standard serial
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
121 baud rates from the underlying drivers under your OS, and create your own
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
122 version of libserial ported to use that method.
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
123
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
124 * If you don't need high GSM baud rates or need them only with CP2102 adapters
694
9edb7c07bb29 doc/High-speed-serial updated for libserial rename
Mychaela Falconia <falcon@freecalypso.org>
parents: 258
diff changeset
125 which "magically" remap them, you should be able to use libserial-posix. You
1008
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
126 can also completely remove the entries for high GSM baud rates from
694
9edb7c07bb29 doc/High-speed-serial updated for libserial rename
Mychaela Falconia <falcon@freecalypso.org>
parents: 258
diff changeset
127 libserial-posix/baudtab.c if you don't need these high baud rates and your
258
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
128 version of termios does not have B230400/B460800/B921600 baud rate constants.
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
129
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
130 It is assumed that any system on which someone may desire to run our FC host
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
131 tools supports at least 115200 baud. The Mother remembers the days when this
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
132 baud rate was considered very high and non-standard and even has some of those
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
133 lovely old systems still running; fc-loadtool and friends going through the
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
134 Calypso boot ROM (not through Compal's bootloader) can be made to work with a
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
135 host system whose UARTs max out at 19200 baud, but most Calypso GSM device
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
136 firmwares including our own use the 115200 baud rate.
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
137
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
138 Using CP2102 adapters with Mot C1xx and Openmoko phones
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
139 =======================================================
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
140
1008
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
141 For the special USB-serial cable that connects to the 2.5 mm headset jack on
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
142 these phones, our current official recommendation is this one:
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
143
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
144 https://shop.sysmocom.de/Sysmocom-USB-serial-cable-CP2102-with-2.5mm-stereo-jack/cp2102-25
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
145
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
146 (In the past we also worked with a different vendor, UberWaves, but that vendor
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
147 appears to be no longer active as of 2023-12.)
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
148
258
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
149 As already mentioned above, CP2102 chips have a built-in EEPROM that contains
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
150 (among other things) a 32-entry table in which the supported serial baud rates
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
151 are programmed. In order to support the special GSM baud rates, these rates
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
152 need to be added to that table, displacing some other entries. The convention
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
153 established by the Pirelli DP-L10 phone (has a CP2102 built in and programmed
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
154 at the factory for GSM baud rates) is that 203120 baud takes the place of
00805e7c4c45 doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
155 230400, 406250 takes the place of 460800, and 812500 takes the place of 921600.
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156
1008
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
157 If you are working with CP2102 adapters from any vendor, or headset jack serial
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
158 cables that incorporate such adapters, you should install this companion tools
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
159 package from FreeCalypso:
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
160
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
161 https://www.freecalypso.org/pub/GSM/FreeCalypso/fc-usbser-tools-latest.tar.bz2
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162
1008
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
163 Because Sysmocom CP2102-25 adapters have been repurposed for various other uses
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
164 "in the Osmocom universe" (literal quote from the vendor's product description
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
165 page) beyond the original purpose of connecting to Mot C1xx and Openmoko
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
166 GTA01/02 phones, the shipping state of the adapter's internal EEPROM cannot be
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
167 depended on: they may ship with the EEPROM programmed for 203125/406250/812500
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
168 baud or for 230400/460800/921600 baud depending on which year you bought the
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
169 product and other unknown factors. Fortunately though, our cp2102-read-baudtab
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
170 utility (included in fc-usbser-tools package linked above) replaces guesswork
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
171 with clarity: you run this command, and it shows you the current programming of
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
172 the baud rate table in the EEPROM. Programming this EEPROM to the desired
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
173 configuration is then as simple as:
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174
1008
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
175 cp2102-update-eeprom -b gsm # program EEPROM for high GSM baud rates
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176
1008
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
177 or
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
178
2b4c3e0f73fc doc/High-speed-serial: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 694
diff changeset
179 cp2102-update-eeprom -b std # program EEPROM for "standard" baud rates
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
180
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
181 Using adapters built into phones
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
182 ================================
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
183
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
184 The Calypso chip has no native USB capabilities, thus if a Calypso phone
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
185 presents a USB charging+data port to the user, it must have a USB to serial
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
186 converter built in. The only phone we currently know of that does this is
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
187 Pirelli DP-L10, and its built-in USB-serial adapter chip is CP2102. It has
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
188 already been programmed with the correct GSM baud rates on Foxconn's original
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
189 production line, thus one can always use 812500 baud with FreeCalypso tools on
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
190 this phone and it will Just Work.