FreeCalypso > hg > freecalypso-tools
annotate doc/Target-boot-control @ 942:fab04df64690
rvinterf/lowlevel: replace libg23 with libprint
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 24 May 2023 06:55:54 +0000 |
parents | f19d12f5756f |
children | b0b6966fa62e |
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. |