@@ -15,28 +15,31 @@ used. The user perspective may be simpler, as some of the properties (like
1515timestamps and hashes) are filled in automatically by available tooling, such
1616as `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
2021FIT
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+
3235Image-building procedure
3336~~~~~~~~~~~~~~~~~~~~~~~~
3437
3538The following picture shows how the FIT is prepared. Input consists of
3639image 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 +
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
6669is used as it's identifier as it assures uniqueness without additional
6770checking required.
6871
72+ .. index :: External data
6973
7074External data
7175~~~~~~~~~~~~~
@@ -78,13 +82,13 @@ needed it can be loaded from an external source.
7882
7983External 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
8488It 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
8993Root-node properties
9094--------------------
@@ -118,27 +122,27 @@ description
118122Mandatory 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
125129Conditionally 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
133137Mandatory 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
169173description
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
223227compression
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:
249254 external data is used.
250255
251256data-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
254260data-offset
255261 Offset of the data in a separate image store. The image store is placed
@@ -258,11 +264,11 @@ data-offset
258264
259265data-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
264270os
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
296302 ==================== ==================
297303
298304arch
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 ==================== ==================
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
382389Hash nodes
383390----------
@@ -392,7 +399,7 @@ Mandatory properties
392399~~~~~~~~~~~~~~~~~~~~
393400
394401algo
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
430437algo
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
468475hashed-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
476483hashed-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
481489The 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
506516The 'configurations' node has the following structure::
507517
@@ -554,7 +564,7 @@ description
554564 Textual configuration description.
555565
556566kernel 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
574584loadables
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
581591script
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
585595compatible
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
594605configuration for 2.6 FDT kernel is (kernel, fdt) pair.
595606
596607Older, 2.4 kernel and 2.6 non-FDT kernel do not use FDT blob, in such cases
0 commit comments