comparison doc/C1xx-Howto @ 594:9327935d8549

doc/C1xx-Howto: various updates
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 17 Mar 2019 04:52:06 +0000
parents 4f378f6c5efa
children 7ca17426c890
comparison
equal deleted inserted replaced
593:d25f6e216566 594:9327935d8549
14 14
15 Firmware flashing on Mot C1xx phones is accomplished through the headset jack 15 Firmware flashing on Mot C1xx phones is accomplished through the headset jack
16 via a special cable. There is no need to disassemble the phone in any way or 16 via a special cable. There is no need to disassemble the phone in any way or
17 to do any soldering or other hardware surgery, but you will need a host system 17 to do any soldering or other hardware surgery, but you will need a host system
18 to run the multitude of special software tools that are involved in the 18 to run the multitude of special software tools that are involved in the
19 procedure. You will need to begin by installing FreeCalypso host tools: the 19 procedure. You will need to begin by installing FreeCalypso host tools; the
20 current version of our FC-to-C1xx xenotransplantation procedure for the lower 20 current version as of this writing is fc-host-tools-r10:
21 C1xx subfamilies (the additions from the previous version are RF calibration 21
22 data migration and battery charging configuration) requires fc-host-tools-r8 or 22 ftp://ftp.freecalypso.org/pub/GSM/FreeCalypso/fc-host-tools-r10.tar.bz2
23 later, or if you are working on a C155 or C156 phone, you will need our very
24 latest fc-host-tools-r9a release:
25
26 ftp://ftp.freecalypso.org/pub/GSM/FreeCalypso/fc-host-tools-r9a.tar.bz2
27 23
28 You will also need our battery charging configuration files: 24 You will also need our battery charging configuration files:
29 25
30 https://bitbucket.org/falconian/fc-battery-conf 26 https://bitbucket.org/falconian/fc-battery-conf
31 27
172 firmware to FreeCalypso (as opposed to updating from an earlier FC firmware 168 firmware to FreeCalypso (as opposed to updating from an earlier FC firmware
173 version), you will also need the compal-flash-boot-for-fc.bin bootloader image 169 version), you will also need the compal-flash-boot-for-fc.bin bootloader image
174 in addition to the main fw image you just built: 170 in addition to the main fw image you just built:
175 171
176 ftp://ftp.freecalypso.org/pub/GSM/FreeCalypso/compal-flash-boot-for-fc.bin 172 ftp://ftp.freecalypso.org/pub/GSM/FreeCalypso/compal-flash-boot-for-fc.bin
173
174 (If you are working with a binary release package that has prebuilt firmware
175 images, the compal-flash-boot-for-fc.bin image is also included in the
176 package.)
177 177
178 Mot C1xx phones are brickable - because the Calypso boot ROM is disabled by PCB 178 Mot C1xx phones are brickable - because the Calypso boot ROM is disabled by PCB
179 wiring, the ability to reflash a phone with new firmware critically depends on 179 wiring, the ability to reflash a phone with new firmware critically depends on
180 there being a particular kind of boot code in flash sector 0 at all times - a 180 there being a particular kind of boot code in flash sector 0 at all times - a
181 particular kind of boot code that allows the boot process to be interrupted and 181 particular kind of boot code that allows the boot process to be interrupted and
301 301
302 If you have flashed a non-UI firmware version, the phone's LCD will remain dark 302 If you have flashed a non-UI firmware version, the phone's LCD will remain dark
303 as there is no LCD driver code in this firmware, but you will see trace output 303 as there is no LCD driver code in this firmware, but you will see trace output
304 in the rvinterf window, telling you that the fw is running. 304 in the rvinterf window, telling you that the fw is running.
305 305
306 Before you do anything else, you will need to run fc-fsio and initialize the 306 Before you do anything else, you will need to run fc-fsio (run it without the
307 aftermarket FFS for our firmware: 307 -p option to have it connect to your already-running rvinterf process) and
308 initialize the aftermarket FFS for our firmware:
308 309
309 fsio> format / 310 fsio> format /
310 fsio> mk-std-dirs 311 fsio> mk-std-dirs
311 fsio> set-imeisv fc XXXXXXXX-YYYYYY-ZZ (punctuation optional, place anywhere) 312 fsio> set-imeisv fc XXXXXXXX-YYYYYY-SV (see following section for the details)
312 fsio> set-rfcap dual-eu (if you have 900+1800 MHz hardware) 313 fsio> set-rfcap dual-eu (if you have 900+1800 MHz hardware)
313 or 314 or
314 fsio> set-rfcap dual-us (if you have 850+1900 MHz hardware) 315 fsio> set-rfcap dual-us (if you have 850+1900 MHz hardware)
315 316
316 then additionally: 317 then additionally:
334 fc-fsio write-charging-config take effect only on the next boot cycle of the 335 fc-fsio write-charging-config take effect only on the next boot cycle of the
335 firmware, i.e., until the next reboot after the write-charging-config operation, 336 firmware, i.e., until the next reboot after the write-charging-config operation,
336 the firmware won't charge the battery even if there is a charging power source 337 the firmware won't charge the battery even if there is a charging power source
337 plugged in. 338 plugged in.
338 339
340 Note regarding the IMEISV
341 =========================
342
343 The argument to the set-imeisv command in fc-fsio is a 16-digit IMEISV, not a
344 15-digit IMEI. The IMEI part of IMEISV (the first 14 digits) identifies the
345 physical hardware and is supposed to be immutable, whereas the two SV digits
346 are supposed to identify the software version, i.e., they are supposed to change
347 when the software version changes in a significant way. Motorola and Compal
348 did in fact use the SV digits as called for by the specs: their official
349 firmwares take the IMEI part of IMEISV from the factory-written per-unit vital
350 data records, and each fw version appends its own SV digits, different from one
351 version to the next.
352
353 When a Mot C1xx phone runs FreeCalypso as opposed to one of Motorola's official
354 fw versions, we need our own SV to identify our firmware as being distinct from
355 any of Motorola's original versions. The convention established by the Mother
356 of FreeCalypso is that the SV for FreeCalypso on Mot C1xx should be set to 98.
357
358 To transform the 15-digit IMEI of your Mot C1xx phone into the 16-digit IMEISV
359 to be entered in fc-fsio set-imeisv, perform the following two steps:
360
361 1) Drop the Luhn check digit - it is not included in the IMEISV form;
362 2) Add -98 to the remaining 14 content digits of the IMEI from the previous
363 step.
364
365 Exercising GSM functionality
366 ============================
367
339 After you've initialized your FFS as above, you should exit fc-fsio, and your 368 After you've initialized your FFS as above, you should exit fc-fsio, and your
340 next steps will depend on which fw configuration you are playing with. If it's 369 next steps will depend on which fw configuration you are playing with. If it's
341 the sans-UI pseudo-modem configuration, run fc-shell and try some AT commands: 370 the sans-UI pseudo-modem configuration, run fc-shell and try some AT commands:
342 371
343 AT+CMEE=2 -- enable verbose error responses 372 AT+CMEE=2 -- enable verbose error responses
344 AT+CFUN=1 -- enable radio and SIM interfaces 373 AT+CFUN=1 -- enable radio and SIM interfaces
345 AT+COPS=0 -- register to the default GSM network 374 AT+COPS=0 -- register to the default GSM network
375
376 Once you are connected to a network, you can dial and answer voice calls with
377 ATD and ATA commands, and you can use GSM 07.05 AT commands to send and receive
378 SMS. You can also use the quite capable SMS tools included in the FC host tools
379 package.
346 380
347 When you are done, you can power the phone off by sending a 'poweroff' command 381 When you are done, you can power the phone off by sending a 'poweroff' command
348 through fc-shell, or you can kill rvinterf or unplug the serial cable and wait 382 through fc-shell, or you can kill rvinterf or unplug the serial cable and wait
349 for the firmware to power off by the keepalive timeout after some 15 to 20 s. 383 for the firmware to power off by the keepalive timeout after some 15 to 20 s.
350 384
373 (fc-rfcal-tools). This approach will yield superior results, but the 407 (fc-rfcal-tools). This approach will yield superior results, but the
374 requirement of having a CMU200 instrument which is itself properly calibrated 408 requirement of having a CMU200 instrument which is itself properly calibrated
375 and a cabling setup with the right adapters whose insertion loss at particular 409 and a cabling setup with the right adapters whose insertion loss at particular
376 GSM frequencies is precisely known makes this approach feasible only for 410 GSM frequencies is precisely known makes this approach feasible only for
377 professional FreeCalypso service shops, not for ordinary individual users. 411 professional FreeCalypso service shops, not for ordinary individual users.
412
413 Restoring Motorola's original firmware
414 ======================================
415
416 If you have many phones of the same type, it is best to dedicate a particular
417 phone to FreeCalypso, as reflashing a phone back and forth is a royal pita.
418 However, if you have only one phone, then you don't have much choice except to
419 reflash it back and forth between Motorola's official fw and FreeCalypso, thus
420 instructions need to be provided.
421
422 Restoring original fw on the lower C1xx subfamilies
423 ---------------------------------------------------
424
425 Whether you are restoring the original fw version your phone came with or
426 flashing a different official fw version, you need to ensure that whichever fw
427 version you are flashing does not have its bootloader locked out. Examine your
428 fw image with a hex dump tool and look at the 4 bytes at location 0x2060. If
429 these 4 bytes are all FF, then you have an older fw version with no bootloader
430 locking capability - good. If these 4 bytes are 'DD DD DD DD' (0xDDDDDDDD
431 32=bit word), then your fw version does have bootloader locking capability, but
432 the lock is not activated. In this case you can still flash it, but you must
433 make sure that this 32-bit word at 0x2060 always remains equal to 0xDDDDDDDD,
434 otherwise your phone will be bricked. And finally if the 4 bytes at 0x2060 are
435 all zeros, then the bootloader lock is activated - DO NOT flash an image in
436 this state (you will brick your phone if you do), instead you need to patch
437 these 4 bytes to 0xDDDDDDDD with a hex editor and then flash the resulting
438 unlocked version.
439
440 Once you have verified that your to-be-flashed fw image is safe, you can flash
441 it as follows:
442
443 1) Get in with fc-loadtool:
444
445 fc-loadtool -h compal -c 1004 /dev/ttyXXX
446
447 The -c 1004 option is generally unnecessary if your phone runs FreeCalypso fw,
448 but it doesn't hurt to always include it - it only makes the fc-loadtool entry
449 process slower by about a second.
450
451 2) Once you are at the loadtool> prompt, issue the following commands:
452
453 if your phone is C139/140 or C11x/12x with 4 MiB flash:
454
455 loadtool> flash erase-program-boot mot-fw-image.bin 0x10000
456 loadtool> flash erase 0x10000 0x360000
457 loadtool> flash program-bin 0x10000 mot-fw-image.bin 0x10000 0x360000
458
459 or if your phone is C11x/12x with 2 MiB flash:
460
461 loadtool> flash erase-program-boot mot-fw-image.bin 0x10000
462 loadtool> flash erase 0x10000 0x1E0000
463 loadtool> flash program-bin 0x10000 mot-fw-image.bin 0x10000 0x1E0000
464
465 Restoring original fw on Mot C155/156
466 -------------------------------------
467
468 On these phones the bootloader is separate from the main body of the firmware,
469 thus there is no need to reflash the dangerous boot sector (erase-program-boot)
470 when changing firmwares, whether changing between Motorola's official fw and
471 FreeCalypso or between different Mot fw versions. Simply get in with
472 fc-loadtool like this:
473
474 fc-loadtool -h c155 /dev/ttyXXX
475
476 and reflash the firmware like this:
477
478 loadtool> flash erase 0x20000 0x7C0000
479 loadtool> flash program-bin 0x20000 flash-backup.bin 0x20000 0x7C0000