FreeCalypso > hg > freecalypso-tools
annotate doc/Target-boot-control @ 996:162d2cf394e2
fc-loadtool help: document new commands for sector lock/unlock
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Sun, 03 Dec 2023 23:00:04 +0000 | 
| parents | b0b6966fa62e | 
| children | 
| 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. | 
