annotate doc/Target-boot-control @ 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 b0b6966fa62e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
582
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 There is a new feature in loadtools (fc-loadtool & friends) and rvinterf as of
738
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
2 fc-host-tools-r12, actually functional as of fc-host-tools-r14: target boot
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
3 control. In a typical development environment where FC host tools run on a
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
4 general-purpose PC or laptop and communicate with various Calypso targets via
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
5 general-purpose serial or USB-serial ports, adapters and cables, there is
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
6 generally no way for the host computer running FC host tools to directly command
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
7 the Calypso target to power on and/or reboot - instead such control must be
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
8 performed "out of band" by the operator pressing the PWON or RESET button on
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
9 the target device; some targets may even require complex battery manipulations.
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
10 However, there may be more elaborate (less casual) setups where FC host tools
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
11 run on a special kind of host system which does have some means to directly
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
12 control power and reset to an associated Calypso target:
582
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13
738
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
14 * Our new FreeCalypso DUART28 adapter available as of 2020-09 has an optional
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
15 provision (requires additional wire connections and a custom patch to Linux
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
16 kernel ftdi_sio driver) for controlling Calypso target board PWON and RESET
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
17 with otherwise unused secondary channel RTS and DTR outputs - see the new
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
18 DUART28-boot-control article for the details.
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
19
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
20 * The Mother has a plan to produce another custom FT2232D-based adapter called
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
21 FC-UJA, standing for FreeCalypso UART+JTAG Adapter. This FC-UJA will be a
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
22 special FT2232D adapter whose Channel A will operate in MPSSE mode, connecting
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
23 to the Calypso target's JTAG and nTESTRESET signals, whereas Channel B will
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
24 act as a standard UART, i.e., a ttyUSB device. This FC-UJA needs to be built
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
25 as a prerequisite before embarking on the ambitious HSMBP (Handset Motherboard
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
26 Prototype) project, as the special adapter will be required for working with
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
27 the HSMBP in development. When FC-UJA becomes a reality, FC host tools
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
28 running on a development host with this adapter will need to be given the
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
29 ability to issue nTESTRESET pulses to the target through the adapter's
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
30 MPSSE+GPIO channel; this nTESTRESET pulse will cause the Calypso target to
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
31 deep-reset, power on and boot.
582
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 * FC host tools (particularly fc-loadtool) may run on the application processor
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 of a smartphone such as Openmoko GTA02. In such environments the AP will have
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 special ad hoc control signals (typically GPIOs) to the modem, at the minimum
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 controlling the modem's PWON line. OM GTA02 added an overriding control of
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 overall power to the modem; other designs may reasonably add control of the
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 modem's RESET line.
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 * There may be special commercial applications in which one or more Calypso
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 modems are subservient to a control processor that acts similarly to the AP
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 of a smartphone, with that control processor not only communicating with its
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 slave modems via UARTs, but also controlling their power and reset.
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 Where does the desire for target boot control in loadtools and rvinterf come
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 from? Consider the conventional usage model where no target boot control
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 exists: you first run fc-loadtool or fc-iram or fc-xram or rvinterf on your
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 target /dev/ttyXXX, then press the PWON or RESET button on the target. Now
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 suppose that the finger-actuated button has been replaced with some magic
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 command that can be executed on the host system to produce the same effect -
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 now what? If the usage model stays the same, then you have to first run your
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 fc-loadtool or fc-iram or fc-xram or rvinterf command same as before, then as
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 it sits there waiting for the target to boot, you have to open another terminal
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 window, get another ssh session into the system or whatever, and run the magic
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 command that replaces the manual button press. Very cumbersome, hence the
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 desire for a better way.
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 Support for target boot control in FC host tools consists of a new -P option
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 implemented in all of loadtools programs and in rvinterf, as well as a special
738
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
60 configuration file which needs to be manually created if external boot control
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
61 commands are to be used. There are two target boot control models, built-in
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
62 and external:
582
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63
956
b0b6966fa62e doc/Target-boot-control: update for -Petmoff
Mychaela Falconia <falcon@freecalypso.org>
parents: 738
diff changeset
64 * Built-in target boot control integrated into FC host tools themselves - the
b0b6966fa62e doc/Target-boot-control: update for -Petmoff
Mychaela Falconia <falcon@freecalypso.org>
parents: 738
diff changeset
65 only currently implemented methods are:
b0b6966fa62e doc/Target-boot-control: update for -Petmoff
Mychaela Falconia <falcon@freecalypso.org>
parents: 738
diff changeset
66
b0b6966fa62e doc/Target-boot-control: update for -Petmoff
Mychaela Falconia <falcon@freecalypso.org>
parents: 738
diff changeset
67 - DTR/RTS pulsing method implemented on our DUART28 adapter: -Pdtr means
b0b6966fa62e doc/Target-boot-control: update for -Petmoff
Mychaela Falconia <falcon@freecalypso.org>
parents: 738
diff changeset
68 pulse DTR and -Prts means pulse RTS. Please refer to DUART28-boot-control
b0b6966fa62e doc/Target-boot-control: update for -Petmoff
Mychaela Falconia <falcon@freecalypso.org>
parents: 738
diff changeset
69 article for the details.
b0b6966fa62e doc/Target-boot-control: update for -Petmoff
Mychaela Falconia <falcon@freecalypso.org>
parents: 738
diff changeset
70
b0b6966fa62e doc/Target-boot-control: update for -Petmoff
Mychaela Falconia <falcon@freecalypso.org>
parents: 738
diff changeset
71 - Aid for working with the Pirelli DP-L10 target: -Petmoff boot control mode
b0b6966fa62e doc/Target-boot-control: update for -Petmoff
Mychaela Falconia <falcon@freecalypso.org>
parents: 738
diff changeset
72 described in the new Pirelli-loadtools-entry article.
738
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
73
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
74 * In the other case of external boot control commands, there exist one or more
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
75 "magic commands": a magic command is any shell command (anything that can be
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
76 passed to /bin/sh -c) whose execution causes a connected Calypso target device
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
77 to power on and boot. Naturally these commands will be very specific to your
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
78 custom system; they are NOT part of FC host tools!
582
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 * These magic commands may be long, and requiring the user to include each magic
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 command in full on fc-loadtool, rvinterf etc invokation lines is undesirable.
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 To save typing, we associate a short name (which you choose yourself as you
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 see fit) with each magic command, and we have a configuration file (which you
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 need to create) that defines the mapping.
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 * The argument to the new -P option is the short name to be looked up in the
956
b0b6966fa62e doc/Target-boot-control: update for -Petmoff
Mychaela Falconia <falcon@freecalypso.org>
parents: 738
diff changeset
87 configuration file. (Built-in boot control names 'dtr', 'rts' and 'etmoff'
b0b6966fa62e doc/Target-boot-control: update for -Petmoff
Mychaela Falconia <falcon@freecalypso.org>
parents: 738
diff changeset
88 are reserved and cannot be used for external boot control commands.)
582
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 The configuration file needs to be created in /opt/freecalypso/bootctrl.conf;
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 let us illustrate it with some examples.
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93 Example 1: FC-UJA
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 =================
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 When FC-UJA becomes a reality, there will be a program called fc-testreset that
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 will locate the attached FC-UJA by its USB ID, connect to FT2232D Channel A and
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 generate the desired reset pulse on its output. The configuration in
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 /opt/freecalypso/bootctrl.conf may look as follows:
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 uja fc-testreset
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 This configuration associates boot control name 'uja' with shell command
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 fc-testreset. A developer would then run fc-loadtool like this:
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 fc-loadtool -h fcfam -Puja /dev/ttyUSB0
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 if ttyUSB0 is where FC-UJA's UART channel ended up. fc-loadtool would run
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 normally, sending beacons to /dev/ttyUSB0 and waiting for a Calypso boot ROM
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110 response, but it would also execute the fc-testreset command listed in the
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111 configuration file, and if everything is connected correctly, the resulting
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 nTESTRESET pulse will cause the target to boot.
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 The possibility of a single host talking to multiple Calypso targets is fully
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115 supported: if you have multiple FC-UJA adapters with different USB descriptor
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 serial numbers programmed in their EEPROMs connected to respective Calypso
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117 targets, you could have a /opt/freecalypso/bootctrl.conf setup like this:
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 uja1 fc-testreset -d serial1
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 uja2 fc-testreset -d serial2
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122 and then run fc-loadtool accordingly:
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 fc-loadtool -h fcfam -Puja1 /dev/ttyUSB3
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 fc-loadtool -h fcfam -Puja2 /dev/ttyUSB4
585
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
126
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
127 Example 2: Openmoko GTA02
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
128 =========================
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
129
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
130 There is a modem-power-ctrl.sh script provided in the openmoko directory of this
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
131 FC host tools package; if you are going to run fc-loadtool on the application
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
132 processor of your GTA02 smartphone, you should install this script in some
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
133 sensible location such as /usr/local/sbin/modem-power-ctrl. Then fill in your
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
134 /opt/freecalypso/bootctrl.conf file as follows:
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
135
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
136 lm /usr/local/sbin/modem-power-ctrl boot
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
137
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
138 The name 'lm' stands for "local modem"; you can then run fc-loadtool as follows:
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
139
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
140 fc-loadtool -h fic -Plm /dev/ttySAC0
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
141
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
142 Change from the past
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
143 ====================
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
144
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
145 Back in 2013 the predecessor to our current FC host tools package was just
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
146 loadtools, and we had a special configuration for building our loadtools to run
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
147 on the GTA02 AP. But it worked backwards relative to our current arrangement:
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
148 the current sensible arrangement is that a tool like fc-loadtool run without
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
149 any special options simply operates on the specified serial port without any
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
150 special magic, and if special magic is desired, it needs to be requested
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
151 explicitly with the new -P option; the old loadtools-on-GTA02-AP arrangement
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
152 was the opposite: you needed to specify -n to get "regular" operation, otherwise
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
153 the tools would automatically operate the modem power control.
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
154
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
155 Now that we support many more different Calypso hardware targets than we even
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
156 knew about in 2013-2014, a cleanup has been long overdue. The new arrangement
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
157 as of fc-host-tools-r12 cleans up the mess in several ways:
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
158
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
159 * Our FC host tools package has grown so much that making special code
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
160 configurations for special environments like the AP of some particular
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
161 smartphone is no longer scalable; now we just have one standard FC host tools
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
162 package without platform-specific hacks.
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
163
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
164 * Openmoko platform was certainly very special to us once, but it is not so
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
165 special any more - now we just treat it the same as any other. Our target
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
166 boot control mechanism has now been generalized from just OM GTA02 to any
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
167 arbitrary platform with similar needs.
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
168
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
169 * No more reversal of the standard tool paradigm: we have standard operation by
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
170 default, magic on request with an option.