# HG changeset patch # User Mychaela Falconia # Date 1477183849 0 # Node ID 2323849a5a91b4d2f065bea1ba96de76022ab4a8 # Parent 10b71f01f4ffc4b785e1ed3924bccd1a5f020e73 rvinterf/etmsync/fsio.help written diff -r 10b71f01f4ff -r 2323849a5a91 rvinterf/etmsync/fsio.help --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rvinterf/etmsync/fsio.help Sun Oct 23 00:50:49 2016 +0000 @@ -0,0 +1,281 @@ +=== main +=== all +The following commands are available: + +cpout Copy content out of device FFS to host file system +cpout-file Copy out a single file +delete Delete FFS object +dieid Retrieve Calypso die ID via ETM query +exec Execute a command script +exit Exit from fc-fsio +fd Low level file descriptor operations +ffs2ver TMFFS2 version query +format Format FFS on device (dangerous!) +fwrite Write a file into device FFS +hd Hex dump of a file in FFS +ls Directory listing +ll Shorthand for ls -l +memdump Dump a target memory region via ETM command +omemdump Dump a target memory region via TM3 command +mkdir Create a directory in device FFS +mk-std-dirs Create standard set of FFS directories +pirelli-get-imei Retrieve factory IMEI on Pirelli DP-L10 +pirelli-magnetite-init Initialize FFS for FC Magnetite fw on Pirelli target +preformat Preformat FFS on device (dangerous!) +readlink Raw interface to ffs_readlink() API call +set-imeisv Write /etc/IMEISV or /pcm/IMEI file +set-pcm-string Write /pcm/CGxx files +set-rfcap Write /gsm/com/rfcap file +stat Raw interface to ffs_xlstat() API call +symlink Create a symlink in device FFS +upload-file Upload a file into device FFS +upload-fs Upload a complete file system tree into device FFS +upload-subtree Upload a subtree into device FFS + +To get help on any command, type help and the command keyword. + +The RTOS environment inside GSM device firmwares with which this utility +communicates has no notion of a current directory, hence all target side +FFS pathnames must be absolute. + +=== cpout +cpout target-pathname host-pathname + +This command copies a single file, a directory subtree or the complete device +file system tree from the target device FFS to your Unix host file system. + +=== cpout-file +cpout-file target-pathname host-pathname + +This command is like regular cpout, but assumes that the target pathname refers +to a single file and not a directory, and skips the pathname validation and +xlstat query steps toward that end. + +=== delete +delete ffs-pathname + +This command deletes the named object in the device FFS, which must be a regular +file, an empty directory or a symlink. + +Note that in classic UNIX there are two different "delete file system object" +elementary operations: unlink for regular files or symlinks and rmdir for empty +directories, but TI's FFS implementation provides a single ffs_remove() API call +instead for deleting all 3 object types; our delete command is the interface to +this ffs_remove() API call. + +=== dieid +This command sends an ETM query for the Calypso die ID to the running firmware +on the target and displays the returned result. + +=== exec +exec script-filename + +This command executes an fc-fsio command script; each line in the script file +is interpreted and executed as an fc-fsio command. + +If the execution of any command in the script file encounters an error, the +processing of the script is stopped and the following commands won't be +executed. + +=== exit +This command is self-explanatory. + +=== fd +fd open ffs-pathname flags +fd read tfd nbytes +fd close tfd + +These low-level debug commands provide a raw interface to FFS file descriptor +operations ffs_open(), ffs_read() and ffs_close(); they are intended for deep +developers only. + +=== ffs2ver +This command sends a TMFFS2 version query ETM packet to the running firmware +on the target and displays the returned result. + +=== format +format format-name + +This command requests the GSM device firmware to format its flash file system. +The "format name" argument must begin with a forward slash and will be stored +in the root inode of the newly created FFS; it can also contain some FFS tuning +settings - see the FFS firmware component source code for the details. It is +usually sufficient to set the "format name" aka the root inode name to just /, +although some production lines (TI and Openmoko) have set it to /ffs-root. + +The FFS component in the firmware will normally accept this command only when +the FFS is in the unformatted state; if instead you wish to blow away an +existing format, see the preformat command. + +=== fwrite +fwrite ffs-pathname ascii "ASCII string content" +fwrite ffs-pathname hex "xx xx xx xx ..." +fwrite ffs-pathname file host-filename + +This command creates a file or overwrites an existing file in the device FFS, +using an ASCII string, a binary string given as hex bytes or a host file as the +content to be written. + +=== hd +hd ffs-pathname + +This command displays a hex dump of the named file in FFS, which must be a +regular file. It will only work if the size of the file is 254 bytes or less; +to examine larger FFS files, you will need to read them out with the cpout or +cpout-file command. + +=== ls +ls [-l] ffs-pathname + +This command works much like the classic UNIX ls command, but on the flash file +system of a GSM device. In the basic form (without -l) the named FFS object +must be a directory, and the operation of the ls command is limited to ETM +packet exchanges corresponding to ffs_opendir() and ffs_readdir() API calls. +In the long form (with -l) the named FFS object may be of any type (file, +directory or symlink), and the operation of the ls command involves additional +ETM packet exchanges corresponding to the ffs_xlstat() API call, as well as some +FFS pathname validation and manipulation inside the fc-fsio utility itself. + +=== ll +ll ffs-pathname + +This command is a shorthand for ls -l on the given FFS pathname. + +=== memdump +memdump addr length + +This command requests a read of a target memory address range via the ETM +memory read command, and displays the returned bytes as a hex dump. +Both arguments are always interpreted as hexadecimal, and the length may not +exceed 0xEE (238 decimal) - the limit for the ETM memory read command. + +=== omemdump +omemdump addr length + +This command requests a read of a target memory address range via the TM3 +memory read command, and displays the returned bytes as a hex dump. +Both arguments are always interpreted as hexadecimal, and the length may not +exceed 0x7C (124 decimal) - the limit for the TM3 memory read command. + +=== mkdir +mkdir ffs-pathname + +This command creates a directory object in the target device FFS at the +specified pathname. If the named directory already exists, it is not an error, +but it is an error if a non-directory object exists at that pathname. + +=== mk-std-dirs +This command creates the standard set of FFS directories, or rather the set +deemed as standard for our FreeCalypso firmware projects based on or inspired +by TI's TCS211. This set currently consists of: + +/gsm +/gsm/com +/gsm/rf +/gsm/rf/rx +/gsm/rf/tx +/pcm +/sys +/mmi +/var +/var/dbg +/aud +/etc + +Each directory is created as if by our mkdir command, i.e., it is not an error +if that directory already exists, but it is an error if a non-directory object +exists at that pathname. + +=== pirelli-get-imei +This command works only if the GSM device with whose firmware fc-fsio is +communicating is a Pirelli DP-L10, and only if that fw is either one of +Foxconn/Pirelli's official versions or FC Magnetite - it will not work against +FC Citrine firmware. When run against a Pirelli phone with a compatible fw +version, this command will retrieve and display Pirelli's factory IMEI. + +=== pirelli-magnetite-init +This command may only be run against FC Magnetite firmware running on the +Pirelli DP-L10 target, and never against any other target/firmware combination. +See FreeCalypso Magnetite firmware documentation for the details. + +=== preformat +This command requests the GSM device firmware to blow away its flash file system +and prepare for a new format. DO NOT issue this command unless you really wish +to blow away your FFS, and if you really do wish to perform this drastic +operation, the firmware should be fully quiescent with GSM off as in AT+CFUN=0. + +=== readlink +readlink ffs-pathname + +This command provides raw access to the ffs_readlink() API call and displays +the returned response as a hex dump. Use ls -l (or ll) as a more user-friendly +interface. + +=== set-imeisv +set-imeisv fc XXXXXXXX-YYYYYY-ZZ # write /etc/IMEISV +set-imeisv pcm XXXXXXXX-YYYYYY-ZZ # write /pcm/IMEI + +This command sets the IMEISV to be used for GSM operation and stores it either +in /etc/IMEISV (one format) or /pcm/IMEI (a different format) depending on the +"fc" or "pcm" keyword argument. Please refer to the doc/IMEI article in the +FreeCalypso host tools source package for the explanation as to when you should +use which. + +For the IMEISV argument 16 decimal digits must always be given; punctuation is +optional and may be placed anywhere. + +=== set-pcm-string +set-pcm-string CGxx "ASCII string content" + +This command writes the /pcm/CGxx files whose content is displayed by AT+CGxx +commands; CGxx must be one of CGMI, CGMM, CGMR or CGSN. The length of these +ASCII string files is limited to 20 characters by TI's firmware design. + +=== set-rfcap +This command writes the /gsm/com/rfcap file to communicate the hardware RF band +configuration to the firmware as follows: + +set-rfcap dual-eu # 900/1800 MHz single-region dual-band +set-rfcap dual-us # 850/1900 MHz single-region dual-band +set-rfcap tri900 # 900/1800/1900 MHz triband +set-rfcap tri850 # 850/1800/1900 MHz triband +set-rfcap quad # All 4 bands + +=== stat +stat ffs-pathname + +This command provides raw access to the ffs_xlstat() API call; the information +returned by this call and displayed by this command is similar to what you would +get with the lstat system call in classic UNIX. + +Use ls -l (or ll) as a more user-friendly interface. + +=== symlink +symlink link-target-pathname link-object-pathname + +This command creates a symlink object in the FFS; the 2nd argument is the +pathname at which the object is to be created and the 1st argument is the link +target string to be written into this symlink object - the order of the +arguments matches the classic UNIX symlink system call. + +Note that although TI's FFS implementation supports symlinks, it appears that +no production configuration has ever used them. + +=== upload-file +upload-file host-file target-file + +This command uploads a single regular file from your Unix host file system into +the target device FFS. + +=== upload-fs +upload-fs host-dir + +This command uploads an entire file system tree from the given host location +into the target device FFS at the root level. + +=== upload-subtree +upload-subtree host-dir target-dir + +This command uploads a directory subtree from your Unix host file system into +the given non-root directory in the target device FFS. +