FreeCalypso > hg > freecalypso-sw
diff loadtools/loadtool.help @ 105:02cb0206aa47
fc-loadtool help implemented
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Tue, 03 Sep 2013 07:31:26 +0000 |
parents | |
children | 4f8a9b2229e9 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/loadtools/loadtool.help Tue Sep 03 07:31:26 2013 +0000 @@ -0,0 +1,270 @@ +This is the help file for fc-loadtool. See lthelp.c for the code +that parses and displays it. The parsing code is the only +documentation for the format of this help file - if you are going to +edit this help text, read the parsing code first. + +=== main +This utility allows you to perform the following operations +on your Calypso GSM device: + +* Peek and poke registers +* Dump any part of memory +* Read and program flash + +See the following help topics for more information: + +help peekpoke Register peek and poke commands +help flash Flash operation commands +help all List of all implemented commands +help exit Controlling the cleanup on exit + +=== all +baud Switch the serial comm with loadagent to a different baud rate +crc32 Get CRC-32 of a memory area on the target +dieid Read the Calypso die ID +dump Dump a target memory region in hex and ASCII +dump2bin Dump a target memory region to a file in binary format +dump2srec Dump a target memory region to a file in S-record format +exec Execute a command script +exit Exit from loadtool and clean up the target device state +flash Flash operations +flash2 Operations on the 2nd flash bank (Pirelli phone only) +quit Alias for exit +r8 Read an 8-bit register or memory location +r16 Read a 16-bit register or memory location +r32 Read a 32-bit register or memory location +w8 Write an 8-bit register or memory location +w16 Write a 16-bit register or memory location +w32 Write a 32-bit register or memory location + +To get help on any command, type help and the command keyword. + +=== baud +baud Display the current baud rate +baud <rate> Switch the baud rate to <rate> (number in bps) + +The supported baud rates are: + +Standard: 19200, 38400, 57600, 115200 +Calypso special: 203125, 406250, 812500 + +The baud command coordinates the necessary simultaneous switching of the +baud rate on both the host and the target (loadagent). Loadagent always +supports all of the listed rates and will switch happily, but in the case +of the higher non-standard baud rates fc-loadtool has no way of knowing +ahead of time whether or not the requested baud rate is supported by your +usb2serial adapter or whatever other serial port hardware and driver +you are using. If the baud rate switch fails, the communication link with +the target will be broken and fc-loadtool will exit ungracefully. + +=== crc32 +crc32 hex-start hex-len + +The first argument is the starting target memory address in hex; the second +argument is the length of the area to CRC, also in hex. The command will be +sent to loadagent; CRC-32 of the requested range will be computed on the target +and displayed in hex. + +=== dieid +dieid Display the Calypso die ID +dieid <filename> Display the Calypso die ID, and also save it in the + named file + +The Calypso die ID resides in 4 16-bit registers at target addresses +0xFFFEF010 through 0xFFFEF016. It is displayed on the terminal and optionally +saved to a file in this simple form: + +FFFEF010: xxxx +FFFEF012: xxxx +FFFEF014: xxxx +FFFEF016: xxxx + +=== dump +dump hex-start hex-len + +The first argument is the starting target memory address in hex; the second +argument is the length of the area to dump, also in hex. The dump will be +displayed on the terminal in hex and ASCII. + +=== dump2bin +=== dump2srec +dump2bin hex-start hex-len outfile +dump2srec hex-start hex-len outfile + +The first argument is the starting target memory address in hex; the second +argument is the length of the area to dump, also in hex; the third argument +is the name of the output file to be created/written. The dump will be saved +in binary or S-records as per the chosen command, always in the native byte +order of the Calypso ARM7 target (little-endian). + +=== exec +exec <script-file> + +Read and execute commands from the named file. If the given file name contains +no slashes, the script file is sought in the default directory (normally +/usr/local/share/freecalypso unless changed in the code); otherwise the given +name is used directly as the pathname. + +=== exit +=== quit +exit Clean up the target in the default manner and exit +exit bare Exit loadtool without doing anything to the target +exit jump0 Exit loadtool and command the target to reboot via jump to 0 + +The default method of cleaning up the target device state upon exit is set +in the hardware parameters file selected with the -h or -H command line +option; it is the exit-mode setting. On the Pirelli phone the default exit +mode is jump0: it causes the phone to reboot and enter the "charging boot" +mode, as the USB cable is connected and VBUS is present. + +If your device is a GTA02 and you are running fc-loadtool from inside the phone +(from the AP), the exit command will power off the modem from the AP. If you +are talking to GTA02 Calypso from an external host via the headset jack, there +is nothing that fc-loadtool can currently do to power the modem off (exit is +the same as exit bare in this case) - power it off yourself from the AP. + +If you do an exit bare without powering the target device off in some other +way, the device will still be running loadagent, which is probably not what you +want. However, it is the proper exit mode if you have powered off or reset the +target device by brute force (yanking the battery). + +=== flash +=== flash2 +The primary end use of fc-loadtool is for reading and writing the NOR flash +memories of the supported GSM devices. The GTA0x GSM modem has only one 4 MiB +flash bank (as in chip select), and is manipulated with the flash command. +The Pirelli phone has two flash banks (as in chip selects) of 8 MiB each; they +are manipulated with the flash and flash2 commands. + +The following flash operations are available: + +flash blankchk Blank-check a region of flash +flash dump2bin Dump flash content to a file in binary format +flash dump2srec Dump flash content to a file in S-record format +flash erase Erase a region of flash +flash info Display flash configuration info +flash program-bin Program flash with a binary file +flash program-m0 Program flash with an image in TI's *.m0 format +flash program-srec Program flash with an image in standard S-record format +flash quickprog Program a few flash words from the command line +flash sectors Display the list of flash sector addresses and sizes + +Substitute flash2 instead of flash when operating on the 2nd flash chip select +of Pirelli-style flash memory configurations. Prepend help before a command to +get usage information, e.g., help flash program-bin. + +=== flash:blankchk +flash[2] blankchk hex-start-offset hex-length + +Blank-checks an area of flash starting at the specified hex offset (from the +base address of the flash bank) and extending for the specified hex length. +Reports whether the checked region is blank or not. Flash must be blank (FF in +all bytes) before it can be programmed. + +=== flash:dump2bin +flash[2] dump2bin outfile [offset [length]] + +Read device flash content and save it to a file. If only a filename is +specified, the full flash bank is dumped; one can optionally specify a starting +offset and an explicit length, both in hex. + +This command is merely a user-friendly front-end to the plain dump2bin command; +see help dump2bin. + +=== flash:dump2srec +flash[2] dump2srec outfile [offset [length]] + +Read device flash content and save it to a file. If only a filename is +specified, the full flash bank is dumped; one can optionally specify a starting +offset and an explicit length, both in hex. + +This command is merely a user-friendly front-end to the plain dump2srec command; +see help dump2srec. + +=== flash:erase +flash[2] erase hex-start-offset hex-length + +Erases an area of flash starting at the specified hex offset (from the base +address of the flash bank) and extending for the specified hex length. + +Flash memory can only be erased (turning 0 bits back to 1s) in units of +sectors, as set in stone by the design of the flash chip in use. Loadtool +knows the sector layout of the flash chip in your device from the hardware +parameters file (you can display it with the flash[2] sectors command), and +enforces that both arguments to the flash[2] erase command lie on sector +boundaries. + +=== flash:info +This command displays summary information about the flash memory configuration +of the Calypso target device loadtool thinks it's talking to. + +=== flash:program-bin +flash[2] program-bin flash-offset binfile [file-offset [length]] + +This command programs flash, using a binary file as the data source. One must +always specify the starting flash offset (from the base address of the flash +bank), but the starting file offset and length are optional, defaulting to the +whole file. + +The binary file must be in the native byte order of the Calypso ARM7 processor, +which is little-endian. Images produced by flash[2] dump2bin are suitable. + +=== flash:program-m0 +flash[2] program-m0 image.m0 + +*.m0 is the format that has been used by companies like TI and Closedmoko for +their proprietary firmware images. It is emitted by TI's hex470 tool, and in +the proprietary environment it is fed as an input to FLUID. (The latter is +TI's Flash Loader Utility Independent of Device, and fc-loadtool can be seen as +an independent reimplementation thereof - although it doesn't have the same +level of device-independence.) The *.m0 format is actually a variant of +Motorola's SREC, but with a different byte order: each 16-bit word is +byte-reversed relative to the native byte order of the ARM7 processor. +(This strange byte order actually makes some sense if one views the image as a +long array of 16-bit hex values; 16 bits is the width of the flash memory on +Calypso GSM devices and thus the natural unit size for flash programming.) + +Because each S-record contains an address, no addresses or offsets need to be +specified in the flash[2] program-m0 command, only the image file. + +=== flash:program-srec +flash[2] program-srec image.srec + +This command programs the flash with an image in the standard S-record format, +in the native little-endian byte order of the Calypso ARM7 processor. It is +the opposite byte order from that used by TI's and Closedmoko's *.m0 files - +see help flash program-m0. Images produced by flash[2] dump2srec are suitable +for flash[2] program-srec. + +Because each S-record contains an address, no addresses or offsets need to be +specified in the flash[2] program-srec command, only the image file. + +=== flash:quickprog +flash[2] quickprog hex-offset hex-data-string + +This command is intended only for developers; it provides raw access to +loadagent's basic flash write primitive. Read the source code for more +information. + +=== flash:sectors +This command displays the list of sector offsets and sizes for the flash chip +in the Calypso target device loadtool thinks it's talking to. + +=== r8 +=== r16 +=== r32 +=== w8 +=== w16 +=== w32 +=== peekpoke +The register peek and poke commands are: + +r8 addr Read an 8-bit register or memory location +r16 addr Read a 16-bit register or memory location +r32 addr Read a 32-bit register or memory location +w8 addr data Write an 8-bit register or memory location +w16 addr data Write a 16-bit register or memory location +w32 addr data Write a 32-bit register or memory location + +All addresses and data values are in hex. +