[PATCH 4/9] doc: Bring in the FIT examples
Simon Glass
sjg at chromium.org
Thu Jun 22 22:21:11 CEST 2023
Convert these to rST format and add them to the index.
Signed-off-by: Simon Glass <sjg at chromium.org>
---
doc/uImage.FIT/kernel.its | 91 ---------------
doc/uImage.FIT/kernel_fdt.its | 51 --------
doc/uImage.FIT/kernel_fdts_compressed.its | 73 ------------
doc/uImage.FIT/multi-with-fpga.its | 68 -----------
doc/uImage.FIT/multi-with-loadables.its | 89 --------------
doc/uImage.FIT/multi.its | 133 ---------------------
doc/uImage.FIT/multi_spl.its | 96 ---------------
doc/uImage.FIT/sec_firmware_ppa.its | 49 --------
doc/uImage.FIT/sign-configs.its | 45 -------
doc/uImage.FIT/sign-images.its | 42 -------
doc/uImage.FIT/uefi.its | 67 -----------
doc/uImage.FIT/update3.its | 44 -------
doc/uImage.FIT/update_uboot.its | 24 ----
doc/usage/fit/kernel.rst | 93 +++++++++++++++
doc/usage/fit/kernel_fdt.rst | 54 +++++++++
doc/usage/fit/kernel_fdts_compressed.rst | 77 ++++++++++++
doc/usage/fit/multi-with-fpga.rst | 70 +++++++++++
doc/usage/fit/multi-with-loadables.rst | 91 +++++++++++++++
doc/usage/fit/multi.rst | 136 ++++++++++++++++++++++
doc/usage/fit/multi_spl.rst | 101 ++++++++++++++++
doc/usage/fit/sec_firmware_ppa.rst | 54 +++++++++
doc/usage/fit/sign-configs.rst | 52 +++++++++
doc/usage/fit/sign-images.rst | 49 ++++++++
doc/usage/fit/source_file_format.rst | 31 ++++-
doc/usage/fit/uefi.rst | 72 ++++++++++++
doc/usage/fit/update3.rst | 47 ++++++++
doc/usage/fit/update_uboot.rst | 28 +++++
27 files changed, 950 insertions(+), 877 deletions(-)
delete mode 100644 doc/uImage.FIT/kernel.its
delete mode 100644 doc/uImage.FIT/kernel_fdt.its
delete mode 100644 doc/uImage.FIT/kernel_fdts_compressed.its
delete mode 100644 doc/uImage.FIT/multi-with-fpga.its
delete mode 100644 doc/uImage.FIT/multi-with-loadables.its
delete mode 100644 doc/uImage.FIT/multi.its
delete mode 100644 doc/uImage.FIT/multi_spl.its
delete mode 100644 doc/uImage.FIT/sec_firmware_ppa.its
delete mode 100644 doc/uImage.FIT/sign-configs.its
delete mode 100644 doc/uImage.FIT/sign-images.its
delete mode 100644 doc/uImage.FIT/uefi.its
delete mode 100644 doc/uImage.FIT/update3.its
delete mode 100644 doc/uImage.FIT/update_uboot.its
create mode 100644 doc/usage/fit/kernel.rst
create mode 100644 doc/usage/fit/kernel_fdt.rst
create mode 100644 doc/usage/fit/kernel_fdts_compressed.rst
create mode 100644 doc/usage/fit/multi-with-fpga.rst
create mode 100644 doc/usage/fit/multi-with-loadables.rst
create mode 100644 doc/usage/fit/multi.rst
create mode 100644 doc/usage/fit/multi_spl.rst
create mode 100644 doc/usage/fit/sec_firmware_ppa.rst
create mode 100644 doc/usage/fit/sign-configs.rst
create mode 100644 doc/usage/fit/sign-images.rst
create mode 100644 doc/usage/fit/uefi.rst
create mode 100644 doc/usage/fit/update3.rst
create mode 100644 doc/usage/fit/update_uboot.rst
diff --git a/doc/uImage.FIT/kernel.its b/doc/uImage.FIT/kernel.its
deleted file mode 100644
index 77ddf622deb8..000000000000
--- a/doc/uImage.FIT/kernel.its
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Simple U-Boot uImage source file containing a single kernel
- */
-
-/dts-v1/;
-
-/ {
- description = "Simple image with single Linux kernel";
- #address-cells = <1>;
-
- images {
- kernel {
- description = "Vanilla Linux kernel";
- data = /incbin/("./vmlinux.bin.gz");
- type = "kernel";
- arch = "ppc";
- os = "linux";
- compression = "gzip";
- load = <00000000>;
- entry = <00000000>;
- hash-1 {
- algo = "crc32";
- };
- hash-2 {
- algo = "sha1";
- };
- };
- };
-
- configurations {
- default = "config-1";
- config-1 {
- description = "Boot Linux kernel";
- kernel = "kernel";
- };
- };
-};
-
-
-
-For x86 a setup node is also required: see x86-fit-boot.txt.
-
-/dts-v1/;
-
-/ {
- description = "Simple image with single Linux kernel on x86";
- #address-cells = <1>;
-
- images {
- kernel {
- description = "Vanilla Linux kernel";
- data = /incbin/("./image.bin.lzo");
- type = "kernel";
- arch = "x86";
- os = "linux";
- compression = "lzo";
- load = <0x01000000>;
- entry = <0x00000000>;
- hash-2 {
- algo = "sha1";
- };
- };
-
- setup {
- description = "Linux setup.bin";
- data = /incbin/("./setup.bin");
- type = "x86_setup";
- arch = "x86";
- os = "linux";
- compression = "none";
- load = <0x00090000>;
- entry = <0x00090000>;
- hash-2 {
- algo = "sha1";
- };
- };
- };
-
- configurations {
- default = "config-1";
- config-1 {
- description = "Boot Linux kernel";
- kernel = "kernel";
- setup = "setup";
- };
- };
-};
-
-Note: the above assumes a 32-bit kernel. To directly boot a 64-bit kernel,
-change both arch values to "x86_64". U-Boot will then change to 64-bit mode
-before booting the kernel (see boot_linux_kernel()).
diff --git a/doc/uImage.FIT/kernel_fdt.its b/doc/uImage.FIT/kernel_fdt.its
deleted file mode 100644
index 000d85b8e09c..000000000000
--- a/doc/uImage.FIT/kernel_fdt.its
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Simple U-Boot uImage source file containing a single kernel and FDT blob
- */
-
-/dts-v1/;
-
-/ {
- description = "Simple image with single Linux kernel and FDT blob";
- #address-cells = <1>;
-
- images {
- kernel {
- description = "Vanilla Linux kernel";
- data = /incbin/("./vmlinux.bin.gz");
- type = "kernel";
- arch = "ppc";
- os = "linux";
- compression = "gzip";
- load = <00000000>;
- entry = <00000000>;
- hash-1 {
- algo = "crc32";
- };
- hash-2 {
- algo = "sha1";
- };
- };
- fdt-1 {
- description = "Flattened Device Tree blob";
- data = /incbin/("./target.dtb");
- type = "flat_dt";
- arch = "ppc";
- compression = "none";
- hash-1 {
- algo = "crc32";
- };
- hash-2 {
- algo = "sha1";
- };
- };
- };
-
- configurations {
- default = "conf-1";
- conf-1 {
- description = "Boot Linux kernel with FDT blob";
- kernel = "kernel";
- fdt = "fdt-1";
- };
- };
-};
diff --git a/doc/uImage.FIT/kernel_fdts_compressed.its b/doc/uImage.FIT/kernel_fdts_compressed.its
deleted file mode 100644
index 8f81106efc70..000000000000
--- a/doc/uImage.FIT/kernel_fdts_compressed.its
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * U-Boot uImage source file with a kernel and multiple compressed FDT blobs.
- * Since the FDTs are compressed, configurations must provide a compatible
- * string to match directly.
- */
-
-/dts-v1/;
-
-/ {
- description = "Image with single Linux kernel and compressed FDT blobs";
- #address-cells = <1>;
-
- images {
- kernel {
- description = "Vanilla Linux kernel";
- data = /incbin/("./vmlinux.bin.gz");
- type = "kernel";
- arch = "ppc";
- os = "linux";
- compression = "gzip";
- load = <00000000>;
- entry = <00000000>;
- hash-1 {
- algo = "crc32";
- };
- hash-2 {
- algo = "sha1";
- };
- };
- fdt at 1 {
- description = "Flattened Device Tree blob 1";
- data = /incbin/("./myboard-var1.dtb");
- type = "flat_dt";
- arch = "ppc";
- compression = "gzip";
- hash-1 {
- algo = "crc32";
- };
- hash-2 {
- algo = "sha1";
- };
- };
- fdt at 2 {
- description = "Flattened Device Tree blob 2";
- data = /incbin/("./myboard-var2.dtb");
- type = "flat_dt";
- arch = "ppc";
- compression = "lzma";
- hash-1 {
- algo = "crc32";
- };
- hash-2 {
- algo = "sha1";
- };
- };
- };
-
- configurations {
- default = "conf at 1";
- conf at 1 {
- description = "Boot Linux kernel with FDT blob 1";
- kernel = "kernel";
- fdt = "fdt at 1";
- compatible = "myvendor,myboard-variant1";
- };
- conf at 2 {
- description = "Boot Linux kernel with FDT blob 2";
- kernel = "kernel";
- fdt = "fdt at 2";
- compatible = "myvendor,myboard-variant2";
- };
- };
-};
diff --git a/doc/uImage.FIT/multi-with-fpga.its b/doc/uImage.FIT/multi-with-fpga.its
deleted file mode 100644
index 021cbc7cf4a8..000000000000
--- a/doc/uImage.FIT/multi-with-fpga.its
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * U-Boot uImage source file with multiple kernels, ramdisks and FDT blobs
- * This example makes use of the 'loadables' field
- */
-
-/dts-v1/;
-
-/ {
- description = "Configuration to load fpga before Kernel";
- #address-cells = <1>;
-
- images {
- fdt-1 {
- description = "zc706";
- data = /incbin/("/tftpboot/devicetree.dtb");
- type = "flat_dt";
- arch = "arm";
- compression = "none";
- load = <0x10000000>;
- hash-1 {
- algo = "md5";
- };
- };
-
- fpga {
- description = "FPGA";
- data = /incbin/("/tftpboot/download.bit");
- type = "fpga";
- arch = "arm";
- compression = "none";
- load = <0x30000000>;
- compatible = "u-boot,fpga-legacy"
- hash-1 {
- algo = "md5";
- };
- };
-
- linux_kernel {
- description = "Linux";
- data = /incbin/("/tftpboot/zImage");
- type = "kernel";
- arch = "arm";
- os = "linux";
- compression = "none";
- load = <0x8000>;
- entry = <0x8000>;
- hash-1 {
- algo = "md5";
- };
- };
- };
-
- configurations {
- default = "config-2";
- config-1 {
- description = "Linux";
- kernel = "linux_kernel";
- fdt = "fdt-1";
- };
-
- config-2 {
- description = "Linux with fpga";
- kernel = "linux_kernel";
- fdt = "fdt-1";
- loadables = "fpga";
- };
- };
-};
diff --git a/doc/uImage.FIT/multi-with-loadables.its b/doc/uImage.FIT/multi-with-loadables.its
deleted file mode 100644
index 4d4909f83207..000000000000
--- a/doc/uImage.FIT/multi-with-loadables.its
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * U-Boot uImage source file with multiple kernels, ramdisks and FDT blobs
- * This example makes use of the 'loadables' field
- */
-
-/dts-v1/;
-
-/ {
- description = "Configuration to load a Xen Kernel";
- #address-cells = <1>;
-
- images {
- xen_kernel {
- description = "xen binary";
- data = /incbin/("./xen");
- type = "kernel";
- arch = "arm";
- os = "linux";
- compression = "none";
- load = <0xa0000000>;
- entry = <0xa0000000>;
- hash-1 {
- algo = "md5";
- };
- };
-
- fdt-1 {
- description = "xexpress-ca15 tree blob";
- data = /incbin/("./vexpress-v2p-ca15-tc1.dtb");
- type = "flat_dt";
- arch = "arm";
- compression = "none";
- load = <0xb0000000>;
- hash-1 {
- algo = "md5";
- };
- };
-
- fdt-2 {
- description = "xexpress-ca15 tree blob";
- data = /incbin/("./vexpress-v2p-ca15-tc1.dtb");
- type = "flat_dt";
- arch = "arm";
- compression = "none";
- load = <0xb0400000>;
- hash-1 {
- algo = "md5";
- };
- };
-
- linux_kernel {
- description = "Linux Image";
- data = /incbin/("./Image");
- type = "kernel";
- arch = "arm";
- os = "linux";
- compression = "none";
- load = <0xa0000000>;
- entry = <0xa0000000>;
- hash-1 {
- algo = "md5";
- };
- };
- };
-
- configurations {
- default = "config-2";
-
- config-1 {
- description = "Just plain Linux";
- kernel = "linux_kernel";
- fdt = "fdt-1";
- };
-
- config-2 {
- description = "Xen one loadable";
- kernel = "xen_kernel";
- fdt = "fdt-1";
- loadables = "linux_kernel";
- };
-
- config-3 {
- description = "Xen two loadables";
- kernel = "xen_kernel";
- fdt = "fdt-1";
- loadables = "linux_kernel", "fdt-2";
- };
- };
-};
diff --git a/doc/uImage.FIT/multi.its b/doc/uImage.FIT/multi.its
deleted file mode 100644
index 26c8dad6a2b2..000000000000
--- a/doc/uImage.FIT/multi.its
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * U-Boot uImage source file with multiple kernels, ramdisks and FDT blobs
- */
-
-/dts-v1/;
-
-/ {
- description = "Various kernels, ramdisks and FDT blobs";
- #address-cells = <1>;
-
- images {
- kernel-1 {
- description = "vanilla-2.6.23";
- data = /incbin/("./vmlinux.bin.gz");
- type = "kernel";
- arch = "ppc";
- os = "linux";
- compression = "gzip";
- load = <00000000>;
- entry = <00000000>;
- hash-1 {
- algo = "md5";
- };
- hash-2 {
- algo = "sha1";
- };
- };
-
- kernel-2 {
- description = "2.6.23-denx";
- data = /incbin/("./2.6.23-denx.bin.gz");
- type = "kernel";
- arch = "ppc";
- os = "linux";
- compression = "gzip";
- load = <00000000>;
- entry = <00000000>;
- hash-1 {
- algo = "sha1";
- };
- };
-
- kernel-3 {
- description = "2.4.25-denx";
- data = /incbin/("./2.4.25-denx.bin.gz");
- type = "kernel";
- arch = "ppc";
- os = "linux";
- compression = "gzip";
- load = <00000000>;
- entry = <00000000>;
- hash-1 {
- algo = "md5";
- };
- };
-
- ramdisk-1 {
- description = "eldk-4.2-ramdisk";
- data = /incbin/("./eldk-4.2-ramdisk");
- type = "ramdisk";
- arch = "ppc";
- os = "linux";
- compression = "gzip";
- load = <00000000>;
- entry = <00000000>;
- hash-1 {
- algo = "sha1";
- };
- };
-
- ramdisk-2 {
- description = "eldk-3.1-ramdisk";
- data = /incbin/("./eldk-3.1-ramdisk");
- type = "ramdisk";
- arch = "ppc";
- os = "linux";
- compression = "gzip";
- load = <00000000>;
- entry = <00000000>;
- hash-1 {
- algo = "crc32";
- };
- };
-
- fdt-1 {
- description = "tqm5200-fdt";
- data = /incbin/("./tqm5200.dtb");
- type = "flat_dt";
- arch = "ppc";
- compression = "none";
- hash-1 {
- algo = "crc32";
- };
- };
-
- fdt-2 {
- description = "tqm5200s-fdt";
- data = /incbin/("./tqm5200s.dtb");
- type = "flat_dt";
- arch = "ppc";
- compression = "none";
- load = <00700000>;
- hash-1 {
- algo = "sha1";
- };
- };
-
- };
-
- configurations {
- default = "config-1";
-
- config-1 {
- description = "tqm5200 vanilla-2.6.23 configuration";
- kernel = "kernel-1";
- ramdisk = "ramdisk-1";
- fdt = "fdt-1";
- };
-
- config-2 {
- description = "tqm5200s denx-2.6.23 configuration";
- kernel = "kernel-2";
- ramdisk = "ramdisk-1";
- fdt = "fdt-2";
- };
-
- config-3 {
- description = "tqm5200s denx-2.4.25 configuration";
- kernel = "kernel-3";
- ramdisk = "ramdisk-2";
- };
- };
-};
diff --git a/doc/uImage.FIT/multi_spl.its b/doc/uImage.FIT/multi_spl.its
deleted file mode 100644
index 594219974412..000000000000
--- a/doc/uImage.FIT/multi_spl.its
+++ /dev/null
@@ -1,96 +0,0 @@
-/dts-v1/;
-
-/*
- * (Bogus) example FIT image description file demonstrating the usage
- * of multiple images loaded by the SPL.
- * Several binaries will be loaded at their respective load addresses.
- *
- * For booting U-Boot, "firmware" is searched first. If not found, "loadables"
- * is used to identify images to be loaded into memory. If falcon boot is
- * enabled, "kernel" is searched first. If not found, it falls back to the
- * same flow as booting U-Boot. Changing image type will result skipping
- * specific image.
- *
- * Finally the one image specifying an entry point will be entered by the SPL.
- */
-
-/ {
- description = "multiple firmware blobs and U-Boot, loaded by SPL";
- #address-cells = <0x1>;
-
- images {
-
- uboot {
- description = "U-Boot (64-bit)";
- type = "standalone";
- arch = "arm64";
- compression = "none";
- load = <0x4a000000>;
- };
-
- atf {
- description = "ARM Trusted Firmware";
- type = "firmware";
- arch = "arm64";
- compression = "none";
- load = <0x18000>;
- entry = <0x18000>;
- };
-
- mgmt-firmware {
- description = "arisc management processor firmware";
- type = "firmware";
- arch = "or1k";
- compression = "none";
- load = <0x40000>;
- };
-
- fdt-1 {
- description = "Pine64+ DT";
- type = "flat_dt";
- compression = "none";
- load = <0x4fa00000>;
- arch = "arm64";
- };
-
- fdt-2 {
- description = "Pine64 DT";
- type = "flat_dt";
- compression = "none";
- load = <0x4fa00000>;
- arch = "arm64";
- };
-
- kernel {
- description = "4.7-rc5 kernel";
- type = "kernel";
- compression = "none";
- load = <0x40080000>;
- arch = "arm64";
- };
-
- initrd {
- description = "Debian installer initrd";
- type = "ramdisk";
- compression = "none";
- load = <0x4fe00000>;
- arch = "arm64";
- };
- };
-
- configurations {
- default = "config-1";
-
- config-1 {
- description = "sun50i-a64-pine64-plus";
- loadables = "uboot", "atf", "kernel", "initrd";
- fdt = "fdt-1";
- };
-
- config-2 {
- description = "sun50i-a64-pine64";
- loadables = "uboot", "atf", "mgmt-firmware";
- fdt = "fdt-2";
- };
- };
-};
diff --git a/doc/uImage.FIT/sec_firmware_ppa.its b/doc/uImage.FIT/sec_firmware_ppa.its
deleted file mode 100644
index a7acde17cf3e..000000000000
--- a/doc/uImage.FIT/sec_firmware_ppa.its
+++ /dev/null
@@ -1,49 +0,0 @@
-/dts-v1/;
-
-/*
- * Example FIT image description file demonstrating the usage
- * of SEC Firmware and multiple loadable images loaded by the u-boot.
- * For booting PPA (SEC Firmware), "firmware" is searched and loaded.
- *
- * Multiple binaries will be loaded as "loadables" (if present) at their
- * respective load offsets from firmware image address.
- */
-
-/{
- description = "PPA Firmware";
- #address-cells = <1>;
- images {
- firmware at 1 {
- description = "PPA Firmware: <version>";
- data = /incbin/("../obj/monitor.bin");
- type = "firmware";
- arch = "arm64";
- compression = "none";
- };
- trustedOS at 1 {
- description = "Trusted OS";
- data = /incbin/("../../tee.bin");
- type = "OS";
- arch = "arm64";
- compression = "none";
- load = <0x00200000>;
- };
- fuse_scr {
- description = "Fuse Script";
- data = /incbin/("../../fuse_scr.bin");
- type = "firmware";
- arch = "arm64";
- compression = "none";
- load = <0x00180000>;
- };
- };
-
- configurations {
- default = "config-1";
- config-1 {
- description = "PPA Secure firmware";
- firmware = "firmware at 1";
- loadables = "trustedOS at 1", "fuse_scr";
- };
- };
-};
diff --git a/doc/uImage.FIT/sign-configs.its b/doc/uImage.FIT/sign-configs.its
deleted file mode 100644
index 9e992c198826..000000000000
--- a/doc/uImage.FIT/sign-configs.its
+++ /dev/null
@@ -1,45 +0,0 @@
-/dts-v1/;
-
-/ {
- description = "Chrome OS kernel image with one or more FDT blobs";
- #address-cells = <1>;
-
- images {
- kernel {
- data = /incbin/("test-kernel.bin");
- type = "kernel_noload";
- arch = "sandbox";
- os = "linux";
- compression = "lzo";
- load = <0x4>;
- entry = <0x8>;
- kernel-version = <1>;
- hash-1 {
- algo = "sha1";
- };
- };
- fdt-1 {
- description = "snow";
- data = /incbin/("sandbox-kernel.dtb");
- type = "flat_dt";
- arch = "sandbox";
- compression = "none";
- fdt-version = <1>;
- hash-1 {
- algo = "sha1";
- };
- };
- };
- configurations {
- default = "conf-1";
- conf-1 {
- kernel = "kernel";
- fdt = "fdt-1";
- signature {
- algo = "sha1,rsa2048";
- key-name-hint = "dev";
- sign-images = "fdt", "kernel";
- };
- };
- };
-};
diff --git a/doc/uImage.FIT/sign-images.its b/doc/uImage.FIT/sign-images.its
deleted file mode 100644
index 18c759e9e65c..000000000000
--- a/doc/uImage.FIT/sign-images.its
+++ /dev/null
@@ -1,42 +0,0 @@
-/dts-v1/;
-
-/ {
- description = "Chrome OS kernel image with one or more FDT blobs";
- #address-cells = <1>;
-
- images {
- kernel {
- data = /incbin/("test-kernel.bin");
- type = "kernel_noload";
- arch = "sandbox";
- os = "linux";
- compression = "none";
- load = <0x4>;
- entry = <0x8>;
- kernel-version = <1>;
- signature {
- algo = "sha1,rsa2048";
- key-name-hint = "dev";
- };
- };
- fdt-1 {
- description = "snow";
- data = /incbin/("sandbox-kernel.dtb");
- type = "flat_dt";
- arch = "sandbox";
- compression = "none";
- fdt-version = <1>;
- signature {
- algo = "sha1,rsa2048";
- key-name-hint = "dev";
- };
- };
- };
- configurations {
- default = "conf-1";
- conf-1 {
- kernel = "kernel";
- fdt = "fdt-1";
- };
- };
-};
diff --git a/doc/uImage.FIT/uefi.its b/doc/uImage.FIT/uefi.its
deleted file mode 100644
index 378ca4ed8d7a..000000000000
--- a/doc/uImage.FIT/uefi.its
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Example FIT image description file demonstrating the usage of the
- * bootm command to launch UEFI binaries.
- *
- * Two boot configurations are available to enable booting GRUB2 on QEMU,
- * the former uses a FDT blob contained in the FIT image, while the later
- * relies on the FDT provided by the board emulator.
- */
-
-/dts-v1/;
-
-/ {
- description = "GRUB2 EFI and QEMU FDT blob";
- #address-cells = <1>;
-
- images {
- efi-grub {
- description = "GRUB EFI Firmware";
- data = /incbin/("bootarm.efi");
- type = "kernel_noload";
- arch = "arm";
- os = "efi";
- compression = "none";
- load = <0x0>;
- entry = <0x0>;
- hash-1 {
- algo = "sha256";
- };
- };
-
- fdt-qemu {
- description = "QEMU DTB";
- data = /incbin/("qemu-arm.dtb");
- type = "flat_dt";
- arch = "arm";
- compression = "none";
- hash-1 {
- algo = "sha256";
- };
- };
- };
-
- configurations {
- default = "config-grub-fdt";
-
- config-grub-fdt {
- description = "GRUB EFI Boot w/ FDT";
- kernel = "efi-grub";
- fdt = "fdt-qemu";
- signature-1 {
- algo = "sha256,rsa2048";
- key-name-hint = "dev";
- sign-images = "kernel", "fdt";
- };
- };
-
- config-grub-nofdt {
- description = "GRUB EFI Boot w/o FDT";
- kernel = "efi-grub";
- signature-1 {
- algo = "sha256,rsa2048";
- key-name-hint = "dev";
- sign-images = "kernel";
- };
- };
- };
-};
diff --git a/doc/uImage.FIT/update3.its b/doc/uImage.FIT/update3.its
deleted file mode 100644
index 0659f20002d5..000000000000
--- a/doc/uImage.FIT/update3.its
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Example Automatic software update file.
- */
-
-/dts-v1/;
-
-/ {
- description = "Automatic software updates: kernel, ramdisk, FDT";
- #address-cells = <1>;
-
- images {
- update-1 {
- description = "Linux kernel binary";
- data = /incbin/("./vmlinux.bin.gz");
- compression = "none";
- type = "firmware";
- load = <FF700000>;
- hash-1 {
- algo = "sha1";
- };
- };
- update-2 {
- description = "Ramdisk image";
- data = /incbin/("./ramdisk_image.gz");
- compression = "none";
- type = "firmware";
- load = <FF8E0000>;
- hash-1 {
- algo = "sha1";
- };
- };
-
- update-3 {
- description = "FDT blob";
- data = /incbin/("./blob.fdt");
- compression = "none";
- type = "firmware";
- load = <FFAC0000>;
- hash-1 {
- algo = "sha1";
- };
- };
- };
-};
diff --git a/doc/uImage.FIT/update_uboot.its b/doc/uImage.FIT/update_uboot.its
deleted file mode 100644
index aec482600815..000000000000
--- a/doc/uImage.FIT/update_uboot.its
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Automatic software update for U-Boot
- * Make sure the flashing addresses ('load' prop) is correct for your board!
- */
-
-/dts-v1/;
-
-/ {
- description = "Automatic U-Boot update";
- #address-cells = <1>;
-
- images {
- update-1 {
- description = "U-Boot binary";
- data = /incbin/("./u-boot.bin");
- compression = "none";
- type = "firmware";
- load = <0xFFFC0000>;
- hash-1 {
- algo = "sha1";
- };
- };
- };
-};
diff --git a/doc/usage/fit/kernel.rst b/doc/usage/fit/kernel.rst
new file mode 100644
index 000000000000..012a81efead8
--- /dev/null
+++ b/doc/usage/fit/kernel.rst
@@ -0,0 +1,93 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+Single kernel
+=============
+
+::
+
+ /dts-v1/;
+
+ / {
+ description = "Simple image with single Linux kernel";
+ #address-cells = <1>;
+
+ images {
+ kernel {
+ description = "Vanilla Linux kernel";
+ data = /incbin/("./vmlinux.bin.gz");
+ type = "kernel";
+ arch = "ppc";
+ os = "linux";
+ compression = "gzip";
+ load = <00000000>;
+ entry = <00000000>;
+ hash-1 {
+ algo = "crc32";
+ };
+ hash-2 {
+ algo = "sha1";
+ };
+ };
+ };
+
+ configurations {
+ default = "config-1";
+ config-1 {
+ description = "Boot Linux kernel";
+ kernel = "kernel";
+ };
+ };
+ };
+
+
+For x86 a setup node is also required: see x86-fit-boot::
+
+ /dts-v1/;
+
+ / {
+ description = "Simple image with single Linux kernel on x86";
+ #address-cells = <1>;
+
+ images {
+ kernel {
+ description = "Vanilla Linux kernel";
+ data = /incbin/("./image.bin.lzo");
+ type = "kernel";
+ arch = "x86";
+ os = "linux";
+ compression = "lzo";
+ load = <0x01000000>;
+ entry = <0x00000000>;
+ hash-2 {
+ algo = "sha1";
+ };
+ };
+
+ setup {
+ description = "Linux setup.bin";
+ data = /incbin/("./setup.bin");
+ type = "x86_setup";
+ arch = "x86";
+ os = "linux";
+ compression = "none";
+ load = <0x00090000>;
+ entry = <0x00090000>;
+ hash-2 {
+ algo = "sha1";
+ };
+ };
+ };
+
+ configurations {
+ default = "config-1";
+ config-1 {
+ description = "Boot Linux kernel";
+ kernel = "kernel";
+ setup = "setup";
+ };
+ };
+ };
+
+Note: the above assumes a 32-bit kernel. To directly boot a 64-bit kernel,
+change both arch values to "x86_64". U-Boot will then change to 64-bit mode
+before booting the kernel (see boot_linux_kernel()).
diff --git a/doc/usage/fit/kernel_fdt.rst b/doc/usage/fit/kernel_fdt.rst
new file mode 100644
index 000000000000..8eee13af7808
--- /dev/null
+++ b/doc/usage/fit/kernel_fdt.rst
@@ -0,0 +1,54 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+Single kernel and FDT blob
+==========================
+
+::
+
+ /dts-v1/;
+
+ / {
+ description = "Simple image with single Linux kernel and FDT blob";
+ #address-cells = <1>;
+
+ images {
+ kernel {
+ description = "Vanilla Linux kernel";
+ data = /incbin/("./vmlinux.bin.gz");
+ type = "kernel";
+ arch = "ppc";
+ os = "linux";
+ compression = "gzip";
+ load = <00000000>;
+ entry = <00000000>;
+ hash-1 {
+ algo = "crc32";
+ };
+ hash-2 {
+ algo = "sha1";
+ };
+ };
+ fdt-1 {
+ description = "Flattened Device Tree blob";
+ data = /incbin/("./target.dtb");
+ type = "flat_dt";
+ arch = "ppc";
+ compression = "none";
+ hash-1 {
+ algo = "crc32";
+ };
+ hash-2 {
+ algo = "sha1";
+ };
+ };
+ };
+
+ configurations {
+ default = "conf-1";
+ conf-1 {
+ description = "Boot Linux kernel with FDT blob";
+ kernel = "kernel";
+ fdt = "fdt-1";
+ };
+ };
+ };
diff --git a/doc/usage/fit/kernel_fdts_compressed.rst b/doc/usage/fit/kernel_fdts_compressed.rst
new file mode 100644
index 000000000000..0b169c7c27c4
--- /dev/null
+++ b/doc/usage/fit/kernel_fdts_compressed.rst
@@ -0,0 +1,77 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+Kernel and multiple compressed FDT blobs
+========================================
+
+Since the FDTs are compressed, configurations must provide a compatible
+string to match directly.
+
+::
+
+ /dts-v1/;
+
+ / {
+ description = "Image with single Linux kernel and compressed FDT blobs";
+ #address-cells = <1>;
+
+ images {
+ kernel {
+ description = "Vanilla Linux kernel";
+ data = /incbin/("./vmlinux.bin.gz");
+ type = "kernel";
+ arch = "ppc";
+ os = "linux";
+ compression = "gzip";
+ load = <00000000>;
+ entry = <00000000>;
+ hash-1 {
+ algo = "crc32";
+ };
+ hash-2 {
+ algo = "sha1";
+ };
+ };
+ fdt at 1 {
+ description = "Flattened Device Tree blob 1";
+ data = /incbin/("./myboard-var1.dtb");
+ type = "flat_dt";
+ arch = "ppc";
+ compression = "gzip";
+ hash-1 {
+ algo = "crc32";
+ };
+ hash-2 {
+ algo = "sha1";
+ };
+ };
+ fdt at 2 {
+ description = "Flattened Device Tree blob 2";
+ data = /incbin/("./myboard-var2.dtb");
+ type = "flat_dt";
+ arch = "ppc";
+ compression = "lzma";
+ hash-1 {
+ algo = "crc32";
+ };
+ hash-2 {
+ algo = "sha1";
+ };
+ };
+ };
+
+ configurations {
+ default = "conf at 1";
+ conf at 1 {
+ description = "Boot Linux kernel with FDT blob 1";
+ kernel = "kernel";
+ fdt = "fdt at 1";
+ compatible = "myvendor,myboard-variant1";
+ };
+ conf at 2 {
+ description = "Boot Linux kernel with FDT blob 2";
+ kernel = "kernel";
+ fdt = "fdt at 2";
+ compatible = "myvendor,myboard-variant2";
+ };
+ };
+ };
diff --git a/doc/usage/fit/multi-with-fpga.rst b/doc/usage/fit/multi-with-fpga.rst
new file mode 100644
index 000000000000..28d7d5d26261
--- /dev/null
+++ b/doc/usage/fit/multi-with-fpga.rst
@@ -0,0 +1,70 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+Multiple kernels, ramdisks and FDT blobs with FPGA
+==================================================
+
+This example makes use of the 'loadables' field::
+
+ /dts-v1/;
+
+ / {
+ description = "Configuration to load fpga before Kernel";
+ #address-cells = <1>;
+
+ images {
+ fdt-1 {
+ description = "zc706";
+ data = /incbin/("/tftpboot/devicetree.dtb");
+ type = "flat_dt";
+ arch = "arm";
+ compression = "none";
+ load = <0x10000000>;
+ hash-1 {
+ algo = "md5";
+ };
+ };
+
+ fpga {
+ description = "FPGA";
+ data = /incbin/("/tftpboot/download.bit");
+ type = "fpga";
+ arch = "arm";
+ compression = "none";
+ load = <0x30000000>;
+ compatible = "u-boot,fpga-legacy"
+ hash-1 {
+ algo = "md5";
+ };
+ };
+
+ linux_kernel {
+ description = "Linux";
+ data = /incbin/("/tftpboot/zImage");
+ type = "kernel";
+ arch = "arm";
+ os = "linux";
+ compression = "none";
+ load = <0x8000>;
+ entry = <0x8000>;
+ hash-1 {
+ algo = "md5";
+ };
+ };
+ };
+
+ configurations {
+ default = "config-2";
+ config-1 {
+ description = "Linux";
+ kernel = "linux_kernel";
+ fdt = "fdt-1";
+ };
+
+ config-2 {
+ description = "Linux with fpga";
+ kernel = "linux_kernel";
+ fdt = "fdt-1";
+ loadables = "fpga";
+ };
+ };
+ };
diff --git a/doc/usage/fit/multi-with-loadables.rst b/doc/usage/fit/multi-with-loadables.rst
new file mode 100644
index 000000000000..a0241df96ca2
--- /dev/null
+++ b/doc/usage/fit/multi-with-loadables.rst
@@ -0,0 +1,91 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+Multiple kernels, ramdisks and FDT blobs with Xen
+=================================================
+
+This example makes use of the 'loadables' field::
+
+ /dts-v1/;
+
+ / {
+ description = "Configuration to load a Xen Kernel";
+ #address-cells = <1>;
+
+ images {
+ xen_kernel {
+ description = "xen binary";
+ data = /incbin/("./xen");
+ type = "kernel";
+ arch = "arm";
+ os = "linux";
+ compression = "none";
+ load = <0xa0000000>;
+ entry = <0xa0000000>;
+ hash-1 {
+ algo = "md5";
+ };
+ };
+
+ fdt-1 {
+ description = "xexpress-ca15 tree blob";
+ data = /incbin/("./vexpress-v2p-ca15-tc1.dtb");
+ type = "flat_dt";
+ arch = "arm";
+ compression = "none";
+ load = <0xb0000000>;
+ hash-1 {
+ algo = "md5";
+ };
+ };
+
+ fdt-2 {
+ description = "xexpress-ca15 tree blob";
+ data = /incbin/("./vexpress-v2p-ca15-tc1.dtb");
+ type = "flat_dt";
+ arch = "arm";
+ compression = "none";
+ load = <0xb0400000>;
+ hash-1 {
+ algo = "md5";
+ };
+ };
+
+ linux_kernel {
+ description = "Linux Image";
+ data = /incbin/("./Image");
+ type = "kernel";
+ arch = "arm";
+ os = "linux";
+ compression = "none";
+ load = <0xa0000000>;
+ entry = <0xa0000000>;
+ hash-1 {
+ algo = "md5";
+ };
+ };
+ };
+
+ configurations {
+ default = "config-2";
+
+ config-1 {
+ description = "Just plain Linux";
+ kernel = "linux_kernel";
+ fdt = "fdt-1";
+ };
+
+ config-2 {
+ description = "Xen one loadable";
+ kernel = "xen_kernel";
+ fdt = "fdt-1";
+ loadables = "linux_kernel";
+ };
+
+ config-3 {
+ description = "Xen two loadables";
+ kernel = "xen_kernel";
+ fdt = "fdt-1";
+ loadables = "linux_kernel", "fdt-2";
+ };
+ };
+ };
diff --git a/doc/usage/fit/multi.rst b/doc/usage/fit/multi.rst
new file mode 100644
index 000000000000..2e6ae58c4094
--- /dev/null
+++ b/doc/usage/fit/multi.rst
@@ -0,0 +1,136 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+Multiple kernels, ramdisks and FDT blobs
+========================================
+
+::
+
+ /dts-v1/;
+
+ / {
+ description = "Various kernels, ramdisks and FDT blobs";
+ #address-cells = <1>;
+
+ images {
+ kernel-1 {
+ description = "vanilla-2.6.23";
+ data = /incbin/("./vmlinux.bin.gz");
+ type = "kernel";
+ arch = "ppc";
+ os = "linux";
+ compression = "gzip";
+ load = <00000000>;
+ entry = <00000000>;
+ hash-1 {
+ algo = "md5";
+ };
+ hash-2 {
+ algo = "sha1";
+ };
+ };
+
+ kernel-2 {
+ description = "2.6.23-denx";
+ data = /incbin/("./2.6.23-denx.bin.gz");
+ type = "kernel";
+ arch = "ppc";
+ os = "linux";
+ compression = "gzip";
+ load = <00000000>;
+ entry = <00000000>;
+ hash-1 {
+ algo = "sha1";
+ };
+ };
+
+ kernel-3 {
+ description = "2.4.25-denx";
+ data = /incbin/("./2.4.25-denx.bin.gz");
+ type = "kernel";
+ arch = "ppc";
+ os = "linux";
+ compression = "gzip";
+ load = <00000000>;
+ entry = <00000000>;
+ hash-1 {
+ algo = "md5";
+ };
+ };
+
+ ramdisk-1 {
+ description = "eldk-4.2-ramdisk";
+ data = /incbin/("./eldk-4.2-ramdisk");
+ type = "ramdisk";
+ arch = "ppc";
+ os = "linux";
+ compression = "gzip";
+ load = <00000000>;
+ entry = <00000000>;
+ hash-1 {
+ algo = "sha1";
+ };
+ };
+
+ ramdisk-2 {
+ description = "eldk-3.1-ramdisk";
+ data = /incbin/("./eldk-3.1-ramdisk");
+ type = "ramdisk";
+ arch = "ppc";
+ os = "linux";
+ compression = "gzip";
+ load = <00000000>;
+ entry = <00000000>;
+ hash-1 {
+ algo = "crc32";
+ };
+ };
+
+ fdt-1 {
+ description = "tqm5200-fdt";
+ data = /incbin/("./tqm5200.dtb");
+ type = "flat_dt";
+ arch = "ppc";
+ compression = "none";
+ hash-1 {
+ algo = "crc32";
+ };
+ };
+
+ fdt-2 {
+ description = "tqm5200s-fdt";
+ data = /incbin/("./tqm5200s.dtb");
+ type = "flat_dt";
+ arch = "ppc";
+ compression = "none";
+ load = <00700000>;
+ hash-1 {
+ algo = "sha1";
+ };
+ };
+
+ };
+
+ configurations {
+ default = "config-1";
+
+ config-1 {
+ description = "tqm5200 vanilla-2.6.23 configuration";
+ kernel = "kernel-1";
+ ramdisk = "ramdisk-1";
+ fdt = "fdt-1";
+ };
+
+ config-2 {
+ description = "tqm5200s denx-2.6.23 configuration";
+ kernel = "kernel-2";
+ ramdisk = "ramdisk-1";
+ fdt = "fdt-2";
+ };
+
+ config-3 {
+ description = "tqm5200s denx-2.4.25 configuration";
+ kernel = "kernel-3";
+ ramdisk = "ramdisk-2";
+ };
+ };
+ };
diff --git a/doc/usage/fit/multi_spl.rst b/doc/usage/fit/multi_spl.rst
new file mode 100644
index 000000000000..74b6f865abd9
--- /dev/null
+++ b/doc/usage/fit/multi_spl.rst
@@ -0,0 +1,101 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+Multiple images for SPL
+=======================
+
+(Bogus) example FIT image description file demonstrating the usage
+of multiple images loaded by the SPL.
+Several binaries will be loaded at their respective load addresses.
+
+For booting U-Boot, "firmware" is searched first. If not found, "loadables"
+is used to identify images to be loaded into memory. If falcon boot is
+enabled, "kernel" is searched first. If not found, it falls back to the
+same flow as booting U-Boot. Changing image type will result skipping
+specific image.
+
+Finally the one image specifying an entry point will be entered by the SPL.
+
+::
+
+ /dts-v1/;
+
+ / {
+ description = "multiple firmware blobs and U-Boot, loaded by SPL";
+ #address-cells = <0x1>;
+
+ images {
+
+ uboot {
+ description = "U-Boot (64-bit)";
+ type = "standalone";
+ arch = "arm64";
+ compression = "none";
+ load = <0x4a000000>;
+ };
+
+ atf {
+ description = "ARM Trusted Firmware";
+ type = "firmware";
+ arch = "arm64";
+ compression = "none";
+ load = <0x18000>;
+ entry = <0x18000>;
+ };
+
+ mgmt-firmware {
+ description = "arisc management processor firmware";
+ type = "firmware";
+ arch = "or1k";
+ compression = "none";
+ load = <0x40000>;
+ };
+
+ fdt-1 {
+ description = "Pine64+ DT";
+ type = "flat_dt";
+ compression = "none";
+ load = <0x4fa00000>;
+ arch = "arm64";
+ };
+
+ fdt-2 {
+ description = "Pine64 DT";
+ type = "flat_dt";
+ compression = "none";
+ load = <0x4fa00000>;
+ arch = "arm64";
+ };
+
+ kernel {
+ description = "4.7-rc5 kernel";
+ type = "kernel";
+ compression = "none";
+ load = <0x40080000>;
+ arch = "arm64";
+ };
+
+ initrd {
+ description = "Debian installer initrd";
+ type = "ramdisk";
+ compression = "none";
+ load = <0x4fe00000>;
+ arch = "arm64";
+ };
+ };
+
+ configurations {
+ default = "config-1";
+
+ config-1 {
+ description = "sun50i-a64-pine64-plus";
+ loadables = "uboot", "atf", "kernel", "initrd";
+ fdt = "fdt-1";
+ };
+
+ config-2 {
+ description = "sun50i-a64-pine64";
+ loadables = "uboot", "atf", "mgmt-firmware";
+ fdt = "fdt-2";
+ };
+ };
+ };
diff --git a/doc/usage/fit/sec_firmware_ppa.rst b/doc/usage/fit/sec_firmware_ppa.rst
new file mode 100644
index 000000000000..4cb292cb4eef
--- /dev/null
+++ b/doc/usage/fit/sec_firmware_ppa.rst
@@ -0,0 +1,54 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+SEC Firmware and multiple loadable images
+=========================================
+
+Example FIT image description file demonstrating the usage
+of SEC Firmware and multiple loadable images loaded by U-Boot.
+For booting PPA (SEC Firmware), "firmware" is searched and loaded.
+
+Multiple binaries will be loaded as "loadables" (if present) at their
+respective load offsets from firmware image address.
+
+::
+
+ /dts-v1/;
+
+ /{
+ description = "PPA Firmware";
+ #address-cells = <1>;
+ images {
+ firmware at 1 {
+ description = "PPA Firmware: <version>";
+ data = /incbin/("../obj/monitor.bin");
+ type = "firmware";
+ arch = "arm64";
+ compression = "none";
+ };
+ trustedOS at 1 {
+ description = "Trusted OS";
+ data = /incbin/("../../tee.bin");
+ type = "OS";
+ arch = "arm64";
+ compression = "none";
+ load = <0x00200000>;
+ };
+ fuse_scr {
+ description = "Fuse Script";
+ data = /incbin/("../../fuse_scr.bin");
+ type = "firmware";
+ arch = "arm64";
+ compression = "none";
+ load = <0x00180000>;
+ };
+ };
+
+ configurations {
+ default = "config-1";
+ config-1 {
+ description = "PPA Secure firmware";
+ firmware = "firmware at 1";
+ loadables = "trustedOS at 1", "fuse_scr";
+ };
+ };
+ };
diff --git a/doc/usage/fit/sign-configs.rst b/doc/usage/fit/sign-configs.rst
new file mode 100644
index 000000000000..6a3df8f2c5b4
--- /dev/null
+++ b/doc/usage/fit/sign-configs.rst
@@ -0,0 +1,52 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+Signed configurations
+=====================
+
+::
+
+ /dts-v1/;
+
+ / {
+ description = "Chrome OS kernel image with one or more FDT blobs";
+ #address-cells = <1>;
+
+ images {
+ kernel {
+ data = /incbin/("test-kernel.bin");
+ type = "kernel_noload";
+ arch = "sandbox";
+ os = "linux";
+ compression = "lzo";
+ load = <0x4>;
+ entry = <0x8>;
+ kernel-version = <1>;
+ hash-1 {
+ algo = "sha1";
+ };
+ };
+ fdt-1 {
+ description = "snow";
+ data = /incbin/("sandbox-kernel.dtb");
+ type = "flat_dt";
+ arch = "sandbox";
+ compression = "none";
+ fdt-version = <1>;
+ hash-1 {
+ algo = "sha1";
+ };
+ };
+ };
+ configurations {
+ default = "conf-1";
+ conf-1 {
+ kernel = "kernel";
+ fdt = "fdt-1";
+ signature {
+ algo = "sha1,rsa2048";
+ key-name-hint = "dev";
+ sign-images = "fdt", "kernel";
+ };
+ };
+ };
+ };
diff --git a/doc/usage/fit/sign-images.rst b/doc/usage/fit/sign-images.rst
new file mode 100644
index 000000000000..7d54d702c97f
--- /dev/null
+++ b/doc/usage/fit/sign-images.rst
@@ -0,0 +1,49 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+Signed Images
+=============
+
+::
+
+ /dts-v1/;
+
+ / {
+ description = "Chrome OS kernel image with one or more FDT blobs";
+ #address-cells = <1>;
+
+ images {
+ kernel {
+ data = /incbin/("test-kernel.bin");
+ type = "kernel_noload";
+ arch = "sandbox";
+ os = "linux";
+ compression = "none";
+ load = <0x4>;
+ entry = <0x8>;
+ kernel-version = <1>;
+ signature {
+ algo = "sha1,rsa2048";
+ key-name-hint = "dev";
+ };
+ };
+ fdt-1 {
+ description = "snow";
+ data = /incbin/("sandbox-kernel.dtb");
+ type = "flat_dt";
+ arch = "sandbox";
+ compression = "none";
+ fdt-version = <1>;
+ signature {
+ algo = "sha1,rsa2048";
+ key-name-hint = "dev";
+ };
+ };
+ };
+ configurations {
+ default = "conf-1";
+ conf-1 {
+ kernel = "kernel";
+ fdt = "fdt-1";
+ };
+ };
+ };
diff --git a/doc/usage/fit/source_file_format.rst b/doc/usage/fit/source_file_format.rst
index 4d2ea0a7b158..0216ce714a5f 100644
--- a/doc/usage/fit/source_file_format.rst
+++ b/doc/usage/fit/source_file_format.rst
@@ -1,3 +1,5 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
U-Boot new uImage source file format (bindings definition)
==========================================================
@@ -72,10 +74,10 @@ actual binary of a new uImage::
tqm5200.its
+
- vmlinux.bin.gz mkimage + dtc xfer to target
+ vmlinux.bin.gz mkimage + dtc xfer to target
eldk-4.2-ramdisk --------------> tqm5200.itb --------------> bootm
- tqm5200.dtb /|\
- ... |
+ tqm5200.dtb /|\
+ ... |
'new uImage'
Steps:
@@ -387,7 +389,8 @@ data-offset
store is placed immediately after the last byte of the device tree binary,
aligned to a 4-byte boundary.
-data-size : size of the data in bytes
+data-size
+ size of the data in bytes
The 'data-offset' property can be substituted with 'data-position', which
defines an absolute position or address as the offset. This is helpful when
@@ -406,7 +409,25 @@ structure and data to 512 byte, other values available for other align size.
Examples
--------
-Please see `doc/uImage.FIT/*.its` for actual image source files.
+Some example files are available here, showing various scenarios
+
+.. toctree::
+ :maxdepth: 1
+
+ kernel
+ kernel_fdt
+ kernel_fdts_compressed
+ kernel
+ multi
+ multi_spl
+ multi-with-fpga
+ multi-with-loadables
+ sec_firmware_ppa
+ sign-configs
+ sign-images
+ uefi
+ update3
+ update_uboot
.. sectionauthor:: Marian Balakowicz <m8 at semihalf.com>
.. sectionauthor:: External data additions, 25/1/16 Simon Glass <sjg at chromium.org>
diff --git a/doc/usage/fit/uefi.rst b/doc/usage/fit/uefi.rst
new file mode 100644
index 000000000000..3bbacb5cad0e
--- /dev/null
+++ b/doc/usage/fit/uefi.rst
@@ -0,0 +1,72 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+UEFI
+====
+
+Example FIT image description file demonstrating the usage of the
+bootm command to launch UEFI binaries.
+
+Two boot configurations are available to enable booting GRUB2 on QEMU,
+the former uses a FDT blob contained in the FIT image, while the later
+relies on the FDT provided by the board emulator.
+
+::
+
+ /dts-v1/;
+
+ / {
+ description = "GRUB2 EFI and QEMU FDT blob";
+ #address-cells = <1>;
+
+ images {
+ efi-grub {
+ description = "GRUB EFI Firmware";
+ data = /incbin/("bootarm.efi");
+ type = "kernel_noload";
+ arch = "arm";
+ os = "efi";
+ compression = "none";
+ load = <0x0>;
+ entry = <0x0>;
+ hash-1 {
+ algo = "sha256";
+ };
+ };
+
+ fdt-qemu {
+ description = "QEMU DTB";
+ data = /incbin/("qemu-arm.dtb");
+ type = "flat_dt";
+ arch = "arm";
+ compression = "none";
+ hash-1 {
+ algo = "sha256";
+ };
+ };
+ };
+
+ configurations {
+ default = "config-grub-fdt";
+
+ config-grub-fdt {
+ description = "GRUB EFI Boot w/ FDT";
+ kernel = "efi-grub";
+ fdt = "fdt-qemu";
+ signature-1 {
+ algo = "sha256,rsa2048";
+ key-name-hint = "dev";
+ sign-images = "kernel", "fdt";
+ };
+ };
+
+ config-grub-nofdt {
+ description = "GRUB EFI Boot w/o FDT";
+ kernel = "efi-grub";
+ signature-1 {
+ algo = "sha256,rsa2048";
+ key-name-hint = "dev";
+ sign-images = "kernel";
+ };
+ };
+ };
+ };
diff --git a/doc/usage/fit/update3.rst b/doc/usage/fit/update3.rst
new file mode 100644
index 000000000000..4ff3950c01e9
--- /dev/null
+++ b/doc/usage/fit/update3.rst
@@ -0,0 +1,47 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+Automatic software update: multiple files
+=========================================
+
+::
+
+ /dts-v1/;
+
+ / {
+ description = "Automatic software updates: kernel, ramdisk, FDT";
+ #address-cells = <1>;
+
+ images {
+ update-1 {
+ description = "Linux kernel binary";
+ data = /incbin/("./vmlinux.bin.gz");
+ compression = "none";
+ type = "firmware";
+ load = <FF700000>;
+ hash-1 {
+ algo = "sha1";
+ };
+ };
+ update-2 {
+ description = "Ramdisk image";
+ data = /incbin/("./ramdisk_image.gz");
+ compression = "none";
+ type = "firmware";
+ load = <FF8E0000>;
+ hash-1 {
+ algo = "sha1";
+ };
+ };
+
+ update-3 {
+ description = "FDT blob";
+ data = /incbin/("./blob.fdt");
+ compression = "none";
+ type = "firmware";
+ load = <FFAC0000>;
+ hash-1 {
+ algo = "sha1";
+ };
+ };
+ };
+ };
diff --git a/doc/usage/fit/update_uboot.rst b/doc/usage/fit/update_uboot.rst
new file mode 100644
index 000000000000..a9288ee63679
--- /dev/null
+++ b/doc/usage/fit/update_uboot.rst
@@ -0,0 +1,28 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+Automatic software update
+=========================
+
+Make sure the flashing addresses ('load' prop) is correct for your board!
+
+::
+
+ /dts-v1/;
+
+ / {
+ description = "Automatic U-Boot update";
+ #address-cells = <1>;
+
+ images {
+ update-1 {
+ description = "U-Boot binary";
+ data = /incbin/("./u-boot.bin");
+ compression = "none";
+ type = "firmware";
+ load = <0xFFFC0000>;
+ hash-1 {
+ algo = "sha1";
+ };
+ };
+ };
+ };
--
2.41.0.162.gfafddb0af9-goog
More information about the U-Boot
mailing list