mkimage.1 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871
  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