.\" SPDX-License-Identifier: GPL-2.0
.\" Copyright (C) 2022 Sean Anderson <seanga2@gmail.com>
.\" Copyright (C) 2013-20 Simon Glass <sjg@chromium.org>
.\" Copyright (C) 2010 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
.\" Copyright (C) 2010 Wolfgang Denk <wd@denx.de>
.TH MKIMAGE 1 2022-06-11 U-Boot
.
.SH NAME
mkimage \- generate images for U-Boot
.SH SYNOPSIS
.SY mkimage
.OP \-T type
.BI \-l\~ image-file-name
.YS
.
.SY mkimage
.RI [ option\~ .\|.\|.\&]
.OP \-T type
.I image-file-name
.YS
.
.SY mkimage
.RI [ option\~ .\|.\|.\&]
.BI \-f\~ image-tree-source-file\c
.RB | auto
.I image-file-name
.YS
.
.SY mkimage
.RI [ option\~ .\|.\|.\&]
.BI \-F\~ image-file-name
.YS
.
.SH DESCRIPTION
The
.B mkimage
command is used to create images for use with the U-Boot boot loader.  These
images can contain the Linux kernel, device tree blob, root file system image,
firmware images etc., either separate or combined.
.P
.B mkimage
supports many image formats. Some of these formats may be used by embedded boot
firmware to load U-Boot. Others may be used by U-Boot to load Linux (or some
other kernel):
.P
The legacy image format concatenates the individual parts (for example, kernel
image, device tree blob and ramdisk image) and adds a 64 byte header containing
information about the target architecture, operating system, image type,
compression method, entry points, time stamp, checksums, etc.
.P
The new
.I FIT
(Flattened Image Tree) format allows for more flexibility in handling images of
various types and also enhances integrity protection of images with stronger
checksums. It also supports verified boot.
.
.SH OPTIONS
.
.SS General options
.
.TP
.B \-h
.TQ
.B \-\-help
Print a help message and exit.
.
.TP
.B \-l
.TQ
.B \-\-list
.B mkimage
lists the information contained in the header of an existing U-Boot image.
.
.TP
.B \-s
.TQ
.B \-\-no\-copy
Don't copy in the image data. Depending on the image type, this may create
just the header, everything but the image data, or nothing at all.
.
.TP
.BI \-T " image-type"
.TQ
.BI \-\-type " image-type"
Parse image file as
.IR image-type .
Pass
.B list
as
.I image-type
to see the list of supported image types. If this option is absent, then it
defaults to
.B kernel
(legacy image). If this option is absent when
.B \-l
is passed, then
.B mkimage
will attempt to automatically detect the image type. Not all image types support
automatic detection, so it may be necessary to pass
.B \-T
explicitly.
.IP
When creating a FIT image with
.BR \-f ,
the image type is always set to
.BR flat_dt .
In this case,
.B \-T
specifies the image node's \(oqtype\(cq property. If
.B \-T
is absent, then the \(oqtype\(cq property will default to
.BR kernel .
.
.TP
.B \-q
.TQ
.B \-\-quiet
Quiet. Don't print the image header.
.
.TP
.B \-v
.TQ
.B \-\-verbose
Verbose. Print file names as they are added to the image.
.
.TP
.B \-V
.TQ
.B \-\-version
Print version information and exit.
.
.SS General image-creation options
.
.TP
.BI \-A " architecture"
.TQ
.BI \-\-architecture " architecture"
Set the architecture. Pass
.B \-h
as the architecture to see the list of supported architectures. If
.B \-A
is absent, it defaults to
.BR ppc .
.
.TP
.BI \-O " os"
.TQ
.BI \-\-os " os"
Set the operating system. The U-Boot
.I bootm
command changes boot method based on the OS type.
Pass
.B \-h
as the
.I os
to see the list of supported OSs. If
.B \-O
is absent, it defaults to
.BR linux .
.
.TP
.BI \-C " compression-type"
.TQ
.BI \-\-compression " compression-type"
Set the compression type. The image data should have already been compressed
using this compression type.
.B mkimage
will not automatically compress image data.
Pass
.B \-h
as the
.I compression-type
to see the list of supported compression types. If
.B \-C
is absent, it defaults to
.BR gzip .
.
.TP
.BI \-a " load-address"
.TQ
.BI \-\-load\-address " load-address"
Set the absolute address to load the image data to.
.I load-address
will be interpreted as a hexadecimal number.
.
.TP
.BI \-e " entry-point"
.TQ
.BI \-\-entry\-point " entry-point"
Set the absolute address of the image entry point. The U-Boot
.I bootm
command will jump to this address after loading the image.
.I entry-point
will be interpreted as a hexadecimal number.
.
.TP
.BI \-n " primary-configuration"
.TQ
.BI \-\-config " primary-configuration"
Images may require additional configuration not specified with other options,
often in a image-type-specific format. The image types which support this
option and the format of their configuration are listed in
.BR CONFIGURATION .
.
.TP
.BI \-R " secondary-configuration"
.TQ
.BI \-\-secondary\-config " secondary-configuration"
Some image types support a second set of configuration data. The image types
which support secondary configuration and the formap of their configuration are
listed in
.BR CONFIGURATION .
.
.TP
.BI \-d " image-data-file"
.TQ
.BI \-\-image " image-data-file"
Use image data from
.IR image-data-file .
If the
.I image-type
is
.BR multi ,
then multiple images may be specified, separated by colons:
.RS
.IP
.IR image-data-file [\fB:\fP image-data-file .\|.\|.]
.RE
.
.TP
.B \-x
.TQ
.B \-\-xip
Set the
.I XIP
(execute in place) flag. The U-Boot
.I bootm
command will not load the image data, and instead will assume it is already
accessible at the load address (such as via memory-mapped flash).
.
.SS Options for creating FIT images
.
.TP
.BI \-b " device-tree-file"
.TQ
.BI \-\-device\-tree " device-tree-file"
Appends the device tree binary file (.dtb) to the FIT.
.
.TP
.BI \-c " comment"
.TQ
.BI \-\-comment " comment"
Specifies a comment to be added when signing. This is typically a message which
describes how the image was signed or some other useful information.
.
.TP
.BI \-D " dtc-options"
.TQ
.BI \-\-dtcopts " dtc-options"
Provide additional options to the device tree compiler when creating the image.
See
.BR dtc (1)
for documentation of possible options. If
.B \-D
is absent, it defaults to
.BR "\-I dts \-O dtb \-p 500" .
.
.TP
.BI \-E
.TQ
.BI \-\-external
After processing, move the image data outside the FIT and store a data offset
in the FIT. Images will be placed one after the other immediately after the FIT,
with each one aligned to a 4-byte boundary. The existing \(oqdata\(cq property
in each image will be replaced with \(oqdata-offset\(cq and \(oqdata-size\(cq
properties.  A \(oqdata-offset\(cq of 0 indicates that it starts in the first
(4-byte-aligned) byte after the FIT.
.
.TP
.BI \-B " alignment"
.TQ
.BI \-\-alignment " alignment"
The alignment, in hexadecimal, that external data will be aligned to. This
option only has an effect when \-E is specified.
.
.TP
.BI \-p " external-position"
.TQ
.BI \-\-position " external-position"
Place external data at a static external position. Instead of writing a
\(oqdata-offset\(cq property defining the offset from the end of the FIT,
.B \-p
will use \(oqdata-position\(cq as the absolute position from the base of the
FIT. See
.B \-E
for details on using external data.
.
.TP
\fB\-f \fIimage-tree-source-file\fR | \fBauto
.TQ
\fB\-\-fit \fIimage-tree-source-file\fR | \fBauto
Image tree source file that describes the structure and contents of the
FIT image.
.IP
In some simple cases, the image tree source can be generated automatically. To
use this feature, pass
.BR "\-f auto" .
The
.BR \-d ,
.BR \-A ,
.BR \-O ,
.BR \-T ,
.BR \-C ,
.BR \-a ,
and
.B \-e
options may be used to specify the image to include in the FIT and its
attributes. No
.I image-tree-source-file
is required.
.
.TP
.B \-F
.TQ
.B \-\-update
Indicates that an existing FIT image should be modified. No dtc compilation will
be performed and
.B \-f
should not be passed. This can be used to sign images with additional keys
after initial image creation.
.
.TP
.BI \-i " ramdisk-file"
.TQ
.BI \-\-initramfs " ramdisk-file"
Append a ramdisk or initramfs file to the image.
.
.TP
.BI \-k " key-directory"
.TQ
.BI \-\-key\-dir " key-directory"
Specifies the directory containing keys to use for signing. This directory
should contain a private key file
.IR name .key
for use with signing, and a certificate
.IR name .crt
(containing the public key) for use with verification. The public key is only
necessary when embedding it into another device tree using
.BR \-K .
.I name
defaults to the value of the signature node's \(oqkey-name-hint\(cq property,
but may be overridden using
.BR \-g .
.
.TP
.BI \-G " key-file"
.TQ
.BI \-\-key\-file " key-file"
Specifies the private key file to use when signing. This option may be used
instead of \-k.
.
.TP
.BI \-K " key-destination"
.TQ
.BI \-\-key\-dest " key-destination"
Specifies a compiled device tree binary file (typically .dtb) to write
public key information into. When a private key is used to sign an image,
the corresponding public key is written into this file for for run-time
verification. Typically the file here is the device tree binary used by
CONFIG_OF_CONTROL in U-Boot.
.
.TP
.BI \-g " key-name-hint"
.TQ
.BI \-\-key\-name\-hint " key-name-hint"
Overrides the signature node's \(oqkey-name-hint\(cq property. This is
especially useful when signing an image with
.BR "\-f auto" .
This is the
.I name
part of the key. The directory part is set by
.BR \-k .
This option also indicates that the images included in the FIT should be signed.
If this option is specified, then
.B \-o
must be specified as well.
.
.TP
.BI \-o " crypto" , checksum
.TQ
.BI \-\-algo " crypto" , checksum
Specifies the algorithm to be used for signing a FIT image. The default is
taken from the signature node's \(oqalgo\(cq property.
The valid values for
.I crypto
are:
.RS
.IP
.TS
lb.
rsa2048
rsa3072
rsa4096
ecdsa256
.TE
.RE
.IP
The valid values for
.I checksum
are
.RS
.IP
.TS
lb.
sha1
sha256
sha384
sha512
.TE
.RE
.
.TP
.B \-r
.TQ
.B \-\-key\-required
Specifies that keys used to sign the FIT are required. This means that they
must be verified for the image to boot. Without this option, the verification
will be optional (useful for testing but not for release).
.
.TP
.BI \-N " engine"
.TQ
.BI \-\-engine " engine"
The openssl engine to use when signing and verifying the image. For a complete
list of available engines, refer to
.BR engine (1).
.
.TP
.B \-t
.TQ
.B \-\-touch
Update the timestamp in the FIT.
.IP
Normally the FIT timestamp is created the first time mkimage runs,
when converting the source .its to the binary .fit file. This corresponds to
using
.BR -f .
But if the original input to mkimage is a binary file (already compiled), then
the timestamp is assumed to have been set previously.
.
.SH CONFIGURATION
This section documents the formats of the primary and secondary configuration
options for each image type which supports them.
.
.SS aisimage
The primary configuration is a file containing a series of
.I AIS
(Application Image Script) commands, one per line. Each command has the form
.RS
.P
.IR "command argument " .\|.\|.
.RE
.P
See
.UR https://\:www\:.ti\:.com/\:lit/\:pdf/\:spraag0
TI application report SPRAAG0E
.UE
for details.
.
.SS atmelimage
The primary configuration is a comma-separated list of NAND Flash parameters of
the form
.RS
.P
\fIparameter\fB=\fIvalue\fR[\fB,\fIparameter\fB=\fIvalue\fR.\|.\|.\&]
.RE
.P
Valid
.IR parameter s
are
.RS
.P
.TS
lb.
usePmecc
nbSectorPerPage
spareSize
eccBitReq
sectorSize
eccOffset
.TE
.RE
.P
and valid
.IR value s
are decimal numbers. See section 11.4.4.1 of the SAMA5D3 Series Data Sheet for
valid values for each parameter.
.
.SS imximage
The primary configuration is a file containing configuration commands, as
documented in doc/\:imx/\:mkimage/\:imximage.txt of the U-Boot source.
.
.SS imx8image and imx8mimage
The primary configuration is a file containing configuration commands, as
documented in doc/\:imx/\:mkimage/\:imx8image.txt of the U-Boot source.
.
.SS kwbimage
The primary configuration is a file containing configuration commands, as
documented in doc/\:imx/\:mkimage/\:kwbimage.txt of the U-Boot source.
.
.SS mtk_image
The primary configuration is a semicolon-separated list of header options of the
form
.RS
.P
\fIkey\fB=\fIvalue\fR[\fB;\fIkey\fB=\fIvalue\fR.\|.\|.\&]
.RE
.P
where the valid keys are:
.RS
.P
.TS
lb lbx
lb l.
Key	Description
_
lk	T{
If \fB1\fP, then an \fILK\fP (legacy) image header is used. Otherwise, a
\fIBootROM\fP image header is used.
T}
lkname	T{
The name of the LK image header. The maximum length is 32 ASCII characters. If
not specified, the default value is \fBU-Boot\fP.
T}
media	The boot device. See below for valid values.
nandinfo	The desired NAND device type. See below for valid values.
arm64	If \fB1\fP, then this denotes an AArch64 image.
hdroffset	Increase the reported size of the BRLYT header by this amount.
.TE
.RE
.P
Valid values for
.B media
are:
.RS
.P
.TS
lb lb
lb l.
Value	Description
_
nand	Parallel NAND flash
snand	Serial NAND flash
nor	Serial NOR flash
emmc	\fIeMMC\fP (Embedded Multi-Media Card)
sdmmc	\fISD\fP (Secure Digital) card
.TE
.RE
.P
Valid values for
.B nandinfo
are:
.RS
.P
.TS
lb lb lb	lb	lb
lb l	l	l	l.
Value	NAND type	Page size	OOB size	Total size
_
2k+64	Serial	2KiB	64B
2k+120	Serial	2KiB	120B
2k+128	Serial	2KiB	128B
4k+256	Serial	4KiB	256B
1g:2k+64	Parallel	2KiB	64B	1Gbit
2g:2k+64	Parallel	2KiB	64B	2Gbit
4g:2k+64	Parallel	2KiB	64B	4Gbit
2g:2k+128	Parallel	2KiB	128B	2Gbit
4g:2k+128	Parallel	2KiB	128B	4Gbit
.TE
.RE
.
.SS mxsimage
The primary configuration is a file containing configuration commands, as
documented in doc/\:imx/\:mkimage/\:mxsimage.txt of the U-Boot source.
.
.SS omapimage
The primary configuration is the optional value
.BR byteswap .
If present, each 32-bit word of the image will have its bytes swapped
(converting from little-endian to big-endian, or vice versa).
.
.SS pblimage
The primary configuration is a file containing the
.I PBI
(Pre-Boot Image) header. Each line of the configuration has the format
.RS
.P
.IR value "[ " value .\|.\|.\&]
.RE
.P
Where
.I value
is a 32-bit hexadecimal integer. Each
.I value
will, after being converted to raw bytes, be literally prepended to the PBI.
.P
The secondary configuration is a file with the same format as the primary
configuration file. It will be inserted into the image after the primary
configuration data and before the image data.
.P
It is traditional to use the primary configuration file for the
.I RCW
(Reset Configuration Word), and the secondary configuration file for any
additional PBI commands. However, it is also possible to convert an existing PBI
to the above format and \(lqchain\(rq additional data onto the end of the
image. This may be especially useful for creating secure boot images.
.
.SS rkimage
The primary configuration is the name of the processor to generate the image
for. Valid values are:
.RS
.P
.TS
lb.
px30
rk3036
rk3066
rk3128
rk3188
rk322x
rk3288
rk3308
rk3328
rk3368
rk3399
rv1108
rk3568
.TE
.RE
.
.SS sunxi_egon
The primary configuration is the name to use for the device tree.
.
.SS ublimage
The primary configuration is a file containing configuration commands, as
documented in doc/\:README.ublimage of the U-Boot source.
.
.SS zynqimage and zynqmpimage
For
.BR zynqmpimage ,
the primary configuration is a file containing the
.I PMUFW
(Power Management Unit Firmware).
.B zynqimage
does not use the primary configuration.
.P
For both image types, the secondary configuration is a file containinig
initialization parameters, one per line. Each parameter has the form
.RS
.P
.I address data
.RE
.P
where
.I address
and
.I data
are hexadecimal integers. The boot ROM will write each
.I data
to
.I address
when loading the image. At most 256 parameters may be specified in this
manner.
.
.SH BUGS
Please report bugs to the
.UR https://\:source\:.denx\:.de/\:u-boot/\:u-boot/\:issues
U-Boot bug tracker
.UE .
.SH EXAMPLES
.\" Reduce the width of the tab stops to something reasonable
.ta T 1i
List image information:
.RS
.P
.EX
\fBmkimage \-l uImage
.EE
.RE
.P
Create legacy image with compressed PowerPC Linux kernel:
.RS
.P
.EX
\fBmkimage \-A powerpc \-O linux \-T kernel \-C gzip \\
	\-a 0 \-e 0 \-n Linux \-d vmlinux.gz uImage
.EE
.RE
.P
Create FIT image with compressed PowerPC Linux kernel:
.RS
.P
.EX
\fBmkimage \-f kernel.its kernel.itb
.EE
.RE
.P
Create FIT image with compressed kernel and sign it with keys in the
/public/signing\-keys directory. Add corresponding public keys into u\-boot.dtb,
skipping those for which keys cannot be found. Also add a comment.
.RS
.P
.EX
\fBmkimage \-f kernel.its \-k /public/signing\-keys \-K u\-boot.dtb \\
	\-c \(dqKernel 3.8 image for production devices\(dq kernel.itb
.EE
.RE
.P
Add public keys to u\-boot.dtb without needing a FIT to sign. This will also
create a FIT containing an images node with no data named unused.itb.
.RS
.P
.EX
\fBmkimage \-f auto \-d /dev/null \-k /public/signing\-keys \-g dev \\
	\-o sha256,rsa2048 \-K u\-boot.dtb unused.itb
.EE
.RE
.P
Update an existing FIT image, signing it with additional keys.
Add corresponding public keys into u\-boot.dtb. This will resign all images
with keys that are available in the new directory. Images that request signing
with unavailable keys are skipped.
.RS
.P
.EX
\fBmkimage \-F \-k /secret/signing\-keys \-K u\-boot.dtb \\
	\-c \(dqKernel 3.8 image for production devices\(dq kernel.itb
.EE
.RE
.P
Create a FIT image containing a kernel, using automatic mode. No .its file
is required.
.RS
.P
.EX
\fBmkimage \-f auto \-A arm \-O linux \-T kernel \-C none \-a 43e00000 \-e 0 \\
	\-c \(dqKernel 4.4 image for production devices\(dq \-d vmlinuz kernel.itb
.EE
.RE
.P
Create a FIT image containing a kernel and some device tree files, using
automatic mode. No .its file is required.
.RS
.P
.EX
\fBmkimage \-f auto \-A arm \-O linux \-T kernel \-C none \-a 43e00000 \-e 0 \\
	\-c \(dqKernel 4.4 image for production devices\(dq \-d vmlinuz \\
	\-b /path/to/rk3288\-firefly.dtb \-b /path/to/rk3288\-jerry.dtb kernel.itb
.EE
.RE
.P
Create a FIT image containing a signed kernel, using automatic mode. No .its
file is required.
.RS
.P
.EX
\fBmkimage \-f auto \-A arm \-O linux \-T kernel \-C none \-a 43e00000 \-e 0 \\
	\-d vmlinuz \-k /secret/signing\-keys \-g dev \-o sha256,rsa2048 kernel.itb
.EE
.RE
.
.SH SEE ALSO
.BR dtc (1),
.BR dumpimage (1),
.BR openssl (1),
the\~
.UR https://\:u-boot\:.readthedocs\:.io/\:en/\:latest/\:index.html
U-Boot documentation
.UE
