comparison doc/Pirelli-Howto @ 28:cb00b90edaff

documentation write-ups imported from freecalypso-sw and updated for Citrine
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 12 Jun 2016 18:28:35 +0000
parents
children
comparison
equal deleted inserted replaced
27:3ecd6054a7f7 28:cb00b90edaff
1 How to play with FreeCalypso GSM firmware on a Pirelli DP-L10
2 =============================================================
3
4 One very useful special feature of the Pirelli DP-L10 is its very large RAM:
5 8 MiB. Having such large RAM allows us to run our experimental fw on this
6 target entirely from RAM, without touching the flash. When you compile a
7 FreeCalypso Citrine fw image for the Pirelli target, by default a ramImage will
8 be built instead of a flashImage. It is possible to build a flashable image of
9 the fw in the same configuration and program it into flash with fc-loadtool,
10 but doing so is not recommended: our current fw has no battery management code,
11 so the charging hardware circuit will never be enabled and the battery will
12 discharge even with a USB power source connected; keeping Pirelli's original
13 fw in flash will allow the phone to charge its battery and otherwise function
14 normally when you are not in the middle of a FreeCalypso firmware experiment.
15
16 If you are ready to play with our experimental GSM pseudo-modem fw on your
17 Pirelli, the steps are as follows:
18
19 1. Build the firmware in the pirelli-gsm-rvtat configuration - see the
20 Compiling document for more details.
21
22 2. Connect a USB cable from your GNU/Linux PC/laptop to the phone. If the
23 phone was off but the battery is present, it will go through a charger-plug
24 power-on event; if the flash contains Pirelli's original fw, it will boot in
25 the charging mode. If the battery is not present, the Calypso won't power
26 on (it needs VBAT and can't run on VCHG power instead), but the /dev/ttyUSBx
27 device will still show up, as the CP2102 USB-serial chip inside the phone is
28 powered strictly from the USB side.
29
30 3. Run a command like the following:
31
32 fc-xram -h pirelli /dev/ttyUSB0 finlink/ramImage.srec rvinterf
33
34 Adjust the paths to your /dev/ttyUSBx device and your ramImage.srec as
35 appropriate, and add rvinterf logging or other options as desired.
36 Specifying rvinterf on the fc-xram command line directs fc-xram to exec
37 rvinterf and pass the serial channel to it immediately as soon as the code
38 image has been loaded into target RAM and jumped to; this direct passing of
39 the serial channel from fc-xram to rvinterf is appropriate because the
40 loaded fw will immediately start emitting binary trace packets in TI's RVTMUX
41 format.
42
43 4. Induce the phone to execute its Calypso boot path: if the battery was
44 removed, insert it now; if Pirelli's regular fw is running, execute its
45 power-off sequence.
46
47 Once the Calypso chip in the Pirelli phone executes its boot path with fc-xram
48 running, the boot path will be diverted and our experimental firmware will be
49 loaded into target device RAM and jumped to. Our fw will now run, and the
50 rvinterf process on the host will maintain communication with it.
51
52 To exercise our firmware further, you will need to open another terminal window
53 on your driving PC/laptop and run fc-shell. This program will connect to the
54 already running rvinterf process via a local socket, and it will enable you to
55 send various commands to the running fw on the target, the most important ones
56 being standard AT commands. Send the following sequence of AT commands to
57 bring up GSM functionality:
58
59 AT+CMEE=2 -- enable verbose error responses
60 AT+CFUN=1 -- enable radio and SIM interfaces
61 AT+COPS=0 -- register to the default GSM network
62
63 When you are done playing with our experimental fw, you can either yank the
64 battery and kill the host side rvinterf and fc-shell processes, or you can
65 issue a 'tgtreset' command at the fc-shell prompt. The latter will cause the
66 target to reset and boot back into its regular firmware.