FreeCalypso > hg > freecalypso-tools
annotate doc/High-speed-serial @ 619:f82551c77e58
libserial-newlnx: ASYNC_LOW_LATENCY patch reverted
Reports from Das Signal indicate that loadtools performance on Debian
is about the same as on Slackware, and that including or omitting the
ASYNC_LOW_LATENCY patch from Serg makes no difference. Because the
patch in question does not appear to be necessary, it is being reverted
until and unless someone other than Serg reports an actual real-world
system on which loadtools operation times are slowed compared to the
Mother's Slackware reference and on which Slackware-like performance
can be restored by setting the ASYNC_LOW_LATENCY flag.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 27 Feb 2020 01:09:48 +0000 |
parents | 00805e7c4c45 |
children | 9edb7c07bb29 |
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). |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
8 The Pirelli DP-L10 phone supported by FreeCalypso host tools has a CP2102 built |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
9 in, the officially recommended 2.5 mm headset jack USB-serial cables for working |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
10 with Motorola C1xx and Openmoko GTA01/02 phones also use CP2102 adapters, |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
11 whereas our FreeCalypso development boards (FCDEV3B) are typically used with an |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
12 FT2232D or other FT2232x USB to dual UART adapter. |
0
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 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
|
15 |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 * 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
|
17 (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
|
18 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
|
19 makes them go considerably faster. |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 * 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
|
22 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
|
23 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
|
24 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
|
25 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
|
26 115200 baud gets tiresome. |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 |
258
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
28 * 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
|
29 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
|
30 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
|
31 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
|
32 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
|
33 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
|
34 different baud rates. |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
35 |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
36 Recent changes for better FTDI adapter support |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
37 ============================================== |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
38 |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
39 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
|
40 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
|
41 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
|
42 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
|
43 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
|
44 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
|
45 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
|
46 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
|
47 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
|
48 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
|
49 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
|
50 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
|
51 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
|
52 |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
53 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
|
54 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
|
55 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
|
56 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
|
57 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
|
58 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
|
59 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
|
60 |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
61 The situation has changed with the introduction of our own FreeCalypso |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
62 development boards (currently FCDEV3B, possibly others in the future) which |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
63 bring out both Calypso UARTs to the user, rather than just one. The most |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
64 convenient serial adapters for working with these dual UARTs are FT2232x (our |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
65 current official adapter is FT2232D), thus we now have a strong need to support |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
66 the use of these FTDI adapters, including the use of high GSM baud rates, in a |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
67 manner which does not fight against the mainline Linux kernel. |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
68 |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
69 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
|
70 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
|
71 as follows: |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
72 |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
73 * 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
|
74 |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
75 * 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
|
76 port setup; |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
77 |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
78 * 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
|
79 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
|
80 |
258
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
81 This change is expected to have no adverse effect on the existing CP2102 users, |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
82 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
|
83 requests from userspace and the correct CP2102 EEPROM baud rate entry still |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
84 gets selected (tested on Slackware 13.37 and Debian 9), but when working with |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
85 FTDI adapters such as our FT2232D adapter for the FCDEV3B this change makes the |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
86 high GSM baud rates work without needing the dirty kernel patch which the |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
87 Mother has been using up until now. |
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 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
|
90 ============================== |
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 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
|
93 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
|
94 |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
95 * libserial-orig uses the standard and presumably portable termios API, but |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
96 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
|
97 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
|
98 |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
99 * libserial-newlnx uses Linux-specific header files and raw ioctl calls to |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
100 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
|
101 |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
102 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
|
103 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
|
104 |
258
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
105 * 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
|
106 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
|
107 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
|
108 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
|
109 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
|
110 |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
111 * If you don't need high GSM baud rates or need them only with CP2102 adapters |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
112 which "magically" remap them, you should be able to use libserial-orig. You |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
113 can also completely remove the entries for the high GSM baud rates from |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
114 libserial-orig/baudtab.c if you don't need these high baud rates and your |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
115 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
|
116 |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
117 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
|
118 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
|
119 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
|
120 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
|
121 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
|
122 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
|
123 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
|
124 |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
125 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
|
126 ======================================================= |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
127 |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
128 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
|
129 (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
|
130 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
|
131 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
|
132 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
|
133 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
|
134 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
|
135 |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 Because you need a special cable anyway to make the necessary physical |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 connection to the debug/programming serial port presented on a 2.5 mm headset |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 jack, you will probably be buying the requisite cable from a specialized |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 professional vendor. In that case it is that vendor's responsibility to sell |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 you the cable with the CP2102 chip already programmed with GSM baud rates: |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 because the physical construction of the cable (2.5 mm headset jack on the |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 serial end) makes it specific to GSM devices, and all known GSM devices use a |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 13 MHz clock or some integer multiple thereof, it is pointless for a |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 physically-GSM-specific cable to be set up for 230400/460800/921600 baud when |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 all known GSM devices will need 203125/406250/812500 baud instead. |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 |
258
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
147 If you are making a CP2102-based serial cable yourself (either for your own |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
148 personal use or professionally/commercially), please follow these instructions |
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
149 for baud rate programming: |
0
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 |
258
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
151 http://osmocom.org/projects/baseband/wiki/HardwareCP210xTutorial |
0
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 If you follow the procedure given on that page, your CP2102 will be programmed |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 the same way as the one in the Pirelli DP-L10 (Foxconn's original factory |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 programming). |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 Using adapters built into phones |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 ================================ |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 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
|
161 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
|
162 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
|
163 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
|
164 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
|
165 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
|
166 this phone and it will Just Work. |