annotate doc/Target-boot-control @ 926:6a0aa8d36d06

rvinterf backslash escape: introduce libprint The new helper function library named libprint is meant to replace the badly misnamed libg23, and will soon contain functions for printing all of the same kinds of GPF TST packets that are now handled in libg23. However, we are also moving safe_print_trace() from libasync to this new library, and changing it to emit our new backslash escape format.
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 23 May 2023 03:47:46 +0000
parents f19d12f5756f
children b0b6966fa62e
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
738
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
64 * Built-in target boot control integrated into FC host tools themselves is
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
65 currently available only for the DTR/RTS pulsing method implemented on our
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
66 DUART28 adapter: -Pdtr means pulse DTR and -Prts means pulse RTS. Please
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
67 refer to the DUART28-boot-control article for the details.
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
68
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
69 * 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
70 "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
71 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
72 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
73 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
74
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 * 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
76 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
77 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
78 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
79 need to create) that defines the mapping.
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 * The argument to the new -P option is the short name to be looked up in the
738
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
82 configuration file. (Built-in boot control names 'dtr' and 'rts' are reserved
f19d12f5756f doc/Target-boot-control: updated for DUART28C
Mychaela Falconia <falcon@freecalypso.org>
parents: 585
diff changeset
83 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
84
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 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
86 let us illustrate it with some examples.
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 Example 1: FC-UJA
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
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 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
92 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
93 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
94 /opt/freecalypso/bootctrl.conf may look as follows:
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 uja fc-testreset
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 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
99 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
100
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 fc-loadtool -h fcfam -Puja /dev/ttyUSB0
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 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
104 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
105 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
106 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
107 nTESTRESET pulse will cause the target to boot.
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 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
110 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
111 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
112 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
113
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 uja1 fc-testreset -d serial1
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115 uja2 fc-testreset -d serial2
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117 and then run fc-loadtool accordingly:
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 fc-loadtool -h fcfam -Puja1 /dev/ttyUSB3
deda54106c0e doc/Target-boot-control: first draft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 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
121
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
122 Example 2: Openmoko GTA02
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
123 =========================
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
124
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
125 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
126 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
127 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
128 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
129 /opt/freecalypso/bootctrl.conf file as follows:
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
130
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
131 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
132
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
133 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
134
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
135 fc-loadtool -h fic -Plm /dev/ttySAC0
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
136
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
137 Change from the past
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
138 ====================
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 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
141 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
142 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
143 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
144 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
145 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
146 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
147 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
148 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
149
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
150 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
151 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
152 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
153
d3e2b23ebf1d doc/Target-boot-control: finished for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 582
diff changeset
154 * 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
155 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
156 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
157 package without platform-specific hacks.
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 * 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
160 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
161 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
162 arbitrary platform with similar needs.
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 * 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
165 default, magic on request with an option.