Skip to content

Commit 087522b

Browse files
sjg20LeanSheng
authored andcommitted
Populate the index
There is very little in the index so far. Add some more entries to fill it out. Fix a few nearby typos too. Signed-off-by: Simon Glass <[email protected]>
1 parent 2ec9db5 commit 087522b

File tree

3 files changed

+73
-61
lines changed

3 files changed

+73
-61
lines changed

source/acknowledgements.rst

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ Acknowledgements
44
================
55

66
FIT (Flattened Image Tree) was developed in 2008 by Marian Balakowicz and
7-
Bartlomiej Sieka of Semihalf, under the guidance of Wolfgang Denk,
7+
Bartlomiej Sieka of :index:`Semihalf`, under the guidance of Wolfgang Denk,
88
founder of Denx Software Engineering and creator of U-Boot.
99

10-
Since then, FIT has been maintained and extended by the U-Boot community
11-
to deal with the developing needs of Open Source firmware.
10+
Since then, :index:`FIT` has been maintained and extended by the U-Boot
11+
community to deal with the developing needs of Open Source firmware.
1212

1313
This specification builds on this previous work.
1414

1515
FIT has stood the test of time due to its simplicity and extensibility.
16-
THis specification aims to build on this work and provide a means for
16+
This specification aims to build on this work and provide a means for
1717
further improvement with a wider group of collaborators.

source/chapter1-introduction.rst

+7-6
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,14 @@ Purpose and Scope
99
-----------------
1010

1111
The number of elements playing a role in the kernel booting process has
12-
increased over time and now typically includes the devicetree, kernel image and
12+
increased over time and now typically includes the devicetree,
13+
:index:`kernel image <pair: kernel; image>` and
1314
possibly a ramdisk image. Generally, all must be placed in the system memory and
1415
booted together.
1516

1617
For firmware images a similar process has taken place, with various binaries
17-
loaded at different addresses, such as ARM's ATF, OpenSBI, FPGA and U-Boot
18-
itself.
18+
loaded at different addresses, such as ARM's :index:`ATF`, :index:`OpenSBI`,
19+
:index:`FPGA` and :index:`U-Boot` itself.
1920

2021
FIT provides a flexible and extensible format to deal with this complexity. It
2122
provides support for multiple components. It also supports multiple
@@ -55,14 +56,14 @@ Syntax* form. See [dtspec]_ for a description of this.
5556
Relationship to |dtspec|
5657
------------------------
5758

58-
|spec| is based on the Devicetree Specification, in that it uses the
59+
|spec| is based on the :index:`Devicetree Specification`, in that it uses the
5960
same structure and shares some concepts.
6061

6162
32-bit and 64-bit Support
6263
-------------------------
6364

64-
The |spec| supports CPUs with both 32-bit and 64-bit addressing
65-
capabilities. Where applicable, sections of the |spec| describe any
65+
The |spec| supports CPUs with both :index:`32-bit` and :index:`64-bit`
66+
addressing capabilities. Where applicable, sections of the |spec| describe any
6667
requirements or considerations for 32-bit and 64-bit addressing.
6768

6869

source/chapter2-source-file-format.rst

+62-51
Original file line numberDiff line numberDiff line change
@@ -15,28 +15,31 @@ used. The user perspective may be simpler, as some of the properties (like
1515
timestamps and hashes) are filled in automatically by available tooling, such
1616
as `mkimage`.
1717

18-
To avoid confusion with the kernel FDT the following naming convention is used:
18+
To avoid confusion with the index:`kernel FDT <pair: kernel; FDT>` the following
19+
naming convention is used:
1920

2021
FIT
2122
Flattened Image Tree
2223

23-
FIT is formally a flattened devicetree (in the libfdt meaning), which conforms
24-
to bindings defined in this document.
24+
FIT is formally a flattened devicetree (in the libfdt meaning), which
25+
conforms to bindings defined in this document.
2526

26-
.its
27+
:index:`.its`
2728
image tree source
2829

29-
.fit
30+
:index:`.fit`
3031
flattened image tree blob
3132

33+
This was previously known as :index:`.itb` but has been renamed to `.fit`.
34+
3235
Image-building procedure
3336
~~~~~~~~~~~~~~~~~~~~~~~~
3437

3538
The following picture shows how the FIT is prepared. Input consists of
3639
image source file (.its) and a set of data files. Image is created with the
37-
help of standard U-Boot mkimage tool which in turn uses dtc (device tree
38-
compiler) to produce image tree blob (.fit). The resulting .fit file is the
39-
actual binary of a new FIT::
40+
help of standard :index:`U-Boot mkimage <pair: U-Boot; mkimage>` tool which in
41+
turn uses dtc (device tree compiler) to produce image tree blob (.fit). The
42+
resulting .fit file is the actual binary of a new FIT::
4043

4144
tqm5200.its
4245
+
@@ -50,7 +53,7 @@ Steps:
5053

5154
#. Create .its file, automatically filled-in properties are omitted
5255

53-
#. Call mkimage tool on .its file
56+
#. Call :index:`mkimage` tool on .its file
5457

