annotate doc/C1xx-flashing @ 23:2df287f4722c

doc/C1xx-flashing: article written
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 11 Jun 2023 09:55:27 +0000
parents
children b71216a5f3c3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 Whether you are interested in FreeCalypso VPM firmware (the main use case for
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 FC aftermarket fw that has actual utility value for GSM network testing etc) or
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 the UI-enabled FC firmware for Mot C139 that is currently just a preview (and
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 is not expected to advance to actual usability any time soon), either way these
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 firmwares need to be flashed. All FC firmware offerings for Mot C1xx have
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 always required flashing, and various instructions have been published in the
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 past. However, old FC-on-C1xx flashing instructions should not be used with
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 current firmware versions, because of these new developments:
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 * Our current fw relies even more than it did before on having certain files in
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 FFS, hence populating the flash with not only the fw image, but also the FFS
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 content it needs has become more important than ever before.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 * For FC-on-C1xx configurations with 4 MiB flash, including the most important
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 case of C139, the FFS location changed from the old one in Magnetite and
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 Selenite to a new one in Tourmaline. Therefore, old FFS instructions have to
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 be invalidated.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 The present fc-am-toolkit package provides a new way to flash FC firmware images
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 and initialize their associated FFS in one go, and this document provides
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 instructions.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 Step 1: install software on your host machine
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 =============================================
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 The host machine (PC or laptop) which you are going to use to drive the phone
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 flashing process will need to have the following FreeCalypso software packages
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 installed on it:
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 1) FC host tools base package:
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 ftp://ftp.freecalypso.org/pub/GSM/FreeCalypso/fc-host-tools-latest.tar.bz2
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 2) FFS data bundle add-on:
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 ftp://ftp.freecalypso.org/pub/GSM/FreeCalypso/ffs-data-bundle-latest.tar.bz2
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 3) The present fc-am-toolkit package.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 All 3 packages install all of their files under the /opt/freecalypso directory
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 tree defined by the Mother, and you only need to do this host software
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 installation once (or when updates come out), irrespective of how many phones
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 of various kinds you are going to flash or otherwise work with.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 Step 2: read and save your phone's current flash
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 ================================================
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 You will need to create a dedicated project directory for each individual phone
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 you are going to reflash to FreeCalypso, or on which you may contemplate the
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 possibility of such reflashing. This per-phone project directory will contain
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 a record of the phone's IMEI, a dump (backup) of the original flash content,
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 bits of data extracted from that flash dump with tools in the present package,
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 generated command scripts for flashing FC firmware and for restoring the
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 original flash, and some other script-generated files - read the shell script
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 code if you want to know the full details.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 In previous instructions I advised users to name this per-phone project
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 directory after the IMEI, i.e., to use the IMEI as the directory name. I no
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 longer recommend that approach, and it no longer makes sense with the current
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 fc-am-toolkit design as the IMEI will be stored in a text file inside the
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 per-phone project directory, rather than in the directory name. So please name
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 your project directories in whatever way makes sense for your situation.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 Once you have created your per-phone project directory, please cd into it, and
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 with that directory as current, run fc-loadtool as appropriate for your C1xx
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 phone model:
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 fc-loadtool -h compal /dev/ttyXXX -- for C11x/12x
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 fc-loadtool -h compal -c 1004 /dev/ttyXXX -- for C139/140
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 fc-loadtool -h c155 /dev/ttyXXX -- for C155/156
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 These simple instructions are valid for C1xx phones with unlocked bootloaders.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 If your bootloader is locked, you will need to break in with tfc139 instead.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 There are other documentation articles in FreeCalypso that describe tfc139
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 break-in method.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 These instructions also assume that you already know how to operate fc-loadtool
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 on a basic level. If not, here is a basic summary: to make an entry with
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 fc-loadtool, you need to start with the phone turned off - but the battery
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 needs to be inserted, and preferably have a full charge. You need to run the
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 fc-loadtool command shown above (change /dev/ttyXXX to the correct serial or
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 USB-serial device in your setup) with the cable connected between your PC/laptop
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 and your phone's headset jack _and with the phone turned off_. When you run
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 fc-loadtool in this state, it will sit there, waiting for PROMPT1 from the
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 phone's bootloader. Once fc-loadtool is running in that state and the cable is
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 correctly inserted on the phone end, press the red power button on the phone -
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87 a momentary press is sufficient and recommended.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 Once you have landed at the loadtool> prompt, make a dump of your flash as
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 follows:
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 loadtool> flash dump2bin flashdump.bin
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 The dump file needs to be named flashdump.bin - at least in the case of C11x/12x
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95 subfamily, there is one script in the fc-am-toolkit shell script hierarchy that
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 looks for this original flash image under this specific name.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 Once the flash dump operation finishes, issue this additional command:
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 loadtool> flash compal-imei IMEI
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 This command tells fc-loadtool to retrieve the phone's factory IMEI from OTP
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 cells (the flash chip's OTP protection register) and save it into a text file
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 named "IMEI". The file name is important - scripts that follow will look for
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 the IMEI in the file with this name.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 IMEI retrieval needs to be done with this extra command because of the location
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 where this factory datum is stored. On Compal phones the factory IMEI is not
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 stored anywhere at all in the flash image (in the main byte array held by the
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110 flash memory chip), instead it is stored in an out-of-band location (OTP cells,
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111 meaning physically immutable once written) in the flash chip's protection
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 register. Therefore, this factory IMEI cannot be extracted from a captured
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 flash image - instead it needs to be read in a separate explicit step and saved
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 alongside the flash image.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 Once you have captured both flashdump.bin and IMEI, close your fc-loadtool
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117 session by issuing an "exit" command at the loadtool> prompt. The phone will
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118 return to its powered-off state.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 Step 3: analyze the flash image you just captured
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121 =================================================
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 Run this command:
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 c1xx-analyze-image flashdump.bin
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 This command runs a shell script, which then invokes several different programs
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 that analyze various aspects of the flash image. Your current directory when
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129 running the above script command needs to be the per-phone project directory,
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130 and the script will create the following items:
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132 * A subdirectory named rfasc will contain extracted RF calibration values in
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133 FreeCalypso RF table ASCII format, which is both human- and machine-readable.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134 This directory is not used by any subsequent fc-am-toolkit scripts, but if
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135 you have the mind of an engineer, you may find its content interesting.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
137 * Another subdirectory named rfbin will contain the same data as rfasc, but in
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
138 the firmware's internal binary format. This subdir will be used by subsequent
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139 scripts.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141 * A text file named restore-flash will contain a generated command script for
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 fc-loadtool - executing this script will restore the flash image in
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143 flashdump.bin back into your phone's flash, i.e., restore your phone back to
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 its original state after playing with FreeCalypso.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146 Step 4: prepare FC firmware flashing command script
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147 ===================================================
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149 This step is the first one where you need the FC firmware image you seek to
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150 flash - previous steps didn't need one. You can flash a firmware image which
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151 you compiled yourself from source, or an official build you downloaded as part
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 of a tarball release - either way, you need the fwimage.bin file that
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153 corresponds to your hardware model (c11x, c139 or c155) and your desired
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154 functional configuration as in VPM or UI preview firmware.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 VERY IMPORTANT: You need to be very certain of which C1xx subfamily your phone
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157 belongs to; the 3 subfamilies known to us are C11x/12x, C139/140 and C155/156.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158 Firmware images are NOT interchangeable between these 3 hw subfamilies! C11x
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159 and C139 are distinguished by their LCD type (monochrome on C11x, color on
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160 C139); C155/156 have a distinct visual appearance, but they also have 8 MiB
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161 flash which no other subfamily in this set uses, and our c1xx-analyze-image
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162 script looks at the image size. Verbose notes printed by that script should
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163 agree with your own knowledge of which phone subfamily you are working with -
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164 if there is a discrepancy, STOP RIGHT HERE and ask for expert help.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166 Once you have confirmed your phone model/subfamily and selected the firmware
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167 image you are going to flash, execute one of the following shell scripts:
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
168
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
169 c11x-gen-fc-script path/to/fwimage.bin
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
170 c139-gen-fc-script path/to/fwimage.bin
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
171 c155-gen-fc-script path/to/fwimage.bin
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
173 Each script variant works the same way for its respective C1xx subfamily, and
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174 all have the same invokation rules: the current directory needs to be your
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175 per-phone project directory containing flashdump.bin and IMEI files and the
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176 rfbin subdirectory produced in steps 2 and 3, and the script adds to this
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177 project directory.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179 The main result of executing the script command above will be a text file named
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
180 fc-flash-script; this text file is a command script for fc-loadtool that
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
181 reflashes your phone to the FreeCalypso fw image you have selected. The fw
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
182 image pathname you gave to {c11x,c139,c155}-gen-fc-script will be contained
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
183 inside the generated fc-flash-script - but in addition to referencing that fw
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
184 image, the generated loadtool command script also contains instructions for
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
185 programming fc-ffs.bin into the phone along with the firmware. This fc-ffs.bin
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
186 image is also generated by the shell script you just ran, and it is specific to
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
187 your individual phone: your IMEI and extracted RF calibration values go into it.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
188
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
189 Step 5: actually flash your phone
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
190 =================================
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
191
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
192 This step is the actual surgery - all previous steps merely manipulated data in
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
193 files in your project directory on your host machine. To perform the flashing
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
194 surgery, do the following:
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
195
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
196 * Using the phone's original firmware as the charging agent (the thing you plug
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
197 in is not the charger, it is the charging power source; the charger circuit
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
198 is inside the phone, and the firmware is the entity that controls the flow of
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
199 current from the charging power source into the battery), make sure that your
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
200 battery is fully charged. The flashing process does not require a ton of
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
201 battery power, but the last thing you want is to have your battery run out
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
202 while you are in the middle of the flashing operation.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
203
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
204 * Make entry with fc-loadtool just like you did in step 2, when you made a dump
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
205 of the original flash content.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
206
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
207 * Once you are at the loadtool> prompt, issue this command:
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
208
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
209 exec fc-flash-script
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
210
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
211 In this step you are basically telling fc-loadtool to execute the command script
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
212 that was prepared in step 4. This script performs all necessary flash erasure
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
213 and programming operations - having a previously prepared script do everything
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
214 in one go greatly reduced the chances of leaving your phone in an invalid
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
215 partially flashed state due to operator distraction or other human errors.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
216 Once the flashing script finishes executing, exit loadtool and your phone will
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
217 power off. Next time this reflashed phone executes hardware switch-on (power
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
218 button press or charging power plug-in while off), your firmware will boot!
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
219
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
220 Restoring the original firmware and full flash content
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
221 ======================================================
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
222
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
223 To restore the flash to its original state, do the same procedure as above, but
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
224 run 'exec restore-flash' instead of 'exec fc-flash-script' - just execute a
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
225 different flashing command script.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
226
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
227 IMPORTANT NOTE: Do NOT attempt to transplant complete flash images (not just
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
228 the firmware portion, but the whole thing) from one phone to another! For
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
229 maximal restorative power, the loadtool command script generated by
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
230 c1xx-analyze-image (named restore-flash) restores the entire flash image, every
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
231 bit without exceptions - but this quality also makes the {flashdump.bin +
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
232 restore-flash script} package non-transplantable, i.e., it should NOT be
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
233 programmed into a different phone. Each individual phone has its own unique RF
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
234 calibration values and other factory tunings, stored in small sectors at the end
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
235 of the flash (after the firmware), and these bits should never be mindlessly
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
236 transplanted from one phone to another.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
237
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
238 The firmware portion (part of the flash up to a certain model-dependent offset)
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
239 CAN be transplanted from one phone to another, and such copying of certain
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
240 "good" official Motorola fw versions is often quite useful - but such procedures
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
241 are a different topic from what the present document is addressing, which is
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
242 providing less expert users with a fool-proof way to play with FreeCalypso fw
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
243 and then restore their phones to the original state.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
244
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
245 Flash process interruptions and recovery
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
246 ========================================
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
247
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
248 All C1xx phones are brickable: if you give wrong flash write commands to
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
249 fc-loadtool, it is quite easy to brick the phone's boot sector beyond recovery.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
250 As a departure from previous FreeCalypso flashing instructions, in the present
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
251 flow you never enter any flash commands manually in loadtool - instead you
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
252 execute a loadtool command script that was generated by official shell scripts
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
253 in the present package.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
254
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
255 Because the boot sector still needs to be rewritten (the command that does so
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
256 is part of the generated fc-flash-script and restore-flash scripts), a very
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
257 small bricking vulnerability window still exists - but this window is on the
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
258 order of a few tens of milliseconds. Furthermore, in order for the phone to
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
259 get bricked, the unfortunate event happening in that short vulnerability window
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
260 would have to be someone physically yanking the battery out of the phone at
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
261 that exact moment, or the battery running out or falling out, again at that
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
262 exact moment in a time window that spans maybe 100 ms at the most. There is
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
263 absolutely NO bricking vulnerability window in terms of the serial cable
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
264 disconnecting or the host machine crashing - those events can happen at any
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
265 moment in time and do NOT create bricking danger.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
266
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
267 However, if the flashing process as a whole (on the order of a few minutes if
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
268 you are using "slow" 115200 baud rate) gets interrupted for whatever reason,
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
269 you will get a partially flashed phone, which may at first glance appear to be
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
270 bricked. But as long as the boot sector is good - and it will be good if you
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
271 haven't hit the worst-case scenario as above - you can still recover. To
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
272 recover from a flashing process that got interrupted in the middle, follow this
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
273 sequence:
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
274
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
275 * Return the phone to its powered-off state by removing and reinserting the
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
276 battery. Very important: do NOT press the power button or plug in charging
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
277 power after reinserting battery until instructed to do so below; if you mess
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
278 up, remove the battery again, reinsert it, and be careful this time to NOT
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
279 press the power button prematurely.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
280
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
281 * With the phone off and the battery freshly removed and reinserted, connect
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
282 the headset jack serial cable and run fc-loadtool with the right arguments.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
283
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
284 * Momentarily press the power button.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
285
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
286 fc-loadtool should now make its entry and land you at the loadtool> prompt.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
287 At this point you re-issue the 'exec fc-flash-script' or 'exec restore-flash'
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
288 command as per the direction of desired transition, and hopefully complete this
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
289 time.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
290
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
291 Battery charging
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
292 ================
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
293
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
294 If your phone happens to be in the messed-up state caused by interrupted
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
295 flashing, charging will not work in this state: you can only use whatever power
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
296 is left in the battery, or swap in another battery, perhaps charged in another
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
297 phone. This consideration is the main reason why you should fully charge your
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
298 battery before starting a firmware flashing operation. Don't ever plug the
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
299 charging power source into a phone with (temporarily) messed-up firmware: it
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
300 won't do any actual charging (which requires charging control managed by fw),
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
301 but it will mess up your ability to make fc-loadtool entry for recovery.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
302
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
303 One of the benefits of the current flashing procedure, with the firmware and a
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
304 fully prepared FFS image flashed in one go, is that once converted to
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
305 FreeCalypso, the phone regains its charging ability right away. With previous
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
306 instructions that called for flashing just the firmware and then formatting and
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
307 initializing FFS with fc-fsio, there was a longer window in which the phone is
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
308 not capable of charging its battery.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
309
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
310 When the phone is in flashed FC firmware state, flashed correctly by following
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
311 the present instructions, it _is_ capable of charging: simply plug in charging
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
312 power, and charging will proceed much like it does in standard phones. This
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
313 aspect holds for VPM firmwares too, not just the UI-enabled version - although
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
314 the only way to see the progress state of the charging process is by watching
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
315 the debug trace output or querying the firmware with AT%CBC (a private AT
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
316 command) and knowing how to interpret the cryptic result it returns.
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
317
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
318 A warning is needed, however: FC-fw-driven battery charging on C1xx phones is
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
319 not carefully tuned, and what our fw aims for as "full charge" may actually be
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
320 either an undercharge or an overcharge. Significant overcharge appears to be
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
321 unlikely - the available evidence suggests that undercharge is a little more
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
322 likely - but the possibility of overcharge (which is very bad for battery
2df287f4722c doc/C1xx-flashing: article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
323 health) cannot be ruled out. You've been warned!