FreeCalypso > hg > freecalypso-tools
annotate doc/High-speed-serial @ 1009:4a153059abbb
doc/DUART28-boot-control: update for fc-linux-patch and fc-usbser-tools
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Tue, 12 Dec 2023 06:57:11 +0000 |
| parents | 2b4c3e0f73fc |
| children |
| 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. |
