annotate doc/Pirelli-loadtools-entry @ 1011:6d9b10633f10 default tip

etmsync Pirelli IMEI retrieval: fix poor use of printf() Bug reported by Vadim Yanitskiy <fixeria@osmocom.org>: the construct where a static-allocated string was passed to printf() without any format arguments causes newer compilers to report a security problem. Given that formatted output is not needed here, just fixed string output, change printf() to fputs(), and direct the error message to stderr while at it.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 23 May 2024 17:29:57 +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.