// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright (C) 2019 Jagan Teki <jagan@amarulasolutions.com>
 */

#include <config.h>

/ {
	binman: binman {
		multiple-images;
	};
};

#ifdef CONFIG_SPL
&binman {
	simple-bin {
		filename = "u-boot-rockchip.bin";
		pad-byte = <0xff>;

		mkimage {
			filename = "idbloader.img";
			args = "-n", CONFIG_SYS_SOC, "-T", "rksd";
			multiple-data-files;

#ifdef CONFIG_ROCKCHIP_EXTERNAL_TPL
			rockchip-tpl {
			};
#elif defined(CONFIG_TPL)
			u-boot-tpl {
			};
#endif
			u-boot-spl {
			};
		};

#if defined(CONFIG_SPL_FIT) && (defined(CONFIG_ARM64) || defined(CONFIG_SPL_OPTEE_IMAGE))
		fit: fit {
#ifdef CONFIG_ARM64
			description = "FIT image for U-Boot with bl31 (TF-A)";
#else
			description = "FIT image with OP-TEE";
#endif
			#address-cells = <1>;
			fit,fdt-list = "of-list";
			filename = "u-boot.itb";
			fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
			fit,align = <512>;
			offset = <CONFIG_SPL_PAD_TO>;
			images {
				u-boot {
					description = "U-Boot";
					type = "standalone";
					os = "U-Boot";
#ifdef CONFIG_ARM64
					arch = "arm64";
#else
					arch = "arm";
#endif
#if defined(CONFIG_SPL_GZIP)
					compression = "gzip";
#elif defined(CONFIG_SPL_LZMA)
					compression = "lzma";
#else
					compression = "none";
#endif
					load = <CONFIG_TEXT_BASE>;
					entry = <CONFIG_TEXT_BASE>;
					u-boot-nodtb {
#if defined(CONFIG_SPL_GZIP)
					compress = "gzip";
#elif defined(CONFIG_SPL_LZMA)
					compress = "lzma";
#endif
					};
#ifdef CONFIG_SPL_FIT_SIGNATURE
					hash {
						algo = "sha256";
					};
#endif
				};

#ifdef CONFIG_ARM64
				@atf-SEQ {
					fit,operation = "split-elf";
					description = "ARM Trusted Firmware";
					type = "firmware";
					arch = "arm64";
					os = "arm-trusted-firmware";
					compression = "none";
					fit,load;
					fit,entry;
					fit,data;

					atf-bl31 {
					};
#ifdef CONFIG_SPL_FIT_SIGNATURE
					hash {
						algo = "sha256";
					};
#endif
				};
				@tee-SEQ {
					fit,operation = "split-elf";
					description = "TEE";
					type = "tee";
					arch = "arm64";
					os = "tee";
					compression = "none";
					fit,load;
					fit,entry;
					fit,data;

					tee-os {
						optional;
					};
#ifdef CONFIG_SPL_FIT_SIGNATURE
					hash {
						algo = "sha256";
					};
#endif
				};
#else
				op-tee {
					description = "OP-TEE";
					type = "tee";
					arch = "arm";
					os = "tee";
					compression = "none";
					load = <(CFG_SYS_SDRAM_BASE + 0x8400000)>;
					entry = <(CFG_SYS_SDRAM_BASE + 0x8400000)>;

					tee-os {
					};
#ifdef CONFIG_SPL_FIT_SIGNATURE
					hash {
						algo = "sha256";
					};
#endif
				};
#endif

				@fdt-SEQ {
					description = "fdt-NAME";
					compression = "none";
					type = "flat_dt";
#ifdef CONFIG_SPL_FIT_SIGNATURE
					hash {
						algo = "sha256";
					};
#endif
				};
			};

			configurations {
				default = "@config-DEFAULT-SEQ";
				@config-SEQ {
					description = "NAME.dtb";
					fdt = "fdt-SEQ";
#ifdef CONFIG_ARM64
					fit,firmware = "atf-1", "u-boot";
#else
					fit,firmware = "op-tee", "u-boot";
#endif
					fit,loadables;
				};
			};
		};
#else
		u-boot-img {
			offset = <CONFIG_SPL_PAD_TO>;
		};
#endif
	};

#ifdef CONFIG_ROCKCHIP_SPI_IMAGE
	simple-bin-spi {
		filename = "u-boot-rockchip-spi.bin";
		pad-byte = <0xff>;

		mkimage {
			filename = "idbloader-spi.img";
			args = "-n", CONFIG_SYS_SOC, "-T", "rkspi";
			multiple-data-files;

#ifdef CONFIG_ROCKCHIP_EXTERNAL_TPL
			rockchip-tpl {
			};
#elif defined(CONFIG_TPL)
			u-boot-tpl {
			};
#endif
			u-boot-spl {
			};
		};

#if defined(CONFIG_ARM64) || defined(CONFIG_SPL_OPTEE_IMAGE)
		fit {
			type = "blob";
			filename = "u-boot.itb";
#else
		u-boot-img {
#endif
			/* Sync with u-boot,spl-payload-offset if present */
			offset = <CONFIG_SYS_SPI_U_BOOT_OFFS>;
		};
	};
#endif /* CONFIG_ROCKCHIP_SPI_IMAGE */
};
#endif /* CONFIG_SPL */
