annotate doc/C1xx-Howto @ 516:1ed9de6c90bd

src/g23m-gsm/sms/sms_for.c: bogus malloc removed The new error handling code that was not present in TCS211 blob version contains a malloc call that is bogus for 3 reasons: 1) The memory allocation in question is not needed in the first place; 2) libc malloc is used instead of one of the firmware's proper ways; 3) The memory allocation is made inside a function and then never freed, i.e., a memory leak. This bug was caught in gcc-built FreeCalypso fw projects (Citrine and Selenite) because our gcc environment does not allow any use of libc malloc (any reference to malloc produces a link failure), but this code from TCS3.2 is wrong even for Magnetite: if this code path is executed repeatedly over a long time, the many small allocations made by this malloc call without a subsequent free will eventually exhaust the malloc heap provided by the TMS470 environment, malloc will start returning NULL, and the bogus code will treat it as an error. Because the memory allocation in question is not needed at all, the fix entails simply removing it.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 22 Jul 2018 06:04:49 +0000
parents 682955c407b4
children 9c5944d1bac5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
383
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 Running FreeCalypso firmware on Motorola C1xx phones
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 ====================================================
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 Before we begin, it needs to be noted that running FreeCalypso fw on a C1xx
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 phone is very much akin to xenotransplantation: Mot C1xx hardware is an alien
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 to our FreeCalypso family (our native hw targets are those made by TI, Openmoko
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 and us, not Motorola or Compal), and our non-Compal-based, non-Mot-based
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 FreeCalypso fw is equally alien to the C1xx phones. The xenotransplantation
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 procedure of converting a C1xx phone to FreeCalypso is highly unnatural, and
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 involves a large number of cumbersome manual steps - you've been warned.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 Preparing the host system
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 =========================
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 Firmware flashing on Mot C1xx phones is accomplished through the headset jack
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 via a special cable. There is no need to disassemble the phone in any way or
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 to do any soldering or other hardware surgery, but you will need a host system
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 to run the multitude of special software tools that are involved in the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 procedure. You will need to begin by installing FreeCalypso host tools, and
457
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
20 the current version of the FC-to-C1xx xenotransplantation procedure (the
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
21 additions from the previous version are RF calibration data migration and
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
22 battery charging configuration) requires the latest fc-host-tools-r8 release:
383
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23
457
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
24 ftp://ftp.freecalypso.org/pub/GSM/FreeCalypso/fc-host-tools-r8.tar.bz2
383
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 You will also need the battery charging configuration files:
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 https://bitbucket.org/falconian/fc-battery-conf
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 Run 'make install' in the fc-battery-conf tree to add the battery charging
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 configuration files to your FC host tools installation under /opt/freecalypso.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 Flash backup and data gathering
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 ===============================
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 Before you begin the actual conversion of your C1xx phone to FreeCalypso, you
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 will need to gather the following pieces of information:
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 * The phone's IMEI - we don't know how to extract it out of Mot/Compal's non-TI
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 flash data structures, so you will have to reset it manually after the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 firmware change. Of course you can set your "new" FreeCalypso IMEI to
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 whatever you feel like, but if you wish to keep the original factory-assigned
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 one, you will need to note it down manually, either from the sticker inside
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 the battery compartment (*very* hard to read!) or by booting the phone up
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 with its original fw prior to the conversion, entering *#06# and reading it
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 from the display.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 * Your specific phone's factory RF calibration values: you will need to make a
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 dump of your phone's flash memory (also serves as a backup, always a good
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 thing to have) with fc-loadtool and extract the numbers of interest with our
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 c1xx-calextr utility, which is part of the new FC host tools.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 * You need to know whether your phone has 900+1800 MHz or 850+1900 MHz bands -
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 you will need to communicate this information to the new fw after the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 conversion. To the best of our knowledge, all C11x/12x and C140 phones have
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 900+1800 MHz bands, but C139 phones have been made in both versions. On the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 phones that have passed through our hands so far, the first two digits of the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 IMEI have been 35 on 900+1800 MHz phones and 01 on 850+1900 MHz ones.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 * You need to know whether your phone has 2 MiB or 4 MiB flash. To the best of
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 our knowledge, all C139/140 phones have 4 MiB flash, but C11x have been seen
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 with both 2 MiB and 4 MiB flashes. The flash memory size will be autodetected
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 by fc-loadtool as part of making the flash dump.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 The Mother's method for keeping track of these per-phone bits of information is
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 to create a separate directory for each phone with the IMEI as the directory
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 name; the flash dump and the RF calibration bits extracted from it will then
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 reside in that directory, while the IMEI is in the name of the directory itself.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 Once you have created your per-phone directory and cd'ed into it, you are ready
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 to run fc-loadtool to capture the flash dump. The phone needs to be off, but
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 the battery needs to be present and have some charge in it; with the phone off,
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 connect the serial cable between your host computer and the phone's headset
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 jack, and run fc-loadtool as follows:
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 fc-loadtool -h compal -c 1004 /dev/ttyXXX
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 Change /dev/ttyXXX to the serial or USB-serial device corresponding to your
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 serial cable. The -c 1004 option (adds a little inefficiency which is required
510
682955c407b4 doc/C1xx-Howto: parenthesis fix and update for shorter keepalive timer
Mychaela Falconia <falcon@freecalypso.org>
parents: 457
diff changeset
80 for C139/140 phones) can be omitted if your phone is C11x/12x, but it is also
383
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 harmless to always add it. With the serial cable connected, the phone in the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 powered-off state and the fc-loadtool process running and waiting for the phone,
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 press the red power button on the phone - a momentary press is sufficient and
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 recommended.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 Once the phone boots the loadagent code fed to it serially by fc-loadtool and
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87 you land at the loadtool> prompt, issue the following command:
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 flash dump2bin flashdump.bin
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 Given this command, fc-loadtool will autodetect whether your phone has 2 MiB or
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 4 MiB flash, then make a dump of the complete content of this flash memory and
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93 save it in a file named flashdump.bin in the current directory. When this
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 operation completes, exit the loadtool session with the exit command - it will
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95 also cleanly power the phone off.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 The next step is to extract the RF calibration values. Run a command of the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 following form:
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 c1xx-calextr -b rfbin flashdump.bin <offset>
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 Change <offset> to 0x1FC000 if your phone has 2 MiB flash (the size of
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 flashdump.bin is 2097152 bytes) or 0x3FC000 if it has 4 MiB flash (the size of
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 flashdump.bin is 4194304 bytes). The stdout scribbles from c1xx-calextr will
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 indicate which per-band calibration records it finds (from which you can tell
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 if the phone has 900+1800 MHz or 850+1900 MHz bands if you didn't have this
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 knowledge already), and a directory named rfbin will be created, containing the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 correct subtree of directories and files which will need to be uploaded into
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 the new FreeCalypso flash file system (FFS) under /gsm/rf after the firmware
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110 change.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 Selecting and building the desired firmware config
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 ==================================================
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115 There is only one FC Magnetite firmware configuration for C11x/12x phones, but
457
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
116 for the better C139/140 phones there are several to choose from. The following
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
117 two configs are the currently recommended ones:
383
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 hybrid-vpm This config is available for both C11x/12x and C139/140
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 subfamilies, although the actual fw images are different
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121 between the two. In this configuration the converted phone
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122 acts not as an end user phone, but as a voice pseudo-modem that
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 needs to be controlled by a host computer via a serial cable to
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 do anything interesting. See the Voice-pseudo-modem article
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 for more information.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126
457
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
127 hybrid-ui-vo This config is available only for the C139/140 target, not
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
128 C11x/12x. This configuration includes the UI layers, thus when
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
129 a C139/140 phone runs this firmware, it is able to function as
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
130 an untethered phone without a host computer connection.
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
131 However, please be warned that this proof-of-concept UI is
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
132 nowhere close to being practically usable - see the
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
133 Handset-goal article for more info.
383
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134
457
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
135 Both of the above are hybrid configurations in that they use the new TCS3
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
136 versions of the G23M protocol stack and ACI (Application Control Interface)
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
137 firmware components grafted on top of the TCS211 chipsetsw foundation, resulting
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
138 in a fully built-from-source configuration without major blob components. The
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
139 UI layers BMI and MFW in the UI-enabled hybrid-ui-vo config also come from the
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
140 new TCS3 source, not the old version of unknown origin. They are "voice only"
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
141 configs in that CSD, fax and GPRS functions are disabled - these functions
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
142 cannot be made use of on Mot C1xx phones, and disabling them significantly
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
143 reduces the weight of the firmware.
383
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144
457
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
145 For the C139/140 target (but not for C11x/12x), it is also possible to build
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
146 some of the older configs that use the old binary blob version of the G23M PS
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
147 component and the corresponding old versions of ACI, MFW and BMI on top of it -
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
148 however, those configuration are now officially deprecated except for only two
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
149 remaining use cases which do not apply to Mot C1xx targets, hence they are no
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
150 longer supported officially.
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
151
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
152 Thus we have a total of 3 possible build configurations, one for the C11x
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
153 target and 2 for the C139:
383
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155 ./configure.sh c11x hybrid-vpm
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 ./configure.sh c139 hybrid-vpm
457
6530fc550836 doc/C1xx-Howto: update for fc-host-tools-r8 and hybrid-ui-vo
Mychaela Falconia <falcon@freecalypso.org>
parents: 383
diff changeset
157 ./configure.sh c139 hybrid-ui-vo
383
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159 See the Compiling article for more information on how to compile your own
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160 firmware image in one of the above configurations.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162 If this is your first time converting a given C1xx phone from its original
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163 firmware to FreeCalypso (as opposed to updating from an earlier FC firmware
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164 version), you will also need the compal-flash-boot-for-fc.bin bootloader image
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165 in addition to the main fw image you just built:
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167 ftp://ftp.freecalypso.org/pub/GSM/FreeCalypso/compal-flash-boot-for-fc.bin
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
168
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
169 Mot C1xx phones are brickable - because the Calypso boot ROM is disabled by PCB
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
170 wiring, the ability to reflash a phone with new firmware critically depends on
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
171 there being a particular kind of boot code in flash sector 0 at all times - a
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172 particular kind of boot code that allows the boot process to be interrupted and
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
173 diverted to external code loaded via the headset jack serial port.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175 The FreeCalypso family of projects has adopted one specific version of the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176 flash sector 0 boot code (produced by applying a binary patch to one of
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177 Compal/Motorola's original versions) for use with all of our firmwares for
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178 these phones. We use the same FC-C1xx bootloader on both C11x/12x and C139/140
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179 phones: the official bootloader versions are different between the two (and
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
180 moreover, each particular official fw version comes with its own bootloader
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
181 version), but the simpler bootloader version which we took from one particular
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
182 C11x fw version works perfectly well on the C139 as well, hence we've adopted
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
183 it for all combinations.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
184
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
185 Once you have our compal-flash-boot-for-fc.bin image flashed in sector 0, you
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
186 can then flash whichever FC firmware image you like at offset 0x10000 without
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
187 having to touch the dangerous boot sector.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
188
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
189 Converting the phone to FreeCalypso fw
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
190 ======================================
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
191
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
192 If you are starting with an unhacked C1xx phone running one of the official
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
193 firmware versions, the procedure for flashing and bringing up FreeCalypso for
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
194 the first time is as follows - *after* you have done all of the preparatory
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
195 steps described in the preceding sections:
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
196
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
197 * Have your phone's battery fully charged - although you will regain the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
198 ability to charge it with FreeCalypso fw when the conversion is fully
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
199 complete (not just the flashing part, but also the subsequent FFS
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
200 initialization), your phone will not have this charging ability while you are
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
201 in the middle of the xenotransplantation procedure.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
202
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
203 * Get in with fc-loadtool just like you did when you made the dump of your
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
204 phone's flash memory for backup and RF calibration data extraction.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
205
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
206 * Once you are in with fc-loadtool, i.e., at the loadtool> prompt, reflash the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
207 boot sector with the FreeCalypso version:
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
208
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
209 loadtool> flash erase-program-boot compal-flash-boot-for-fc.bin
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
210
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
211 * To flash whichever FreeCalypso firmware image you would like to play with,
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
212 execute the flashing script which the fw build system produced along with the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
213 actual image:
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
214
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
215 loadtool> exec flash-script
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
216
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
217 * Erase the flash sectors to be used for the FFS (flash file system) by
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
218 FreeCalypso firmwares; the specific command depends on whether your phone has
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
219 2 MiB or 4 MiB flash. On 2 MiB flash phones:
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
220
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
221 loadtool> flash erase 0x1C0000 0x30000
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
222
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
223 Or on 4 MiB flash phones:
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
224
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
225 loadtool> flash erase 0x3C0000 0x30000
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
226
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
227 * Exiting fc-loadtool cleanly will cause it to power off the phone:
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
228
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
229 loadtool> exit
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
230
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
231 Reflashing between different FreeCalypso firmwares
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
232 ==================================================
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
233
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
234 By the conventions established in the FreeCalypso family of projects, all of
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
235 our firmwares for C11x and C139 targets have the following in common:
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
236
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
237 * They all stay out of the boot sector and expect to receive control from the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
238 boot code in the same manner (boot entry point at 0x10058, exception vectors
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
239 at 0x10000), thus there is no need to reflash the dangerous boot sector when
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
240 going from one FC firmware to another.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
241
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
242 * They all use the same aftermarket FFS configuration of 3 sectors of 64 KiB
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
243 each (64x3) at 0x3C0000 on 4 MiB flash phones, or at 0x1C0000 on 2 MiB flash
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
244 phones. This FFS location is deliberately different from the one used by
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
245 Mot/Compal's firmwares, eliminating the possibility of one fw trying to use
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
246 the FFS created by the other, and by putting our FFS toward the end of the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
247 flash we maximize the amount of flash space available for our firmware code
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
248 images. But even though we don't share our FFS with Mot/Compal's official
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
249 firmwares, we do share the same FFS between all of FreeCalypso firmware
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
250 projects - thus once you have initialized your FFS (see below) with one FC
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
251 firmware version, it will work with the others as well.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
252
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
253 If you need to reflash your C1xx phone from one FC firmware version to another,
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
254 simply get in with fc-loadtool -h compal (no more need for the inefficient
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
255 -c 1003 or -c 1004 options or for tfc139) and reflash just the fw image part:
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
256
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
257 loadtool> exec flash-script
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
258
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
259 First boot of the firmware
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
260 ==========================
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
261
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
262 Connect the serial cable, but instead of running fc-loadtool, run rvinterf.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
263 Press the red power button on the phone briefly just like you would for
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
264 fc-loadtool entry. Because there is no fc-loadtool running on the host end of
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
265 the serial cable, the boot path will *not* be diverted in the bootloader, and
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
266 the main fw image will run - and this time it will be the FreeCalypso firmware
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
267 you have compiled and flashed. If the fw you have flashed is the UI demo
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
268 configuration, the phone must have *NO* SIM in it the first time you boot it.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
269 UI-enabled fw configurations automatically bring up the GSM radio and try to
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
270 connect to the default network on boot if there is a SIM present, and you don't
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
271 want your firmware trying to connect to a real live GSM network when you haven't
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
272 initialized your FFS yet. If the fw you have flashed is one of the AT-command-
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
273 controlled pseudo-modem configurations, then you don't need to worry if the SIM
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
274 is there or not on your first boot - just don't command it to connect to a
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
275 network until you have initialized the FFS.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
276
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
277 If you have flashed a non-UI firmware version, the phone's LCD will remain dark
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
278 as there is no LCD driver code in this firmware, but you will see trace output
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
279 in the rvinterf window, telling you that the fw is running.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
280
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
281 Before you do anything else, you will need to run fc-fsio and initialize the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
282 aftermarket FFS for our firmware:
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
283
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
284 fsio> format /
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
285 fsio> mk-std-dirs
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
286 fsio> set-imeisv fc XXXXXXXX-YYYYYY-ZZ (punctuation optional, place anywhere)
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
287 fsio> set-rfcap dual-eu (if you have 900+1800 MHz hardware)
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
288 or
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
289 fsio> set-rfcap dual-us (if you have 850+1900 MHz hardware)
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
290
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
291 then additionally:
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
292
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
293 fsio> upload-subtree rfbin /gsm/rf
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
294 fsio> write-charging-config /opt/freecalypso/charging/c1xx/standard
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
295
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
296 The last two commands are new with the 2018-01 revision of the FC-to-C1xx
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
297 xenotransplantation procedure. The upload-subtree command uploads the RF
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
298 calibration values which you had extracted earlier with c1xx-calextr (the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
299 instructions assume that you are running from the same directory where the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
300 rfbin directory subtree had been created earlier), and this step is necessary
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
301 in order for your phone to continue to transmit at the correct power levels
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
302 after the conversion. The write-charging-config command uploads the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
303 configuration settings for the FCHG battery charging driver, without which it
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
304 cannot charge the battery; you must have the charging config files from the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
305 fc-battery-conf tree installed under /opt/freecalypso in order for this command
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
306 to work as given.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
307
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
308 It needs to be noted that the battery charging config settings uploaded with
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
309 fc-fsio write-charging-config take effect only on the next boot cycle of the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
310 firmware, i.e., until the next reboot after the write-charging-config operation,
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
311 the firmware won't charge the battery even if there is a charging power source
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
312 plugged in.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
313
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
314 After you've initialized your FFS as above, you should exit fc-fsio, and your
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
315 next steps will depend on which fw configuration you are playing with. If it's
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
316 the sans-UI pseudo-modem configuration, run fc-shell and try some AT commands:
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
317
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
318 AT+CMEE=2 -- enable verbose error responses
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
319 AT+CFUN=1 -- enable radio and SIM interfaces
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
320 AT+COPS=0 -- register to the default GSM network
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
321
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
322 When you are done, you can power the phone off by sending a 'poweroff' command
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
323 through fc-shell, or you can kill rvinterf and wait for the firmware to power
510
682955c407b4 doc/C1xx-Howto: parenthesis fix and update for shorter keepalive timer
Mychaela Falconia <falcon@freecalypso.org>
parents: 457
diff changeset
324 off by the keepalive timeout after some 15 to 20 s.
383
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
325
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
326 If you are playing with the UI demo firmware, after you have initialized your
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
327 FFS, you can power the phone off with the power button, insert a SIM, power it
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
328 back on and play with the primitive UI.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
329
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
330 Updating from previous versions
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
331 ===============================
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
332
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
333 If you had previously initialized your aftermarket FFS using an earlier version
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
334 of these instructions, before we added the RF calibration and charging config
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
335 upload steps, you need to add these bits to your FFS. Update to the latest FC
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
336 host tools, extract the factory RF calibration values from a dump of your
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
337 phone's flash with c1xx-calextr, add the battery charging config files to your
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
338 /opt/freecalypso installation, boot the phone with rvinterf, get in with fc-fsio
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
339 and run the last two upload-subtree and write-charging-config commands as above.
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
340
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
341 Recalibration
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
342 =============
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
343
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
344 In the interest of completeness, it needs to be noted that extracting Motorola's
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
345 original factory RF calibration values and reusing them for FreeCalypso is not
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
346 the only way: the other alternative is to perform a fresh calibration using a
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
347 Rohde&Schwarz CMU200 RF test machine and FreeCalypso RF calibration software
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
348 (fc-rfcal-tools). This approach will yield superior results, but the
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
349 requirement of having a CMU200 instrument which is itself properly calibrated
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
350 and a cabling setup with the right adapters whose insertion loss at particular
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
351 GSM frequencies is precisely known makes this approach feasible only for
43dbedde9d80 doc/C1xx-Howto written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
352 professional FreeCalypso service shops, not for ordinary individual users.