annotate doc/Pirelli-Howto @ 972:6de5661d1fe1

gsm-fw/services/etm/etm_api.c: same fix in etm_pkt_send() as in tcs211-c139
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Fri, 13 Nov 2015 19:29:16 +0000
parents 7c5b129573f6
children 7d3f0910aeb2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
896
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
1 How to play with FreeCalypso GSM firmware on a Pirelli DP-L10
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
2 =============================================================
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
3
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
4 Our experimental FC GSM fw can now run on the Pirelli DP-L10 target. Our fw
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
5 cannot yet operate this phone in a useful manner, i.e., it is not currently
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
6 possible to replace Pirelli's proprietary fw with ours and use the phone as an
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
7 end user. Our gsm-fw is close to having working voice call functionality when
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
8 controlled by an external host via AT commands, but we haven't even started
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
9 working on the on-board user interface part yet.
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
10
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
11 One very useful special feature of the Pirelli DP-L10 is its very large RAM:
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
12 8 MiB. Having such large RAM allows us to run our experimental fw on this
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
13 target entirely from RAM, without touching the flash. When you compile a
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
14 FreeCalypso gsm-fw image for the Pirelli target, by default a ramImage will be
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
15 built instead of a flashImage. It is possible to build a flashable image of
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
16 the fw in the same configuration and program it into flash with fc-loadtool,
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
17 but doing so is not recommended: our current fw has no battery management code,
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
18 so the charging hardware circuit will never be enabled and the battery will
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
19 discharge even with a USB power source connected; keeping Pirelli's original
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
20 fw in flash will allow the phone to charge its battery and otherwise function
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
21 normally when you are not in the middle of a FreeCalypso firmware experiment.
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
22
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
23 If you are ready to play with our experimental GSM pseudo-modem fw on your
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
24 Pirelli, the steps are as follows:
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
25
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
26 1. Build the firmware in the pirelli-gsm configuration - see the Compiling
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
27 document for more details.
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
28
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
29 2. Connect a USB cable from your GNU/Linux PC/laptop to the phone. If the
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
30 phone was off but the battery is present, it will go through a charger-plug
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
31 power-on event; if the flash contains Pirelli's original fw, it will boot in
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
32 the charging mode. If the battery is not present, the Calypso won't power
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
33 on (it needs VBAT and can't run on VCHG power instead), but the /dev/ttyUSBx
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
34 device will still show up, as the CP2102 USB-serial chip inside the phone is
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
35 powered strictly from the USB side.
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
36
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
37 3. Run a command like the following:
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
38
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
39 fc-xram -h pirelli /dev/ttyUSB0 finlink/ramImage.srec rvinterf
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
40
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
41 Adjust the paths to your /dev/ttyUSBx device and your ramImage.srec as
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
42 appropriate, and add rvinterf logging or other options as desired.
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
43 Specifying rvinterf on the fc-xram command line directs fc-xram to exec
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
44 rvinterf and pass the serial channel to it immediately as soon as the code
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
45 image has been loaded into target RAM and jumped to; this direct passing of
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
46 the serial channel from fc-xram to rvinterf is appropriate because the
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
47 loaded fw will immediately start emitting binary trace packets in TI's RVTMUX
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
48 format.
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
49
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
50 4. Induce the phone to execute its Calypso boot path: if the battery was
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
51 removed, insert it now; if Pirelli's regular fw is running, execute its
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
52 power-off sequence.
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
53
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
54 Once the Calypso chip in the Pirelli phone executes its boot path with fc-xram
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
55 running, the boot path will be diverted and our experimental firmware will be
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
56 loaded into target device RAM and jumped to. Our fw will now run, and the
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
57 rvinterf process on the host will maintain communication with it.
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
58
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
59 To exercise our firmware further, you will need to open another terminal window
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
60 on your driving PC/laptop and run fc-shell. This program will connect to the
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
61 already running rvinterf process via a local socket, and it will enable you to
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
62 send various commands to the running fw on the target, the most important ones
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
63 being standard AT commands. Send the following sequence of AT commands to
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
64 bring up GSM functionality:
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
65
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
66 AT%SLEEP=2 -- disable deep sleep (doesn't work yet)
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
67 AT+CMEE=2 -- enable verbose error responses
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
68 AT+CFUN=1 -- enable radio and SIM interfaces
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
69 AT+COPS=0 -- register to the default GSM network
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
70
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
71 Our fw is currently able to exercise all SIM interface functions (at least the
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
72 obvious ones which I've tested), register with a live commercial GSM network
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
73 using a legitimate SIM, and send and receive SMS using standard GSM 07.05 AT
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
74 commands. Voice calls don't work yet; dialing a MO call with the ATD command
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
75 or placing a MT call to the device under test from the network side results in
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
76 the firmware going haywire. The latter misbehaviour is next to be investigated
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
77 and (hopefully) fixed.
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
78
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
79 When you are done playing with our experimental fw, you can either yank the
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
80 battery and kill the host side rvinterf and fc-shell processes, or you can
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
81 issue a 'tgtreset' command at the fc-shell prompt. The latter will cause the
7c5b129573f6 doc/Pirelli-Howto written
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
82 target to reset and boot back into its regular firmware.