1MKIMAGE(1) General Commands Manual MKIMAGE(1)
2
3
4
6 mkimage - Generate image for U-Boot
7
9 mkimage -l [uimage file name]
10
11 mkimage [options] -f [image tree source file] [uimage file name]
12
13 mkimage [options] -F [uimage file name]
14
15 mkimage [options] (legacy mode)
16
17
19 The mkimage command is used to create images for use with the U-Boot
20 boot loader. These images can contain the linux kernel, device tree
21 blob, root file system image, firmware images etc., either separate or
22 combined.
23
24 mkimage supports two different formats:
25
26 The old legacy image format concatenates the individual parts (for
27 example, kernel image, device tree blob and ramdisk image) and adds a
28 64 bytes header containing information about target architecture, oper‐
29 ating system, image type, compression method, entry points, time stamp,
30 checksums, etc.
31
32 The new FIT (Flattened Image Tree) format allows for more flexibility
33 in handling images of various types and also enhances integrity protec‐
34 tion of images with stronger checksums. It also supports verified boot.
35
36
38 List image information:
39
40
41 -l [uimage file name]
42 mkimage lists the information contained in the header of an
43 existing U-Boot image.
44
45
46 Create old legacy image:
47
48
49 -A [architecture]
50 Set architecture. Pass -h as the architecture to see the list of
51 supported architectures.
52
53
54 -O [os]
55 Set operating system. bootm command of u-boot changes boot
56 method by os type. Pass -h as the OS to see the list of sup‐
57 ported OS.
58
59
60 -T [image type]
61 Set image type. Pass -h as the image to see the list of sup‐
62 ported image type.
63
64
65 -C [compression type]
66 Set compression type. Pass -h as the compression to see the
67 list of supported compression type.
68
69
70 -a [load address]
71 Set load address with a hex number.
72
73
74 -e [entry point]
75 Set entry point with a hex number.
76
77
78 -l List the contents of an image.
79
80
81 -n [image name]
82 Set image name to 'image name'.
83
84
85 -d [image data file]
86 Use image data from 'image data file'.
87
88
89 -x Set XIP (execute in place) flag.
90
91
92 Create FIT image:
93
94
95 -b [device tree file]
96 Appends the device tree binary file (.dtb) to the FIT.
97
98
99 -c [comment]
100 Specifies a comment to be added when signing. This is typically
101 a useful message which describes how the image was signed or
102 some other useful information.
103
104
105 -D [dtc options]
106 Provide special options to the device tree compiler that is used
107 to create the image.
108
109
110 -E After processing, move the image data outside the FIT and store
111 a data offset in the FIT. Images will be placed one after the
112 other immediately after the FIT, with each one aligned to a
113 4-byte boundary. The existing 'data' property in each image will
114 be replaced with 'data-offset' and 'data-size' properties. A
115 'data-offset' of 0 indicates that it starts in the first (4-byte
116 aligned) byte after the FIT.
117
118
119 -f [image tree source file | auto]
120 Image tree source file that describes the structure and contents
121 of the FIT image.
122
123 This can be automatically generated for some simple cases. Use
124 "-f auto" for this. In that case the arguments -d, -A, -O, -T,
125 -C, -a and -e are used to specify the image to include in the
126 FIT and its attributes. No .its file is required.
127
128
129 -F Indicates that an existing FIT image should be modified. No dtc
130 compilation is performed and the -f flag should not be given.
131 This can be used to sign images with additional keys after ini‐
132 tial image creation.
133
134
135 -i [ramdisk_file]
136 Appends the ramdisk file to the FIT.
137
138
139 -k [key_directory]
140 Specifies the directory containing keys to use for signing. This
141 directory should contain a private key file <name>.key for use
142 with signing and a certificate <name>.crt (containing the public
143 key) for use with verification.
144
145
146 -K [key_destination]
147 Specifies a compiled device tree binary file (typically .dtb) to
148 write public key information into. When a private key is used to
149 sign an image, the corresponding public key is written into this
150 file for for run-time verification. Typically the file here is
151 the device tree binary used by CONFIG_OF_CONTROL in U-Boot.
152
153
154 -p [external position]
155 Place external data at a static external position. See -E.
156 Instead of writing a 'data-offset' property defining the offset
157 from the end of the FIT, -p will use 'data-position' as the
158 absolute position from the base of the FIT.
159
160
161 -r Specifies that keys used to sign the FIT are required. This
162 means that they must be verified for the image to boot. Without
163 this option, the verification will be optional (useful for test‐
164 ing but not for release).
165
166
168 List image information:
169 mkimage -l uImage
170
171 Create legacy image with compressed PowerPC Linux kernel:
172 mkimage -A powerpc -O linux -T kernel -C gzip \
173 -a 0 -e 0 -n Linux -d vmlinux.gz uImage
174
175 Create FIT image with compressed PowerPC Linux kernel:
176 mkimage -f kernel.its kernel.itb
177
178 Create FIT image with compressed kernel and sign it with keys in the
179 /public/signing-keys directory. Add corresponding public keys into u-
180 boot.dtb, skipping those for which keys cannot be found. Also add a
181 comment.
182 mkimage -f kernel.its -k /public/signing-keys -K u-boot.dtb \
183 -c "Kernel 3.8 image for production devices" kernel.itb
184
185
186 Update an existing FIT image, signing it with additional keys. Add
187 corresponding public keys into u-boot.dtb. This will resign all images
188 with keys that are available in the new directory. Images that request
189 signing with unavailable keys are skipped.
190 mkimage -F -k /secret/signing-keys -K u-boot.dtb \
191 -c "Kernel 3.8 image for production devices" kernel.itb
192
193
194 Create a FIT image containing a kernel, using automatic mode. No .its
195 file is required.
196 mkimage -f auto -A arm -O linux -T kernel -C none -a 43e00000 -e 0 \
197 -c "Kernel 4.4 image for production devices" -d vmlinuz kernel.itb
198
199 Create a FIT image containing a kernel and some device tree files,
200 using automatic mode. No .its file is required.
201 mkimage -f auto -A arm -O linux -T kernel -C none -a 43e00000 -e 0 \
202 -c "Kernel 4.4 image for production devices" -d vmlinuz \
203 -b /path/to/rk3288-firefly.dtb -b /path/to/rk3288-jerry.dtb kernel.itb
204
205
207 http://www.denx.de/wiki/U-Boot/WebHome
208
210 This manual page was written by Nobuhiro Iwamatsu <iwa‐
211 matsu@nigauri.org> and Wolfgang Denk <wd@denx.de>. It was updated for
212 image signing by Simon Glass <sjg@chromium.org>.
213
214
215
216 2010-05-16 MKIMAGE(1)