"Das U-Boot" Source Tree
at master 890 lines 21 kB view raw
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 9mkimage \- 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 36The 37.B mkimage 38command is used to create images for use with the U-Boot boot loader. These 39images can contain the Linux kernel, device tree blob, root file system image, 40firmware images etc., either separate or combined. 41.P 42.B mkimage 43supports many image formats. Some of these formats may be used by embedded boot 44firmware to load U-Boot. Others may be used by U-Boot to load Linux (or some 45other kernel): 46.P 47The legacy image format concatenates the individual parts (for example, kernel 48image, device tree blob and ramdisk image) and adds a 64 byte header containing 49information about the target architecture, operating system, image type, 50compression method, entry points, time stamp, checksums, etc. 51.P 52The new 53.I FIT 54(Flattened Image Tree) format allows for more flexibility in handling images of 55various types and also enhances integrity protection of images with stronger 56checksums. 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 66Print a help message and exit. 67. 68.TP 69.B \-l 70.TQ 71.B \-\-list 72.B mkimage 73lists the information contained in the header of an existing U-Boot image. 74. 75.TP 76.B \-s 77.TQ 78.B \-\-no\-copy 79Don't copy in the image data. Depending on the image type, this may create 80just 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" 86Parse image file as 87.IR image-type . 88Pass 89.B list 90as 91.I image-type 92to see the list of supported image types. If this option is absent, then it 93defaults to 94.B kernel 95(legacy image). If this option is absent when 96.B \-l 97is passed, then 98.B mkimage 99will attempt to automatically detect the image type. Not all image types support 100automatic detection, so it may be necessary to pass 101.B \-T 102explicitly. 103.IP 104When creating a FIT image with 105.BR \-f , 106the image type is always set to 107.BR flat_dt . 108In this case, 109.B \-T 110specifies the image node's \(oqtype\(cq property. If 111.B \-T 112is absent, then the \(oqtype\(cq property will default to 113.BR kernel . 114. 115.TP 116.B \-q 117.TQ 118.B \-\-quiet 119Quiet. Don't print the image header. 120. 121.TP 122.B \-v 123.TQ 124.B \-\-verbose 125Verbose. Print file names as they are added to the image. 126. 127.TP 128.B \-V 129.TQ 130.B \-\-version 131Print version information and exit. 132. 133.SS General image-creation options 134. 135.TP 136.BI \-A " architecture" 137.TQ 138.BI \-\-architecture " architecture" 139Set the architecture. Pass 140.B \-h 141as the architecture to see the list of supported architectures. If 142.B \-A 143is absent, it defaults to 144.BR ppc . 145. 146.TP 147.BI \-O " os" 148.TQ 149.BI \-\-os " os" 150Set the operating system. The U-Boot 151.I bootm 152command changes boot method based on the OS type. 153Pass 154.B \-h 155as the 156.I os 157to see the list of supported OSs. If 158.B \-O 159is absent, it defaults to 160.BR linux . 161. 162.TP 163.BI \-C " compression-type" 164.TQ 165.BI \-\-compression " compression-type" 166Set the compression type. The image data should have already been compressed 167using this compression type. 168.B mkimage 169will not automatically compress image data. 170Pass 171.B \-h 172as the 173.I compression-type 174to see the list of supported compression types. If 175.B \-C 176is absent, it defaults to 177.BR gzip . 178. 179.TP 180.BI \-a " load-address" 181.TQ 182.BI \-\-load\-address " load-address" 183Set the absolute address to load the image data to. 184.I load-address 185will be interpreted as a hexadecimal number. 186. 187.TP 188.BI \-e " entry-point" 189.TQ 190.BI \-\-entry\-point " entry-point" 191Set the absolute address of the image entry point. The U-Boot 192.I bootm 193command will jump to this address after loading the image. 194.I entry-point 195will be interpreted as a hexadecimal number. 196. 197.TP 198.BI \-n " primary-configuration" 199.TQ 200.BI \-\-config " primary-configuration" 201Images may require additional configuration not specified with other options, 202often in a image-type-specific format. The image types which support this 203option 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" 210Some image types support a second set of configuration data. The image types 211which support secondary configuration and the formap of their configuration are 212listed in 213.BR CONFIGURATION . 214. 215.TP 216.BI \-d " image-data-file" 217.TQ 218.BI \-\-image " image-data-file" 219Use image data from 220.IR image-data-file . 221If the 222.I image-type 223is 224.BR multi , 225then 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 235Set the 236.I XIP 237(execute in place) flag. The U-Boot 238.I bootm 239command will not load the image data, and instead will assume it is already 240accessible 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" 248Appends the device tree binary file (.dtb) to the FIT. 249. 250.TP 251.BI \-c " comment" 252.TQ 253.BI \-\-comment " comment" 254Specifies a comment to be added when signing. This is typically a message which 255describes 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" 261Provide additional options to the device tree compiler when creating the image. 262See 263.BR dtc (1) 264for documentation of possible options. If 265.B \-D 266is absent, it defaults to 267.BR "\-I dts \-O dtb \-p 500" . 268. 269.TP 270.BI \-E 271.TQ 272.BI \-\-external 273After processing, move the image data outside the FIT and store a data offset 274in the FIT. Images will be placed one after the other immediately after the FIT, 275with each one aligned to a 4-byte boundary. The existing \(oqdata\(cq property 276in each image will be replaced with \(oqdata-offset\(cq and \(oqdata-size\(cq 277properties. 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" 284The alignment, in hexadecimal, that external data will be aligned to. This 285option only has an effect when \-E is specified. 286. 287.TP 288.BI \-p " external-position" 289.TQ 290.BI \-\-position " external-position" 291Place 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 294will use \(oqdata-position\(cq as the absolute position from the base of the 295FIT. See 296.B \-E 297for 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 303Image tree source file that describes the structure and contents of the 304FIT image. 305.IP 306In some simple cases, the image tree source can be generated automatically. To 307use this feature, pass 308.BR "\-f auto" . 309The 310.BR \-d , 311.BR \-A , 312.BR \-O , 313.BR \-T , 314.BR \-C , 315.BR \-a , 316and 317.B \-e 318options may be used to specify the image to include in the FIT and its 319attributes. No 320.I image-tree-source-file 321is required. The 322.BR \-g , 323.BR \-o , 324and 325.B \-k 326or 327.B \-G 328options may be used to get \(oqimages\(cq signed subnodes in the generated 329auto FIT. Instead, to get \(oqconfigurations\(cq signed subnodes and 330\(oqimages\(cq hashed subnodes, pass 331.BR "\-f auto-conf". 332In this case 333.BR \-g , 334.BR \-o , 335and 336.B \-k 337or 338.B \-G 339are mandatory options. 340. 341.TP 342.B \-F 343.TQ 344.B \-\-update 345Indicates that an existing FIT image should be modified. No dtc compilation will 346be performed and 347.B \-f 348should not be passed. This can be used to sign images with additional keys 349after initial image creation. 350. 351.TP 352.BI \-i " ramdisk-file" 353.TQ 354.BI \-\-initramfs " ramdisk-file" 355Append a ramdisk or initramfs file to the image. 356. 357.TP 358.BI \-k " key-directory" 359.TQ 360.BI \-\-key\-dir " key-directory" 361Specifies the directory containing keys to use for signing. This directory 362should contain a private key file 363.IR name .key 364for use with signing, and a certificate 365.IR name .crt 366(containing the public key) for use with verification. The public key is only 367necessary when embedding it into another device tree using 368.BR \-K . 369.I name 370is 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" 376Specifies the private key file to use when signing. This option may be used 377instead 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 379when used together with -K and/or -k options. 380. 381.TP 382.BI \-K " key-destination" 383.TQ 384.BI \-\-key\-dest " key-destination" 385Specifies a compiled device tree binary file (typically .dtb) to write 386public key information into. When a private key is used to sign an image, 387the corresponding public key is written into this file for for run-time 388verification. Typically the file here is the device tree binary used by 389CONFIG_OF_CONTROL in U-Boot. 390. 391.TP 392.BI \-g " key-name-hint" 393.TQ 394.BI \-\-key\-name\-hint " key-name-hint" 395Specifies the value of signature node \(oqkey-name-hint\(cq property for 396an automatically generated FIT image. It makes sense only when used with 397.B "\-f auto" 398or 399.BR "\-f auto-conf". 400This option also indicates that the images or configurations included in 401the FIT should be signed. If this option is specified, then 402.B \-o 403must be specified as well. 404. 405.TP 406.BI \-o " checksum" , crypto 407.TQ 408.BI \-\-algo " checksum" , crypto 409Specifies the algorithm to be used for signing a FIT image, overriding value 410taken from the signature node \(oqalgo\(cq property in the 411.IR image-tree-source-file . 412It is mandatory for automatically generated FIT. 413.IP 414The valid values for 415.I checksum 416are: 417.RS 418.IP 419.TS 420lb. 421sha1 422sha256 423sha384 424sha512 425.TE 426.RE 427.IP 428The valid values for 429.I crypto 430are: 431.RS 432.IP 433.TS 434lb. 435rsa2048 436rsa3072 437rsa4096 438ecdsa256 439.TE 440.RE 441. 442.TP 443.B \-r 444.TQ 445.B \-\-key\-required 446Specifies that keys used to sign the FIT are required. This means that images 447or configurations signatures must be verified before using them (i.e. to 448boot). Without this option, the verification will be optional (useful for 449testing but not for release). It makes sense only when used with 450.BR \-K. 451When both, images and configurations, are signed, \(oqrequired\(cq property 452value will be "conf". 453. 454.TP 455.BI \-N " engine" 456.TQ 457.BI \-\-engine " engine" 458The openssl engine to use when signing and verifying the image. For a complete 459list of available engines, refer to 460.BR engine (1). 461. 462.TP 463.B \-t 464.TQ 465.B \-\-touch 466Update the timestamp in the FIT. 467.IP 468Normally the FIT timestamp is created the first time mkimage runs, 469when converting the source .its to the binary .fit file. This corresponds to 470using 471.BR -f . 472But if the original input to mkimage is a binary file (already compiled), then 473the timestamp is assumed to have been set previously. 474. 475.SH CONFIGURATION 476This section documents the formats of the primary and secondary configuration 477options for each image type which supports them. 478. 479.SS aisimage 480The 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 488See 489.UR https://\:www\:.ti\:.com/\:lit/\:pdf/\:spraag0 490TI application report SPRAAG0E 491.UE 492for details. 493. 494.SS atmelimage 495The primary configuration is a comma-separated list of NAND Flash parameters of 496the form 497.RS 498.P 499\fIparameter\fB=\fIvalue\fR[\fB,\fIparameter\fB=\fIvalue\fR.\|.\|.\&] 500.RE 501.P 502Valid 503.IR parameter s 504are 505.RS 506.P 507.TS 508lb. 509usePmecc 510nbSectorPerPage 511spareSize 512eccBitReq 513sectorSize 514eccOffset 515.TE 516.RE 517.P 518and valid 519.IR value s 520are decimal numbers. See section 11.4.4.1 of the SAMA5D3 Series Data Sheet for 521valid values for each parameter. 522. 523.SS imximage 524The primary configuration is a file containing configuration commands, as 525documented in doc/\:imx/\:mkimage/\:imximage.txt of the U-Boot source. 526. 527.SS imx8image and imx8mimage 528The primary configuration is a file containing configuration commands, as 529documented in doc/\:imx/\:mkimage/\:imx8image.txt of the U-Boot source. 530. 531.SS kwbimage 532The primary configuration is a file containing configuration commands, as 533documented in doc/\:imx/\:mkimage/\:kwbimage.txt of the U-Boot source. 534. 535.SS mtk_image 536The primary configuration is a semicolon-separated list of header options of the 537form 538.RS 539.P 540\fIkey\fB=\fIvalue\fR[\fB;\fIkey\fB=\fIvalue\fR.\|.\|.\&] 541.RE 542.P 543where the valid keys are: 544.RS 545.P 546.TS 547lb lbx 548lb l. 549Key Description 550_ 551lk T{ 552If \fB1\fP, then an \fILK\fP (legacy) image header is used. Otherwise, a 553\fIBootROM\fP image header is used. 554T} 555lkname T{ 556The name of the LK image header. The maximum length is 32 ASCII characters. If 557not specified, the default value is \fBU-Boot\fP. 558T} 559media The boot device. See below for valid values. 560nandinfo The desired NAND device type. See below for valid values. 561arm64 If \fB1\fP, then this denotes an AArch64 image. 562hdroffset Increase the reported size of the BRLYT header by this amount. 563.TE 564.RE 565.P 566Valid values for 567.B media 568are: 569.RS 570.P 571.TS 572lb lb 573lb l. 574Value Description 575_ 576nand Parallel NAND flash 577snand Serial NAND flash 578nor Serial NOR flash 579emmc \fIeMMC\fP (Embedded Multi-Media Card) 580sdmmc \fISD\fP (Secure Digital) card 581.TE 582.RE 583.P 584Valid values for 585.B nandinfo 586are: 587.RS 588.P 589.TS 590lb lb lb lb lb 591lb l l l l. 592Value NAND type Page size OOB size Total size 593_ 5942k+64 Serial 2KiB 64B 5952k+120 Serial 2KiB 120B 5962k+128 Serial 2KiB 128B 5974k+256 Serial 4KiB 256B 5981g:2k+64 Parallel 2KiB 64B 1Gbit 5992g:2k+64 Parallel 2KiB 64B 2Gbit 6004g:2k+64 Parallel 2KiB 64B 4Gbit 6012g:2k+128 Parallel 2KiB 128B 2Gbit 6024g:2k+128 Parallel 2KiB 128B 4Gbit 603.TE 604.RE 605. 606.SS mxsimage 607The primary configuration is a file containing configuration commands, as 608documented in doc/\:imx/\:mkimage/\:mxsimage.txt of the U-Boot source. 609. 610.SS omapimage 611The primary configuration is the optional value 612.BR byteswap . 613If 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 617The 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 625Where 626.I value 627is a 32-bit hexadecimal integer. Each 628.I value 629will, after being converted to raw bytes, be literally prepended to the PBI. 630.P 631The secondary configuration is a file with the same format as the primary 632configuration file. It will be inserted into the image after the primary 633configuration data and before the image data. 634.P 635It is traditional to use the primary configuration file for the 636.I RCW 637(Reset Configuration Word), and the secondary configuration file for any 638additional PBI commands. However, it is also possible to convert an existing PBI 639to the above format and \(lqchain\(rq additional data onto the end of the 640image. This may be especially useful for creating secure boot images. 641. 642.SS rkimage 643The primary configuration is the name of the processor to generate the image 644for. Valid values are: 645.RS 646.P 647.TS 648lb. 649px30 650rk3036 651rk3066 652rk3128 653rk3188 654rk322x 655rk3288 656rk3308 657rk3328 658rk3368 659rk3399 660rv1108 661rk3568 662.TE 663.RE 664. 665.SS spkgimage 666The primary configuration file consists of lines containing key/value pairs 667delimited 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 677The supported 678.I key 679types 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 690These all take a positive integer value as their argument. 691The value will be copied directly into the respective field 692of the SPKG header structure. For details on these values, 693refer to Section 7.4 of the Renesas RZ/N1 User's Manual. 694. 695.TP 696.B ADD_DUMMY_BLP 697Takes a numeric argument, which is treated as a boolean. Any nonzero 698value will cause a fake BLp security header to be included in the SPKG 699output. 700. 701.TP 702.B PADDING 703Takes a positive integer value, with an optional 704.B K 705or 706.B M 707suffix, indicating KiB / MiB respectively. 708The output SPKG file will be padded to a multiple of this value. 709. 710.SS sunxi_egon 711The primary configuration is the name to use for the device tree. 712. 713.SS ublimage 714The primary configuration is a file containing configuration commands, as 715documented in doc/\:README.ublimage of the U-Boot source. 716. 717.SS zynqimage and zynqmpimage 718For 719.BR zynqmpimage , 720the primary configuration is a file containing the 721.I PMUFW 722(Power Management Unit Firmware). 723.B zynqimage 724does not use the primary configuration. 725.P 726For both image types, the secondary configuration is a file containinig 727initialization parameters, one per line. Each parameter has the form 728.RS 729.P 730.I address data 731.RE 732.P 733where 734.I address 735and 736.I data 737are hexadecimal integers. The boot ROM will write each 738.I data 739to 740.I address 741when loading the image. At most 256 parameters may be specified in this 742manner. 743. 744.SH BUGS 745Please report bugs to the 746.UR https://\:source\:.denx\:.de/\:u-boot/\:u-boot/\:issues 747U-Boot bug tracker 748.UE . 749.SH EXAMPLES 750.\" Reduce the width of the tab stops to something reasonable 751.ta T 1i 752List image information: 753.RS 754.P 755.EX 756\fBmkimage \-l uImage 757.EE 758.RE 759.P 760Create 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 769Create 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 777Create 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, 779skipping 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 788Add public key to u\-boot.dtb without needing a FIT to sign. This will also 789create 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 798Add public key with required = "conf" property to u\-boot.dtb without needing 799a 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 808Update an existing FIT image, signing it with additional keys. 809Add corresponding public keys into u\-boot.dtb. This will resign all images 810with keys that are available in the new directory. Images that request signing 811with 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 820Create a FIT image containing a kernel, using automatic mode. No .its file 821is 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 830Create a FIT image containing a kernel and some device tree files, using 831automatic 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 841Create a FIT image containing a signed kernel, using automatic mode. No .its 842file 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 851Create a FIT image containing a kernel and some device tree files, signing 852each configuration, using automatic mode. Moreover, the public key needed to 853verify 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.P 864Convert an existing FIT image from any of the three types of data storage 865(internal, external data-offset or external data-position) to another type 866of data storage. 867.RS 868.P 869.EX 870\fB// convert FIT from internal data to data-position 871\fBmkimage -p 0x20000 -F internal_data.itb 872.EE 873.EX 874\fB// convert FIT from data-position to data-offset 875\fBmkimage -E -F external_data-position.itb 876.EE 877.EX 878\fB// convert FIT from data-offset to internal data 879\fBmkimage -F external_data-offset.itb 880.EE 881.RE 882. 883.SH SEE ALSO 884.BR dtc (1), 885.BR dumpimage (1), 886.BR openssl (1), 887the\~ 888.UR https://\:u-boot\:.readthedocs\:.io/\:en/\:latest/\:index.html 889U-Boot documentation 890.UE