comparison doc/C1xx-flashing @ 24:b71216a5f3c3

doc/C1xx-flashing: proofreading fixes
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 11 Jun 2023 19:11:47 +0000
parents 2df287f4722c
children
comparison
equal deleted inserted replaced
23:2df287f4722c 24:b71216a5f3c3
209 exec fc-flash-script 209 exec fc-flash-script
210 210
211 In this step you are basically telling fc-loadtool to execute the command script 211 In this step you are basically telling fc-loadtool to execute the command script
212 that was prepared in step 4. This script performs all necessary flash erasure 212 that was prepared in step 4. This script performs all necessary flash erasure
213 and programming operations - having a previously prepared script do everything 213 and programming operations - having a previously prepared script do everything
214 in one go greatly reduced the chances of leaving your phone in an invalid 214 in one go greatly reduces the chances of leaving your phone in an invalid
215 partially flashed state due to operator distraction or other human errors. 215 partially flashed state due to operator distraction or other human errors.
216 Once the flashing script finishes executing, exit loadtool and your phone will 216 Once the flashing script finishes executing, exit loadtool and your phone will
217 power off. Next time this reflashed phone executes hardware switch-on (power 217 power off. Next time this reflashed phone executes hardware switch-on (power
218 button press or charging power plug-in while off), your firmware will boot! 218 button press or charging power plug-in while off), your firmware will boot!
219 219
226 226
227 IMPORTANT NOTE: Do NOT attempt to transplant complete flash images (not just 227 IMPORTANT NOTE: Do NOT attempt to transplant complete flash images (not just
228 the firmware portion, but the whole thing) from one phone to another! For 228 the firmware portion, but the whole thing) from one phone to another! For
229 maximal restorative power, the loadtool command script generated by 229 maximal restorative power, the loadtool command script generated by
230 c1xx-analyze-image (named restore-flash) restores the entire flash image, every 230 c1xx-analyze-image (named restore-flash) restores the entire flash image, every
231 bit without exceptions - but this quality also makes the {flashdump.bin + 231 bit without exceptions - but this property also makes the {flashdump.bin +
232 restore-flash script} package non-transplantable, i.e., it should NOT be 232 restore-flash script} combo non-transplantable, i.e., it should NOT be
233 programmed into a different phone. Each individual phone has its own unique RF 233 programmed into a different phone. Each individual phone has its own unique RF
234 calibration values and other factory tunings, stored in small sectors at the end 234 calibration values and other factory tunings, stored in small sectors at the end
235 of the flash (after the firmware), and these bits should never be mindlessly 235 of the flash (after the firmware), and these bits should never be mindlessly
236 transplanted from one phone to another. 236 transplanted from one phone to another.
237 237
253 in the present package. 253 in the present package.
254 254
255 Because the boot sector still needs to be rewritten (the command that does so 255 Because the boot sector still needs to be rewritten (the command that does so
256 is part of the generated fc-flash-script and restore-flash scripts), a very 256 is part of the generated fc-flash-script and restore-flash scripts), a very
257 small bricking vulnerability window still exists - but this window is on the 257 small bricking vulnerability window still exists - but this window is on the
258 order of a few tens of milliseconds. Furthermore, in order for the phone to 258 order of some milliseconds to a few seconds at most. (The bricking-vulnerable
259 get bricked, the unfortunate event happening in that short vulnerability window 259 operation completes in an imperceptible time in my actual experience, but Intel
260 would have to be someone physically yanking the battery out of the phone at 260 flash datasheet says it can take up to 5 s.) Furthermore, in order for the
261 that exact moment, or the battery running out or falling out, again at that 261 phone to get bricked, the unfortunate event happening in that short
262 exact moment in a time window that spans maybe 100 ms at the most. There is 262 vulnerability window would have to be someone physically yanking the battery
263 absolutely NO bricking vulnerability window in terms of the serial cable 263 out of the phone, or the battery running down or falling out - simply
264 disconnecting or the host machine crashing - those events can happen at any 264 disconnecting the serial cable or killing fc-loadtool process on the driving
265 moment in time and do NOT create bricking danger. 265 host during this window will NOT cause bricking, as the entire sequence of
266 operations that fall into the bricking vulnerability window happens entirely
267 inside loadagent without needing further host communication once started.
266 268
267 However, if the flashing process as a whole (on the order of a few minutes if 269 However, if the flashing process as a whole (on the order of a few minutes if
268 you are using "slow" 115200 baud rate) gets interrupted for whatever reason, 270 you are using "slow" 115200 baud rate) gets interrupted for whatever reason,
269 you will get a partially flashed phone, which may at first glance appear to be 271 you will get a partially flashed phone, which may at first glance appear to be
270 bricked. But as long as the boot sector is good - and it will be good if you 272 bricked. But as long as the boot sector is good - and it will be good if you
272 recover from a flashing process that got interrupted in the middle, follow this 274 recover from a flashing process that got interrupted in the middle, follow this
273 sequence: 275 sequence:
274 276
275 * Return the phone to its powered-off state by removing and reinserting the 277 * Return the phone to its powered-off state by removing and reinserting the
276 battery. Very important: do NOT press the power button or plug in charging 278 battery. Very important: do NOT press the power button or plug in charging
277 power after reinserting battery until instructed to do so below; if you mess 279 power after reinserting the battery until instructed to do so below; if you
278 up, remove the battery again, reinsert it, and be careful this time to NOT 280 mess up, remove the battery again, reinsert it, and be careful this time to
279 press the power button prematurely. 281 NOT press the power button prematurely.
280 282
281 * With the phone off and the battery freshly removed and reinserted, connect 283 * With the phone off and the battery freshly removed and reinserted, connect
282 the headset jack serial cable and run fc-loadtool with the right arguments. 284 the headset jack serial cable and run fc-loadtool with the right arguments.
283 285
284 * Momentarily press the power button. 286 * Momentarily press the power button.