comparison doc/Freerunner-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 Neo Freerunner
2 =============================================================
3
4 We have two entirely different firmware offerings for the Freerunner:
5
6 1. Leo2moko fw produced back in 2013-10: this is the only one suitable for
7 end users. We also have leo2moko-debug which is a slightly hacked-up
8 version of leo2moko with some additional debug features for developers;
9 this version is for developers only; end users should stick with the
10 original leo2moko-r1 aka moko12 from 2013-10.
11
12 2. The work-in-progress full-source gcc-built FreeCalypso Citrine fw
13 you are looking at can be built for multiple targets, and the
14 gtamodem target is one of them - the original one, in fact.
15
16 The flash+SRAM chip which FIC/Openmoko populated in their modems provides
17 plenty enough RAM for the firmware's data space requirements, but not enough
18 to run a complete firmware code image entirely from RAM, hence whichever fw
19 version you would like to exercise, you need to flash it. There are two ways
20 to flash modem firmware images in these smartphones: from inside the phone
21 (from the application processor) or externally through a special serial cable
22 inserted into the analog headset jack. The internal method is intended only
23 for end users flashing released production-quality images; developers and
24 tinkerers are expected to use the serial cable method.
25
26 The serial cable wiring requirements for the GTA02 are the same as for Mot C1xx
27 phones, thus the same cable can be used for both. The FreeCalypso project has
28 endorsed UberWaves as our official vendor for serial cables; George at
29 UberWaves now makes serial cables that are specifically certified for use with
30 FreeCalypso. If you would like to order one, email uberwaves@gmail.com.
31
32 Please see the Current_Status write-up for the current status of the present
33 Citrine firmware. As you can read there, this fw is currently nowhere near
34 being able to replace leo2moko. Therefore, if you are going to flash Citrine
35 into your FR's modem, we expect that you are using your FR as a poor man's
36 substitute for the not-yet-built FCDEV3B (a board we seek to build specifically
37 for developers and not for end users), and are NOT expecting this experimental
38 work-in-progress modem fw to work together with user-oriented application
39 processor software like QtMoko or SHR.
40
41 If you would like to play with our experimental Citrine fw using a GTA02 modem
42 as the hw platform, here are the instructions:
43
44 1. Build the firmware in the gtamodem-gsm configuration - see the Compiling
45 document for more details;
46
47 2. You should get a flashImage.bin image built; now you need to flash it into
48 your FR's modem. The serial cable method is highly recommended: the only
49 thing you'll be able to do with our current not-fully-functional firmware is
50 play with it and observe the debug output, and the serial cable will be
51 needed for the latter part anyway.
52
53 3. Run fc-loadtool the same way you would if you were flashing leo2moko;
54
55 4. The actual flash programming commands are a little different because the
56 image is smaller and in a different format:
57
58 flash erase 0 0x160000
59 flash program-bin 0 finlink/flashImage.bin
60
61 The second number in the flash erase command needs to be the size of
62 flashImage.bin rounded up to a multiple of 64 KiB (the flash sector size in the
63 GTA02 modem); 0x160000 is correct for the fw image size as of this writing, but
64 please double-check it yourself before flashing. The 0 argument in the
65 flash program-bin command is the flash offset at which the image should be
66 programmed: it will always be 0 for FreeCalypso flashable fw images for gtamodem
67 and other targets that have the Calypso boot ROM enabled in the hardware.
68
69 Once you have flashed our experimental fw into your modem, you can power-cycle
70 the modem and see the new fw boot. You should have the serial cable connected,
71 the serial channel enabled from the Freerunner's AP side and either rvtdump or
72 rvinterf running on your PC or other development machine when you first power
73 your modem up with the experimental fw in it: this way you will see the debug
74 output as the firmware boots up.
75
76 Once the firmware has booted, it needs to be controlled via AT commands. The
77 present fw presents its AT command interface on two channels on this target: on
78 the MODEM UART going to the Freerunner's application processor and via RVTMUX.
79 At the present stage of development, we highly recommend that you avoid running
80 any GSM-driving software on the AP and exercise our work-in-progress fw solely
81 through the external serial interface on the headset jack, using rvinterf and
82 fc-shell. The standard AT command interface on the dedicated MODEM UART is a
83 feature which we plan to address properly only when we build our planned FCDEV3B
84 hardware, which will bring both UARTs out to the external host.
85
86 Assuming that you already have rvinterf running in a terminal window (you should
87 have started it before you gave the modem power-on command from the AP side),
88 to exercise our firmware further, you will need to open another terminal window
89 on your driving PC/laptop and run fc-shell. This program will connect to the
90 already running rvinterf process via a local socket, and it will enable you to
91 send various commands to the running fw on the target, the most important ones
92 being standard AT commands. Send the following sequence of AT commands to
93 bring up GSM functionality:
94
95 AT+CMEE=2 -- enable verbose error responses
96 AT+CFUN=1 -- enable radio and SIM interfaces
97 AT+COPS=0 -- register to the default GSM network
98
99 To reflash your modem back to stable and working leo2moko aka moko12, execute
100 the following fc-loadtool commands:
101
102 flash erase 0 0x230000
103 flash program-m0 leo2moko.m0
104
105 (Whichever firmware image you are flashing, the flash erase command needs to
106 cover the range of flash sectors this image will occupy. You can erase more
107 sectors up to 0x300000, the "natural" boundary of the flash area where fw
108 images live, but I prefer to erase only the needed number of sectors: it is
109 both faster and imposes less wear on the flash.)