binman: doc: Remove incomplete sentence
[platform/kernel/u-boot.git] / doc / mkimage.1
1 .\" SPDX-License-Identifier: GPL-2.0
2 .\" Copyright (C) 2022 Sean Anderson <seanga2@gmail.com>
3 .\" Copyright (C) 2013-20 Simon Glass <sjg@chromium.org>
4 .\" Copyright (C) 2010 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
5 .\" Copyright (C) 2010 Wolfgang Denk <wd@denx.de>
6 .TH MKIMAGE 1 2022-06-11 U-Boot
7 .
8 .SH NAME
9 mkimage \- generate images for U-Boot
10 .SH SYNOPSIS
11 .SY mkimage
12 .OP \-T type
13 .BI \-l\~ image-file-name
14 .YS
15 .
16 .SY mkimage
17 .RI [ option\~ .\|.\|.\&]
18 .OP \-T type
19 .I image-file-name
20 .YS
21 .
22 .SY mkimage
23 .RI [ option\~ .\|.\|.\&]
24 .BI \-f\~ image-tree-source-file\c
25 .RB | auto\c
26 .RB | auto-conf
27 .I image-file-name
28 .YS
29 .
30 .SY mkimage
31 .RI [ option\~ .\|.\|.\&]
32 .BI \-F\~ image-file-name
33 .YS
34 .
35 .SH DESCRIPTION
36 The
37 .B mkimage
38 command is used to create images for use with the U-Boot boot loader.  These
39 images can contain the Linux kernel, device tree blob, root file system image,
40 firmware images etc., either separate or combined.
41 .P
42 .B mkimage
43 supports many image formats. Some of these formats may be used by embedded boot
44 firmware to load U-Boot. Others may be used by U-Boot to load Linux (or some
45 other kernel):
46 .P
47 The legacy image format concatenates the individual parts (for example, kernel
48 image, device tree blob and ramdisk image) and adds a 64 byte header containing
49 information about the target architecture, operating system, image type,
50 compression method, entry points, time stamp, checksums, etc.
51 .P
52 The new
53 .I FIT
54 (Flattened Image Tree) format allows for more flexibility in handling images of
55 various types and also enhances integrity protection of images with stronger
56 checksums. It also supports verified boot.
57 .
58 .SH OPTIONS
59 .
60 .SS General options
61 .
62 .TP
63 .B \-h
64 .TQ
65 .B \-\-help
66 Print a help message and exit.
67 .
68 .TP
69 .B \-l
70 .TQ
71 .B \-\-list
72 .B mkimage
73 lists the information contained in the header of an existing U-Boot image.
74 .
75 .TP
76 .B \-s
77 .TQ
78 .B \-\-no\-copy
79 Don't copy in the image data. Depending on the image type, this may create
80 just the header, everything but the image data, or nothing at all.
81 .
82 .TP
83 .BI \-T " image-type"
84 .TQ
85 .BI \-\-type " image-type"
86 Parse image file as
87 .IR image-type .
88 Pass
89 .B list
90 as
91 .I image-type
92 to see the list of supported image types. If this option is absent, then it
93 defaults to
94 .B kernel
95 (legacy image). If this option is absent when
96 .B \-l
97 is passed, then
98 .B mkimage
99 will attempt to automatically detect the image type. Not all image types support
100 automatic detection, so it may be necessary to pass
101 .B \-T
102 explicitly.
103 .IP
104 When creating a FIT image with
105 .BR \-f ,
106 the image type is always set to
107 .BR flat_dt .
108 In this case,
109 .B \-T
110 specifies the image node's \(oqtype\(cq property. If
111 .B \-T
112 is absent, then the \(oqtype\(cq property will default to
113 .BR kernel .
114 .
115 .TP
116 .B \-q
117 .TQ
118 .B \-\-quiet
119 Quiet. Don't print the image header.
120 .
121 .TP
122 .B \-v
123 .TQ
124 .B \-\-verbose
125 Verbose. Print file names as they are added to the image.
126 .
127 .TP
128 .B \-V
129 .TQ
130 .B \-\-version
131 Print version information and exit.
132 .
133 .SS General image-creation options
134 .
135 .TP
136 .BI \-A " architecture"
137 .TQ
138 .BI \-\-architecture " architecture"
139 Set the architecture. Pass
140 .B \-h
141 as the architecture to see the list of supported architectures. If
142 .B \-A
143 is absent, it defaults to
144 .BR ppc .
145 .
146 .TP
147 .BI \-O " os"
148 .TQ
149 .BI \-\-os " os"
150 Set the operating system. The U-Boot
151 .I bootm
152 command changes boot method based on the OS type.
153 Pass
154 .B \-h
155 as the
156 .I os
157 to see the list of supported OSs. If
158 .B \-O
159 is absent, it defaults to
160 .BR linux .
161 .
162 .TP
163 .BI \-C " compression-type"
164 .TQ
165 .BI \-\-compression " compression-type"
166 Set the compression type. The image data should have already been compressed
167 using this compression type.
168 .B mkimage
169 will not automatically compress image data.
170 Pass
171 .B \-h
172 as the
173 .I compression-type
174 to see the list of supported compression types. If
175 .B \-C
176 is absent, it defaults to
177 .BR gzip .
178 .
179 .TP
180 .BI \-a " load-address"
181 .TQ
182 .BI \-\-load\-address " load-address"
183 Set the absolute address to load the image data to.
184 .I load-address
185 will be interpreted as a hexadecimal number.
186 .
187 .TP
188 .BI \-e " entry-point"
189 .TQ
190 .BI \-\-entry\-point " entry-point"
191 Set the absolute address of the image entry point. The U-Boot
192 .I bootm
193 command will jump to this address after loading the image.
194 .I entry-point
195 will be interpreted as a hexadecimal number.
196 .
197 .TP
198 .BI \-n " primary-configuration"
199 .TQ
200 .BI \-\-config " primary-configuration"
201 Images may require additional configuration not specified with other options,
202 often in a image-type-specific format. The image types which support this
203 option and the format of their configuration are listed in
204 .BR CONFIGURATION .
205 .
206 .TP
207 .BI \-R " secondary-configuration"
208 .TQ
209 .BI \-\-secondary\-config " secondary-configuration"
210 Some image types support a second set of configuration data. The image types
211 which support secondary configuration and the formap of their configuration are
212 listed in
213 .BR CONFIGURATION .
214 .
215 .TP
216 .BI \-d " image-data-file"
217 .TQ
218 .BI \-\-image " image-data-file"
219 Use image data from
220 .IR image-data-file .
221 If the
222 .I image-type
223 is
224 .BR multi ,
225 then multiple images may be specified, separated by colons:
226 .RS
227 .IP
228 .IR image-data-file [\fB:\fP image-data-file .\|.\|.]
229 .RE
230 .
231 .TP
232 .B \-x
233 .TQ
234 .B \-\-xip
235 Set the
236 .I XIP
237 (execute in place) flag. The U-Boot
238 .I bootm
239 command will not load the image data, and instead will assume it is already
240 accessible at the load address (such as via memory-mapped flash).
241 .
242 .SS Options for creating FIT images
243 .
244 .TP
245 .BI \-b " device-tree-file"
246 .TQ
247 .BI \-\-device\-tree " device-tree-file"
248 Appends the device tree binary file (.dtb) to the FIT.
249 .
250 .TP
251 .BI \-c " comment"
252 .TQ
253 .BI \-\-comment " comment"
254 Specifies a comment to be added when signing. This is typically a message which
255 describes how the image was signed or some other useful information.
256 .
257 .TP
258 .BI \-D " dtc-options"
259 .TQ
260 .BI \-\-dtcopts " dtc-options"
261 Provide additional options to the device tree compiler when creating the image.
262 See
263 .BR dtc (1)
264 for documentation of possible options. If
265 .B \-D
266 is absent, it defaults to
267 .BR "\-I dts \-O dtb \-p 500" .
268 .
269 .TP
270 .BI \-E
271 .TQ
272 .BI \-\-external
273 After processing, move the image data outside the FIT and store a data offset
274 in the FIT. Images will be placed one after the other immediately after the FIT,
275 with each one aligned to a 4-byte boundary. The existing \(oqdata\(cq property
276 in each image will be replaced with \(oqdata-offset\(cq and \(oqdata-size\(cq
277 properties.  A \(oqdata-offset\(cq of 0 indicates that it starts in the first
278 (4-byte-aligned) byte after the FIT.
279 .
280 .TP
281 .BI \-B " alignment"
282 .TQ
283 .BI \-\-alignment " alignment"
284 The alignment, in hexadecimal, that external data will be aligned to. This
285 option only has an effect when \-E is specified.
286 .
287 .TP
288 .BI \-p " external-position"
289 .TQ
290 .BI \-\-position " external-position"
291 Place external data at a static external position. Instead of writing a
292 \(oqdata-offset\(cq property defining the offset from the end of the FIT,
293 .B \-p
294 will use \(oqdata-position\(cq as the absolute position from the base of the
295 FIT. See
296 .B \-E
297 for details on using external data.
298 .
299 .TP
300 \fB\-f \fIimage-tree-source-file\fR | \fBauto\fR | \fBauto-conf
301 .TQ
302 \fB\-\-fit \fIimage-tree-source-file\fR | \fBauto\fR | \fBauto-conf
303 Image tree source file that describes the structure and contents of the
304 FIT image.
305 .IP
306 In some simple cases, the image tree source can be generated automatically. To
307 use this feature, pass
308 .BR "\-f auto" .
309 The
310 .BR \-d ,
311 .BR \-A ,
312 .BR \-O ,
313 .BR \-T ,
314 .BR \-C ,
315 .BR \-a ,
316 and
317 .B \-e
318 options may be used to specify the image to include in the FIT and its
319 attributes. No
320 .I image-tree-source-file
321 is required. The
322 .BR \-g ,
323 .BR \-o ,
324 and
325 .B \-k
326 or
327 .B \-G
328 options may be used to get \(oqimages\(cq signed subnodes in the generated
329 auto FIT. Instead, to get \(oqconfigurations\(cq signed subnodes and
330 \(oqimages\(cq hashed subnodes, pass
331 .BR "\-f auto-conf".
332 In this case
333 .BR \-g ,
334 .BR \-o ,
335 and
336 .B \-k
337 or
338 .B \-G
339 are mandatory options.
340 .
341 .TP
342 .B \-F
343 .TQ
344 .B \-\-update
345 Indicates that an existing FIT image should be modified. No dtc compilation will
346 be performed and
347 .B \-f
348 should not be passed. This can be used to sign images with additional keys
349 after initial image creation.
350 .
351 .TP
352 .BI \-i " ramdisk-file"
353 .TQ
354 .BI \-\-initramfs " ramdisk-file"
355 Append a ramdisk or initramfs file to the image.
356 .
357 .TP
358 .BI \-k " key-directory"
359 .TQ
360 .BI \-\-key\-dir " key-directory"
361 Specifies the directory containing keys to use for signing. This directory
362 should contain a private key file
363 .IR name .key
364 for use with signing, and a certificate
365 .IR name .crt
366 (containing the public key) for use with verification. The public key is only
367 necessary when embedding it into another device tree using
368 .BR \-K .
369 .I name
370 is the value of the signature node's \(oqkey-name-hint\(cq property.
371 .
372 .TP
373 .BI \-G " key-file"
374 .TQ
375 .BI \-\-key\-file " key-file"
376 Specifies the private key file to use when signing. This option may be used
377 instead of \-k. Useful when the private key file basename does not match
378 \(oqkey-name-hint\(cq value. But note that it may lead to unexpected results
379 when used together with -K and/or -k options.
380 .
381 .TP
382 .BI \-K " key-destination"
383 .TQ
384 .BI \-\-key\-dest " key-destination"
385 Specifies a compiled device tree binary file (typically .dtb) to write
386 public key information into. When a private key is used to sign an image,
387 the corresponding public key is written into this file for for run-time
388 verification. Typically the file here is the device tree binary used by
389 CONFIG_OF_CONTROL in U-Boot.
390 .
391 .TP
392 .BI \-g " key-name-hint"
393 .TQ
394 .BI \-\-key\-name\-hint " key-name-hint"
395 Specifies the value of signature node \(oqkey-name-hint\(cq property for
396 an automatically generated FIT image. It makes sense only when used with
397 .B "\-f auto"
398 or
399 .BR "\-f auto-conf".
400 This option also indicates that the images or configurations included in
401 the FIT should be signed. If this option is specified, then
402 .B \-o
403 must be specified as well.
404 .
405 .TP
406 .BI \-o " checksum" , crypto
407 .TQ
408 .BI \-\-algo " checksum" , crypto
409 Specifies the algorithm to be used for signing a FIT image, overriding value
410 taken from the signature node \(oqalgo\(cq property in the
411 .IR image-tree-source-file .
412 It is mandatory for automatically generated FIT.
413 .IP
414 The valid values for
415 .I checksum
416 are:
417 .RS
418 .IP
419 .TS
420 lb.
421 sha1
422 sha256
423 sha384
424 sha512
425 .TE
426 .RE
427 .IP
428 The valid values for
429 .I crypto
430 are:
431 .RS
432 .IP
433 .TS
434 lb.
435 rsa2048
436 rsa3072
437 rsa4096
438 ecdsa256
439 .TE
440 .RE
441 .
442 .TP
443 .B \-r
444 .TQ
445 .B \-\-key\-required
446 Specifies that keys used to sign the FIT are required. This means that images
447 or configurations signatures must be verified before using them (i.e. to
448 boot). Without this option, the verification will be optional (useful for
449 testing but not for release). It makes sense only when used with
450 .BR \-K.
451 When both, images and configurations, are signed, \(oqrequired\(cq property
452 value will be "conf".
453 .
454 .TP
455 .BI \-N " engine"
456 .TQ
457 .BI \-\-engine " engine"
458 The openssl engine to use when signing and verifying the image. For a complete
459 list of available engines, refer to
460 .BR engine (1).
461 .
462 .TP
463 .B \-t
464 .TQ
465 .B \-\-touch
466 Update the timestamp in the FIT.
467 .IP
468 Normally the FIT timestamp is created the first time mkimage runs,
469 when converting the source .its to the binary .fit file. This corresponds to
470 using
471 .BR -f .
472 But if the original input to mkimage is a binary file (already compiled), then
473 the timestamp is assumed to have been set previously.
474 .
475 .SH CONFIGURATION
476 This section documents the formats of the primary and secondary configuration
477 options for each image type which supports them.
478 .
479 .SS aisimage
480 The primary configuration is a file containing a series of
481 .I AIS
482 (Application Image Script) commands, one per line. Each command has the form
483 .RS
484 .P
485 .IR "command argument " .\|.\|.
486 .RE
487 .P
488 See
489 .UR https://\:www\:.ti\:.com/\:lit/\:pdf/\:spraag0
490 TI application report SPRAAG0E
491 .UE
492 for details.
493 .
494 .SS atmelimage
495 The primary configuration is a comma-separated list of NAND Flash parameters of
496 the form
497 .RS
498 .P
499 \fIparameter\fB=\fIvalue\fR[\fB,\fIparameter\fB=\fIvalue\fR.\|.\|.\&]
500 .RE
501 .P
502 Valid
503 .IR parameter s
504 are
505 .RS
506 .P
507 .TS
508 lb.
509 usePmecc
510 nbSectorPerPage
511 spareSize
512 eccBitReq
513 sectorSize
514 eccOffset
515 .TE
516 .RE
517 .P
518 and valid
519 .IR value s
520 are decimal numbers. See section 11.4.4.1 of the SAMA5D3 Series Data Sheet for
521 valid values for each parameter.
522 .
523 .SS imximage
524 The primary configuration is a file containing configuration commands, as
525 documented in doc/\:imx/\:mkimage/\:imximage.txt of the U-Boot source.
526 .
527 .SS imx8image and imx8mimage
528 The primary configuration is a file containing configuration commands, as
529 documented in doc/\:imx/\:mkimage/\:imx8image.txt of the U-Boot source.
530 .
531 .SS kwbimage
532 The primary configuration is a file containing configuration commands, as
533 documented in doc/\:imx/\:mkimage/\:kwbimage.txt of the U-Boot source.
534 .
535 .SS mtk_image
536 The primary configuration is a semicolon-separated list of header options of the
537 form
538 .RS
539 .P
540 \fIkey\fB=\fIvalue\fR[\fB;\fIkey\fB=\fIvalue\fR.\|.\|.\&]
541 .RE
542 .P
543 where the valid keys are:
544 .RS
545 .P
546 .TS
547 lb lbx
548 lb l.
549 Key     Description
550 _
551 lk      T{
552 If \fB1\fP, then an \fILK\fP (legacy) image header is used. Otherwise, a
553 \fIBootROM\fP image header is used.
554 T}
555 lkname  T{
556 The name of the LK image header. The maximum length is 32 ASCII characters. If
557 not specified, the default value is \fBU-Boot\fP.
558 T}
559 media   The boot device. See below for valid values.
560 nandinfo        The desired NAND device type. See below for valid values.
561 arm64   If \fB1\fP, then this denotes an AArch64 image.
562 hdroffset       Increase the reported size of the BRLYT header by this amount.
563 .TE
564 .RE
565 .P
566 Valid values for
567 .B media
568 are:
569 .RS
570 .P
571 .TS
572 lb lb
573 lb l.
574 Value   Description
575 _
576 nand    Parallel NAND flash
577 snand   Serial NAND flash
578 nor     Serial NOR flash
579 emmc    \fIeMMC\fP (Embedded Multi-Media Card)
580 sdmmc   \fISD\fP (Secure Digital) card
581 .TE
582 .RE
583 .P
584 Valid values for
585 .B nandinfo
586 are:
587 .RS
588 .P
589 .TS
590 lb lb lb        lb      lb
591 lb l    l       l       l.
592 Value   NAND type       Page size       OOB size        Total size
593 _
594 2k+64   Serial  2KiB    64B
595 2k+120  Serial  2KiB    120B
596 2k+128  Serial  2KiB    128B
597 4k+256  Serial  4KiB    256B
598 1g:2k+64        Parallel        2KiB    64B     1Gbit
599 2g:2k+64        Parallel        2KiB    64B     2Gbit
600 4g:2k+64        Parallel        2KiB    64B     4Gbit
601 2g:2k+128       Parallel        2KiB    128B    2Gbit
602 4g:2k+128       Parallel        2KiB    128B    4Gbit
603 .TE
604 .RE
605 .
606 .SS mxsimage
607 The primary configuration is a file containing configuration commands, as
608 documented in doc/\:imx/\:mkimage/\:mxsimage.txt of the U-Boot source.
609 .
610 .SS omapimage
611 The primary configuration is the optional value
612 .BR byteswap .
613 If present, each 32-bit word of the image will have its bytes swapped
614 (converting from little-endian to big-endian, or vice versa).
615 .
616 .SS pblimage
617 The primary configuration is a file containing the
618 .I PBI
619 (Pre-Boot Image) header. Each line of the configuration has the format
620 .RS
621 .P
622 .IR value "[ " value .\|.\|.\&]
623 .RE
624 .P
625 Where
626 .I value
627 is a 32-bit hexadecimal integer. Each
628 .I value
629 will, after being converted to raw bytes, be literally prepended to the PBI.
630 .P
631 The secondary configuration is a file with the same format as the primary
632 configuration file. It will be inserted into the image after the primary
633 configuration data and before the image data.
634 .P
635 It is traditional to use the primary configuration file for the
636 .I RCW
637 (Reset Configuration Word), and the secondary configuration file for any
638 additional PBI commands. However, it is also possible to convert an existing PBI
639 to the above format and \(lqchain\(rq additional data onto the end of the
640 image. This may be especially useful for creating secure boot images.
641 .
642 .SS rkimage
643 The primary configuration is the name of the processor to generate the image
644 for. Valid values are:
645 .RS
646 .P
647 .TS
648 lb.
649 px30
650 rk3036
651 rk3066
652 rk3128
653 rk3188
654 rk322x
655 rk3288
656 rk3308
657 rk3328
658 rk3368
659 rk3399
660 rv1108
661 rk3568
662 .TE
663 .RE
664 .
665 .SS spkgimage
666 The primary configuration file consists of lines containing key/value pairs
667 delimited by whitespace. An example follows.
668 .PP
669 .RS
670 .EX
671 # Comments and blank lines may be used
672 .I key1 value1
673 .I key2 value2
674 .EE
675 .RE
676 .P
677 The supported
678 .I key
679 types are as follows.
680 .TP
681 .B VERSION
682 .TQ
683 .B NAND_ECC_BLOCK_SIZE
684 .TQ
685 .B NAND_ECC_ENABLE
686 .TQ
687 .B NAND_ECC_SCHEME
688 .TQ
689 .B NAND_BYTES_PER_ECC_BLOCK
690 These all take a positive integer value as their argument.
691 The value will be copied directly into the respective field
692 of the SPKG header structure. For details on these values,
693 refer to Section 7.4 of the Renesas RZ/N1 User's Manual.
694 .
695 .TP
696 .B ADD_DUMMY_BLP
697 Takes a numeric argument, which is treated as a boolean. Any nonzero
698 value will cause a fake BLp security header to be included in the SPKG
699 output.
700 .
701 .TP
702 .B PADDING
703 Takes a positive integer value, with an optional
704 .B K
705 or
706 .B M
707 suffix, indicating KiB / MiB respectively.
708 The output SPKG file will be padded to a multiple of this value.
709 .
710 .SS sunxi_egon
711 The primary configuration is the name to use for the device tree.
712 .
713 .SS ublimage
714 The primary configuration is a file containing configuration commands, as
715 documented in doc/\:README.ublimage of the U-Boot source.
716 .
717 .SS zynqimage and zynqmpimage
718 For
719 .BR zynqmpimage ,
720 the primary configuration is a file containing the
721 .I PMUFW
722 (Power Management Unit Firmware).
723 .B zynqimage
724 does not use the primary configuration.
725 .P
726 For both image types, the secondary configuration is a file containinig
727 initialization parameters, one per line. Each parameter has the form
728 .RS
729 .P
730 .I address data
731 .RE
732 .P
733 where
734 .I address
735 and
736 .I data
737 are hexadecimal integers. The boot ROM will write each
738 .I data
739 to
740 .I address
741 when loading the image. At most 256 parameters may be specified in this
742 manner.
743 .
744 .SH BUGS
745 Please report bugs to the
746 .UR https://\:source\:.denx\:.de/\:u-boot/\:u-boot/\:issues
747 U-Boot bug tracker
748 .UE .
749 .SH EXAMPLES
750 .\" Reduce the width of the tab stops to something reasonable
751 .ta T 1i
752 List image information:
753 .RS
754 .P
755 .EX
756 \fBmkimage \-l uImage
757 .EE
758 .RE
759 .P
760 Create legacy image with compressed PowerPC Linux kernel:
761 .RS
762 .P
763 .EX
764 \fBmkimage \-A powerpc \-O linux \-T kernel \-C gzip \\
765         \-a 0 \-e 0 \-n Linux \-d vmlinux.gz uImage
766 .EE
767 .RE
768 .P
769 Create FIT image with compressed PowerPC Linux kernel:
770 .RS
771 .P
772 .EX
773 \fBmkimage \-f kernel.its kernel.itb
774 .EE
775 .RE
776 .P
777 Create FIT image with compressed kernel and sign it with keys in the
778 /public/signing\-keys directory. Add corresponding public keys into u\-boot.dtb,
779 skipping those for which keys cannot be found. Also add a comment.
780 .RS
781 .P
782 .EX
783 \fBmkimage \-f kernel.its \-k /public/signing\-keys \-K u\-boot.dtb \\
784         \-c \(dqKernel 3.8 image for production devices\(dq kernel.itb
785 .EE
786 .RE
787 .P
788 Add public key to u\-boot.dtb without needing a FIT to sign. This will also
789 create a FIT containing an images node with no data named unused.itb.
790 .RS
791 .P
792 .EX
793 \fBmkimage \-f auto \-d /dev/null \-k /public/signing\-keys \-g dev \\
794         \-o sha256,rsa2048 \-K u\-boot.dtb unused.itb
795 .EE
796 .RE
797 .P
798 Add public key with required = "conf" property to u\-boot.dtb without needing
799 a FIT to sign. This will also create a useless FIT named unused.itb.
800 .RS
801 .P
802 .EX
803 \fBmkimage \-f auto-conf \-d /dev/null \-k /public/signing\-keys \-g dev \\
804         \-o sha256,rsa2048 \-K u\-boot.dtb -r unused.itb
805 .EE
806 .RE
807 .P
808 Update an existing FIT image, signing it with additional keys.
809 Add corresponding public keys into u\-boot.dtb. This will resign all images
810 with keys that are available in the new directory. Images that request signing
811 with unavailable keys are skipped.
812 .RS
813 .P
814 .EX
815 \fBmkimage \-F \-k /secret/signing\-keys \-K u\-boot.dtb \\
816         \-c \(dqKernel 3.8 image for production devices\(dq kernel.itb
817 .EE
818 .RE
819 .P
820 Create a FIT image containing a kernel, using automatic mode. No .its file
821 is required.
822 .RS
823 .P
824 .EX
825 \fBmkimage \-f auto \-A arm \-O linux \-T kernel \-C none \-a 43e00000 \-e 0 \\
826         \-c \(dqKernel 4.4 image for production devices\(dq \-d vmlinuz kernel.itb
827 .EE
828 .RE
829 .P
830 Create a FIT image containing a kernel and some device tree files, using
831 automatic mode. No .its file is required.
832 .RS
833 .P
834 .EX
835 \fBmkimage \-f auto \-A arm \-O linux \-T kernel \-C none \-a 43e00000 \-e 0 \\
836         \-c \(dqKernel 4.4 image for production devices\(dq \-d vmlinuz \\
837         \-b /path/to/rk3288\-firefly.dtb \-b /path/to/rk3288\-jerry.dtb kernel.itb
838 .EE
839 .RE
840 .P
841 Create a FIT image containing a signed kernel, using automatic mode. No .its
842 file is required.
843 .RS
844 .P
845 .EX
846 \fBmkimage \-f auto \-A arm \-O linux \-T kernel \-C none \-a 43e00000 \-e 0 \\
847         \-d vmlinuz \-k /secret/signing\-keys \-g dev \-o sha256,rsa2048 kernel.itb
848 .EE
849 .RE
850 .P
851 Create a FIT image containing a kernel and some device tree files, signing
852 each configuration, using automatic mode. Moreover, the public key needed to
853 verify signatures is added to u\-boot.dtb with required = "conf" property.
854 .RS
855 .P
856 .EX
857 \fBmkimage \-f auto-conf \-A arm \-O linux \-T kernel \-C none \-a 43e00000 \\
858         \-e 0 \-d vmlinuz \-b /path/to/file\-1.dtb \-b /path/to/file\-2.dtb \\
859         \-k /folder/with/signing\-keys \-g dev \-o sha256,rsa2048 \\
860         \-K u\-boot.dtb -r kernel.itb
861 .EE
862 .RE
863 .
864 .SH SEE ALSO
865 .BR dtc (1),
866 .BR dumpimage (1),
867 .BR openssl (1),
868 the\~
869 .UR https://\:u-boot\:.readthedocs\:.io/\:en/\:latest/\:index.html
870 U-Boot documentation
871 .UE