@@ -15,28 +15,31 @@ used. The user perspective may be simpler, as some of the properties (like
15
15
timestamps and hashes) are filled in automatically by available tooling, such
16
16
as `mkimage `.
17
17
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:
19
20
20
21
FIT
21
22
Flattened Image Tree
22
23
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.
25
26
26
- .its
27
+ :index: ` .its `
27
28
image tree source
28
29
29
- .fit
30
+ :index: ` .fit `
30
31
flattened image tree blob
31
32
33
+ This was previously known as :index: `.itb ` but has been renamed to `.fit `.
34
+
32
35
Image-building procedure
33
36
~~~~~~~~~~~~~~~~~~~~~~~~
34
37
35
38
The following picture shows how the FIT is prepared. Input consists of
36
39
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::
40
43
41
44
tqm5200.its
42
45
+
50
53
51
54
#. Create .its file, automatically filled-in properties are omitted
52
55
53
- #. Call mkimage tool on .its file
56
+ #. Call :index: ` mkimage ` tool on .its file
54
57
55
58
#. mkimage calls dtc to create .fit image and assures that
56
59
missing properties are added
@@ -66,6 +69,7 @@ are defined in the following sections), the "unit name" of the given sub-node
66
69
is used as it's identifier as it assures uniqueness without additional
67
70
checking required.
68
71
72
+ .. index :: External data
69
73
70
74
External data
71
75
~~~~~~~~~~~~~
@@ -78,13 +82,13 @@ needed it can be loaded from an external source.
78
82
79
83
External FITs use 'data-offset' or 'data-position' instead of 'data'.
80
84
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.
83
87
84
88
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.
88
92
89
93
Root-node properties
90
94
--------------------
@@ -118,27 +122,27 @@ description
118
122
Mandatory property
119
123
~~~~~~~~~~~~~~~~~~
120
124
121
- timestamp
125
+ :index: ` timestamp `
122
126
Last image modification time being counted in seconds since
123
127
1970-01-01 00:00:00 - to be automatically calculated by mkimage tool.
124
128
125
129
Conditionally mandatory property
126
130
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
127
131
128
- #address-cells
132
+ :index: ` #address-cells `
129
133
Number of 32bit cells required to represent entry and
130
134
load addresses supplied within sub-image nodes. May be omitted when no
131
135
entry or load addresses are used.
132
136
133
137
Mandatory nodes
134
138
~~~~~~~~~~~~~~~
135
139
136
- images
140
+ :index: ` images `
137
141
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.
140
144
141
- configurations
145
+ :index: ` configurations `
142
146
Contains a set of available configuration nodes and
143
147
defines a default configuration.
144
148
@@ -169,7 +173,7 @@ Mandatory properties
169
173
description
170
174
Textual description of the component sub-image
171
175
172
- type
176
+ :index: ` type `
173
177
Name of component sub-image type. Supported types are:
174
178
175
179
==================== ==================
@@ -221,9 +225,10 @@ type
221
225
==================== ==================
222
226
223
227
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
225
229
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
227
232
should also be set to "none".
228
233
229
234
Supported compression types are:
249
254
external data is used.
250
255
251
256
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.
253
259
254
260
data-offset
255
261
Offset of the data in a separate image store. The image store is placed
@@ -258,11 +264,11 @@ data-offset
258
264
259
265
data-position
260
266
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.
263
269
264
270
os
265
- OS name, mandatory for types "kernel". Valid OS names are:
271
+ :index: ` OS ` name, mandatory for types "kernel". Valid OS names are:
266
272
267
273
==================== ==================
268
274
OS name Meaning
296
302
==================== ==================
297
303
298
304
arch
299
- Architecture name, mandatory for types: "standalone", "kernel",
305
+ :index: ` Architecture ` name, mandatory for types: "standalone", "kernel",
300
306
"firmware", "ramdisk" and "fdt". Valid architecture names are:
301
307
302
308
==================== ==================
340
346
property of the root node.
341
347
Mandatory for types: "firmware", and "kernel".
342
348
343
- compatible
349
+ :index: ` compatible `
344
350
compatible method for loading image.
345
351
Mandatory for types: "fpga", and images that do not specify a load address.
346
352
Supported compatible methods:
@@ -359,8 +365,8 @@ compatible
359
365
The compatible here is not derived from the fdt, nor is it used to identify
360
366
the fdt. Such usage belongs in the configuration node.
361
367
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.
364
370
365
371
"spl"
366
372
image is an SPL image
@@ -378,6 +384,7 @@ signature-1
378
384
Each signature sub-node represents separate signature
379
385
calculated for node's data according to specified algorithm.
380
386
387
+ .. index :: Hash nodes
381
388
382
389
Hash nodes
383
390
----------
@@ -392,7 +399,7 @@ Mandatory properties
392
399
~~~~~~~~~~~~~~~~~~~~
393
400
394
401
algo
395
- Algorithm name. Supported algoriths and their value sizes are:
402
+ :index: ` Algorithm ` name. Supported algoriths and their value sizes are:
396
403
397
404
==================== ============ =========================================
398
405
Sub-image type Size (bytes) Meaning
@@ -428,11 +435,11 @@ Mandatory properties
428
435
_`FIT Algorithm `:
429
436
430
437
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.
436
443
437
444
==================== ============ =========================================
438
445
Sub-image type Size (bytes) Meaning
@@ -466,17 +473,18 @@ value
466
473
Actual signature value. This is added by mkimage.
467
474
468
475
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::
471
478
472
479
hashed-nodes = "/", "/configurations/conf-1", "/images/kernel",
473
480
"/images/kernel/hash-1", "/images/fdt-1",
474
481
"/images/fdt-1/hash-1";
475
482
476
483
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.
480
488
481
489
The following properies are added as part of signing, and are optional:
482
490
@@ -500,8 +508,10 @@ padding
500
508
'/configurations' node
501
509
----------------------
502
510
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.
505
515
506
516
The 'configurations' node has the following structure::
507
517
@@ -554,7 +564,7 @@ description
554
564
Textual configuration description.
555
565
556
566
kernel or firmware
557
- Unit name of the corresponding kernel or firmware
567
+ Unit name of the corresponding :index: ` kernel ` or :index: ` firmware `
558
568
(u-boot, op-tee, etc) image. If both "kernel" and "firmware" are specified,
559
569
control is passed to the firmware image.
560
570
@@ -574,23 +584,24 @@ fpga
574
584
loadables
575
585
Unit name containing a list of additional binaries to be
576
586
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.
580
590
581
591
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
583
593
source command).
584
594
585
595
compatible
586
596
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
588
599
enabled. If this property is not provided, the compatible string will be
589
600
extracted from the fdt blob instead. This is only possible if the fdt is
590
601
not compressed, so images with compressed fdts that want to use compatible
591
602
string matching must always provide this property.
592
603
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
594
605
configuration for 2.6 FDT kernel is (kernel, fdt) pair.
595
606
596
607
Older, 2.4 kernel and 2.6 non-FDT kernel do not use FDT blob, in such cases
0 commit comments