FreeCalypso > hg > fc-magnetite
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 |
| 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. |
