FreeCalypso > hg > freecalypso-sw
annotate doc/Pirelli-Howto @ 992:a7b0b426f9ca
target-utils: boot ROM UART autodetection revamped
The new implementation should work with both the familiar Calypso C035
boot ROM version found in our regular targets as well as the older
Calypso F741979B version found on the vintage D-Sample board.
author | Mychaela Falconia <falcon@ivan.Harhan.ORG> |
---|---|
date | Wed, 30 Dec 2015 21:28:41 +0000 |
parents | 7c5b129573f6 |
children | 7d3f0910aeb2 |
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. |