5558
#. mkimage calls dtc to create .fit image and assures that
5659
missing properties are added
@@ -66,6 +69,7 @@ are defined in the following sections), the "unit name" of the given sub-node
6669
is used as it's identifier as it assures uniqueness without additional
6770
checking required.
6871

72+
.. index:: External data
6973

7074
External data
7175
~~~~~~~~~~~~~
@@ -78,13 +82,13 @@ needed it can be loaded from an external source.
7882

7983
External FITs use 'data-offset' or 'data-position' instead of 'data'.
8084

81-
The mkimage tool can convert a FIT to use external data using the `-E` argument,
82-
optionally using `-p` to specific a fixed position.
85+
The :index:`mkimage` tool can convert a FIT to use external data using the `-E`
86+
argument, optionally using `-p` to specific a fixed position.
8387

8488
It is often desirable to align each image to a block size or cache-line size
85-
(e.g. 512 bytes), so that there is no need to copy it to an aligned address when
86-
reading the image data. The mkimage tool provides a `-B` argument to support
87-
this.
89+
(e.g. 512 bytes), so that there is no need to copy it to an
90+
:index:`aligned address` when reading the image data. The mkimage tool provides
91+
a `-B` argument to support this.
8892

8993
Root-node properties
9094
--------------------
@@ -118,27 +122,27 @@ description
118122
Mandatory property
119123
~~~~~~~~~~~~~~~~~~
120124

121-
timestamp
125+
:index:`timestamp`
122126
Last image modification time being counted in seconds since
123127
1970-01-01 00:00:00 - to be automatically calculated by mkimage tool.
124128

125129
Conditionally mandatory property
126130
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
127131

128-
#address-cells
132+
:index:`#address-cells`
129133
Number of 32bit cells required to represent entry and
130134
load addresses supplied within sub-image nodes. May be omitted when no
131135
entry or load addresses are used.
132136

133137
Mandatory nodes
134138
~~~~~~~~~~~~~~~
135139

136-
images
140+
:index:`images`
137141
This node contains a set of sub-nodes, each of them representing
138-
single component sub-image (like kernel, ramdisk, etc.). At least one
139-
sub-image is required.
142+
single component sub-image (like :index:`kernel`, :index:`ramdisk`, etc.).
143+
At least one sub-image is required.
140144

141-
configurations
145+
:index:`configurations`
142146
Contains a set of available configuration nodes and
143147
defines a default configuration.
144148

@@ -169,7 +173,7 @@ Mandatory properties
169173
description
170174
Textual description of the component sub-image
171175

172-
type
176+
:index:`type`
173177
Name of component sub-image type. Supported types are:
174178

175179
==================== ==================
@@ -221,9 +225,10 @@ type
221225
==================== ==================
222226

223227
compression
224-
Compression used by included data. If no compression is used, the
228+
:index:`Compression` used by included data. If no compression is used, the
225229
compression property should be set to "none". If the data is compressed but
226-
it should not be uncompressed by the loader (e.g. compressed ramdisk), this
230+
it should not be uncompressed by the loader
231+
(e.g. :index:`compressed ramdisk <pair: ramdisk; compressed`), this
227232
should also be set to "none".
228233

229234
Supported compression types are:
@@ -249,7 +254,8 @@ data
249254
external data is used.
250255

251256
data-size
252-
size of the data in bytes. This is mandatory if external data is used.
257+
size of the data in bytes. This is mandatory if :index:`external data` is
258+
used.
253259

254260
data-offset
255261
Offset of the data in a separate image store. The image store is placed
@@ -258,11 +264,11 @@ data-offset
258264

259265
data-position
260266
Machine address at which the data is to be found. This is a fixed address
261-
not relative to the loading of the FIT. This is mandatory if external data
262-
used with a fixed address.
267+
not relative to the loading of the FIT. This is mandatory if
268+
:index:`external data` is used with a fixed address.
263269

264270
os
265-
OS name, mandatory for types "kernel". Valid OS names are:
271+
:index:`OS` name, mandatory for types "kernel". Valid OS names are:
266272

267273
==================== ==================
268274
OS name Meaning
@@ -296,7 +302,7 @@ os
296302
==================== ==================
297303

298304
arch
299-
Architecture name, mandatory for types: "standalone", "kernel",
305+
:index:`Architecture` name, mandatory for types: "standalone", "kernel",
300306
"firmware", "ramdisk" and "fdt". Valid architecture names are:
301307

302308
==================== ==================
@@ -340,7 +346,7 @@ load
340346
property of the root node.
341347
Mandatory for types: "firmware", and "kernel".
342348

343-
compatible
349+
:index:`compatible`
344350
compatible method for loading image.
345351
Mandatory for types: "fpga", and images that do not specify a load address.
346352
Supported compatible methods:
@@ -359,8 +365,8 @@ compatible
359365
The compatible here is not derived from the fdt, nor is it used to identify
360366
the fdt. Such usage belongs in the configuration node.
361367

362-
phase
363-
U-Boot phase for which the image is intended.
368+
:index:`phase`
369+
:index:`U-Boot phase <pair: U-Boot; phase>` for which the image is intended.
364370

