comparison loadtools/loadtool.help @ 0:e7502631a0f9

initial import from freecalypso-sw rev 1033:5ab737ac3ad7
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 11 Jun 2016 00:13:35 +0000
parents
children 6178a3d3cf74
comparison
equal deleted inserted replaced
-1:000000000000 0:e7502631a0f9
1 This is the help file for fc-loadtool. See lthelp.c for the code
2 that parses and displays it. The parsing code is the only
3 documentation for the format of this help file - if you are going to
4 edit this help text, read the parsing code first.
5
6 === main
7 This utility allows you to perform the following operations
8 on your Calypso GSM device:
9
10 * Peek and poke registers
11 * Dump any part of memory
12 * Read and program flash
13
14 See the following help topics for more information:
15
16 help peekpoke Register peek and poke commands
17 help flash Flash operation commands
18 help all List of all implemented commands
19 help exit Controlling the cleanup on exit
20
21 === all
22 abbr Read an ABB register
23 abbw Write an ABB register
24 baud Switch the serial comm with loadagent to a different baud rate
25 crc32 Get CRC-32 of a memory area on the target
26 dieid Read the Calypso die ID
27 dump Dump a target memory region in hex and ASCII
28 dump2bin Dump a target memory region to a file in binary format
29 dump2srec Dump a target memory region to a file in S-record format
30 exec Execute a command script
31 exit Exit from loadtool and clean up the target device state
32 flash Flash operations
33 flash2 Operations on the 2nd flash bank (Pirelli phone only)
34 quit Alias for exit
35 r8 Read an 8-bit register or memory location
36 r16 Read a 16-bit register or memory location
37 r32 Read a 32-bit register or memory location
38 w8 Write an 8-bit register or memory location
39 w16 Write a 16-bit register or memory location
40 w32 Write a 32-bit register or memory location
41
42 To get help on any command, type help and the command keyword.
43
44 === abbr
45 === abbw
46 abbr pg reg Read ABB register <reg> on page <pg>
47 abbw pg reg val Write <val> into register <reg> on page <pg>
48
49 The <pg> and <reg> arguments default to decimal unless prefixed with 0x;
50 the <val> argument to abbw is always hexadecimal.
51
52 === baud
53 baud Display the current baud rate
54 baud <rate> Switch the baud rate to <rate> (number in bps)
55
56 The supported baud rates are:
57
58 Standard: 19200, 38400, 57600, 115200
59 Calypso special: 203125, 406250, 812500
60
61 The baud command coordinates the necessary simultaneous switching of the
62 baud rate on both the host and the target (loadagent). Loadagent always
63 supports all of the listed rates and will switch happily, but in the case
64 of the higher non-standard baud rates fc-loadtool has no way of knowing
65 ahead of time whether or not the requested baud rate is supported by your
66 usb2serial adapter or whatever other serial port hardware and driver
67 you are using. If the baud rate switch fails, the communication link with
68 the target will be broken and fc-loadtool will exit ungracefully.
69
70 === crc32
71 crc32 hex-start hex-len
72
73 The first argument is the starting target memory address in hex; the second
74 argument is the length of the area to CRC, also in hex. The command will be
75 sent to loadagent; CRC-32 of the requested range will be computed on the target
76 and displayed in hex.
77
78 === dieid
79 dieid Display the Calypso die ID
80 dieid <filename> Display the Calypso die ID, and also save it in the
81 named file
82
83 The Calypso die ID resides in 4 16-bit registers at target addresses
84 0xFFFEF010 through 0xFFFEF016. It is displayed on the terminal and optionally
85 saved to a file in this simple form:
86
87 FFFEF010: xxxx
88 FFFEF012: xxxx
89 FFFEF014: xxxx
90 FFFEF016: xxxx
91
92 === dump
93 dump hex-start hex-len
94
95 The first argument is the starting target memory address in hex; the second
96 argument is the length of the area to dump, also in hex. The dump will be
97 displayed on the terminal in hex and ASCII.
98
99 === dump2bin
100 === dump2srec
101 dump2bin hex-start hex-len outfile
102 dump2srec hex-start hex-len outfile
103
104 The first argument is the starting target memory address in hex; the second
105 argument is the length of the area to dump, also in hex; the third argument
106 is the name of the output file to be created/written. The dump will be saved
107 in binary or S-records as per the chosen command, always in the native byte
108 order of the Calypso ARM7 target (little-endian).
109
110 === exec
111 exec <script-file>
112
113 Read and execute commands from the named file. If the given file name contains
114 no slashes, the script file is sought in the default directory (normally
115 /usr/local/share/freecalypso unless changed in the code); otherwise the given
116 name is used directly as the pathname.
117
118 === exit
119 === quit
120 exit Clean up the target in the default manner and exit
121 exit bare Exit loadtool without doing anything to the target
122 exit iota-off Exit loadtool and command an ABB power-off on the target
123 exit jump0 Exit loadtool and command the target to reboot via jump to 0
124
125 The default method of cleaning up the target device state upon exit is set
126 in the hardware parameters file selected with the -h or -H command line
127 option; it is the exit-mode setting. On the Pirelli phone the default exit
128 mode is jump0: it causes the phone to reboot and enter the "charging boot"
129 mode, as the USB cable is connected and VBUS is present. On Compal phones the
130 default exit mode is iota-off.
131
132 If your device is a GTA02 and you are running fc-loadtool from inside the phone
133 (from the AP), the exit command will power off the modem from the AP. If you
134 are talking to GTA02 Calypso from an external host via the headset jack, there
135 is nothing that fc-loadtool can currently do to power the modem off (exit is
136 the same as exit bare in this case) - power it off yourself from the AP.
137
138 If you do an exit bare without powering the target device off in some other
139 way, the device will still be running loadagent, which is probably not what you
140 want. However, it is the proper exit mode if you have powered off or reset the
141 target device by brute force (yanking the battery).
142
143 === flash
144 === flash2
145 The primary end use of fc-loadtool is for reading and writing the NOR flash
146 memories of the supported GSM devices. Compal phones and the GTA0x GSM modem
147 have only one flash bank (as in chip select), and are manipulated with the
148 flash command. The Pirelli phone has two flash banks (as in chip selects) of
149 8 MiB each; they are manipulated with the flash and flash2 commands.
150
151 The following flash operations are available on all target devices:
152
153 flash blankchk Blank-check a region of flash
154 flash dump2bin Dump flash content to a file in binary format
155 flash dump2srec Dump flash content to a file in S-record format
156 flash erase Erase a region of flash
157 flash info Display flash configuration info
158 flash program-bin Program flash with a binary file
159 flash program-m0 Program flash with an image in TI's *.m0 format
160 flash program-srec Program flash with an image in standard S-record format
161 flash quickprog Program a few flash words from the command line
162 flash reset Reset flash chip to read array mode
163 flash sectors Display the list of flash sector addresses and sizes
164
165 Substitute flash2 instead of flash when operating on the 2nd flash chip select
166 of Pirelli-style flash memory configurations. Prepend help before a command to
167 get usage information, e.g., help flash program-bin. See help compal for some
168 additional info specific to Compal targets.
169
170 === compal
171 === compalflash
172 === flash:compal
173 Compal phones have Intel or Intel-style flash chips; other Calypso targets for
174 which loadtool was originally designed have AMD-style flash chips. The author
175 of the present software has a personal bias toward AMD-style flash, hence the
176 support for Intel-style flash is not as clean. Compal phones also have the
177 Calypso boot ROM disabled, and depend on flash-resident boot code instead.
178 This property makes them brickable.
179
180 The following additional loadtool commands apply only to Compal targets with
181 Intel-style flash:
182
183 flash erase-program-boot Erase and reprogram the boot sector
184 flash status Read Intel flash Status Register
185 flash unlock Unlock flash sectors
186
187 === flash:blankchk
188 flash[2] blankchk hex-start-offset hex-length
189
190 Blank-checks an area of flash starting at the specified hex offset (from the
191 base address of the flash bank) and extending for the specified hex length.
192 Reports whether the checked region is blank or not. Flash must be blank (FF in
193 all bytes) before it can be programmed.
194
195 === flash:dump2bin
196 flash[2] dump2bin outfile [offset [length]]
197
198 Read device flash content and save it to a file. If only a filename is
199 specified, the full flash bank is dumped; one can optionally specify a starting
200 offset and an explicit length, both in hex.
201
202 This command is merely a user-friendly front-end to the plain dump2bin command;
203 see help dump2bin.
204
205 === flash:dump2srec
206 flash[2] dump2srec outfile [offset [length]]
207
208 Read device flash content and save it to a file. If only a filename is
209 specified, the full flash bank is dumped; one can optionally specify a starting
210 offset and an explicit length, both in hex.
211
212 This command is merely a user-friendly front-end to the plain dump2srec command;
213 see help dump2srec.
214
215 === flash:erase
216 flash[2] erase hex-start-offset hex-length
217
218 Erases an area of flash starting at the specified hex offset (from the base
219 address of the flash bank) and extending for the specified hex length.
220
221 Flash memory can only be erased (turning 0 bits back to 1s) in units of
222 sectors, as set in stone by the design of the flash chip in use. Loadtool
223 knows the sector layout of the flash chip in your device from CFI or from the
224 hardware parameters file (you can display it with the flash[2] sectors
225 command), and enforces that both arguments to the flash[2] erase command lie
226 on sector boundaries.
227
228 === flash:erase-program-boot
229 flash erase-program-boot binfile [length]
230
231 This operation is applicable to Compal targets only. This command erases and
232 reprograms flash sector 0 (the boot sector) with minimized vulnerability to
233 bricking by loading the new boot code into a scratchpad RAM area on the target,
234 then commanding loadagent (running on the target) to erase and reprogram the
235 dangerous flash sector without requiring further interaction with loadtool.
236 (In contrast, loadtool's "regular" flash erase and program operations are
237 driven primarily by loadtool, with loadagent providing only low-level
238 functions.)
239
240 The new bits to be programmed are taken from the specified binary file. Byte 0
241 of the file goes into byte 0 of the flash and so on, for the specified length.
242 If no length argument is given, it defaults to the length of the file, which
243 must not exceed the length of flash sector 0: 64 KiB on the "basic" Compal
244 phones or 8 KiB on C155/156.
245
246 === flash:info
247 This command displays summary information about the flash memory configuration
248 of the Calypso target device loadtool thinks it's talking to.
249
250 === flash:program-bin
251 flash[2] program-bin flash-offset binfile [file-offset [length]]
252
253 This command programs flash, using a binary file as the data source. One must
254 always specify the starting flash offset (from the base address of the flash
255 bank), but the starting file offset and length are optional, defaulting to the
256 whole file.
257
258 The binary file must be in the native byte order of the Calypso ARM7 processor,
259 which is little-endian. Images produced by flash[2] dump2bin are suitable.
260
261 === flash:program-m0
262 flash[2] program-m0 image.m0
263
264 *.m0 is the format that has been used by companies like TI and Closedmoko for
265 their proprietary firmware images. It is emitted by TI's hex470 tool, and in
266 the proprietary environment it is fed as an input to FLUID. (The latter is
267 TI's Flash Loader Utility Independent of Device, and fc-loadtool can be seen as
268 an independent reimplementation thereof - although it doesn't have the same
269 level of device-independence.) The *.m0 format is actually a variant of
270 Motorola's SREC, but with a different byte order: each 16-bit word is
271 byte-reversed relative to the native byte order of the ARM7 processor.
272 (This strange byte order actually makes some sense if one views the image as a
273 long array of 16-bit hex values; 16 bits is the width of the flash memory on
274 Calypso GSM devices and thus the natural unit size for flash programming.)
275
276 Because each S-record contains an address, no addresses or offsets need to be
277 specified in the flash[2] program-m0 command, only the image file.
278
279 === flash:program-srec
280 flash[2] program-srec image.srec
281
282 This command programs the flash with an image in the standard S-record format,
283 in the native little-endian byte order of the Calypso ARM7 processor. It is
284 the opposite byte order from that used by TI's *.m0 files -
285 see help flash program-m0. Images produced by flash[2] dump2srec are suitable
286 for flash[2] program-srec.
287
288 Because each S-record contains an address, no addresses or offsets need to be
289 specified in the flash[2] program-srec command, only the image file.
290
291 === flash:quickprog
292 flash[2] quickprog hex-offset hex-data-string
293
294 This command is intended only for developers; it provides raw access to
295 loadagent's basic flash write primitive. Read the source code for more
296 information.
297
298 === flash:reset
299 Intel-style flash memory chips (found in Compal phones) have two "stable" or
300 "quiescent" states: reading array data and reading the status register (SR).
301 After an erase or program operation the flash chip is "parked" in the Read SR
302 state; the flash reset command switches it back to reading array data.
303
304 This command works for AMD-style flash as well (found in Openmoko and Pirelli
305 phones), but it is normally not needed, as AMD-style flash chips automatically
306 return to the read-array-data state after every erase or program operation.
307
308 === flash:sectors
309 This command displays the list of sector offsets and sizes for the flash chip
310 in the Calypso target device loadtool thinks it's talking to.
311
312 === flash:status
313 This command is only applicable to Intel-style flash as found in Compal phones.
314 It reads the flash chip's Status Register, which can be used to diagnose errors
315 incurred by previous erase or program operations.
316
317 === flash:unlock
318 flash unlock hex-start-offset hex-length
319
320 This command is only applicable to Intel-style flash as found in Compal phones.
321 These flash chips power up with each sector (erase block) in the "locked" state;
322 each sector needs to be unlocked before it can be erased or programmed.
323
324 This command is normally not needed, as the flash erase command unlocks each
325 sector before erasing it. However, if you are going to perform program
326 operations in some sectors without erasing them, you will need to unlock them
327 explicitly first.
328
329 This command operates only on sector boundaries just like flash erase.
330
331 === r8
332 === r16
333 === r32
334 === w8
335 === w16
336 === w32
337 === peekpoke
338 The register peek and poke commands are:
339
340 r8 addr Read an 8-bit register or memory location
341 r16 addr Read a 16-bit register or memory location
342 r32 addr Read a 32-bit register or memory location
343 w8 addr data Write an 8-bit register or memory location
344 w16 addr data Write a 16-bit register or memory location
345 w32 addr data Write a 32-bit register or memory location
346
347 All addresses and data values are in hex.
348