FreeCalypso > hg > freecalypso-tools
annotate doc/High-speed-serial @ 864:82d4a7438639
doc/Host-tools-overview: document l1trace-filter
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Thu, 24 Mar 2022 04:00:37 +0000 | 
| parents | 9edb7c07bb29 | 
| children | 2b4c3e0f73fc | 
| 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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
changeset | 34 different baud rates. | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
changeset | 35 | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
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: 
0diff
changeset | 37 ============================================== | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
changeset | 38 | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
changeset | 52 | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
changeset | 60 | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
changeset | 68 | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
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: 
0diff
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: 
0diff
changeset | 71 as follows: | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
changeset | 72 | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
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: 
0diff
changeset | 74 | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
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: 
0diff
changeset | 76 port setup; | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
changeset | 77 | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
changeset | 88 | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
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: 
0diff
changeset | 90 ============================== | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
changeset | 91 | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
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: 
0diff
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: 
0diff
changeset | 94 | 
| 694 
9edb7c07bb29
doc/High-speed-serial updated for libserial rename
 Mychaela Falconia <falcon@freecalypso.org> parents: 
258diff
changeset | 95 * 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: 
0diff
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: 
0diff
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: 
0diff
changeset | 98 | 
| 694 
9edb7c07bb29
doc/High-speed-serial updated for libserial rename
 Mychaela Falconia <falcon@freecalypso.org> parents: 
258diff
changeset | 99 * 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: 
0diff
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: 
0diff
changeset | 101 | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
changeset | 110 | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
changeset | 111 * 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: 
258diff
changeset | 112 which "magically" remap them, you should be able to use libserial-posix. You | 
| 258 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
changeset | 113 can also completely remove the entries for the high GSM baud rates from | 
| 694 
9edb7c07bb29
doc/High-speed-serial updated for libserial rename
 Mychaela Falconia <falcon@freecalypso.org> parents: 
258diff
changeset | 114 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: 
0diff
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: 
0diff
changeset | 116 | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
changeset | 124 | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
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: 
0diff
changeset | 126 ======================================================= | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
changeset | 127 | 
| 
00805e7c4c45
doc/High-speed-serial: update/rewrite for the new FTDI support
 Mychaela Falconia <falcon@freecalypso.org> parents: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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: 
0diff
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. | 