365371
"spl"
366372
image is an SPL image
@@ -378,6 +384,7 @@ signature-1
378384
Each signature sub-node represents separate signature
379385
calculated for node's data according to specified algorithm.
380386

387+
.. index:: Hash nodes
381388

382389
Hash nodes
383390
----------
@@ -392,7 +399,7 @@ Mandatory properties
392399
~~~~~~~~~~~~~~~~~~~~
393400

394401
algo
395-
Algorithm name. Supported algoriths and their value sizes are:
402+
:index:`Algorithm` name. Supported algoriths and their value sizes are:
396403

397404
==================== ============ =========================================
398405
Sub-image type Size (bytes) Meaning
@@ -428,11 +435,11 @@ Mandatory properties
428435
_`FIT Algorithm`:
429436

430437
algo
431-
Algorithm name. Supported algoriths and their value sizes are shown below.
432-
Note that the hash is specified separately from the signing algorithm, so
433-
it is possible to mix and match any SHA algorithm with any signing
434-
algorithm. The size of the signature relates to the signing algorithm, not
435-
the hash, since it is the hash that is signed.
438+
:index:`Algorithm` name. Supported algorithms and their value sizes are
439+
shown below. Note that the hash is specified separately from the signing
440+
algorithm, so it is possible to mix and match any SHA algorithm with any
441+
signing algorithm. The size of the signature relates to the signing
442+
algorithm, not the hash, since it is the hash that is signed.
436443

437444
==================== ============ =========================================
438445
Sub-image type Size (bytes) Meaning
@@ -466,17 +473,18 @@ value
466473
Actual signature value. This is added by mkimage.
467474

468475
hashed-nodes
469-
A list of nodes which were hashed by the signer. Each is
470-
a string - the full path to node. A typical value might be::
476+
A list of nodes which were :index:`hashed <pair: nodes; hashed>` by the
477+
signer. Each is a string - the full path to node. A typical value might be::
471478

472479
hashed-nodes = "/", "/configurations/conf-1", "/images/kernel",
473480
"/images/kernel/hash-1", "/images/fdt-1",
474481
"/images/fdt-1/hash-1";
475482

476483
hashed-strings
477-
The start and size of the string region of the FIT that was hashed. The
478-
start is normally 0, indicating the first byte of the string table. The size
479-
indicates the number of bytes hashed as part of signing.
484+
The start and size of the :index:`string <pair: strings; hashed>` region of
485+
the FIT that was hashed. The start is normally 0, indicating the first byte
486+
of the string table. The size indicates the number of bytes hashed as part
487+
of signing.
480488

481489
The following properies are added as part of signing, and are optional:
482490

@@ -500,8 +508,10 @@ padding
500508
'/configurations' node
501509
----------------------
502510

503-
The 'configurations' node creates convenient, labeled boot configurations,
504-
which combine together kernel images with their ramdisks and fdt blobs.
511+
The 'configurations' node creates convenient, labeled
512+
:index:`boot configurations <pair: boot; configurations>`,
513+
which combine together :index:`kernel images <pair: kernel; image>` with their
514+
:index:`ramdisks` and fdt blobs.
505515

506516
The 'configurations' node has the following structure::
507517

@@ -554,7 +564,7 @@ description
554564
Textual configuration description.
555565

556566
kernel or firmware
557-
Unit name of the corresponding kernel or firmware
567+
Unit name of the corresponding :index:`kernel` or :index:`firmware`
558568
(u-boot, op-tee, etc) image. If both "kernel" and "firmware" are specified,
559569
control is passed to the firmware image.
560570

@@ -574,23 +584,24 @@ fpga
574584
loadables
575585
Unit name containing a list of additional binaries to be
576586
loaded at their given locations. "loadables" is a comma-separated list
577-
of strings. U-Boot will load each binary at its given start-address and
578-
may optionally invoke additional post-processing steps on this binary based
579-
on its component image node type.
587+
of strings. :index:`U-Boot` will load each binary at its given start-address
588+
and may optionally invoke additional post-processing steps on this binary
589+
based on its component image node type.
580590

581591
script
582-
The image to use when loading a U-Boot script (for use with the
592+
The image to use when loading a :index:`U-Boot` script (for use with the
583593
source command).
584594

585595
compatible
586596
The root compatible string of the U-Boot device tree that
587-
this configuration shall automatically match when CONFIG_FIT_BEST_MATCH is
597+
this configuration shall automatically match when
598+
:index:`CONFIG_FIT_BEST_MATCH` is
588599
enabled. If this property is not provided, the compatible string will be
589600
extracted from the fdt blob instead. This is only possible if the fdt is
590601
not compressed, so images with compressed fdts that want to use compatible
591602
string matching must always provide this property.
592603

593-
The FDT blob is required to properly boot FDT based kernel, so the minimal
604+
The FDT blob is required to properly boot FDT-based kernel, so the minimal
594605
configuration for 2.6 FDT kernel is (kernel, fdt) pair.
595606

596607
Older, 2.4 kernel and 2.6 non-FDT kernel do not use FDT blob, in such cases

0 commit comments

Comments
 (0)