123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- .TH MKIMAGE 1 "2010-05-16"
- .SH NAME
- mkimage \- Generate image for U-Boot
- .SH SYNOPSIS
- .B mkimage
- .RB "\-l [" "uimage file name" "]"
- .B mkimage
- .RB [\fIoptions\fP] " \-f [" "image tree source file" "]" " [" "uimage file name" "]"
- .B mkimage
- .RB [\fIoptions\fP] " \-F [" "uimage file name" "]"
- .B mkimage
- .RB [\fIoptions\fP] " (legacy mode)"
- .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.
- .B mkimage
- supports two different formats:
- The old
- .I legacy image
- format concatenates the individual parts (for example, kernel image,
- device tree blob and ramdisk image) and adds a 64 bytes header
- containing information about target architecture, operating system,
- image type, compression method, entry points, time stamp, checksums,
- etc.
- 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"
- .B List image information:
- .TP
- .BI "\-l [" "uimage file name" "]"
- mkimage lists the information contained in the header of an existing U-Boot image.
- .P
- .B Create old legacy image:
- .TP
- .BI "\-A [" "architecture" "]"
- Set architecture. Pass \-h as the architecture to see the list of supported architectures.
- .TP
- .BI "\-O [" "os" "]"
- Set operating system. bootm command of u-boot changes boot method by os type.
- Pass \-h as the OS to see the list of supported OS.
- .TP
- .BI "\-T [" "image type" "]"
- Set image type.
- Pass \-h as the image to see the list of supported image type.
- .TP
- .BI "\-C [" "compression type" "]"
- Set compression type.
- Pass \-h as the compression to see the list of supported compression type.
- .TP
- .BI "\-a [" "load address" "]"
- Set load address with a hex number.
- .TP
- .BI "\-e [" "entry point" "]"
- Set entry point with a hex number.
- .TP
- .BI "\-l"
- List the contents of an image.
- .TP
- .BI "\-n [" "image name" "]"
- Set image name to 'image name'.
- .TP
- .BI "\-d [" "image data file" "]"
- Use image data from 'image data file'.
- .TP
- .BI "\-x"
- Set XIP (execute in place) flag.
- .P
- .B Create FIT image:
- .TP
- .BI "\-b [" "device tree file" "]
- Appends the device tree binary file (.dtb) to the FIT.
- .TP
- .BI "\-c [" "comment" "]"
- Specifies a comment to be added when signing. This is typically a useful
- message which describes how the image was signed or some other useful
- information.
- .TP
- .BI "\-D [" "dtc options" "]"
- Provide special options to the device tree compiler that is used to
- create the image.
- .TP
- .BI "\-E
- 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 'data' property
- in each image will be replaced with 'data-offset' and 'data-size' properties.
- A 'data-offset' of 0 indicates that it starts in the first (4-byte aligned)
- byte after the FIT.
- .TP
- .BI "\-f [" "image tree source file" " | " "auto" "]"
- Image tree source file that describes the structure and contents of the
- FIT image.
- This can be automatically generated for some simple cases.
- Use "-f auto" for this. In that case the arguments -d, -A, -O, -T, -C, -a
- and -e are used to specify the image to include in the FIT and its attributes.
- No .its file is required.
- .TP
- .BI "\-F"
- Indicates that an existing FIT image should be modified. No dtc
- compilation is performed and the \-f flag should not be given.
- This can be used to sign images with additional keys after initial image
- creation.
- .TP
- .BI "\-i [" "ramdisk_file" "]"
- Appends the ramdisk file to the FIT.
- .TP
- .BI "\-k [" "key_directory" "]"
- Specifies the directory containing keys to use for signing. This directory
- should contain a private key file <name>.key for use with signing and a
- certificate <name>.crt (containing the public key) for use with verification.
- .TP
- .BI "\-K [" "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 "\-p [" "external position" "]"
- Place external data at a static external position. See \-E. Instead of writing
- a 'data-offset' property defining the offset from the end of the FIT, \-p will
- use 'data-position' as the absolute position from the base of the FIT.
- .TP
- .BI "\-r
- 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).
- .SH EXAMPLES
- List image information:
- .nf
- .B mkimage -l uImage
- .fi
- .P
- Create legacy image with compressed PowerPC Linux kernel:
- .nf
- .B mkimage -A powerpc -O linux -T kernel -C gzip \\\\
- .br
- .B -a 0 -e 0 -n Linux -d vmlinux.gz uImage
- .fi
- .P
- Create FIT image with compressed PowerPC Linux kernel:
- .nf
- .B mkimage -f kernel.its kernel.itb
- .fi
- .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.
- .nf
- .B mkimage -f kernel.its -k /public/signing-keys -K u-boot.dtb \\\\
- .br
- .B -c """Kernel 3.8 image for production devices""" kernel.itb
- .fi
- .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.
- .nf
- .B mkimage -F -k /secret/signing-keys -K u-boot.dtb \\\\
- .br
- .B -c """Kernel 3.8 image for production devices""" kernel.itb
- .fi
- .P
- Create a FIT image containing a kernel, using automatic mode. No .its file
- is required.
- .nf
- .B mkimage -f auto -A arm -O linux -T kernel -C none -a 43e00000 -e 0 \\\\
- .br
- .B -c """Kernel 4.4 image for production devices""" -d vmlinuz kernel.itb
- .fi
- .P
- Create a FIT image containing a kernel and some device tree files, using
- automatic mode. No .its file is required.
- .nf
- .B mkimage -f auto -A arm -O linux -T kernel -C none -a 43e00000 -e 0 \\\\
- .br
- .B -c """Kernel 4.4 image for production devices""" -d vmlinuz \\\\
- .B -b /path/to/rk3288-firefly.dtb -b /path/to/rk3288-jerry.dtb kernel.itb
- .fi
- .SH HOMEPAGE
- http://www.denx.de/wiki/U-Boot/WebHome
- .PP
- .SH AUTHOR
- This manual page was written by Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
- and Wolfgang Denk <wd@denx.de>. It was updated for image signing by
- Simon Glass <sjg@chromium.org>.
|