annotate doc/TIFFS-IVA-usage @ 922:3152e23399a2

document SE K2x0 FFS quirks and our support for them
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 02 Jan 2023 00:50:19 +0000
parents d89b72f2181b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 The generic tiffs utility needs to be invoked as follows:
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 tiffs [global-options] <imgfile> <org> <cmd> [command-args]
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 The first 3 non-optional arguments are the filename of the TIFFS image under
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 examination, the FFS organization being examined, and the operation to be
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 performed. The present utility is designed in the classic Unix manner in that
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 each invokation performs a single operation and exits, such that invokations of
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 tiffs (or one of the wrappers described below) may be plumbed into pipes and
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 the like.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 The 2nd argument to tiffs after the FFS image filename describes how the TIFFS
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 instance under study is organized in terms of flash sectors. The syntax of
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 this argument is KxN, where K is the flash sector size in KiB and N is the
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 number of sectors occupied by the FFS. For MokoFFS images the correct
218
c44f31353f2f doc/TIFFS-IVA-usage updated
Mychaela Falconia <falcon@freecalypso.org>
parents: 217
diff changeset
16 organization argument is 64x7 (7 sectors of 64 KiB each), for Pirelli's FFS
729
f917441aa8bc doc/TIFFS-IVA-usage: update for tiffs-8m
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
17 images it is 256x18 (18 sectors of 256 KiB each), for TIFFS images read out of
f917441aa8bc doc/TIFFS-IVA-usage: update for tiffs-8m
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
18 Tango modules with S71PL064J flash it is 64x15 (15 sectors of 64 KiB each), and
f917441aa8bc doc/TIFFS-IVA-usage: update for tiffs-8m
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
19 for TIFFS images read out of FreeCalypso development boards with S71PL129N flash
f917441aa8bc doc/TIFFS-IVA-usage: update for tiffs-8m
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
20 it is 256x8 (8 sectors of 256 KiB each).
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 The following global options may be given before the image filename argument:
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 -a num
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 Use the specified flash block (sector) as the inode array block.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 -o offset
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 The FFS image begins at the specified offset within the file, rather
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 than at the beginning. This option is useful when working with complete
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 device flash dumps of which FFS is only a part, starting somewhere
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 other than at 0.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34
218
c44f31353f2f doc/TIFFS-IVA-usage updated
Mychaela Falconia <falcon@freecalypso.org>
parents: 217
diff changeset
35 -O
c44f31353f2f doc/TIFFS-IVA-usage updated
Mychaela Falconia <falcon@freecalypso.org>
parents: 217
diff changeset
36
c44f31353f2f doc/TIFFS-IVA-usage updated
Mychaela Falconia <falcon@freecalypso.org>
parents: 217
diff changeset
37 The location field in the inode structure is 16 bits rather than 32,
c44f31353f2f doc/TIFFS-IVA-usage updated
Mychaela Falconia <falcon@freecalypso.org>
parents: 217
diff changeset
38 stored in the upper two bytes out of the four. This old FFS format
c44f31353f2f doc/TIFFS-IVA-usage updated
Mychaela Falconia <falcon@freecalypso.org>
parents: 217
diff changeset
39 (limited to 1 MiB total FFS size) was used by *very* old versions of
c44f31353f2f doc/TIFFS-IVA-usage updated
Mychaela Falconia <falcon@freecalypso.org>
parents: 217
diff changeset
40 TI's firmware and is incompatible with our "current" fw versions;
c44f31353f2f doc/TIFFS-IVA-usage updated
Mychaela Falconia <falcon@freecalypso.org>
parents: 217
diff changeset
41 so far the only encountered example of this old FFS format was found on
c44f31353f2f doc/TIFFS-IVA-usage updated
Mychaela Falconia <falcon@freecalypso.org>
parents: 217
diff changeset
42 the D-Sample board which the Mother scored in 2015 - it came with a
c44f31353f2f doc/TIFFS-IVA-usage updated
Mychaela Falconia <falcon@freecalypso.org>
parents: 217
diff changeset
43 firmware image dated 20020917.
c44f31353f2f doc/TIFFS-IVA-usage updated
Mychaela Falconia <falcon@freecalypso.org>
parents: 217
diff changeset
44
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 -r ino
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46
218
c44f31353f2f doc/TIFFS-IVA-usage updated
Mychaela Falconia <falcon@freecalypso.org>
parents: 217
diff changeset
47 Use the specified inode as the root. Per the Mother's convention,
c44f31353f2f doc/TIFFS-IVA-usage updated
Mychaela Falconia <falcon@freecalypso.org>
parents: 217
diff changeset
48 TIFFS inode numbers are always given in hex, hence this argument is
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 interpreted as hex without needing a 0x prefix.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 The invokation syntax for mokoffs and pirffs wrappers is the same as for tiffs,
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 except that the FFS organization argument (64x7 or 256x18) is omitted; the
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 wrapper fills that argument in before passing the command to the main tiffs
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 program. The only other difference is that instead of the generic -o global
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 option, mokoffs takes a -f global option (no argument) which indicates that one
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 is working with a complete flash dump image, rather than just the FFS portion;
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 mokoffs -f gets translated into tiffs -o0x380000. (pirffs has no such option
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 at all because Pirelli's FFS starts at offset 0 within its respective flash
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 chip select.)
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60
729
f917441aa8bc doc/TIFFS-IVA-usage: update for tiffs-8m
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
61 tiffs-8m is another similar wrapper; it is a more recent addition for working
f917441aa8bc doc/TIFFS-IVA-usage: update for tiffs-8m
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
62 with TIFFS images from platforms like D-Sample and Tango that use TI's 8 MiB
f917441aa8bc doc/TIFFS-IVA-usage: update for tiffs-8m
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
63 flash configuration. tiffs-8m strictly parallels mokoffs except than it is
f917441aa8bc doc/TIFFS-IVA-usage: update for tiffs-8m
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
64 64x15 instead of 64x7, and -f turns into -o0x700000 instead of -o0x380000.
f917441aa8bc doc/TIFFS-IVA-usage: update for tiffs-8m
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
65
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 The next argument after the FFS organization for tiffs (or after the image
729
f917441aa8bc doc/TIFFS-IVA-usage: update for tiffs-8m
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
67 filename for mokoffs, pirffs or tiffs-8m) is the command (or operation) to be
f917441aa8bc doc/TIFFS-IVA-usage: update for tiffs-8m
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
68 performed. The following tiffs commands are currently available:
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 General information commands
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 ============================
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 These commands display general or summary information about the FFS image:
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 tiffs <...> blkhdr
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 This command displays the basic information contained in the header of each
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 flash erase block comprising the FFS image.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 tiffs <...> fsinfo
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 This command displays some general information about the file system.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 Standard listing/extraction commands
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 ====================================
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87 These commands list or extract the normally-visible content of the FFS, i.e.,
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 the content which is visible when the FFS is "mounted" normally, and which the
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 FFS promises to preserve - as opposed to deleted or overwritten content.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 tiffs <...> ls [-v[v]] [pathname...]
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93 Tiffs ls without additional arguments yields a listing of the complete FFS
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 directory tree, akin to tar tv. Example output fragment:
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 fr 4096 /.journal
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 d /gsm
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 d /gsm/rf
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 d /gsm/rf/tx
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 f 512 /gsm/rf/tx/ramps.900
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 f 128 /gsm/rf/tx/levels.900
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 f 128 /gsm/rf/tx/calchan.900
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 The first character is 'f' for files or 'd' for directories. An 'r' following
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 immediately afterward means that the object has the read-only attribute set.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 For files the listing includes the content size in bytes, and the last part is
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 the pathname of the object within the FFS.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 With a single -v option added after ls, the output will include verbose
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110 information as to the segmentation structure of each file. With two -v options
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111 or with -vv, this additional output will also include the byte offset of each
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 data chunk, relative to the beginning of the FFS image.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 Tiffs ls with a pathname argument yields information about the specified FFS
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115 object; -v and -vv options act as already described, but are arguably more
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 useful when listing single files.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118 tiffs <...> cat [-v|-h] pathname
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 Just like the standard Unix cat(1) command, but cat'ing files from the FFS image
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121 under study. The non-standard -h option means hex dump - it is handy because
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122 almost all files in TI's GSM device FFS are binary, rather than ASCII.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 tiffs <...> xtr dest-dir
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126 This command extracts the complete content of the FFS into your ordinary Unix
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 file system. The sole argument is the local directory into which the root of
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 the GSM device FFS should be extracted.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129
731
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
130 tiffs <...> decode file-keyword [band]
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
131
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
132 For some files in TIFFS doing a hex dump with tiffs cat -h (see above) is
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
133 sufficient for easily understanding the content of the file, but for other files
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
134 such as RF parameter tables further developer-friendly decoding is greatly
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
135 desirable. The generic solution is to extract the complete FFS content with
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
136 tiffs xtr and then apply further tools for analysis, but this fully generic
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
137 solution involves a lot of clutter. For some TIFFS files which often need to be
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
138 looked at and for which tiffs cat -h is insufficient, tiffs decode offers a
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
139 shorthand. The following files can be decoded in this way:
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
140
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
141 Command File being decoded
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
142 ----------------------------------------------------------
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
143 tiffs <...> decode adccal /sys/adccal
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
144 tiffs <...> decode afcdac /gsm/rf/afcdac
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
145 tiffs <...> decode afcparams /gsm/rf/afcparams
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
146 tiffs <...> decode stdmap /gsm/rf/stdmap
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
147 tiffs <...> decode tx-ramps <band> /gsm/rf/tx/ramps.<band>
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
148 tiffs <...> decode tx-levels <band> /gsm/rf/tx/levels.<band>
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
149 tiffs <...> decode tx-calchan <band> /gsm/rf/tx/calchan.<band>
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
150 tiffs <...> decode tx-caltemp <band> /gsm/rf/tx/caltemp.<band>
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
151 tiffs <...> decode rx-calchan <band> /gsm/rf/rx/calchan.<band>
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
152 tiffs <...> decode rx-caltemp <band> /gsm/rf/rx/caltemp.<band>
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
153 tiffs <...> decode rx-agcparams <band> /gsm/rf/rx/agcparams.<band>
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
154 tiffs <...> decode pcm-IMEI /pcm/IMEI
d89b72f2181b doc/TIFFS-IVA-usage: new decode facility documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 729
diff changeset
155
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 Forensic analysis commands
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157 ==========================
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159 Unlike the "standard" listing/extraction commands which present TIFFS as a
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160 "normal" Unix file system, using the "forensic" commands effectively requires
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161 that the operator understands how TIFFS works, in particular, what an inode is
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162 in TIFFS.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164 tiffs <...> lsino [-v[v]]
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166 This command lists the FFS inode array from first to last; this listing order
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167 will normally correspond to the forward chronological order of object creation.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
168 -v and -vv options add verbosity.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
169
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
170 '.' in the object type column means segment, '~' means a deleted object. The
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
171 lsino command only lists the inode array, and does not try to recover the
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172 original type of deleted/overwritten objects from the journal or other clues.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
173 The program attempts to recover the pathname of each inode, but because such
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174 reverse mapping from inodes to pathnames is not an operation which TIFFS was
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175 properly designed to support, and the pathname recovery algorithm in this TIFFS
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176 IVA tool is made as generic as possible (doesn't look at the object types), the
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177 lsino listing will occasionally include some bogus pathnames. Once again, it
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178 is expected that the operator knows what s/he is doing when using these forensic
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179 commands.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
180
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
181 tiffs <...> lsino [-v[v]] [-f] ino...
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
182
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
183 This command works just like ls with an explicit pathname argument, but takes
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
184 one or more inode numbers instead. The -f option matters only if the requested
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
185 inode is in the deleted/overwritten state; it tells the lsino command to assume
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
186 that the object is/was the head inode of a file; -vf and -vvf combinations are
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
187 particularly useful.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
188
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
189 tiffs <...> catino [-v|-h] ino
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
190
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
191 Just like regular cat, but takes an inode number instead of a pathname. Can be
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
192 used to cat the old content of deleted or overwritten files.
922
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
193
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
194 Support for SE K2x0 extended filenames
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
195 ======================================
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
196
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
197 As explained in the SE-K2x0-FFS article, Sony Ericsson K200/220 phones use
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
198 TIFFS as their flexible data storage mechanism, but they also made their own
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
199 non-standard extension to TIFFS in terms of extended UCS-2 filenames.
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
200
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
201 In order to allow listing full FFS trees from SE K2x0 phones with tiffs ls and
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
202 possibly also extracting them with tiffs xtr, we have made the following hackish
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
203 extension to our TIFFS IVA: whenever either of these two commands encounters an
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
204 "extended" filename (one which fails standard TIFFS filename validity checks but
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
205 has a terminating NUL that allows the name and data portions of the chunk to be
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
206 separated) in the visible tree walk, our tool replaces it (for the purpose of
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
207 listed pathname generation or extraction into host file system) with a
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
208 synthesized pseudonym of the form "!bogo%04x", where %04x is the FFS inode
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
209 number in hex. In the case of tiffs ls, the actual extended filename is then
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
210 printed on a separate line (immediately following the synthesized listing), with
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
211 non-printable-ASCII characters escaped in \x hex form. We've also extended the
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
212 individual-inode form of lsino command to list these extended filenames when
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
213 encountering such, and we've extended catino (which needs to skip past the name
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
214 to get to the beginning of the data portion of the head chunk) to not reject
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
215 file head chunks with extended filenames in them as long as the needed
3152e23399a2 document SE K2x0 FFS quirks and our support for them
Mychaela Falconia <falcon@freecalypso.org>
parents: 731
diff changeset
216 separating NUL is found.