annotate doc/Pirelli-loadtools-entry @ 1000:39a6090a052a

doc/How-flash-really-works: article written
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 09 Dec 2023 09:08:19 +0000
parents 803e926e0699
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
955
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 Pirelli DP-L10 phone is a quirky Calypso target in that the same hardware
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 interface (USB) that provides access to the one easily accessible Calypso UART
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 also feeds charging power to the phone. The result of this arrangement is that
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 whenever you connect your phone to your computer for communication, programming
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 or tinkering, the charging voltage is always present and the Calypso+Iota
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 chipset never enters switched-off state: every "soft poweroff" operation is
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 converted by the hardware into a deep reboot.
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 You can force a "cold programming boot" cycle on your Pirelli phone by removing
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 the battery, connecting USB to the "debattered" phone, running fc-loadtool on
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 the ttyUSB device that appears, and then inserting the battery in one swift
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 motion - this sequence will be necessary if you brick your flash and need to
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 unbrick it - but of course it is hugely inconvenient for ordinary FreeCalypso
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 tinkering (such as running FreeCalypso VPM firmware builds via fc-xram), and
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 doing it too often will ruin battery spring contacts. The other alternative is
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 to let Pirelli's official fw boot fully (including GSM network registration) in
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 between cycles of fc-loadtool or fc-xram, and then do the switch-off operation
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 from the UI (press and hold red button on unlocked home screen) with fc-loadtool
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 or fc-xram running. But this option is also unattractive, as it involves
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 unwanted SIM bring-up and GSM network registration from Pirelli's fw.
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 As of fc-host-tools-r19 we have an improved solution in the form of -Petmoff
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 option to fc-loadtool, fc-xram, fc-simint etc. The usage scenario is as
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 follows:
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 * The phone needs to be in its "booted for charging only" state. With Pirelli's
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 official fw, this state is entered when you connect USB to a switched-off
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 phone, or when you execute the switch-off sequence from the UI with USB
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 connected.
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 * In this state, you issue a command like the following:
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 fc-loadtool -h pirelli -Petmoff /dev/ttyUSB0
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 or
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 fc-simint -h pirelli -Petmoff /dev/ttyUSB0
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 or
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 fc-xram -h pirelli -Petmoff /dev/ttyUSB0 ramimage.srec rvinterf
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 etc
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 This -Petmoff option (implemented as part of our generic boot control framework,
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 see Target-boot-control article) tells loadtools programs to send an ETM ABB
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 write (abbw) command to the target serial port, issuing a DEVOFF write to the
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 VRPCDEV register, just before going into the loop that sends beacons aiming to
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 interrupt the boot process at the Calypso boot ROM. This trick works because
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 Pirelli's official fw implements a TI-standard RVTMUX interface on the Calypso
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 IrDA UART behind USB, complete with ETM, and with USB applying VCHG to Iota
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 VRPC, the DEVOFF operation (soft poweroff) turns into a deep reboot.
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 Running loadtools programs with -Petmoff against a Pirelli phone that is fully
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 booted, as opposed to "booted for charging only" state, is possible but not
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 recommended: it will forcibly kill the running firmware without any kind of
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 clean shutdown. Strictly speaking, this option always effects the just-
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 described forced firmware kill, no matter which state the official fw happens
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 to be in, but if the fw is in its "booted for charging only" state, then there
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 are no ill effects to be concerned with.
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 When fc-loadtool or fc-simint/fc-simtool finishes with a clean exit, or when a
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 RAM-based firmware session started with fc-xram is cleanly finished with
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 fc-shell poweroff, the phone returns to the same "booted for charging only"
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 state. Therefore, multiple operations of fc-loadtool, fc-simtool or fc-xram,
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 each with -Petmoff option, may be performed back to back, just like how a
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 FreeCalypso developer using a proper FC dev board would run back-to-back
803e926e0699 doc/Pirelli-loadtools-entry: new article
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 sessions starting with -Pdtr or -Prts and ending with Iota poweroff.