FreeCalypso > hg > freecalypso-citrine
annotate doc/Compal-Howto @ 46:38cf7fa65976
sprintf/float.c: rounding corner case bug
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 29 Sep 2017 03:23:01 +0000 |
parents | cb00b90edaff |
children |
rev | line source |
---|---|
28
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 FreeCalypso Citrine firmware on Mot C11x/12x and C139/140 families |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 ================================================================== |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 NOTE: this write-up refers specifically to our work-in-progress Citrine fw. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 The tcs211-c139 hack which we have produced in late 2015 is an entirely |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 different animal. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 Unlike tcs211-c139, Citrine can run equally "well" on both our preferred |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 C139/140 platform and the more primitive C11x/12x, but this fw is currently |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 much more limited: |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 * tcs211-c139 includes TI's demo/prototype UI code and an LCD driver that works |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 with C139/140 LCD hardware; Citrine currently has no UI code at all, |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 expecting control via AT commands via the same serial cable you use for |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 flashing it. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 * TCS211 is TI's official production-quality firmware for the Calypso, whereas |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 our Citrine fw is only beginning to catch up to it - see the Current_Status |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 article for more information. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 The phones in this family have very little RAM: 256 KiB of Calypso on-chip RAM |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 (IRAM) on all variants, plus another 256 KiB of board-level RAM (XRAM) on |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 C11x/12x or 512 KiB of XRAM on C139/140. The tcs211-c139 port uses almost all |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 available IRAM and XRAM on the C139, hence porting it to C11x with even less |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 RAM was completely out of the question. Citrine currently has a lot less |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 functionality integrated, which naturally translates to lower memory |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 requirements - hence it is possible to build for the C11x. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 Because RAM is so precious on these feeble targets, running our own fw on them |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 absolutely requires flashing - fc-xram is not an option. Furthermore, we cannot |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 use an FFS-in-RAM configuration like we do on large-XRAM targets, and Motorola's |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 original FFS (flash file system) on these phones is not suitable for our needs - |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 unlike the situation on Openmoko modems. Therefore, we need to create and |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 maintain our own aftermarket FFS in a region of the device's flash memory which |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 we arbitrarily choose ourselves. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 If you are going to play with FreeCalypso firmwares on Mot C1xx targets, we |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 recommend that you devote a phone specifically for FreeCalypso and have another |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 phone to charge batteries. The process of flashing our firmware and creating |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 and maintaining the necessary aftermarket FFS on these targets is quite |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 involved, hence flashing a given phone back and forth between FreeCalypso and |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 Mot/Compal's official firmwares would be a total pita. However, none of our |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 firmwares (neither this one nor tcs211-c139) currently has working battery |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 charging code, hence you will need to use another phone running one of the |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 official fw versions to charge batteries. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 Compiling |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 ========= |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 The starting configuration file for building Citrine for targets in this family |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 is configs/c139-gsm-flash. If your phone is a C139 or C140, this default |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 config can be used as-is, although you are always welcome to edit it to taste. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 If your phone is C11x or C12x, change the target setting from c139 to c11x. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 The two numbers on the 'feature aftermarket-ffs' line select the region of |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 flash where our aftermarket FFS will be placed. The default configuration |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 places our FFS in the region from 0x3C0000 through 0x3EFFFF. This configuration |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 is recommended because: |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 * it does not conflict with the FFS maintained by Mot/Compal's fw (the two |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 locations are different), eliminating the possibility of one firmware trying |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 to use the FFS created by the other; |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 * it is placed at the very end of the flash (or rather at the end of the main |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 flash zone with 64 KiB sectors), maximizing the room available for the |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 firmware code image. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 NOTE 1: our aftermarket FFS code cannot use 8 KiB flash sectors at the chip's |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 highest addresses. Therefore, the sectors with factory data (which we don't |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 know how to grok) are safely left untouched by our fw. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 NOTE 2: if your phone is a C11x/12x variant with 2 MiB of flash (some have |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 2 MiB, others have 4 MiB), directing the firmware to put its FFS at 0x3C0000 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 will result in it being at 0x1C0000 in reality - the highest address bit does |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 nothing when the flash chip only has 2 MiB. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 NOTE 3: if your phone is C139/140, keeping the aftermarket FFS at 0x3C0000 is |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 doubly recommended as that is the location used by our tcs211-c139 build. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 Flashing |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 ======== |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 The flashing procedures can be divided into two parts: the steps which you need |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 to perform only once when you first convert a given phone from Mot/Compal's fw |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 to FreeCalypso vs. the steps which you need to perform each time you wish to |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 flash another image you just compiled. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 If you are starting with a "virgin" phone that never ran FreeCalypso before, |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 you will need to start by breaking in with fc-loadtool and possibly tfc139 - |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 see the Compal-unlock article in the FreeCalypso host tools package for more |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 details. Once you are in with loadtool and have made a backup of your original |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 flash content, your first step will be to reflash sector 0 (the dangerous one) |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 with a version of the bootloader code that has been patched to transfer control |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 to the main fw image in the way we need: |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 loadtool> flash erase-program-boot compal-flash-boot-for-fc.bin |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 The compal-flash-boot-for-fc.bin code image can be downloaded here: |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 ftp://ftp.freecalypso.org/pub/GSM/FreeCalypso/compal-flash-boot-for-fc.bin |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 It was made from one of Mot/Compal's original versions by applying a binary |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 patch to it; the source for this patch can be found in the retired |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 freecalypso-sw source repository on Bitbucket. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 This step of replacing the bootloader needs to be done only once - you don't |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 need to reflash this dangerous sector again when you reflash the main fw image. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 The patched FreeCalypso bootloader is also the same for both the present Citrine |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 fw and tcs211-c139. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 The next step is to flash the main firmware image which you have just compiled: |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 loadtool> flash erase 0x10000 0x160000 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 loadtool> flash program-bin 0x10000 finlink/flashImage.bin |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 Note that the main fw image is flashed at 0x10000 on these targets. It is |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 flashed at 0 on sane targets with the Calypso boot ROM enabled in the hardware, |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 but Compal phones have malicious wiring in their PCBs that makes them brickable |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 and imposes the requirement of having working boot code in sector 0 at all |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 times, with the main fw image pushed down to 0x10000. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 Finally, you should erase the flash region which you have allocated for the |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 aftermarket FFS: |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 loadtool> flash erase 0x3C0000 0x30000 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 or if your phone only has 2 MiB of flash: |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 loadtool> flash erase 0x1C0000 0x30000 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 Now you can close your loadtool session with an exit command, and the phone |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 will be cleanly powered off. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 The next time you need to reflash another FreeCalypso image, get in with |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 loadtool like this: |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 fc-loadtool -h compal /dev/ttyXXX |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 There is no more need for tfc139 or for the inefficient -c 1003 option to |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 fc-loadtool once you've replaced the bootloader with compal-flash-boot-for-fc. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 Once you are in loadtool, just reflash the main fw image, and leave the |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 bootloader and FFS sectors alone. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 First boot of the firmware |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 ========================== |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 Connect the serial cable, but instead of running fc-loadtool, run rvinterf. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 Press the red power button on the phone briefly just like you would for |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 fc-loadtool entry. Because there is no fc-loadtool running on the host end of |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 the serial cable, the boot path will *not* be diverted in the bootloader, and |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 the main fw image will run - and this time it will be the FreeCalypso firmware |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 you have compiled and flashed. The phone's LCD will remain dark as there is no |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 LCD driver code in this firmware, but you will see trace output in the rvinterf |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 window, telling you that the fw is running. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 Before you do anything else, you will need to run fc-fsio and initialize the |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 aftermarket FFS for our firmware. When running on Openmoko GTA0x and Pirelli |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 DP-L10 targets, our fw can use the original factory-programmed IMEISV and RF |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 calibration values (partial in the case of the Pirelli), but on Mot/Compal |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 phones these factory data are stored in a format which we haven't been able to |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 grok, hence we cannot make use of them. Therefore, you will have to set your |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 own IMEISV manually, and the radio will run uncalibrated. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 Initialize your aftermarket FFS as follows: |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 fsio> format / |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 fsio> mk-std-dirs |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 fsio> set-imeisv fc XXXXXXXX-YYYYYY-ZZ (punctuation optional, place anywhere) |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 fsio> set-rfcap dual-eu (if you have 900+1800 MHz hardware) |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 or |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 fsio> set-rfcap dual-us (if you have 850+1900 MHz hardware) |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 After you've initialized your FFS as above, you can exit fc-fsio, run fc-shell |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 and try some AT commands: |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 AT+CMEE=2 -- enable verbose error responses |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 AT+CFUN=1 -- enable radio and SIM interfaces |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 AT+COPS=0 -- register to the default GSM network |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 When you are done, you can power the phone off by sending a 'poweroff' command |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 through fc-shell. The only other way is to yank the battery, and doing the |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 latter is recommended anyway: when a phone with the present hack-firmware |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 flashed into it is powered off but still has the battery inserted, even a |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 momentary accidental press of the power button will cause it to power on and |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 boot, but there will be absolutely no visual indication, as the LCD stays dark. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 FreeCalypso GSM firmware on Mot C155/156 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 ======================================== |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 One major difference between Mot C155/156 and the other two subfamilies is that |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 C155 and C156 have 2 MiB of XRAM, which is large enough to allow our small-ish |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 experimental firmware to run entirely from RAM, without flashing, just like on |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 the Pirelli DP-L10. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 If you are ready to play with our experimental GSM pseudo-modem fw on your |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 C155/156, the steps are as follows: |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 1. Build the firmware in the c155-gsm-ramonly configuration - see the |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 Compiling document for more details. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 2. Connect your serial or USB-serial cable as usual; the phone needs to be |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 powered off at this point. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 3. Run a command like the following: |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 fc-xram -h c155 /dev/ttyUSB0 finlink/ramImage.srec rvinterf |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 If you are using an official FreeCalypso USB-serial cable from UberWaves, |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 you can speed up the code download by switching the serial line to 812500 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 baud: |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 fc-xram -h c155 -B 812500 /dev/ttyUSB0 finlink/ramImage.srec rvinterf |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 Adjust the paths to your /dev/ttyUSBx or other serial device and your |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 ramImage.srec as appropriate, and add rvinterf logging or other options as |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 desired. Specifying rvinterf on the fc-xram command line directs fc-xram to |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 exec rvinterf and pass the serial channel to it immediately as soon as the |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 code image has been loaded into target RAM and jumped to; this direct |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 passing of the serial channel from fc-xram to rvinterf is appropriate |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 because the loaded fw will immediately start emitting binary trace packets |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 in TI's RVTMUX format. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 4. Momentarily press the red power button on the phone. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 Once the phone executes its boot code with fc-xram running, the boot path will |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 be diverted and our experimental firmware will be loaded into target device RAM |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 and jumped to. Our fw will now run, and the rvinterf process on the host will |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 maintain communication with it. |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 Just like on the lower Mot/Compal subfamilies, we don't know how to extract the |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 factory-programmed IMEI and RF calibration data from Mot/Compal's proprietary |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 flash data structures, therefore, when our RAM-based firmware boots, it has no |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 IMEI and no RF calibration. Because this RAM-only configuration leaves the |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 flash completely alone and does not create a non-volatile FFS there, you will |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 need to set the IMEISV and RFCAP with fc-fsio on each boot. See the fc-fsio |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 commands given earlier, but skip the format command as the RAM-based FFS is |
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 automatically formatted - but not otherwise initialized - upon firmware boot. |